機器人常用的單片機使用經(jīng)驗
七 新興控制器 FPGA
1簡(jiǎn)介
FPGA(Field-Programmable Gate Array),即現場(chǎng)可編程門(mén)陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現的,系統設計師可以根據需要通過(guò)可編輯的連接把FPGA內部的邏輯塊連接起來(lái),就好像一個(gè)電路試驗板被放在了一個(gè)芯片里。簡(jiǎn)單說(shuō),如果使用者想開(kāi)發(fā)一個(gè)用簡(jiǎn)單數字邏輯電路就能控制的小車(chē),又嫌搭電路麻煩,他就可用軟件給一個(gè)FPGA編程讓它實(shí)現數字電路功能去控制小車(chē)。即FPGA可被用來(lái)模擬各種電路。有的FPGA甚至能模擬51單片機的運行。因FPGA通過(guò)編程即可修改它模擬的電路結構,因此在系統實(shí)驗、調試中很方便,很多愛(ài)好者嘗試用FPGA做機器人控制器。
八 更多可供選擇的單片機
我們選擇學(xué)一款單片機前首先要考慮自己面對的實(shí)際任務(wù)需要什么性能的單片機,然后在眾多性能滿(mǎn)足要求的單片機中作出選擇。此時(shí)我們還要考慮不同單片機的“應用廣泛程度”,比方說(shuō):當我們要做一個(gè)電子大賽智能小車(chē),有AVR單片機和PIC單片機可滿(mǎn)足任務(wù)需要,如何在兩者中作出選擇需要考慮哪種單片機學(xué)起來(lái)比較容易、學(xué)習資料容易獲取、可供參考的程序和案例更加豐富、哪種單片機更容易獲得編程軟件和下載器等。筆者感覺(jué)要想做智能小車(chē),AVR單片機的資料比較豐富。
世界上有種類(lèi)繁多的單片機,它們當中絕大多數都可用來(lái)控制機器人,但存在一個(gè)是否合適的問(wèn)題。比如PLC是可編程控制器,當然可以用來(lái)控制愛(ài)好者手中的機器人,但PLC多用于工業(yè)控制領(lǐng)域,設備龐大價(jià)格昂貴,同時(shí)不易獲得用PLC控制小型機器人的資料。愛(ài)好者選擇學(xué)一種單片機前,首先得明確自己要用單片機干什么,然后再選最合適的單片機學(xué)習。學(xué)單片機重在學(xué)精一兩種單片機,如果有人泛泛地學(xué)ARM、PLC、PIC、凌陽(yáng)、DSP、FPGA等所有有名的單片機,那么他將無(wú)法擁有真正的深度開(kāi)發(fā)能力。所謂深度開(kāi)發(fā),以AVR單片機為例,初學(xué)者可以用它實(shí)現小燈交替閃爍,中級技術(shù)人員可以用它控制參加比賽的機器人,而真正的高級開(kāi)發(fā)人員可以用AVR實(shí)現機器視覺(jué)、無(wú)人機自動(dòng)駕駛、坦克火控系統……
AVR單片機過(guò)時(shí)了嗎?
有初學(xué)者甚至中級開(kāi)發(fā)人員認為因ARM性能一般比AVR性能高,因此ARM將代替AVR,AVR將退出歷史舞臺,或者M(jìn)SP430將代替51系列單片機,或者FPGA將取代所有單片機等。這種看法不對,因為不同單片機都有各自的特點(diǎn)和優(yōu)點(diǎn),沒(méi)有哪種單片機是完美的,在不同場(chǎng)合用最合適的單片機,發(fā)揮它們各自的特長(cháng),而不存在A(yíng)RM一統天下,取代所有其他型號單片機的可能性。試想,原本十幾元的電子表因為采用ARM控制買(mǎi)到幾百元,誰(shuí)能受得了?因此不要覺(jué)得AVR已經(jīng)過(guò)時(shí),學(xué)完51就直接學(xué)ARM,或者覺(jué)得學(xué)51沒(méi)用,直接學(xué)ARM,否則你將碰壁。
MSP430系列單片機:比較適于機器人開(kāi)發(fā),是美國德州儀器推向市場(chǎng)的一種16位、具有精簡(jiǎn)指令集的、超低功耗的混合信號處理器。具有Flash存儲器,中斷源較多,并且可以任意嵌套,使用時(shí)靈活方便。MSP430系列單片機的電源電壓采用的是 1.8~3.6V 電壓。因而可使其在1MHz的時(shí)鐘條件下運行時(shí),芯片的電流會(huì )在200~400uA左右,時(shí)鐘關(guān)斷模式的最低功耗只有0.1uA。MSP430系列單片機的各成員都集成了較豐富的片內外設。它們分別是看門(mén)狗、模擬比較器、定時(shí)器、串口0、1、硬件乘法器、液晶驅動(dòng)器、10位/12位ADC、16位Sigma-Delta AD、直接尋址模塊(DMA)、IO端口、基本定時(shí)器(Basic Timer)等的一些外圍模塊的不同組合。MSP430 系列單片機引進(jìn)了JTAG技術(shù),不僅使開(kāi)發(fā)工具變得簡(jiǎn)便,而且價(jià)格也相對低廉,并且還可以實(shí)現在線(xiàn)編程。
PIC單片機:可用于機器人開(kāi)發(fā),是8位單片機,產(chǎn)品種類(lèi)豐富,采用精簡(jiǎn)指令集,有不錯的開(kāi)發(fā)環(huán)境,引腳驅動(dòng)能力強,可直接連接繼電器控制強電。自帶看門(mén)狗,有睡眠和低功耗模式。很多性能不如AVR和MSP430系列單片機,但因其有特殊優(yōu)點(diǎn),也被廣泛應用。
凌陽(yáng)單片機:比較適于機器人開(kāi)發(fā),以16位計算機為核心,集成不同規模的RAM、ROM和其他豐富的功能電路,使用者可以根據自己需要選擇集成了特定功能電路的凌陽(yáng)單片機。凌陽(yáng)單片機指令系統提供出具有較高運算速度的16位,16位的乘法運算指令和內積運算指令,為其應用添加了DSP功能,因此凌陽(yáng)適合進(jìn)行語(yǔ)音識別。在我國凌陽(yáng)單片機在學(xué)校比較常見(jiàn),應用實(shí)例較多,可作為機器人愛(ài)好者選用的單片機。本文引用地址:http://dyxdggzs.com/article/171763.htm
九 實(shí)例:用AVR單片機創(chuàng )造機器生命
1 什么是機器生命
機器生命就是一個(gè)能自主生存的機器,一個(gè)自動(dòng)為生存下去而奮斗的機器。對于機器生命來(lái)說(shuō),生存的含義就是不斷電,繼續運行。機器生命具有完全自主決策、自主行動(dòng)、活動(dòng)于未知世界、不需人類(lèi)參與就能持續運行并且自我維護等特征。影片《終結者》中的天網(wǎng)就是超級機器生命?!杜Z5號》描述了一個(gè)機器人從無(wú)生命到有生命的過(guò)程。
N.維納(Norbert Wiener,1894~1964)寫(xiě)《控制論》時(shí)創(chuàng )造出第一個(gè)機器生命Wiener龜,這個(gè)機器龜僅有2個(gè)電子管組成的模擬計算機,但它卻能實(shí)現真正的烏龜覓食、睡覺(jué)、探索、逃避等行為,其表現如同一個(gè)有生命的生物一樣。機器龜上面有太陽(yáng)能電池,當自身電池快用完前,機器龜樂(lè )于尋找一個(gè)光線(xiàn)充足的地方充電,充滿(mǎn)電后可能找個(gè)地方睡懶覺(jué),或者探索未知世界,它有避免碰撞和避免到傾斜地方的趨向,我們無(wú)法預知它的行蹤,因為它不是按照程序運行的,就如同我們自己一樣。后來(lái)維納在他的機器龜上又加了一個(gè)電子管,三個(gè)電子管連接成簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò ),通過(guò)對機器龜訓練,維納通過(guò)搖鈴可控制機器龜的行為。正如有生物學(xué)家訓練狗使得狗聽(tīng)到搖鈴聲后就流口水。
2 我們可以自己動(dòng)手做一個(gè)機器寵物
我們今天有先進(jìn)的單片機,制作一個(gè)更好的機器生命其實(shí)不難。機器生命遠比按固定程序運行的機器人好玩,就如同寵物狗比玩具狗好玩一樣。我們設想的機器生命可以是一個(gè)小型履帶式機器人,帶有太陽(yáng)能板,能感受光線(xiàn)強弱,障礙物距離和碰撞,為了實(shí)現人機互動(dòng),該機器生命具有語(yǔ)音識別功能。試想你學(xué)習一天,回到寢室,叫一聲TONY,你的機器寵物轉身飛快跑向你,那種感覺(jué)只有寵物的創(chuàng )造者才能體會(huì )……
3 如何實(shí)現?如何設計電路?如何設計結構?
這個(gè)機器生命方案采用ATmega16單片機做控制器,單片機的8路AD通道和其余24個(gè)IO接口都被使用。AVR單片機AD轉換頻率高于音頻,可以用來(lái)進(jìn)行簡(jiǎn)單的語(yǔ)音采集。機器生命的程序較復雜,而AVR單片機適合進(jìn)行快速復雜運算。本設計的電路板上除了ATmega16單片機外,還有2個(gè)LG9110電機驅動(dòng)芯片、2個(gè)LM386音頻功放芯片,和LM393電壓比較器芯片,再加上少量電阻電容和三極管,電路簡(jiǎn)潔,適合初學(xué)者和中級愛(ài)好者動(dòng)手制作。
LCD采用通用1602模塊,支持3位控制線(xiàn)4位數據線(xiàn),如果你采用IO口復用技術(shù),可用6條線(xiàn)控制LCD模塊。
此方案涉及光電檢測、自動(dòng)充電、語(yǔ)音識別、超聲波測距、鍵盤(pán)(4個(gè)碰撞開(kāi)關(guān))、LCD液晶顯示、電機驅動(dòng)等技術(shù),這些都是動(dòng)手做簡(jiǎn)單機器人的基本技術(shù),如果愛(ài)好者能把這個(gè)機器生命做好,那么你的電路設計、調試經(jīng)驗和編程能力都會(huì )有很大的提高。
這個(gè)機器生命的技術(shù)含量相當于20世紀70年代國際機器人領(lǐng)域的先進(jìn)水平。當時(shí)已經(jīng)有很多非常精密和復雜的工業(yè)機器人被應用,但這種簡(jiǎn)單的機器人怎么能稱(chēng)作先進(jìn)呢?因為技術(shù)的復雜和技術(shù)的先進(jìn)不是一個(gè)概念,復雜+精密不一定等于先進(jìn)。先進(jìn)的東西不一定復雜和精密。
A 尋光
我們可以用光電二極管來(lái)檢測光線(xiàn)強弱。當然也可以用光敏電阻。將光敏電阻和一個(gè)固定電阻串聯(lián)接在電源正負極之間,光敏電阻靠近正極一側。從光敏電阻和固定電阻連接點(diǎn)引出導線(xiàn)接到ATmega16的AD轉換輸入口。當強光照在光敏電阻時(shí),光敏電阻阻值變小,因此其壓降變小,而固定電阻分壓增多,引出的AD檢測電位升高,被單片機轉化為數字量后判斷光線(xiàn)增強。機器生命有5個(gè)光電傳感器,其中4個(gè)面向機器人前后左右四個(gè)方向,另一個(gè)指向太陽(yáng)能板所面對的方向。通過(guò)編程可以讓機器人自主移動(dòng)到光線(xiàn)最強的地方。
B 充電
本設計采用4.8V鎳氫充電電池為系統供電。太陽(yáng)能電池板正負極通過(guò)一個(gè)三極管與電池正負極相連。有一個(gè)電壓比較器比較電池電壓與太陽(yáng)能板的壓差,如果壓差高于某值,比較器控制三極管導通,太陽(yáng)能電池板對充電電池充電。充電電池電壓上升,當高于某值時(shí)控制三極管關(guān)斷,結束充電。為使太陽(yáng)能板能對電池組充電,要求太陽(yáng)能板在陽(yáng)光直射下輸出電壓高于8V。
C 語(yǔ)音識別
用AVR單片機的高速AD檢測功能能實(shí)現簡(jiǎn)單的語(yǔ)音識別。聲音信號被駐極體電容話(huà)筒接收后送至LM386音頻功放芯片放大和過(guò)濾后送至單片機AD轉換口,單片機對音頻信號幅值采樣轉化為一組數字,然后對這組進(jìn)行取方差運算,得出一個(gè)特征值,該特征值可以用于簡(jiǎn)單的語(yǔ)音識別。比如你發(fā)一個(gè)“e”,方差應該比較小,如果你發(fā)“p”爆破音,方差應該較大。當然,如果你用更復雜的數據處理,會(huì )得到更好的識別效果。本設計使用了2路聲音信號,目的是讓單片機判斷出聲源的大體方位。
D 超聲波測距
用AVR的1個(gè)IO口輸出40KHz信號送至超聲波發(fā)射電路,當超聲波遇到障礙物返回后,被超聲波接收頭接收,信號經(jīng)CX20106A解碼芯片處理,得到一個(gè)低電平脈沖,用該脈沖引發(fā)AVR單片機中斷,AVR通過(guò)檢查發(fā)波和收到回波之間的時(shí)間差即可算出障礙物距離。
E 電機驅動(dòng)
本設計采用2片LG9110電機驅動(dòng)芯片驅動(dòng)兩臺直流減速電機。LG9110輸出最大電流為800mA,僅需要2條控制線(xiàn)與單片機IO口直接相連即可控制一臺電機正反轉或者停止。LG9110僅有8個(gè)引腳,使用非常方便。
F 讓機器生命更聰明
我的這個(gè)機器生命設計方案能實(shí)現最酷的效果是:白天,陽(yáng)光明媚,機器生命跑到陽(yáng)光底下曬太陽(yáng),太陽(yáng)光會(huì )隨著(zhù)時(shí)間變化,機器生命能自動(dòng)跑到最合適的位置享受日光浴。到了晚上,機器生命會(huì )找個(gè)安靜的地方閉目養神,等待明天太陽(yáng)升起。你可以訓練機器生命,讓它知道自己的名字叫什么。比如你叫著(zhù)它的名字,同時(shí)站在它面前用強光照射它的太陽(yáng)能電池板,如此反復訓練,會(huì )使機器生命聽(tīng)到自己名字后向聲源方向跑去,在距離聲源一定遠處停止,因為以往這樣做它都能享受強光照射并充電。這就如同真正的寵物狗,你叫它名字它就跑到你跟前希望能獲得食物。這一切都是完全能夠實(shí)現的,關(guān)鍵就在于編程序實(shí)現它。
G 想象無(wú)極限,你的機器寵物將無(wú)所不能
以上方案中,ATmega16的功能被發(fā)揮到極致,以至于沒(méi)有空閑的IO口,系統不能再擴展了。如果你用ATmega128單片機做,那么它擁有53個(gè)IO口,30多個(gè)中斷,128Kb的程序存儲器,4Kb的RAM,使得你能編寫(xiě)更復雜的程序、儲存更多的動(dòng)態(tài)數據、連接更多的外設,你的機器生命將變得非常有生命力。比如加入三軸加速度傳感器、地磁傳感器、GPS定位、雨水傳感器甚至攝像頭、無(wú)線(xiàn)通信模塊等,重新設計一個(gè)堅固和強勁的底盤(pán),你的機器生命就可以在室外自由探索了。
以上芯片外設來(lái)源說(shuō)明:在淘寶上購買(mǎi)很容易
底盤(pán):340元的高級履帶式1:16電動(dòng)坦克模型
加速度傳感器、地磁傳感器:美國AD公司的40元ADXL330加速度傳感器
GPS定位:幾十元的車(chē)載外置GPS天線(xiàn)
最后,我想說(shuō),機器人是非常好玩的,只要你有想象力,有毅力,努力研究實(shí)踐就能創(chuàng )造奇跡。
手機電池相關(guān)文章:手機電池修復
51單片機相關(guān)文章:51單片機教程
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論