?? readme.txt
字號:
大一時參加第二屆飛思卡爾智能車競賽的源代碼,使用BSD許可證發布.
包含很多有用的庫, 源代碼涉及了單片機的大部分功能.對DG128不熟的同學可以作為參考.
系統分四層, 硬件層,設備層,控制層和智能.
包含記憶算法.
當時我花了大約三個的時間去了解所用的單片機,并寫完了硬件層和設備層的代碼.這使我在后來的開發工作中不必去過多考慮的底層細節,能夠把更多的精力放在控制和智能算法上面.項目中還包含了大量的測試用例以供參考.我基本上是采用邊測試邊開發的方法開發的.這是我認為大家可以學習的地方.
項目中的一些模塊可能會對大家有用,我做一個簡單的介紹.
dbg* : 調試模塊,控制LCD,調試用按鍵和串口, 包含一個菜單子模塊, 自己寫了一個printf函數,可以方便的從串口或者液晶屏輸出信息.菜單模塊也花了一些功夫,可以方便的添加菜單元素, 動態的查看和修改系統中某變量的值.
h* : 硬件層,直接和I/O口與內部模塊打交道.
d* : 設備層,把傳感器,馬達,舵機等抽象出來.
c* : 控制層,控制舵機,馬達,采集道路信息.
s* : 智能層,路徑記憶和播放
為了不因為分層而影響效率, 分層并不是十分嚴格, 而且有很多地方是用宏來做層與層的銜接的. 系統在48MHz的采樣和執行周期約為0.6~1ms之間.我認為這樣的響應時間已經是比較高的了.
事實上我們的成績并不理想.用記憶算法跑有的時候還不如不用. 賽后我分析了原因, 最主要的是我們的調速做的太差了,交大用的是千元的編碼傳感器,精度能到1/256圈, 也就是車每走15/256cm就能夠感覺到速度的變化,而我們只用了4個磁鐵加一個霍爾傳感器,并且因為四個磁鐵距離不同所以最后我們的車每跑15cm才能感覺到速度的變化.這樣你的調速算法做的在好,也無濟于事,這也是賽后才想通的.
記憶算法先不介紹,我之后會放一篇文章出來,專門講這個.
我的大一下半學期的時間都用來干這個了,而且還付出了掛了一科的代價,雖然沒進決賽,但我已經極大的培養和鍛煉了我自己,沒什的可后悔的.我將不會參加第三屆的比賽.我把源代碼公開出來,希望大家能去其糟粕,取其精華,從中得到一些有用的東西.免得它放在我的硬盤里發霉生銹了.十分愿意和參加這項比賽的同學和老師交流,交換各自的想法和意見.如果愿意,同時也很希望能看到同學們在賽后吧自己的源代碼貢獻和公開出來.
如果任何BUG或建議請聯系作者eic(superefei@hotmail.com)
eic, Apr. 17, 2008
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -