今天是4月27日,隨著單片機故障的出現(xiàn),智能小車套件組裝調(diào)試工作被迫中止,我也被迫得以清閑,于是寫一篇半技術(shù)文,小結(jié)一下我的智能小車套件組裝小結(jié)。 到目前為止,遇到過3次非常頭疼的問題。所謂非常頭疼,就是看起來特別弱智的問題,但花了一兩天也解決不了。當然解決了以后證明確實很弱智。智能小車套件組裝總結(jié)如下:
首先是剛買回來我的第一塊單片機之后的第一個程序:想點亮一盞LED燈,怎么也不行,這就像剛學編程的人想輸出“HELLO, WORLD!”卻總是失敗一樣打擊人。結(jié)果是,用的編程器progisp有bug,應該先擦掉再寫入,它卻先寫入后擦掉……手動先擦再寫就解決問題了。
其次是我單片機升級的時候,由atmega16換成atmega128之后,想測試一下芯片,寫了一個讓一盞燈不停閃爍的程序,又失敗了!這就像剛學編程的人想輸出“HELLO, WORLD! MY NAME IS WYT.”卻總是失敗一樣打擊人。我想,上次失敗是軟件問題,這次不該是了呀,肯定是程序?qū)懙糜袉栴},找了兩天程序的問題(當然順便學了頭文件和軟件使用方面等等好多東西),最后發(fā)現(xiàn)是編譯軟件ICCAVR要設置單片機型號,同樣的語句對不同型號的單片機有不同的翻譯方法……
第三次就是這次了,智能小車套件組裝,總也無法下載程序,上網(wǎng)查資料,問題沒解決,但是學到了好多熔絲位設置,時鐘設置等方面的知識,同時也學到了解決類似問題的許多種方法,可惜都不適合我這個問題。
通過這三次經(jīng)歷,我的體會之一是:問題,的確是上天賜予你的進步的捷徑。只是很多人看不到這條捷徑,而選擇放棄。實際上問題越難,你將獲得越大的進步。好比這次困難,如果我上網(wǎng)查到的第一條解答就解決了問題,那我就不可能繼續(xù)深究了。
除了這三次最頭疼的問題,還有無數(shù)次遇到小問題。我喜歡解決問題,特別喜歡用非一般的方法解決問題,還喜歡不斷發(fā)現(xiàn)問題。
舉幾個例子吧:智能小車套件有尺寸要求,要能裝進直徑20cm的圓筒。先介紹下背景:聯(lián)軸器是連接電機軸和車輪的東西,車輪內(nèi)側(cè)有一個正六邊形的凹槽,聯(lián)軸器剛好能與凹槽吻合這樣車輪就不會打空轉(zhuǎn)。但我們發(fā)現(xiàn)電機加輪子加聯(lián)軸器怎么擺都會超寬,輪子又沒有別的可選。因此我放棄了過長的聯(lián)軸器,裝上了一個比較短的塑料齒輪,然后把齒輪用鋼銼銼成剛好能固定車輪的正六邊形,最后用繩子把車輪和齒輪綁牢,至今車子都跑得挺好。
后來選傳感器,前輩和別人一直都用紅外測距,但我覺得超聲波測距傳感器沒什么不好,就買了一個試試,后來發(fā)現(xiàn)效果很好,當然,測試的過程也是充滿艱辛,從明明就對的程序卻無法運行,到運行之后測量不精確,到拿一本書擺在傳感器面前的各種位置各種角度進行性能測試,到多個傳感器之間的相互串擾測試,到從用中斷控制改為非中斷控制以加強程序穩(wěn)定性,我假期在家的時間基本都是在研究超超聲波測距傳感器中度過的。雖然現(xiàn)在對其外部特性基本熟知了,但因為沒遇到傳感器不能工作的情況,所以一直沒有動力研究硬件結(jié)構(gòu)。現(xiàn)在已經(jīng)有其他隊伍也想用超聲波測距傳感器了,呵呵,不小心改寫了一下傳統(tǒng)……
后來寫程序,我一直記著要模塊化以便程序越來越大的時候不會混亂。因此寫了很多函數(shù),各種可能的方法都要進行測試:比如兩個輪子控制轉(zhuǎn)彎時候究竟是一輪轉(zhuǎn)一輪停呢,還是一輪快轉(zhuǎn)一輪慢轉(zhuǎn)呢,還是一輪正轉(zhuǎn)一輪倒轉(zhuǎn)呢?都試過。現(xiàn)在已經(jīng)寫了900行代碼,暫時還沒有亂的感覺,可能就要歸功于之前堅持的模塊化原則吧。
還有保證車子方向的程序,自己想了三四個方法,翔哥也提供了很多建設性的想法,我都會寫出程序進行試驗,最終選出效果最好的方法。
另一個比較有個性的是:我從家里翻出來小學的學具,類似積木一樣可以插接的東西,而且顏色鮮艷,我用這些東西把傳感器固定在車上,很牢固也很陽光,哈哈……
最后寫一句在別處看到的,我也比較認同的話,來紀念我一個假期沒日沒夜每分每秒都與機器人廝混的生活:時間在哪里,成就就在哪里;而興趣在哪里,時間就在哪里。
總之,在智能小車套件組裝調(diào)試時碰到了許多問題,同時也學到了不少知識。使得智能小車套件組裝調(diào)試變得非常有意義。
|