文章定位:記錄此次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聯繫一同交流