制作機器人常用的單片機性能特點(diǎn)及使用經(jīng)驗

發(fā)布時(shí)間:2010-2-23 16:19    發(fā)布者:嵌入式公社
摘要:

很多接觸機器人單片機不久的朋友面對種類(lèi)繁多的單片機常會(huì )困惑,到底它們之間有何不同?制作機器人到底用哪種單片機控制比較好?當我們選擇了一種單片機后,有何捷徑能迅速掌握并應用這種單片機?本文嘗試用一種通俗易懂的方法解讀上述問(wèn)題,并設計了一種有深度的單片機控制機器人的實(shí)例,希望能起到拋磚引玉的作用。我與大家分享我使用單片機的一些經(jīng)驗,希望能讓初學(xué)者少些迷茫,讓已經(jīng)入門(mén)的朋友思維開(kāi)闊。

寫(xiě)本文時(shí)我僅有3年單片機實(shí)踐經(jīng)驗,比較了解51系列和AVR系列單片機,因此著(zhù)重討論了AVR單片機,我經(jīng)驗有限,有錯誤在所難免,希望朋友們批評指正!

一 單片機和CPU、個(gè)人電腦的區別和聯(lián)系

這部分內容比較初級,但很多朋友剛接觸單片機時(shí)或許對下面的問(wèn)題不是很清楚。

1 什么是CPU?

CPU中文名稱(chēng)為“中央處理器”,典型代表為英特爾8086處理器,現在的奔騰X處理器都是8086的直系后代。處理器,顧名思義,其功能是處理數據,對于中央處理器,就是在數據處理中處于核心地位的處理器,聽(tīng)起來(lái)似乎很復雜,但實(shí)際上核心就是一個(gè)ALU“算術(shù)邏輯單元”。這個(gè)單元由一些數字門(mén)電路組成,僅能完成括加、減、乘、除四則運算,與、或、非、異或等邏輯操作,以及移位、比較和傳送等操作。CPU內部包含ALU,除此之外CPU還有時(shí)鐘電路,CPU運行的基本原理是:時(shí)鐘電路產(chǎn)生計數脈沖,這個(gè)脈沖控制著(zhù)一個(gè)累加器,即每產(chǎn)生一個(gè)時(shí)鐘脈沖,累加器加1,這個(gè)累加值以16進(jìn)制數字的形式通過(guò)地址總線(xiàn)唯一選通程序儲存器中一個(gè)儲存單元(在CPU外部),這個(gè)單元將內部?jì)Υ娴某绦蛎畲a通過(guò)數據總線(xiàn)送到ALU中,ALU根據代碼不同執行不同操作,比如把某寄存器數值和某數值相加等,然后將計算結果輸出到IO口或者各個(gè)總線(xiàn)上。

總之,CPU的工作就是把程序中的命令代碼翻譯成不同任務(wù),然后執行,輸出執行結果。CPU在一切數字計算機中都發(fā)揮了核心作用,即計算機都有CPU。

2 什么是個(gè)人電腦?

由于CPU只有計算功能,其計算的結果需要通過(guò)顯示器、音箱輸出,而其工作的依據,即程序命令則依靠硬盤(pán)儲存,其執行任務(wù)時(shí)動(dòng)態(tài)存取的數據要保存在內存中,而人可以通過(guò)鍵盤(pán)控制程序命令的執行過(guò)程,把所有這些CPU的外設組合在一起就叫做“個(gè)人電腦”。

3 什么是單片機?

個(gè)人電腦功能強大,計算速度快,是較為理想的計算機。但當我們需要用一個(gè)小裝置控制微波爐定時(shí)開(kāi)關(guān)時(shí),個(gè)人電腦就顯得笨重和昂貴。因此人們設計出一種濃縮型電腦,大的有幾平方厘米,小的比米粒還小,它們叫做“單片機”——單片微型計算機。CPU是一個(gè)芯片,單片機也是一個(gè)芯片,看起來(lái)外觀(guān)差不多,它們有什么不同呢?答案是:?jiǎn)纹瑱C內除了集成有CPU外,還集成了程序儲存器ROM(可理解為硬盤(pán))、數據儲存器RAM(可理解為內存),輸入輸出接口(可理解為顯示器、鍵盤(pán)插座),有的單片機內還集成了電機驅動(dòng)電路、視頻解碼電路、AD轉換器、無(wú)線(xiàn)傳輸電路等,使得單片機功能變得非常強大。單片機的特長(cháng)在于可以用單個(gè)芯片和簡(jiǎn)單外部電路去實(shí)現復雜的控制操作,因此非常適合機器人控制。其實(shí)在絕大多數機器人中都有單片機的影子。簡(jiǎn)單的和中等復雜的機器人可以用單片機直接控制,高度復雜的機器人用“個(gè)人電腦”或者“超級計算機”指揮許多單片機來(lái)完成機器人控制。

