|
來源于:冰雪網(wǎng)絡(luò)科技
小這樣的場景:一個電腦天才做在電腦旁,在黑色的背景下輸入綠色的字符:"open the door",房間的門就自動打開了;若是輸入"Lighten the light",屋內(nèi)的燈便會自動打開。。。這一切對于我來說太神奇了,自己也做一個全數(shù)字化控制的房間也成了我兒時的夢想。上個學(xué)期學(xué)完了數(shù)電,模電,這 個學(xué)期又上了單片機(jī),終于對于電子知識有了個大概的了解,于是又重新拾起兒時的夢想。可是,具體做點什么呢?電腦控制的燈泡?RS232 + MCU51 + 繼電器 就行了,可是感覺好像不怎么好玩,于是最終思考下來,選擇了做一個電腦控制的小車。
正文(寫在車子成功運(yùn)行的激動時刻):
流程圖:

VB程序界面:
附上小車的玉照:
側(cè)視圖:
前視圖:
電機(jī)+輪子:
兩個L298:
串口通訊及LED:
注:
1。由于我以前購買過一套51學(xué)習(xí)板,故51主板,MAX232,LED均采用現(xiàn)成模塊。
2。此車為有線版,我計劃有時間的話將其改為無線版,擬采用NRF401。
3。本VB程序不能正確地接收單片機(jī)返回的數(shù)據(jù)(已經(jīng)確定單片機(jī)能夠正確的反饋數(shù)據(jù));另外,本VB程序存在間歇性無法正確關(guān)閉串口的問題。期待高手指點。
4。希望高手能夠給與指點,也希望我的文章能夠給一些新手帶來一些幫助。歡迎拍磚。
附:做車子的坎坷經(jīng)歷
當(dāng) 主題選定后,我想怎樣對小車進(jìn)行精確的控制呢?這時我想到了用繼電器來控制直流電機(jī)的正轉(zhuǎn)反轉(zhuǎn),可是我猜想延時應(yīng)該會有些大。當(dāng)然后來我才知道有 PWM(Pulse Width Modulation脈沖寬度調(diào)節(jié))這個東西,呵呵。這個時候有個同學(xué)告訴了我有一種電機(jī)叫做步進(jìn)電機(jī),可以精確控制,每給一個脈沖它才走一步。之后我便 上網(wǎng)查找了些步進(jìn)電機(jī)的資料,基本上搞清楚了步進(jìn)電機(jī)的工作原理。
在這里我必須向大家推薦兩個網(wǎng)頁,他們對于我了解步進(jìn)電機(jī)起到了極大的幫助:
在選擇步進(jìn)電機(jī)的功率放大芯片時,因為據(jù)說用三極管等便宜器件進(jìn)行放大時由于相同器件的個體差異比較大,容易造成不穩(wěn)定,最終選擇了用L298作為步進(jìn)電機(jī)的功率放大芯片。
PC 的數(shù)據(jù)發(fā)送由于不要求速率,但要求通訊的距離,于是便選擇了串口。串口的編程的問題我想了幾種方法,一個是自己編寫API,另一個是調(diào)用 MicroSoft的MSComm組件,或是干脆練習(xí)一下這個學(xué)期微機(jī)原理學(xué)過的匯編語言,用MASM寫算了。后來還是決定用最容易實現(xiàn)的方法,調(diào)用 MSComm組件。在編寫這個VB程序的時候,我參考了葉帆源碼,在此以示感謝。
構(gòu)思完成后便是去買器件了,這期間可是問題多多。首先是找遍了西安終于在電子大樓找到了一個有賣步進(jìn)電機(jī)的地方,傻傻的認(rèn)為0.1kg.cm的力矩能夠帶的動車子。
電機(jī)如圖:
自己做的輪子由兩部分組成,第一部分,一個四驅(qū)車的輪子:
第二部分,在模型店買到的專業(yè)飛機(jī)模型用輪(中間部分被我挖去,用以裝入四驅(qū)車的輪子):
兩者結(jié)合起來構(gòu)成最終的輪子:
當(dāng)時想采用電腦機(jī)箱上的泡沫作為車體,如圖:
電機(jī)在車體上放置的位置,如圖:
把輪子安裝到車子上后,如圖:
后來發(fā)現(xiàn)這個設(shè)計問題多多:
1。泡沫車體的剛度太差,加上負(fù)重后車輪會歪曲;
2。電機(jī)的扭矩不夠,想找齒輪組卻找了很久也找不到
后 來事實證明上圖那個25BY步進(jìn)電機(jī)的扭矩實在太小,于是便想找減速的步進(jìn)電機(jī),可是無奈找了很久也沒有找到便宜的。無奈之下,還是只好去郵購了兩個馬力 稍微大一點的步進(jìn)電機(jī),加上輪子(自己做實在太麻煩)一共還是花了100元(在西安買的話可能得200呢),心疼啊。。。不過這樣一來,自己就可以不用再 去找輪子和齒輪組了,的確簡單了不少。(當(dāng)初我還不知道有PWM這個東西,并且認(rèn)為減速電機(jī)的慣性會很大不能精確控制,但后面我才知道這個觀點是錯誤的。 呵呵,早知道,買幾個減速電機(jī)來做可能就節(jié)約money了。而且不會出現(xiàn)在車子馬力不足的問題)
電機(jī)和輪子買完以后我便開始思考如何固定的問題,這時候我想到了用自己以前買的51學(xué)習(xí)套件上的一塊大板子來當(dāng)車體(后來才知道這東西就是專門用來當(dāng)機(jī)器人底板的),如圖:
固定電機(jī)的時候,我想用我曾經(jīng)見過的一種有側(cè)孔的銅柱,可是又是找遍西安沒有找到(有個老板告訴我如果我要1000個以上可以為我訂做,呵呵)。正當(dāng)我為如何固定電機(jī)感到煩惱的時候,突然想到了用尼龍扎帶試試,結(jié)果一試,效果還真不錯。如圖:
后來發(fā)現(xiàn)加上電機(jī)以后板子前后方向有些彎曲,于是又再加了一根前后方向銅柱固定板子,如圖:
做到這個程度,我找了不知道多久的萬向輪也突然跳進(jìn)了我的視野,原來西安西門附近的機(jī)械產(chǎn)品市場有賣(本來我都打算用兩個軸承自己來做一個萬向輪的了)。把萬向輪固定在車板上后,如圖:
這些東西都做好后的小車底部圖:
至此,車子的機(jī)械部分已經(jīng)完全做完,我也舒了一口氣。回想起做機(jī)械部分的經(jīng)歷,真是太痛苦了,為了買點東西,不知道跑了多少地方。。。我想我是學(xué)電子的,應(yīng)該把主要的精力放在研究電路、程序上啊。呵呵。
其 后便是做電路了,由于電路較為簡單,并且我已經(jīng)有了一個51試驗板,故只買了一個面包板將兩個L298焊了上去。當(dāng)然最關(guān)鍵的是程序了,這一部分我到?jīng)]有 感覺到多少困難,很快就做完了。只是直到現(xiàn)在我的VB程序還是有在上面提到的反饋信息接收的問題(SendData總等于1),我也找不到錯誤在哪,并且 串口的關(guān)閉也間歇性的出現(xiàn)問題,再次希望高人幫我指點一下。 并且,新買的步進(jìn)電機(jī)動力還是有些偏小,整車我用的銅柱固定,也加大了車子的重量(早知道就用鋁柱了)。
此車我計劃改成無線版,以后我還想加入尋跡功能(用紅外傳感器)。其實我最想做的是無線視頻車,在車子上放一個攝像頭,高速的無線傳過來,我在PC上控制,呵呵。不過這些東西我現(xiàn)在都不太懂,而且我猜東西也應(yīng)該挺貴。我想我等1月份考研以后來做吧。。
這 就是我的PC串口控制的小車的全部了,呵呵,我的處女電子制作。就我自己而言,我現(xiàn)在覺得親手做點東西確實能夠極大的提高自己的綜合水平,無論是動手能力 還是理論水準(zhǔn)。在校的電子類大學(xué)生確實應(yīng)該做點東西。還有就是如果有示波器和車床那將會是多么完美的事情啊,呵呵。。。
|
|