嵌入式Linux移植10. 實踐環節-基於Linux的遙控小車

文章定位:記錄此次DIY的技術路線,主要闡明思路,開發方法,具體技術細節可能有所欠缺

DIY目的:藉此實踐環節系統瞭解嵌入式Linux開發環節

筆者QQ:  1270035388 各位同仁可一同交流相關開發思路

 

軟件硬件環境:

Windows10

vmware+Ubuntu12.04
OK335xd+am3354(forlinx家的板子,飛凌的底板用來燒寫程序到flash)

車載主控:AM3354核心板+自己設計的底板

遙控器:使用STM8單片機做成的簡易按鍵遙控器,主要由4個按鍵,1個通信模塊,1個核心板組成

先上成果圖(自動忽略凌亂的桌面):

 

技術路線:

1.小車底盤條件:

某魚上淘的個遙控玩具車,拆去它的主板和遙控器,只留下底盤,車上總共三個130電機,型號相同,舵機就是個130電機,上電一直旋轉;前後各一個130驅動電機,車上自帶減速器,前後電機並聯到繼電器電路。

2.車載主控:

使用飛凌家的FET系列的AM3354核心板

自行設計底板,力求功能實現簡單易行,可能不是成本最低,最聰明的方法,但是最終走通了Linux開發的學習,使用四路繼電器實現舵機和電機的正反轉(相當於四個繼電器控制2個電機,改變電流方向),使用HC-12無線透傳模塊通信,比ZigBee便宜點

3.遙控器

使用STM8單片機,第一次使用此型號單片機,後期用來做小型低功耗電路,藉此試驗一下,直接使用核心板模塊,省去各種麻煩,外設爲4個按鍵,1個HC-12無線透傳模塊,另外設計了2.4Ghz模塊接口,AD接口尚未測試

 

控制思路:

STM8檢測到按鍵按下----發送信息到車----車接收到信息控制兩路繼電器實現轉向或運動同時亮燈----STM8按鍵鬆開----發送歸正或停車信號-----車接收到信號回正方向或停車同時滅燈

 

車載軟件開發方法:

1.關於IO控制的基本技術原理借鑑嵌入式移植8

2.使用NFS掛載文件系統,在Ubuntu上開發車上的控制程序,爲了顯示程序運行,在接收到特定信號後打開LED,關掉LED,先在飛凌主板上測試通過(拿電錶量IO變化,拿串口線代替無線)

3.修改內核驅動,添加輸出IO,用來控制4個繼電器,串口驅動採用飛凌自帶的,不做修改,編譯生成新的uImage文件

4.飛凌主板上測試成功後,將根文件系統製作好,其中將控制車的程序放在/mnt中,在etc的文件中將車控制程序設置成開機啓動,然後將根文件系統打包成ubi.img鏡像文件

5.將新生成的uImage和ubi拷進SD卡,燒錄進核心板的flash

6.將核心板放到自己的底板

遙控器軟件開發:

1.使用IAR,配置好芯片型號,打開串口例程,按鍵例程,安裝配置好stvp下載軟件

2.在串口例程上添加4個按鍵(第一次使用不熟悉,對我來說這樣開發最快),編譯生成hex文件

3.使用stvp下載hex文件到STM8,測試

 

硬件開發:

     筆者做電路板開發已有幾年,此次開發雖然要求簡單,但迫於時間限制馬失前蹄。。同時因爲不想做電路開發這方面,結果一天設計完PCB,先是核心板的兩側引腳搞反,好在敷銅前發現錯誤,三極管線序搞錯,繼電器怎麼都不響,直接架起直插三極管解決,後來拿降壓模塊給2個驅動電機供電直接卡掉電,切板子上走線另接一路電池解決。

    警示各位道友。。不管什麼時候硬件設計都不能掉以輕心,修改成本太大,還不如開發時上點心

 

由於技術涉及面比較廣,所以文章寫得比較凌亂,如有同仁做相關開發有疑問可QQ1270035388聯繫一同交流

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章