4 學(xué)習單片機的捷徑是什么?

所謂捷徑就是少走彎路。我剛開(kāi)始學(xué)單片機時(shí)走了不少彎路,很多朋友和我都有相似的經(jīng)歷,剛開(kāi)始接觸單片機,面對琳瑯滿(mǎn)目的圖書(shū)教材,不知選擇哪本;想實(shí)踐時(shí)不知到哪買(mǎi)單片機;不知如何編程下載程序……

A 對于初學(xué)者仔細看本文就是學(xué)習單片機的捷徑之一。

B 到圖書(shū)館或者書(shū)店在數十本單片機書(shū)中選一本你能看懂,而且覺(jué)得案例有趣的“實(shí)在、生動(dòng)、活潑”的單片機書(shū)做為你的入門(mén)讀物。

C 建議先從51單片機學(xué)起。掌握51后再學(xué)AVR,然后學(xué)ARM、DSP等。

D 在學(xué)習過(guò)程中實(shí)踐非常必要。你需要一臺電腦。如果是臺式電腦,你可以花十幾元購買(mǎi)25針并口下載線(xiàn),如果是筆記本電腦,你只能購買(mǎi)幾十元到幾百元的USB ISP編程器。

E 用萬(wàn)用板自己焊一個(gè)單片機最小系統,或者購買(mǎi)開(kāi)發(fā)板。沒(méi)有必要使用昂貴的仿真器。

F 你需要上網(wǎng)下載單片機編程軟件,比如51用Keil編程,AVR用CVAVR編程,在編程軟件中編好程序,然后生成HEX文件,再上網(wǎng)下載并口燒程序軟件或者USB ISP燒程序軟件,用燒程序軟件加載HEX文件,然后將編程線(xiàn)查到你的單片機電路板上,即可把程序燒到單片機中。

G 拔下編程線(xiàn),然后接通單片機板電源,你可以看到單片機系統在運行。

H 如果系統不能正常運行,首先檢查電路是否接錯,然后檢查程序是否燒錯,如果以上都沒(méi)毛病,研究程序是否編錯。有時(shí)系統不能正常運行并不意味著(zhù)有什么地方錯了,只是某些參數沒(méi)設置好,你需要不斷運行、修改程序、調試參數、再運行如此往復,直到你對系統運行滿(mǎn)意為止。有時(shí)這是一個(gè)非常艱苦的重復勞動(dòng),調整數百次上千次,你無(wú)法回避,只能堅定信念,勇往直前。

I 到淘寶網(wǎng)上買(mǎi)東西更方便、更便宜。

二 在單片機誕生前人們用什么控制機器人

1 模擬計算機

在數字計算機誕生前,人們用電子管、電容器和電感線(xiàn)圈、電阻搭建模擬計算機,能夠完成許多簡(jiǎn)單的計算和控制任務(wù)。所謂模擬計算機就是其計算采用的信號不是 1、0數字信號,而是電壓連續變換的模擬信號,類(lèi)似于自動(dòng)控制原理中的各種控制器采用的運算。別小看了模擬計算機,上世紀80年代中東戰爭時(shí),阿拉伯國家使用的蘇制全自動(dòng)自行防空炮內采用模擬計算機實(shí)現計算飛機軌跡并控制火炮射擊目標。



2 齒輪和凸輪組成的控制器

在模擬計算機誕生前,也就是蒸汽機時(shí)代,有些機械天才硬是用數百個(gè)齒輪和凸輪搭建出機械計算機,人們通過(guò)轉動(dòng)印有數字的各種齒輪,另一些齒輪就將運算結果顯示出來(lái)。機械計算機在人類(lèi)史上上曾經(jīng)是高科技產(chǎn)品,第二次世界大戰時(shí),德國著(zhù)名的密碼機就是一種機電混合式計算機,它當時(shí)是最保密的通信工具。



