本次升級后機(jī)器小車命名為“YYQ霹靂二號” 本次升級的內(nèi)容見最后升級完成時的說明,嘿嘿,這里先不提。 本次升級項(xiàng)目是開源的。程序代碼將在升級完成時隨著日志發(fā)布。如果大家對程序代碼有什么修改、優(yōu)化建議的話,也歡迎提出,小弟洗耳恭聽。 ——————————————————————————————————
YYQ霹靂一號升級開始。
我計(jì)劃設(shè)計(jì)雙層。下層放電機(jī)驅(qū)動和紅外檢測模塊等。上層放主控芯片及其外圍電路等。 原來的主板基本廢棄,因?yàn)槟菚r是第一次搞這項(xiàng)目開發(fā),缺乏很多經(jīng)驗(yàn),焊接也很馬虎。電路板背面慘不忍睹。。!,F(xiàn)在使用新的電路板焊接。 自從焊接那個“自行車安全行駛監(jiān)控器”后,學(xué)會了一個新的焊接技術(shù),就是用錫來當(dāng)導(dǎo)線連起來,那樣會比較干凈利落。 本次升級還有功能上的增加!嘿嘿。廢話不多說,開始從結(jié)構(gòu)升級。
2012年7月27日12:17:08 用了兩塊萬用版,鉆孔后開始校準(zhǔn)我安裝的四個螺絲,使兩層電路板保持兩個方向水平。 為簡略起見,校平過程的照片此處略去。若要看請移步到相冊“YYQ的智能車”。以后總裝測試時還會再做一次的。
2012年7月28日1:59:04
此時我既想看倫敦奧運(yùn)會開幕式,又想把它繼續(xù)焊接完成。目前我已經(jīng)焊接完了基本電路。
MCU使用ATmage16L芯片,由于是我自己的第一個作品的升級,比以前用它所做的作品不同的是:
①系統(tǒng)時鐘源不再是使用片內(nèi)自帶的,我外部接上了11.0592MHz的無源石英晶振,對于串口的波特率,更為精準(zhǔn)點(diǎn),官方PDF資料說該晶振頻率對于9600Bps和38.4KBps這兩種我以后要用到的波特率來說,理論誤差為0%。
②復(fù)位電路也焊上了。對于這款芯片來說,外圍復(fù)位電路簡單的其實(shí)就是一個開關(guān),一頭連著RESET引腳,一頭接地。只要按下開關(guān),RESET引腳被拉低,然后放開就完成外部復(fù)位操作了。
③主電路板上,設(shè)了4個開關(guān),分管各個部分的電路。
④電路板上多用黑色簽字筆注釋一些必要的部分,方便以后檢查和升級電路,也是因?yàn)槲液附舆@個電路板沒計(jì)劃好在電腦上畫過電路圖嘛。。也懶得畫了,參考技術(shù)文檔的接口定義,直接拿電子元件焊上去。如果是要印刷電路板的話,這是必要的。
⑤熔絲位設(shè)置了使用了外部晶振,我燒寫程序不再像以前那樣插到開發(fā)板上一通電就可以燒了,因?yàn)殚_發(fā)板上對于晶振的接口不支持AVR單片機(jī)。所以我必須要在這里焊接上至少一個SPI接口,即使不是因?yàn)闊龑懗绦虻穆闊,以后也必有用處!但是,現(xiàn)在我進(jìn)入了“最省資源模式”,呵呵,因?yàn)槲野l(fā)現(xiàn)焊接完復(fù)位電路后,我僅剩4cm左右的焊錫絲。
拼著這一點(diǎn)點(diǎn)焊錫絲,嘿嘿,最起碼的我還能把十個SPI接口的針腳固定好了。
2012年7月28日17:39:03
AVR單片機(jī)的系統(tǒng)電路已經(jīng)焊接完成。
2012年7月29日11:16:47 藍(lán)牙模塊調(diào)試始終未成功,該模塊是HC-05 。賣家發(fā)的是默認(rèn)從機(jī)模式。官方PDF文檔說上電的同時KEY拉高,可進(jìn)入AT命令模式。并且該模式下串口通訊的波特率是38400 。我先在開發(fā)板上測試:用AVR單片機(jī)代替該模塊,波特率一樣,數(shù)據(jù)位8位,停止位1位,無校驗(yàn)無流控,這些屬性都和PDF文檔說的一樣。然后接上電腦串口后,電腦和這單片機(jī)的通訊完全沒有問題。 然后把單片機(jī)取出,把藍(lán)牙模塊RXD、TXD、GND、VCC接到開發(fā)板。一上電,藍(lán)牙模塊的LED燈閃的頻率大概2秒一次。然后我用電腦發(fā)“AT\r\n” 里面的\r和\n是轉(zhuǎn)義字符,實(shí)際上分別是0x0D和0x0A,換句話說發(fā)出去的數(shù)據(jù)用十六進(jìn)制表示就是“41 54 0D 0A”而且我之前也用AVR單片機(jī)檢查過,電腦發(fā)的數(shù)據(jù)能正確、完完整整地接收。 官方PDF文檔說,如果發(fā)了AT\r\n,該模塊AT模式下,會自動響應(yīng),返回一個“OK\r\n”。可是我的電腦端發(fā)出去后,過了好幾秒,還是沒有收到任何數(shù)據(jù)。模塊的燈的閃動頻率也沒有變化。然后我試了下RXD、TXD交叉相連,仍是不行。 我又試了下用AVR單片機(jī)和模塊通信。照樣我也這么發(fā)了,不說返回的是不是OK\r\n了,連一個數(shù)據(jù)都沒返回,串口接收完成中斷函數(shù)一直沒有被執(zhí)行。交叉了一下RXD和TXD,仍是沒有返回?cái)?shù)據(jù)。 從機(jī)模式的話,KEY腳拉低,即進(jìn)入工作模式,此時藍(lán)牙上的LED燈也在快閃。一秒鐘兩次吧大概。官方PDF說此時可以被主機(jī)搜索到。我用我的手機(jī)【HUAWEI C8650+】的藍(lán)牙去搜索,一個信號也搜不到。
2012年7月29日中午 固定好原來的電機(jī)驅(qū)動模塊和四個紅外檢測模塊。
2012年8月5日23:39:39 ①重寫整個項(xiàng)目的程序代碼,不繼承第一代。 ②優(yōu)化避障算法 ③更改總開關(guān)的控制線路:一號控制MCU和紅外避障模塊;二號控制電機(jī)驅(qū)動模塊;三四號預(yù)留空位。 ④美化跳線 ⑤更換電機(jī)電源接口,改為USB接口,但輸入的仍是9V直流電。主要是因?yàn)槲艺也坏竭@個電源的以前那條線了,大的圓孔沒法插。電源的9V輸出孔是小小的圓孔,不是大圓孔接口。
2012年8月6日16:50:05 激動啊~~~~藍(lán)牙模塊調(diào)試成功了,原來還真是以前那個藍(lán)牙模塊的問題,F(xiàn)在換了一個,好了。 現(xiàn)在霹靂二號能和手機(jī)通訊了。我用我手機(jī)的藍(lán)牙串口調(diào)試軟件,成功收發(fā)數(shù)據(jù)。目前可以用手機(jī)控制小車的前進(jìn)、倒車、左拐、右拐、停車以及避障開關(guān)。 我準(zhǔn)備打算在手機(jī)上開發(fā)一個軟件,專門控制這輛小車的,總是用別人的串口調(diào)試軟件不太好。 耶~~~不過寫到這的時候鼻子酸酸的,不知為啥
這是來自YYQ霹靂二號發(fā)來的信息。每當(dāng)MCU啟動的時候,就會發(fā)送出來。藍(lán)牙是從機(jī)模式。
幕后亮相 呵呵
2012年8月7日16:25:09
耶~~基于Android系統(tǒng)的YYQ霹靂二號控制軟件開發(fā)完成。 界面雖然有點(diǎn)丑陋,但功能卻是樣樣俱全~~~現(xiàn)在我手機(jī)也可以當(dāng)遙控器啦~~不用像第一代那樣隨身帶個紅外遙控器,而且要對準(zhǔn)才行,藍(lán)牙無線的話,全方位的喔~~
另外我還發(fā)現(xiàn)一個問題,僅僅靠這四個紅外傳感器來避障的話,有很多盲區(qū)。這個將在以后跑上Linux操作系統(tǒng)后,使用攝像頭來取代紅外傳感器吧。到時候功能會更強(qiáng)大~~~期待 所以,為了更高級,為更加實(shí)用,我會繼續(xù)在現(xiàn)有基礎(chǔ)上進(jìn)行第二次升級!
AVR單片機(jī)里的程序源代碼:
115網(wǎng)盤提取碼:eilus9sf
http://115.com/file/eilus9sf
|