很多接觸機(jī)器人或單片機(jī)不久的朋友面對(duì)種類(lèi)繁多的單片機(jī)常會(huì)困惑,到底它們之間有何不同?制作機(jī)器人到底用哪種單片機(jī)控制比較好?當(dāng)我們選擇了一種 單片機(jī)后,有何捷徑能迅速掌握并應(yīng)用這種單片機(jī)?本文嘗試用一種通俗易懂的方法解讀上述問(wèn)題,并設(shè)計(jì)了一種有深度的單片機(jī)控制機(jī)器人的實(shí)例,希望能起到拋 磚引玉的作用。我與大家分享我使用單片機(jī)的一些經(jīng)驗(yàn),希望能讓初學(xué)者少些迷茫,讓已經(jīng)入門(mén)的朋友思維開(kāi)闊。
在前文中我們已經(jīng)講到:
一 單片機(jī)和CPU、個(gè)人電腦的區(qū)別和聯(lián)系
二 在單片機(jī)誕生前人們用什么控制機(jī)器人
三 入門(mén)首選 AT89S51系列單片機(jī)
下面將就繼續(xù)前文
四 愛(ài)好者制作機(jī)器人首選 AVR系列單片機(jī)
1 簡(jiǎn)介
AVR單片機(jī)是1997年由ATMEL公司研發(fā)出的增強(qiáng)型內(nèi)置Flash的RISC(Reduced Instruction Set CPU) 精簡(jiǎn)指令集高速8位單片機(jī)。高可靠性、功能強(qiáng)、高速度、低功耗和低價(jià)位一直是衡量單片機(jī)性能的重要指標(biāo),而AVR單片機(jī)是典型高性能單片機(jī)。
早期單片機(jī),比如51單片機(jī)為了提高可靠性(防止數(shù)據(jù)誤讀或跑飛)采用較高的分頻系數(shù)對(duì)時(shí)鐘分頻,使得指令周期長(zhǎng),執(zhí)行速度慢。例如51單片機(jī)需要12 個(gè)晶振周期才能組成1個(gè)機(jī)器周期,而且很多指令需要2個(gè)機(jī)器周期才能執(zhí)行。AVR單片機(jī)的推出,徹底打破這種舊設(shè)計(jì)格局,廢除了機(jī)器周期,采用精簡(jiǎn)指令集,取指周期短,又可預(yù)取指令,實(shí)現(xiàn)流水作業(yè),故可高速執(zhí)行指令。AVR單片機(jī)在12個(gè)晶振周期中能執(zhí)行12條指令,從這個(gè)角度看,如果晶振頻率相同,AVR的速度是51的12倍到24倍。
AVR有32個(gè)通用寄存器,在進(jìn)行大量復(fù)雜運(yùn)算時(shí),AVR的32個(gè)寄存器可相當(dāng)于51的32個(gè)累加器,克服了51系列單片機(jī)只有單一累加器數(shù)據(jù)處理造成的瓶頸現(xiàn)象,在復(fù)雜運(yùn)算時(shí)速度比51快5倍以上。由此可看出,51與AVR相比是多么慢,AVR是多么快。
AVR 系列單片機(jī)多內(nèi)部集成了多路AD轉(zhuǎn)換器、電壓比較器、ISP、I2C、JTAG總線(xiàn)電路、UART串口、大功率IO口、看門(mén)狗等實(shí)用電路,并且很多AVR 單片機(jī)型號(hào)有EEPROM、FLASH、SRAM三種存儲(chǔ)器,可以實(shí)現(xiàn)實(shí)時(shí)修改程序存儲(chǔ)器中的內(nèi)容,即AVR單片機(jī)可以自己修改自己的程序。同時(shí)AVR一 般能工作在寬電壓范圍(2.7~6.0V),有的居然可以在1.8V電壓下工作。以上這些性能只是AVR眾多性能中的一部分,然而已經(jīng)讓51系列單片機(jī)望 塵莫及了。
如此高性能的單片機(jī)價(jià)格居然和51單片機(jī)差不多,比如ATmega8價(jià)格為8元左右,ATmega16在13元左右,這是AVR有極高性?xún)r(jià)比的真實(shí)寫(xiě)照。
2 性能
AVR家族人丁興旺,包括ATinyAVR(微小型)、低功耗類(lèi)、ATmegaAVR高中低檔5類(lèi)單片機(jī)。它們都基于同一核心技術(shù),但在內(nèi)部集成的電路多少上有不同。不論你要做電子手表還是視頻處理,都有一款合適的AVR單片機(jī)能滿(mǎn)足你的需要。
本文只列出ATmega16中檔單片機(jī)的性能:
16KB的FLASH程序存儲(chǔ)器;512B的 EEPROM;1KB的SRAM;32個(gè)快速寄存器;32個(gè)大功率IO口;20個(gè)中斷;2個(gè)外部中斷口;有SPI、SUART、I2C總線(xiàn)接口;2個(gè)8位 定時(shí)器;1個(gè)16位定時(shí)器;3個(gè)PWM通道;有實(shí)時(shí)時(shí)鐘RTC;8個(gè)10位AD通道;電壓比較器;看門(mén)狗;內(nèi)置時(shí)鐘振蕩器;JTAG接口;ISP在線(xiàn)編 程;電壓范圍為2.7V-5.5V;外部時(shí)鐘晶振0-16MHz;有PID和多種貼片封裝。
AVR的IO口能輸出20mA和吸收40mA的電流,不僅可直接驅(qū)動(dòng)LED,甚至可直接驅(qū)動(dòng)微型直流減速電機(jī)。而且AVR的IO口可編程設(shè)置成輸入、輸出、高阻態(tài)狀態(tài),是真正的3態(tài)IO口。和51相比使用 AVR開(kāi)發(fā)產(chǎn)品你會(huì)發(fā)現(xiàn)前所未有的方便和自由。
AVR單片機(jī)可上操作系統(tǒng),比如UCOS2、Linux等,自主編程實(shí)現(xiàn)操作系統(tǒng)功能也很容易。
根據(jù)任務(wù)具體需要選擇最合適的單片機(jī),使單片機(jī)資源充分利用,使系統(tǒng)性?xún)r(jià)比達(dá)到最高,同時(shí)兼顧未來(lái)擴(kuò)展需要,不要一味選用高性能單片機(jī),這就是選單片機(jī)的原則。
用ARM+操作系統(tǒng)做超聲波測(cè)距儀——?dú)㈦u用了牛刀。用AVR中檔單片機(jī)做機(jī)器視覺(jué)——有些吃不消。如果把它們調(diào)換一下,一切就恰到好處了。
3 使用方法
學(xué)AVR單片機(jī)的好書(shū)是《AVR單片機(jī)嵌入式系統(tǒng)原理與應(yīng)用實(shí)踐》,封面見(jiàn)下圖。
AVR一般采用CVAVR 編程軟件編程,也可用GUN GCC AVR、AVR Studio軟件編程??刹捎脜R編或C語(yǔ)言編程。燒程序前先輸出HEX文件,然后用SLISP(雙龍ISP)軟件加載,再通過(guò)ISP編程線(xiàn)或者25針并口 連接線(xiàn)燒入AVR單片機(jī),支持在線(xiàn)編程。
由于AVR單片機(jī)最小系統(tǒng)很簡(jiǎn)單,就是電源+晶振(可不用)+LED+ISP接口(通電就運(yùn)行,斷電就停止,不用復(fù)位電路),因此任何初學(xué)者都可以用面包板搭出AVR最小系統(tǒng),并且編程實(shí)踐。
4 實(shí)踐經(jīng)驗(yàn)
使用AVR單片機(jī)時(shí)注意要正確設(shè)置熔絲位,SLISP軟件就可設(shè)置,熔絲位可決定單片機(jī)是采用外部晶振還是采用內(nèi)部時(shí)鐘振蕩器,如果熔絲位設(shè)置為采用外 部晶振,而電路中沒(méi)有接入晶振,則AVR程序不能運(yùn)行。很多初學(xué)者忽視了這一點(diǎn),他們的AVR系統(tǒng)不能運(yùn)行卻找不到原因。再有就是AVR的IO口在使用前 需先編程設(shè)置其狀態(tài),否則你將發(fā)現(xiàn)程序在運(yùn)行,但I(xiàn)O口沒(méi)信號(hào)。
4 應(yīng)用舉例
五 高級(jí)機(jī)器人控制器 ARM
1 簡(jiǎn)介
ARM是一個(gè)公司名,他們基于同一內(nèi)核設(shè)計(jì)了很多高性能處理器,這些處理器都叫ARM。該技術(shù)被很多公司購(gòu)買(mǎi)后生產(chǎn)出了集成很多功能電路的ARM芯片, 使得ARM成為高性能單片機(jī)。ARM一般為32位單片機(jī),適于處理大量復(fù)雜數(shù)據(jù),很多ARM裝上了UCOS2、Windows CE、Linux操作系統(tǒng),能夠同時(shí)運(yùn)行多個(gè)程序。ARM廣泛應(yīng)用于手機(jī)、MP3、GPS導(dǎo)航儀、吸塵機(jī)器人等產(chǎn)品上。
六 音頻視頻處理首選 DSP
1 簡(jiǎn)介
DSP數(shù)字信號(hào)處理(Digital Signal Processing,簡(jiǎn)稱(chēng)DSP),它是一種獨(dú)特的微處理器,是以數(shù)字信號(hào)來(lái)處理大量信息的器件。其工作原理是接收模擬信號(hào),轉(zhuǎn)換為0或1的數(shù)字信號(hào), 再對(duì)數(shù)字信號(hào)進(jìn)行修改、刪除、強(qiáng)化,并在其他系統(tǒng)芯片中把數(shù)字?jǐn)?shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實(shí)時(shí)運(yùn)行速度可達(dá)每秒數(shù)以千 萬(wàn)條復(fù)雜指令程序,遠(yuǎn)遠(yuǎn)超過(guò)通用微處理器,是數(shù)字化電子世界中日益重要的電腦芯片。它的強(qiáng)大數(shù)據(jù)處理能力和高運(yùn)行速度,是最值得稱(chēng)道的兩大特色。
在高速小車(chē)巡線(xiàn)、語(yǔ)音識(shí)別等領(lǐng)域DSP被廣泛應(yīng)用。但如果僅用DSP檢測(cè)幾個(gè)碰撞開(kāi)關(guān)、控制幾個(gè)電機(jī)顯得大材小用。
七 新興控制器 FPGA
1簡(jiǎn)介
FPGA(Field-Programmable Gate Array),即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一 種半定制電路而出現(xiàn)的,系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過(guò)可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來(lái),就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。簡(jiǎn)單說(shuō),如果 使用者想開(kāi)發(fā)一個(gè)用簡(jiǎn)單數(shù)字邏輯電路就能控制的小車(chē),又嫌搭電路麻煩,他就可用軟件給一個(gè)FPGA編程讓它實(shí)現(xiàn)數(shù)字電路功能去控制小車(chē)。即FPGA可被用 來(lái)模擬各種電路。有的FPGA甚至能模擬51單片機(jī)的運(yùn)行。因FPGA通過(guò)編程即可修改它模擬的電路結(jié)構(gòu),因此在系統(tǒng)實(shí)驗(yàn)、調(diào)試中很方便,很多愛(ài)好者嘗試 用FPGA做機(jī)器人控制器。
八 更多可供選擇的單片機(jī)
我們選擇學(xué)一款單片機(jī)前首 先要考慮自己面對(duì)的實(shí)際任務(wù)需要什么性能的單片機(jī),然后在眾多性能滿(mǎn)足要求的單片機(jī)中作出選擇。此時(shí)我們還要考慮不同單片機(jī)的 “應(yīng)用廣泛程度”,比方說(shuō):當(dāng)我們要做一個(gè)電子大賽智能小車(chē),有AVR單片機(jī)和PIC單片機(jī)可滿(mǎn)足任務(wù)需要,如何在兩者中作出選擇需要考慮哪種單片機(jī)學(xué)起 來(lái)比較容易、學(xué)習(xí)資料容易獲取、可供參考的程序和案例更加豐富、哪種單片機(jī)更容易獲得編程軟件和下載器等。筆者感覺(jué)要想做智能小車(chē),AVR單片機(jī)的資料比 較豐富。
世界上有種類(lèi)繁多的單片機(jī),它們當(dāng)中絕大多數(shù)都可用來(lái)控制機(jī)器人,但存在一個(gè)是否合適的問(wèn)題。比如PLC是可編程控制器,當(dāng)然可以用來(lái)控制愛(ài)好者手 中的機(jī)器人,但PLC多用于工業(yè)控制領(lǐng)域,設(shè)備龐大價(jià)格昂貴,同時(shí)不易獲得用PLC控制小型機(jī)器人的資料。愛(ài)好者選擇學(xué)一種單片機(jī)前,首先得明確自己要用 單片機(jī)干什么,然后再選最合適的單片機(jī)學(xué)習(xí)。學(xué)單片機(jī)重在學(xué)精一兩種單片機(jī),如果有人泛泛地學(xué)ARM、PLC、PIC、凌陽(yáng)、DSP、FPGA等所有有名 的單片機(jī),那么他將無(wú)法擁有真正的深度開(kāi)發(fā)能力。所謂深度開(kāi)發(fā),以AVR單片機(jī)為例,初學(xué)者可以用它實(shí)現(xiàn)小燈交替閃爍,中級(jí)技術(shù)人員可以用它控制參加比賽 的機(jī)器人,而真正的高級(jí)開(kāi)發(fā)人員可以用AVR實(shí)現(xiàn)機(jī)器視覺(jué)、無(wú)人機(jī)自動(dòng)駕駛、坦克火控系統(tǒng)……
AVR單片機(jī)過(guò)時(shí)了嗎?
有初學(xué)者甚至中級(jí)開(kāi)發(fā)人員認(rèn)為因ARM性能一般比AVR性能高,因此ARM將代替AVR,AVR將退出歷史舞臺(tái),或者M(jìn)SP430將代替51系列單片 機(jī),或者FPGA將取代所有單片機(jī)等。這種看法不對(duì),因?yàn)椴煌瑔纹瑱C(jī)都有各自的特點(diǎn)和優(yōu)點(diǎn),沒(méi)有哪種單片機(jī)是完美的,在不同場(chǎng)合用最合適的單片機(jī),發(fā)揮它 們各自的特長(zhǎng),而不存在ARM一統(tǒng)天下,取代所有其他型號(hào)單片機(jī)的可能性。試想,原本十幾元的電子表因?yàn)椴捎肁RM控制買(mǎi)到幾百元,誰(shuí)能受得了?因此不要 覺(jué)得 AVR已經(jīng)過(guò)時(shí),學(xué)完51就直接學(xué)ARM,或者覺(jué)得學(xué)51沒(méi)用,直接學(xué)ARM,否則你將碰壁。
MSP430系列單片機(jī):比較適于 機(jī)器人開(kāi)發(fā),是美國(guó)德州儀器推向市場(chǎng)的一種16位、具有精簡(jiǎn)指令集的、超低功耗的混合信號(hào)處理器。具有Flash存儲(chǔ)器,中斷源較多,并且可以任意嵌套, 使用時(shí)靈活方便。MSP430系列單片機(jī)的電源電壓采用的是 1.8~3.6V 電壓。因而可使其在1MHz的時(shí)鐘條件下運(yùn)行時(shí),芯片的電流會(huì)在200~400uA左右,時(shí)鐘關(guān)斷模式的最低功耗只有0.1uA。MSP430系列單片機(jī) 的各成員都集成了較豐富的片內(nèi)外設(shè)。它們分別是看門(mén)狗、模擬比較器、定時(shí)器、串口0、1、硬件乘法器、液晶驅(qū)動(dòng)器、10位/12位ADC、16位 Sigma-Delta AD、直接尋址模塊(DMA)、IO端口、基本定時(shí)器(Basic Timer)等的一些外圍模塊的不同組合。MSP430 系列單片機(jī)引進(jìn)了JTAG技術(shù),不僅使開(kāi)發(fā)工具變得簡(jiǎn)便,而且價(jià)格也相對(duì)低廉,并且還可以實(shí)現(xiàn)在線(xiàn)編程。
PIC單片機(jī):可用于機(jī)器人開(kāi)發(fā),是8位單片機(jī),產(chǎn)品種類(lèi)豐富,采用精簡(jiǎn)指令集,有不錯(cuò)的開(kāi)發(fā)環(huán)境,引腳驅(qū)動(dòng)能力強(qiáng),可直接連接繼電器控制強(qiáng)電。自帶看門(mén)狗,有睡眠和低功耗模式。很多性能不如AVR和MSP430系列單片機(jī),但因其有特殊優(yōu)點(diǎn),也被廣泛應(yīng)用。
凌陽(yáng)單片機(jī):比較適于機(jī)器人開(kāi)發(fā),以16位計(jì)算機(jī)為核心,集成不同規(guī)模的RAM、ROM和其他豐富的功能電路,使用者可以根據(jù)自己需要選擇集成了特定功 能電路的凌陽(yáng)單片機(jī)。凌陽(yáng)單片機(jī)指令系統(tǒng)提供出具有較高運(yùn)算速度的16位,16位的乘法運(yùn)算指令和內(nèi)積運(yùn)算指令,為其應(yīng)用添加了DSP功能,因此凌陽(yáng)適合 進(jìn)行語(yǔ)音識(shí)別。在我國(guó)凌陽(yáng)單片機(jī)在學(xué)校比較常見(jiàn),應(yīng)用實(shí)例較多,可作為機(jī)器人愛(ài)好者選用的單片機(jī)。
九 實(shí)例:用AVR單片機(jī)創(chuàng)造機(jī)器生命
1 什么是機(jī)器生命
機(jī)器生命就是一個(gè)能自主生存的機(jī)器,一個(gè)自動(dòng)為生存下去而奮斗的機(jī)器。對(duì)于機(jī)器生命來(lái)說(shuō),生存的含義就是不斷電,繼續(xù)運(yùn)行。機(jī)器生命具有完全自主決策、 自主行動(dòng)、活動(dòng)于未知世界、不需人類(lèi)參與就能持續(xù)運(yùn)行并且自我維護(hù)等特征。影片《終結(jié)者》中的天網(wǎng)就是超級(jí)機(jī)器生命?!杜Z5號(hào)》描述了一個(gè)機(jī)器人從無(wú)生 命到有生命的過(guò)程。
N.維納(Norbert Wiener,1894~1964)寫(xiě)《控制論》時(shí)創(chuàng)造出第一個(gè)機(jī)器生命Wiener龜,這個(gè)機(jī)器龜僅有2個(gè)電子管組成的模擬計(jì)算機(jī),但它卻能實(shí)現(xiàn)真正的 烏龜覓食、睡覺(jué)、探索、逃避等行為,其表現(xiàn)如同一個(gè)有生命的生物一樣。機(jī)器龜上面有太陽(yáng)能電池,當(dāng)自身電池快用完前,機(jī)器龜樂(lè)于尋找一個(gè)光線(xiàn)充足的地方充 電,充滿(mǎn)電后可能找個(gè)地方睡懶覺(jué),或者探索未知世界,它有避免碰撞和避免到傾斜地方的趨向,我們無(wú)法預(yù)知它的行蹤,因?yàn)樗皇前凑粘绦蜻\(yùn)行的,就如同我們 自己一樣。后來(lái)維納在他的機(jī)器龜上又加了一個(gè)電子管,三個(gè)電子管連接成簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò),通過(guò)對(duì)機(jī)器龜訓(xùn)練,維納通過(guò)搖鈴可控制機(jī)器龜?shù)男袨?。正如有生物學(xué) 家訓(xùn)練狗使得狗聽(tīng)到搖鈴聲后就流口水。
2 我們可以自己動(dòng)手做一個(gè)機(jī)器寵物
我們今天有先進(jìn)的單片機(jī),制作一個(gè)更好的機(jī)器生命其實(shí)不難。機(jī)器生命遠(yuǎn)比按固定程序運(yùn)行的機(jī)器人好玩,就如同寵物狗比玩具狗好玩一樣。我們?cè)O(shè)想的機(jī)器生 命可以是一個(gè)小型履帶式機(jī)器人,帶有太陽(yáng)能板,能感受光線(xiàn)強(qiáng)弱,障礙物距離和碰撞,為了實(shí)現(xiàn)人機(jī)互動(dòng),該機(jī)器生命具有語(yǔ)音識(shí)別功能。試想你學(xué)習(xí)一天,回到 寢室,叫一聲TONY,你的機(jī)器寵物轉(zhuǎn)身飛快跑向你,那種感覺(jué)只有寵物的創(chuàng)造者才能體會(huì)……
3 如何實(shí)現(xiàn)?如何設(shè)計(jì)電路?如何設(shè)計(jì)結(jié)構(gòu)?
這個(gè)機(jī)器生命方案采用ATmega16單片機(jī)做控制器,單片機(jī)的8路AD通道和其余24個(gè)IO接口都被使用。AVR單片機(jī)AD轉(zhuǎn)換頻率高于音頻,可以用 來(lái)進(jìn)行簡(jiǎn)單的語(yǔ)音采集。機(jī)器生命的程序較復(fù)雜,而AVR單片機(jī)適合進(jìn)行快速?gòu)?fù)雜運(yùn)算。本設(shè)計(jì)的電路板上除了ATmega16單片機(jī)外,還有2個(gè) LG9110 電機(jī)驅(qū)動(dòng)芯片、2個(gè)LM386音頻功放芯片,和LM393電壓比較器芯片,再加上少量電阻電容和三極管,電路簡(jiǎn)潔,適合初學(xué)者和中級(jí)愛(ài)好者動(dòng)手制作。
LCD采用通用1602模塊,支持3位控制線(xiàn)4位數(shù)據(jù)線(xiàn),如果你采用IO口復(fù)用技術(shù),可用6條線(xiàn)控制LCD模塊。
此方案涉及光電檢測(cè)、自動(dòng)充電、語(yǔ)音識(shí)別、超聲波測(cè)距、鍵盤(pán)(4個(gè)碰撞開(kāi)關(guān))、LCD液晶顯示、電機(jī)驅(qū)動(dòng)等技術(shù),這些都是動(dòng)手做簡(jiǎn)單機(jī)器人的基本技術(shù),如果愛(ài)好者能把這個(gè)機(jī)器生命做好,那么你的電路設(shè)計(jì)、調(diào)試經(jīng)驗(yàn)和編程能力都會(huì)有很大的提高。
這個(gè)機(jī)器生命的技術(shù)含量相當(dāng)于20世紀(jì)70年代國(guó)際機(jī)器人領(lǐng)域的先進(jìn)水平。當(dāng)時(shí)已經(jīng)有很多非常精密和復(fù)雜的工業(yè)機(jī)器人被應(yīng)用,但這種簡(jiǎn)單的機(jī)器人怎么能稱(chēng)作先進(jìn)呢?因?yàn)榧夹g(shù)的復(fù)雜和技術(shù)的先進(jìn)不是一個(gè)概念,復(fù)雜+精密不一定等于先進(jìn)。先進(jìn)的東西不一定復(fù)雜和精密。
A 尋光
我們可以用光電二極管來(lái)檢測(cè)光線(xiàn)強(qiáng)弱。當(dāng)然也可以用光敏電阻。將光敏電阻和一個(gè)固定電阻串聯(lián)接在電源正負(fù)極之間,光敏電阻靠近正極一側(cè)。從光敏電阻和固 定電阻連接點(diǎn)引出導(dǎo)線(xiàn)接到ATmega16的AD轉(zhuǎn)換輸入口。當(dāng)強(qiáng)光照在光敏電阻時(shí),光敏電阻阻值變小,因此其壓降變小,而固定電阻分壓增多,引出的AD 檢測(cè)電位升高,被單片機(jī)轉(zhuǎn)化為數(shù)字量后判斷光線(xiàn)增強(qiáng)。機(jī)器生命有5個(gè)光電傳感器,其中4個(gè)面向機(jī)器人前后左右四個(gè)方向,另一個(gè)指向太陽(yáng)能板所面對(duì)的方向。 通過(guò)編程可以讓機(jī)器人自主移動(dòng)到光線(xiàn)最強(qiáng)的地方。
B 充電
本設(shè)計(jì)采用4.8V鎳氫充電電池為系統(tǒng)供電。太陽(yáng)能電池板 正負(fù)極通過(guò)一個(gè)三極管與電池正負(fù)極相連。有一個(gè)電壓比較器比較電池電壓與太陽(yáng)能板的壓差,如果壓差高于某值,比較器控制三極管導(dǎo)通,太陽(yáng)能電池板對(duì)充電電 池充電。充電電池電壓上升,當(dāng)高于某值時(shí)控制三極管關(guān)斷,結(jié)束充電。為使太陽(yáng)能板能對(duì)電池組充電,要求太陽(yáng)能板在陽(yáng)光直射下輸出電壓高于8V。
C 語(yǔ)音識(shí)別
用AVR單片機(jī)的高速AD檢測(cè)功能能實(shí)現(xiàn)簡(jiǎn)單的語(yǔ)音識(shí)別。聲音信號(hào)被駐極體電容話(huà)筒接收后送至LM386音頻功放芯片放大和過(guò)濾后送至單片機(jī)AD轉(zhuǎn)換 口,單片機(jī)對(duì)音頻信號(hào)幅值采樣轉(zhuǎn)化為一組數(shù)字,然后對(duì)這組進(jìn)行取方差運(yùn)算,得出一個(gè)特征值,該特征值可以用于簡(jiǎn)單的語(yǔ)音識(shí)別。比如你發(fā)一個(gè)“e”,方差應(yīng) 該比較小,如果你發(fā)“p”爆破音,方差應(yīng)該較大。當(dāng)然,如果你用更復(fù)雜的數(shù)據(jù)處理,會(huì)得到更好的識(shí)別效果。本設(shè)計(jì)使用了2路聲音信號(hào),目的是讓單片機(jī)判斷 出聲源的大體方位。
D 超聲波測(cè)距
用AVR的1個(gè)IO口輸出40KHz信號(hào)送至超聲波發(fā)射電路,當(dāng)超聲波遇到障礙物返回后,被超聲波接收頭接收,信號(hào)經(jīng)CX20106A解碼芯片處理,得到一個(gè)低電平脈沖,用該脈沖引發(fā)AVR單片機(jī)中斷,AVR通過(guò)檢查發(fā)波和收到回波之間的時(shí)間差即可算出障礙物距離。
E 電機(jī)驅(qū)動(dòng)
本設(shè)計(jì)采用2片LG9110電機(jī)驅(qū)動(dòng)芯片驅(qū)動(dòng)兩臺(tái)直流減速電機(jī)。LG9110輸出最大電流為800mA,僅需要2條控制線(xiàn)與單片機(jī)IO口直接相連即可控制一臺(tái)電機(jī)正反轉(zhuǎn)或者停止。LG9110僅有8個(gè)引腳,使用非常方便。
F 讓機(jī)器生命更聰明
我的這個(gè)機(jī)器生命設(shè)計(jì)方案能實(shí)現(xiàn)最酷的效果是:白天,陽(yáng)光明媚,機(jī)器生命跑到陽(yáng)光底下曬太陽(yáng),太陽(yáng)光會(huì)隨著時(shí)間變化,機(jī)器生命能自動(dòng)跑到最合適的位置享 受日光浴。到了晚上,機(jī)器生命會(huì)找個(gè)安靜的地方閉目養(yǎng)神,等待明天太陽(yáng)升起。你可以訓(xùn)練機(jī)器生命,讓它知道自己的名字叫什么。比如你叫著它的名字,同時(shí)站 在它面前用強(qiáng)光照射它的太陽(yáng)能電池板,如此反復(fù)訓(xùn)練,會(huì)使機(jī)器生命聽(tīng)到自己名字后向聲源方向跑去,在距離聲源一定遠(yuǎn)處停止,因?yàn)橐酝@樣做它都能享受強(qiáng)光 照射并充電。這就如同真正的寵物狗,你叫它名字它就跑到你跟前希望能獲得食物。這一切都是完全能夠?qū)崿F(xiàn)的,關(guān)鍵就在于編程序?qū)崿F(xiàn)它。
G 想象無(wú)極限,你的機(jī)器寵物將無(wú)所不能
以上方案中,ATmega16的功能被發(fā)揮到極致,以至于沒(méi)有空閑的IO口,系統(tǒng)不能再擴(kuò)展了。如果你用ATmega128單片機(jī)做,那么它擁有53個(gè) IO口,30多個(gè)中斷,128Kb的程序存儲(chǔ)器,4Kb的RAM,使得你能編寫(xiě)更復(fù)雜的程序、儲(chǔ)存更多的動(dòng)態(tài)數(shù)據(jù)、連接更多的外設(shè),你的機(jī)器生命將變得非 常有生命力。比如加入三軸加速度傳感器、地磁傳感器、GPS定位、雨水傳感器甚至攝像頭、無(wú)線(xiàn)通信模塊等,重新設(shè)計(jì)一個(gè)堅(jiān)固和強(qiáng)勁的底盤(pán),你的機(jī)器生命就 可以在室外自由探索了。
以上芯片外設(shè)來(lái)源說(shuō)明:在淘寶上購(gòu)買(mǎi)很容易
底盤(pán):340元的高級(jí)履帶式1:16電動(dòng)坦克模型
加速度傳感器、地磁傳感器:美國(guó)AD公司的40元ADXL330加速度傳感器
GPS定位:幾十元的車(chē)載外置GPS天線(xiàn)
最后,我想說(shuō),機(jī)器人是非常好玩的,只要你有想象力,有毅力,努力研究實(shí)踐就能創(chuàng)造奇跡。