3 發(fā)條和秒表和繼電器組成的控制器

在電氣時(shí)代開(kāi)始時(shí),人們用鐘表內機械的旋轉分時(shí)控制一些繼電器的通斷,從而控制一些機床和生產(chǎn)線(xiàn)的運行。這種裝置類(lèi)似于早期洗衣機內的定時(shí)器。



三 入門(mén)首選 AT89S51系列單片機

1 簡(jiǎn)介

1980,英特爾公司開(kāi)發(fā)出一種簡(jiǎn)易的8031CPU,在當時(shí)該CPU性能不比8086差很多,但價(jià)格較便宜,因此被很多低端應用選中。由于市場(chǎng)看好,ATMEL公司購買(mǎi)了8031的內核,把Flash存儲器和加強型IO口融入進(jìn)去開(kāi)發(fā)出了AT89系列單片機。所有兼容8031指令和內核相似的單片機統稱(chēng)為51單片機,它是目前應用最廣泛的8位單片機之一。因51單片機結構簡(jiǎn)單,指令易學(xué),應用廣泛,因此是初學(xué)單片機首選機型。如果有人想不學(xué)51,直接學(xué)AVR,那么此人一定會(huì )遇到很多難題,困惑和郁悶將伴隨著(zhù)學(xué)習過(guò)程。如果學(xué)了51再學(xué)AVR和其他單片機,人們會(huì )發(fā)現“所謂單片機都不過(guò)如此”。

2 性能

根據任務(wù)具體需要選擇最合適的單片機,使單片機資源充分利用,使系統性?xún)r(jià)比達到最高,同時(shí)兼顧未來(lái)擴展需要,不一味追求高性能單片機,這就是選單片機的原則。

AT89S51有4K的Flash程序存儲器,128字節的RAM,32條IO口,中斷系統具有6個(gè)中斷源、5個(gè)終端矢量、2個(gè)中斷優(yōu)先級的中斷結構;串行口是一個(gè)全雙工的串行通信口;AT89S51的電源電壓為4.0-5.5V,AT89LS51的電源電壓為2.7-4.0V;振蕩器頻率 0-33MHz(AT89S51),0-16MHz(AT89LS51); 有ISP 在線(xiàn)編程功能,這個(gè)功能的優(yōu)勢在于改寫(xiě)單片機存儲器內的程序不需要把芯片從工作環(huán)境中剝離。是一個(gè)強大易用的功能。

AT89S52程序儲存器容量為8KB,還有AT89S55,ROM容量更大。

有很多公司生產(chǎn)了很多擴展型51系列單片機,有的帶有AD轉換器,有的帶有比較器,有的帶有PWM,讀者可以根據自身需要選擇合適的51單片機,但要注意他們的管腳定義和編程方式。

3 使用方法

AT89S51 適于做單片機學(xué)習板、電子時(shí)鐘、超聲波測距儀等不需要采集模擬量和控制大功率外部元件的電路。S51與過(guò)去的C51的區別在于S51支持ISP在線(xiàn)編程,即C51需要幾百元的編程器編程,而S51僅需一條25針并口線(xiàn)和非常簡(jiǎn)單的轉換電路即可接在臺式電腦打印機接口燒程序,下載燒程序小軟件即實(shí)現可對 S51單片機編程。對51單片機編程一般選用Keil軟件,可采用C語(yǔ)言或者匯編語(yǔ)言,編完程后選擇輸出HEX文件,然后用燒程序小軟件讀取HEX文件,再燒寫(xiě)到單片機中。

4 實(shí)踐經(jīng)驗

A 剛開(kāi)始看書(shū)時(shí),按照書(shū)上的電路圖連線(xiàn)然后通電調試,但總不成功,將自己的電路和書(shū)上的電路仔細對照發(fā)現不了問(wèn)題。原因在于很多書(shū)上的電路圖都是“簡(jiǎn)化圖”,即省略了一些電路,而這些被省略的電路卻關(guān)乎系統的運行。比如,當單片機書(shū)講到AD轉換電路,給出的電路圖多省略了晶振和復位電路,按照AD轉換電路圖搭出來(lái)的系統自然不能運行。

