一 單片機和CPU、個人電腦的區(qū)別和聯(lián)系
這部分內(nèi)容比較初級,但很多朋友剛接觸單片機時或許對下面的問題不是很清楚。
1 什么是CPU?
CPU中文名稱為“中央處理器”,典型代表為英特爾8086處理器,現(xiàn)在的奔騰X處理器都是8086的直系后代。處理器,顧名思義,其功能是處理數(shù)據(jù),對于中央處理器,就是在數(shù)據(jù)處理中處于核心地位的處理器,聽起來似乎很復(fù)雜,但實際上核心就是一個ALU“算術(shù)邏輯單元”。這個單元由一些數(shù)字門電路組成,僅能完成括加、減、乘、除四則運算,與、或、非、異或等邏輯操作,以及移位、比較和傳送等操作。CPU內(nèi)部包含ALU,除此之外CPU還有時鐘電路,CPU運行的基本原理是:時鐘電路產(chǎn)生計數(shù)脈沖,這個脈沖控制著一個累加器,即每產(chǎn)生一個時鐘脈沖,累加器加1,這個累加值以16進制數(shù)字的形式通過地址總線唯一選通程序儲存器中一個儲存單元(在CPU外部),這個單元將內(nèi)部儲存的程序命令代碼通過數(shù)據(jù)總線送到ALU中,ALU根據(jù)代碼不同執(zhí)行不同操作,比如把某寄存器數(shù)值和某數(shù)值相加等,然后將計算結(jié)果輸出到IO口或者各個總線上。
總之,CPU的工作就是把程序中的命令代碼翻譯成不同任務(wù),然后執(zhí)行,輸出執(zhí)行結(jié)果。CPU在一切數(shù)字計算機中都發(fā)揮了核心作用,即計算機都有CPU。
2 什么是個人電腦?
由于CPU只有計算功能,其計算的結(jié)果需要通過顯示器、音箱輸出,而其工作的依據(jù),即程序命令則依靠硬盤儲存,其執(zhí)行任務(wù)時動態(tài)存取的數(shù)據(jù)要保存在內(nèi)存中,而人可以通過鍵盤控制程序命令的執(zhí)行過程,把所有這些CPU的外設(shè)組合在一起就叫做“個人電腦”。
3 什么是單片機?
個人電腦功能強大,計算速度快,是較為理想的計算機。但當(dāng)我們需要用一個小裝置控制微波爐定時開關(guān)時,個人電腦就顯得笨重和昂貴。因此人們設(shè)計出一種濃縮型電腦,大的有幾平方厘米,小的比米粒還小,它們叫做“單片機”——單片微型計算機。CPU是一個芯片,單片機也是一個芯片,看起來外觀差不多,它們有什么不同呢?答案是:單片機內(nèi)除了集成有CPU外,還集成了程序儲存器ROM(可理解為硬盤)、數(shù)據(jù)儲存器RAM(可理解為內(nèi)存),輸入輸出接口(可理解為顯示器、鍵盤插座),有的單片機內(nèi)還集成了電機驅(qū)動電路、視頻解碼電路、AD轉(zhuǎn)換器、無線傳輸電路等,使得單片機功能變得非常強大。單片機的特長在于可以用單個芯片和簡單外部電路去實現(xiàn)復(fù)雜的控制操作,因此非常適合機器人控制。其實在絕大多數(shù)機器人中都有單片機的影子。簡單的和中等復(fù)雜的機器人可以用單片機直接控制,高度復(fù)雜的機器人用“個人電腦”或者“超級計算機”指揮許多單片機來完成機器人控制。
4 學(xué)習(xí)單片機的捷徑是什么?
所謂捷徑就是少走彎路。我剛開始學(xué)單片機時走了不少彎路,很多朋友和我都有相似的經(jīng)歷,剛開始接觸單片機,面對琳瑯滿目的圖書教材,不知選擇哪本;想實踐時不知到哪買單片機;不知如何編程下載程序……
A 對于初學(xué)者仔細看本文就是學(xué)習(xí)單片機的捷徑之一。
B 到圖書館或者書店在數(shù)十本單片機書中選一本你能看懂,而且覺得案例有趣的“實在、生動、活潑”的單片機書做為你的入門讀物。
C 建議先從51單片機學(xué)起。掌握51后再學(xué)AVR,然后學(xué)ARM、DSP等。
D 在學(xué)習(xí)過程中實踐非常必要。你需要一臺電腦。如果是臺式電腦,你可以花十幾元購買25針并口下載線,如果是筆記本電腦,你只能購買幾十元到幾百元的USB ISP編程器。
E 用萬用板自己焊一個單片機最小系統(tǒng),或者購買開發(fā)板。沒有必要使用昂貴的仿真器。
F 你需要上網(wǎng)下載單片機編程軟件,比如51用Keil編程,AVR用CVAVR編程,在編程軟件中編好程序,然后生成HEX文件,再上網(wǎng)下載并口燒程序軟件或者USB ISP燒程序軟件,用燒程序軟件加載HEX文件,然后將編程線查到你的單片機電路板上,即可把程序燒到單片機中。
G 拔下編程線,然后接通單片機板電源,你可以看到單片機系統(tǒng)在運行。
H 如果系統(tǒng)不能正常運行,首先檢查電路是否接錯,然后檢查程序是否燒錯,如果以上都沒毛病,研究程序是否編錯。有時系統(tǒng)不能正常運行并不意味著有什么地方錯了,只是某些參數(shù)沒設(shè)置好,你需要不斷運行、修改程序、調(diào)試參數(shù)、再運行如此往復(fù),直到你對系統(tǒng)運行滿意為止。有時這是一個非常艱苦的重復(fù)勞動,調(diào)整數(shù)百次上千次,你無法回避,只能堅定信念,勇往直前。
I 到淘寶網(wǎng)上買東西更方便、更便宜。
二 在單片機誕生前人們用什么控制機器人
1 模擬計算機
在數(shù)字計算機誕生前,人們用電子管、電容器和電感線圈、電阻搭建模擬計算機,能夠完成許多簡單的計算和控制任務(wù)。所謂模擬計算機就是其計算采用的信號不是1、0數(shù)字信號,而是電壓連續(xù)變換的模擬信號,類似于自動控制原理中的各種控制器采用的運算。別小看了模擬計算機,上世紀80年代中東戰(zhàn)爭時,阿拉伯國家使用的蘇制全自動自行防空炮內(nèi)采用模擬計算機實現(xiàn)計算飛機軌跡并控制火炮射擊目標(biāo)。
A 尋光
我們可以用光電二極管來檢測光線強弱。當(dāng)然也可以用光敏電阻。將光敏電阻和一個固定電阻串聯(lián)接在電源正負極之間,光敏電阻靠近正極一側(cè)。從光敏電阻和固定電阻連接點引出導(dǎo)線接到ATmega16的AD轉(zhuǎn)換輸入口。當(dāng)強光照在光敏電阻時,光敏電阻阻值變小,因此其壓降變小,而固定電阻分壓增多,引出的AD檢測電位升高,被單片機轉(zhuǎn)化為數(shù)字量后判斷光線增強。機器生命有5個光電傳感器,其中4個面向機器人前后左右四個方向,另一個指向太陽能板所面對的方向。通過編程可以讓機器人自主移動到光線最強的地方。
B 充電
本設(shè)計采用4.8V鎳氫充電電池為系統(tǒng)供電。太陽能電池板正負極通過一個三極管與電池正負極相連。有一個電壓比較器比較電池電壓與太陽能板的壓差,如果壓差高于某值,比較器控制三極管導(dǎo)通,太陽能電池板對充電電池充電。充電電池電壓上升,當(dāng)高于某值時控制三極管關(guān)斷,結(jié)束充電。為使太陽能板能對電池組充電,要求太陽能板在陽光直射下輸出電壓高于8V。
C 語音識別
用AVR單片機的高速AD檢測功能能實現(xiàn)簡單的語音識別。聲音信號被駐極體電容話筒接收后送至LM386音頻功放芯片放大和過濾后送至單片機AD轉(zhuǎn)換口,單片機對音頻信號幅值采樣轉(zhuǎn)化為一組數(shù)字,然后對這組進行取方差運算,得出一個特征值,該特征值可以用于簡單的語音識別。比如你發(fā)一個“e”,方差應(yīng)該比較小,如果你發(fā)“p”爆破音,方差應(yīng)該較大。當(dāng)然,如果你用更復(fù)雜的數(shù)據(jù)處理,會得到更好的識別效果。本設(shè)計使用了2路聲音信號,目的是讓單片機判斷出聲源的大體方位。
D 超聲波測距
用AVR的1個IO口輸出40KHz信號送至超聲波發(fā)射電路,當(dāng)超聲波遇到障礙物返回后,被超聲波接收頭接收,信號經(jīng)CX20106A解碼芯片處理,得到一個低電平脈沖,用該脈沖引發(fā)AVR單片機中斷,AVR通過檢查發(fā)波和收到回波之間的時間差即可算出障礙物距離。
E 電機驅(qū)動
本設(shè)計采用2片LG9110電機驅(qū)動芯片驅(qū)動兩臺直流減速電機。LG9110輸出最大電流為800mA,僅需要2條控制線與單片機IO口直接相連即可控制一臺電機正反轉(zhuǎn)或者停止。LG9110僅有8個引腳,使用非常方便。
F 讓機器生命更聰明
我的這個機器生命設(shè)計方案能實現(xiàn)最酷的效果是:白天,陽光明媚,機器生命跑到陽光底下曬太陽,太陽光會隨著時間變化,機器生命能自動跑到最合適的位置享受日光浴。到了晚上,機器生命會找個安靜的地方閉目養(yǎng)神,等待明天太陽升起。你可以訓(xùn)練機器生命,讓它知道自己的名字叫什么。比如你叫著它的名字,同時站在它面前用強光照射它的太陽能電池板,如此反復(fù)訓(xùn)練,會使機器生命聽到自己名字后向聲源方向跑去,在距離聲源一定遠處停止,因為以往這樣做它都能享受強光照射并充電。這就如同真正的寵物狗,你叫它名字它就跑到你跟前希望能獲得食物。這一切都是完全能夠?qū)崿F(xiàn)的,關(guān)鍵就在于編程序?qū)崿F(xiàn)它。
G 想象無極限,你的機器寵物將無所不能
以上方案中,ATmega16的功能被發(fā)揮到極致,以至于沒有空閑的IO口,系統(tǒng)不能再擴展了。如果你用ATmega128單片機做,那么它擁有53個IO口,30多個中斷,128Kb的程序存儲器,4Kb的RAM,使得你能編寫更復(fù)雜的程序、儲存更多的動態(tài)數(shù)據(jù)、連接更多的外設(shè),你的機器生命將變得非常有生命力。比如加入三軸加速度傳感器、地磁傳感器、GPS定位、雨水傳感器甚至攝像頭、無線通信模塊等,重新設(shè)計一個堅固和強勁的底盤,你的機器生命就可以在室外自由探索了。
以上芯片外設(shè)來源說明:在淘寶上購買很容易
底盤:340元的高級履帶式1:16電動坦克模型
加速度傳感器、地磁傳感器:美國AD公司的40元ADXL330加速度傳感器
GPS定位:幾十元的車載外置GPS天線
最后,我想說,機器人是非常好玩的,只要你有想象力,有毅力,努力研究實踐就能創(chuàng)造奇跡。