迅為4412開發板-步進電機-驅動和測試例程 和本文檔配套的資料有: 1 內核配置和步進電機驅動補丁包: topeet_modules_20190319.tar.gz 2 linux-C 的測試例程: iTOP-4412-linuxc-stepmotor_V1.0.zip 3 QtE 的測試例程: iTOP-4412-QtE4.7-step_moter_V1.0.tar 4 Android 的測試例程: iTOP-4412-Android4.0-stepmotortest-V1.0.zip 請注意,在光盤的內核源碼中,沒有步進電機的驅動,需要添加步進電機的驅動之后才能使用。步進電機使用的是 camera 接口上的 IO,需要屏蔽掉 camera 驅動。 1.硬件連接 硬件連接分為兩個部分,供電和控制線的連接。 如下圖所示,是步進電機的原理圖部分。 ![]() 端子 j2 可以看出,需要通過排線和開發板的 camera 接口。上圖右半部分,可以看出供電可以采用 5v 電源或者 usb 供電的方式。 排線鏈接,如下圖所示。火牛座和 USB 線供電二選一,如下圖所示是 usb 線供電。 ![]() 這里務必需要注意的是,如果大家使用的是默認的光盤內核鏡像,請不要給步進電機上電太長時間。因為步進電機驅動芯片,默認狀態是上拉,會導致步進電機處于不正常的狀態,會讓電機發熱。 需要將步進電機驅動配置完成之后,步進電機驅動在初始化的時,將步進電機的驅動芯片拉低,這樣步進電機就會處于準備工作狀態,這種狀態不會有電流,不會導致步進電機發熱! 2.內核配置和補丁包 由硬件部分可知,步進電機使用的是 camera 接口,內核默認狀態會編譯 camera 驅動,camera 驅動會占用電機用到的四個 GPIO,所以首先需要在內核配置中將 camera 驅動去掉。然后添加驅動補丁包,重新編譯內核,燒寫到內核中。 2.1 內核配置 進入內核目錄,配置所需要的缺省文件,使用命令“make menuconfig”,如下圖所示,進入配置界面。 選中“Device Drivers --->”進入。 ![]() 如下圖所示,選中“Multimedia support --->”,進到選項中。 ![]() 如下圖所示,進入“Video capture adapters --->”選項。 ![]() 如下圖所示,取消“OmniVision OV5640 sensor support ”,這個是攝像頭 ov5640的配置選項。 ![]() 如上圖所示,取消 ov5640 的選項,然后保存退出,得到新的.config 文件。 2.2 修改 Makefile 文件 然后需要修改 Makefile 文件。 打開“drivers/char/Makefile”文件,如下圖所示。 增加以下代碼: obj-y += topeet_modules/ ![]() 然后保存退出。 2.3 補丁包 驅動補丁包“topeet_modules_20190319.tar.gz”和文檔放在一起。 補丁包同時也放在網盤鏈接“iTOP4412 開發板資料匯總(不含光盤內容)\iTOP-4412開發板系統源碼及鏡像(其他)\topeet_modules”目錄下的“topeet_modules_20190319.tar.gz”下,日期可能會有變化,使用最新日期的壓縮包即可。 拷貝到“drivers/char”目錄下,使用命令“tar -vxftopeet_modules_20190319.tar.gz”解壓,如下圖所示。 ![]() 2.4 內核編譯和測試 重新編譯內核,燒寫到開發板,啟動開發板,如下圖所示。在“/dev”目錄下可以看到有設備節點“step_motor_driver”生成。 ![]() 至此,內核驅動配置完成。這個時候給步進電機上電,會發現四個并排的小燈已經滅了。 3.Linux-C 的測試例程 然后拷貝和本文檔一起打包的“iTOP-4412-linuxc-stepmotor_V1.0.zip”壓縮包中“step_motor_app”文件到開發板(U 盤,tf 卡或者 nfs 都可以)。 如下圖所示,拷貝到開發板上,作者的系統是最小 Linux 系統。如果是 Android 系統,則需要使用“chmod 777 /dev/step_motor_driver”修改權限。 ![]() 使用命令“./step_motor_app”如下圖所示,可以看到有如下提示。 ![]() 步進電機的測試例程需要傳遞參數。 第一個參數是 R 或者 L,用于設置步進電機的方向; 第二個參數是步角距,步角距是 5.625/64 度,4096 個步角距就是 360 度,所以這個參數的范圍是 0-4096,取值 4096 是一圈,最小建議為 10。 第三個參數是轉速,建議取值為 3000 到 20000 之間,小于 3000 轉速不穩定。提供了一個 demon 為“./step_motor_app R 4076 3000”。 使用命令“./step_motor_app R 4076 3000”,可以看到步進電機在右轉,轉一圈之后就會停下,“./step_motor_app L 4076 3000”會左轉一圈之后停止,用戶可以執行測試其它參數。 ![]() 4.QtE4.7 的測試例程 和本文檔一起打包的“iTOP-4412-QtE4.7-step_moter_V1.0”為 QtE4.7 的測試源碼資源包,源碼中的“step_moter”為步進電機的編譯好的 qt4.7 程序。 請注意,需要參考本文檔第二小節,先配置內核驅動,確認有設備節點“/dev/step_motor_driver”。 開發板燒寫 QtE4.7 系統,將“step_moter”拷貝到開發板,使用命令“./step_moter& ”運行,如下圖所示。 ![]() 以上界面中,參數如下: Speed:通過改變延時來控制速度,延時越短,轉速越快。延時范圍:3--20ms。 Num:設置步進數,當值為 4096 時轉一圈。 Direction:設置轉動方向。RIGHT 為正轉,LEFT 為反轉。 START:設置好后,點擊 START 開始運行。 CLOSE:關閉當前頁面。 5.Android4.0.3 的例程測試 “iTOP-4412-Android4.0-stepmotortest-V1.0.zip”為 Android4.0.3 的測試源碼資源包,源碼包中的“bin”下的“stepmotortest.apk”為步進電機的編譯好的 Android4.0.3 程序。 請注意,需要參考本文檔第二小節,先配置內核驅動,確認有設備節點“/dev/step_motor_driver”,如下圖所示。 ![]() 在控制臺輸入命令“chmod 777 /dev/step_motor_driver”修改權限。 ![]() 在控制臺輸入命令“chmod 777 /dev/step_motor_driver”修改權限。 ![]() 速度:通過改變延時來控制速度,速度設置越大,轉速越快,但不能設置成 20。 步數:設置步進數,當值為 4096 時轉一圈。 方向:設置轉動方向。 START:設置好后,點擊 START 開始運行。 ![]() |