B 51單片機P0口輸出信號時(shí)需要上拉電阻,我經(jīng)常忘記加電阻,導致電路不好使。

C 51單片機31引腳需要接正極,以選擇采用內部程序存儲器。如果忘記給這個(gè)引腳以正確的電壓,你的單片機可能不能執行程序。



4 應用舉例







四 愛(ài)好者制作機器人首選 AVR系列單片機

1 簡(jiǎn)介

AVR單片機是1997年由ATMEL公司研發(fā)出的增強型內置Flash的RISC(Reduced Instruction Set CPU) 精簡(jiǎn)指令集高速8位單片機。高可靠性、功能強、高速度、低功耗和低價(jià)位一直是衡量單片機性能的重要指標,而AVR單片機是典型高性能單片機。

早期單片機,比如51單片機為了提高可靠性(防止數據誤讀或跑飛)采用較高的分頻系數對時(shí)鐘分頻,使得指令周期長(cháng),執行速度慢。例如51單片機需要12個(gè)晶振周期才能組成1個(gè)機器周期,而且很多指令需要2個(gè)機器周期才能執行。AVR單片機的推出,徹底打破這種舊設計格局,廢除了機器周期,采用精簡(jiǎn)指令集,取指周期短,又可預取指令,實(shí)現流水作業(yè),故可高速執行指令。AVR單片機在12個(gè)晶振周期中能執行12條指令,從這個(gè)角度看,如果晶振頻率相同,AVR的速度是51的12倍到24倍。

AVR有32個(gè)通用寄存器,在進(jìn)行大量復雜運算時(shí),AVR的32個(gè)寄存器可相當于51的32個(gè)累加器,克服了51系列單片機只有單一累加器數據處理造成的瓶頸現象,在復雜運算時(shí)速度比51快5倍以上。由此可看出,51與AVR相比是多么慢,AVR是多么快。

AVR 系列單片機多內部集成了多路AD轉換器、電壓比較器、ISP、I2C、JTAG總線(xiàn)電路、UART串口、大功率IO口、看門(mén)狗等實(shí)用電路,并且很多AVR 單片機型號有EEPROM、FLASH、SRAM三種存儲器,可以實(shí)現實(shí)時(shí)修改程序存儲器中的內容,即AVR單片機可以自己修改自己的程序。同時(shí)AVR一般能工作在寬電壓范圍(2.7~6.0V),有的居然可以在1.8V電壓下工作。以上這些性能只是AVR眾多性能中的一部分,然而已經(jīng)讓51系列單片機望塵莫及了。

如此高性能的單片機價(jià)格居然和51單片機差不多,比如ATmega8價(jià)格為8元左右,ATmega16在13元左右,這是AVR有極高性?xún)r(jià)比的真實(shí)寫(xiě)照。



2 性能

AVR家族人丁興旺,包括ATinyAVR(微小型)、低功耗類(lèi)、ATmegaAVR高中低檔5類(lèi)單片機。它們都基于同一核心技術(shù),但在內部集成的電路多少上有不同。不論你要做電子手表還是視頻處理,都有一款合適的AVR單片機能滿(mǎn)足你的需要。

本文只列出ATmega16中檔單片機的性能:

16KB的FLASH程序存儲器;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)狗;內置時(shí)鐘振蕩器;JTAG接口;ISP在線(xiàn)編程;電壓范圍為2.7V-5.5V;外部時(shí)鐘晶振0-16MHz;有PID和多種貼片封裝。

AVR的IO口能輸出20mA和吸收40mA的電流,不僅可直接驅動(dòng)LED,甚至可直接驅動(dòng)微型直流減速電機。而且AVR的IO口可編程設置成輸入、輸出、高阻態(tài)狀態(tài),是真正的3態(tài)IO口。和51相比使用 AVR開(kāi)發(fā)產(chǎn)品你會(huì )發(fā)現前所未有的方便和自由。

AVR單片機可上操作系統,比如UCOS2、Linux等,自主編程實(shí)現操作系統功能也很容易。

根據任務(wù)具體需要選擇最合適的單片機,使單片機資源充分利用,使系統性?xún)r(jià)比達到最高,同時(shí)兼顧未來(lái)擴展需要,不要一味選用高性能單片機,這就是選單片機的原則。

用ARM+操作系統做超聲波測距儀——殺雞用了牛刀。用AVR中檔單片機做機器視覺(jué)——有些吃不消。如果把它們調換一下,一切就恰到好處了。

3 使用方法

學(xué)AVR單片機的好書(shū)是《AVR單片機嵌入式系統原理與應用實(shí)踐》,封面見(jiàn)下圖。

AVR一般采用CVAVR 編程軟件編程,也可用GUN GCC AVR、AVR Studio軟件編程?刹捎脜R編或C語(yǔ)言編程。燒程序前先輸出HEX文件,然后用SLISP(雙龍ISP)軟件加載,再通過(guò)ISP編程線(xiàn)或者25針并口連接線(xiàn)燒入AVR單片機,支持在線(xiàn)編程。

由于A(yíng)VR單片機最小系統很簡(jiǎn)單,就是電源+晶振(可不用)+LED+ISP接口(通電就運行,斷電就停止,不用復位電路),因此任何初學(xué)者都可以用面包板搭出AVR最小系統,并且編程實(shí)踐。

4 實(shí)踐經(jīng)驗

使用AVR單片機時(shí)注意要正確設置熔絲位,SLISP軟件就可設置,熔絲位可決定單片機是采用外部晶振還是采用內部時(shí)鐘振蕩器,如果熔絲位設置為采用外部晶振,而電路中沒(méi)有接入晶振,則AVR程序不能運行。很多初學(xué)者忽視了這一點(diǎn),他們的AVR系統不能運行卻找不到原因。再有就是AVR的IO口在使用前需先編程設置其狀態(tài),否則你將發(fā)現程序在運行,但IO口沒(méi)信號。



4 應用舉例





五 高級機器人控制器 ARM

1 簡(jiǎn)介

ARM是一個(gè)公司名,他們基于同一內核設計了很多高性能處理器,這些處理器都叫ARM。該技術(shù)被很多公司購買(mǎi)后生產(chǎn)出了集成很多功能電路的ARM芯片,使得ARM成為高性能單片機。ARM一般為32位單片機,適于處理大量復雜數據,很多ARM裝上了UCOS2、Windows CE、Linux操作系統,能夠同時(shí)運行多個(gè)程序。ARM廣泛應用于手機、MP3、GPS導航儀、吸塵機器人等產(chǎn)品上。



六 音頻視頻處理首選 DSP

1 簡(jiǎn)介

DSP數字信號處理(Digital Signal Processing,簡(jiǎn)稱(chēng)DSP),它是一種獨特的微處理器,是以數字信號來(lái)處理大量信息的器件。其工作原理是接收模擬信號,轉換為0或1的數字信號,再對數字信號進(jìn)行修改、刪除、強化,并在其他系統芯片中把數字數據解譯回模擬數據或實(shí)際環(huán)境格式。它不僅具有可編程性,而且其實(shí)時(shí)運行速度可達每秒數以千萬(wàn)條復雜指令程序,遠遠超過(guò)通用微處理器,是數字化電子世界中日益重要的電腦芯片。它的強大數據處理能力和高運行速度,是最值得稱(chēng)道的兩大特色。

在高速小車(chē)巡線(xiàn)、語(yǔ)音識別等領(lǐng)域DSP被廣泛應用。但如果僅用DSP檢測幾個(gè)碰撞開(kāi)關(guān)、控制幾個(gè)電機顯得大材小用。

七 新興控制器 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將退出歷史舞臺,或者MSP430將代替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)好者選用的單片機。

九 實(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 )造奇跡。

作者:劉天龍 1986年生 愛(ài)好廣泛,喜愛(ài)機器人技術(shù)  期待開(kāi)發(fā)各種各樣的機器人產(chǎn)品  郵箱:spurtltl@126.com 2010 2 5 注有LTL Robot字樣的案例均為作者制作

來(lái)源:機器人天空
本文地址:http://selenalain.com/thread-8447-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
侯森 發(fā)表于 2018-8-21 10:53:46
科技的脈力
ghl137 發(fā)表于 2015-9-7 11:16:01
感謝分享
ghl137 發(fā)表于 2015-9-7 06:56:29
很好
電子11 發(fā)表于 2016-6-28 17:10:51
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页