《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 制作機器人常用的單片機性能特點及使用經驗(下篇)

制作機器人常用的單片機性能特點及使用經驗(下篇)

2015-11-03
關鍵詞: 單片機 機器人 avr ARM

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

  在前文中我們已經講到:

  一 單片機和CPU、個人電腦的區別和聯系

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

  三 入門首選 AT89S51系列單片機

  下面將就繼續前文

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

  1 簡介

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

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

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

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

  如此高性能的單片機價格居然和51單片機差不多,比如ATmega8價格為8元左右,ATmega16在13元左右,這是AVR有極高性價比的真實寫照。

128.jpg

  2 性能

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

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

  16KB的FLASH程序存儲器;512B的 EEPROM;1KB的SRAM;32個快速寄存器;32個大功率IO口;20個中斷;2個外部中斷口;有SPI、SUART、I2C總線接口;2個8位 定時器;1個16位定時器;3個PWM通道;有實時時鐘RTC;8個10位AD通道;電壓比較器;看門狗;內置時鐘振蕩器;JTAG接口;ISP在線編 程;電壓范圍為2.7V-5.5V;外部時鐘晶振0-16MHz;有PID和多種貼片封裝。

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

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

  根據任務具體需要選擇最合適的單片機,使單片機資源充分利用,使系統性價比達到最高,同時兼顧未來擴展需要,不要一味選用高性能單片機,這就是選單片機的原則。

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

  3 使用方法

  學AVR單片機的好書是《AVR單片機嵌入式系統原理與應用實踐》,封面見下圖。

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

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

  4 實踐經驗

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

129.jpg

  4 應用舉例

130.jpg

131.jpg

      五 高級機器人控制器 ARM

  1 簡介

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

132.jpg

  六 音頻視頻處理首選 DSP

  1 簡介

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

  在高速小車巡線、語音識別等領域DSP被廣泛應用。但如果僅用DSP檢測幾個碰撞開關、控制幾個電機顯得大材小用。

  七 新興控制器 FPGA

  1簡介

   FPGA(Field-Programmable Gate Array),即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一 種半定制電路而出現的,系統設計師可以根據需要通過可編輯的連接把FPGA內部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里。簡單說,如果 使用者想開發一個用簡單數字邏輯電路就能控制的小車,又嫌搭電路麻煩,他就可用軟件給一個FPGA編程讓它實現數字電路功能去控制小車。即FPGA可被用 來模擬各種電路。有的FPGA甚至能模擬51單片機的運行。因FPGA通過編程即可修改它模擬的電路結構,因此在系統實驗、調試中很方便,很多愛好者嘗試 用FPGA做機器人控制器。

  八 更多可供選擇的單片機

  我們選擇學一款單片機前首 先要考慮自己面對的實際任務需要什么性能的單片機,然后在眾多性能滿足要求的單片機中作出選擇。此時我們還要考慮不同單片機的 “應用廣泛程度”,比方說:當我們要做一個電子大賽智能小車,有AVR單片機和PIC單片機可滿足任務需要,如何在兩者中作出選擇需要考慮哪種單片機學起 來比較容易、學習資料容易獲取、可供參考的程序和案例更加豐富、哪種單片機更容易獲得編程軟件和下載器等。筆者感覺要想做智能小車,AVR單片機的資料比 較豐富。

       世界上有種類繁多的單片機,它們當中絕大多數都可用來控制機器人,但存在一個是否合適的問題。比如PLC是可編程控制器,當然可以用來控制愛好者手 中的機器人,但PLC多用于工業控制領域,設備龐大價格昂貴,同時不易獲得用PLC控制小型機器人的資料。愛好者選擇學一種單片機前,首先得明確自己要用 單片機干什么,然后再選最合適的單片機學習。學單片機重在學精一兩種單片機,如果有人泛泛地學ARM、PLC、PIC、凌陽、DSP、FPGA等所有有名 的單片機,那么他將無法擁有真正的深度開發能力。所謂深度開發,以AVR單片機為例,初學者可以用它實現小燈交替閃爍,中級技術人員可以用它控制參加比賽 的機器人,而真正的高級開發人員可以用AVR實現機器視覺、無人機自動駕駛、坦克火控系統……

  AVR單片機過時了嗎?

   有初學者甚至中級開發人員認為因ARM性能一般比AVR性能高,因此ARM將代替AVR,AVR將退出歷史舞臺,或者MSP430將代替51系列單片 機,或者FPGA將取代所有單片機等。這種看法不對,因為不同單片機都有各自的特點和優點,沒有哪種單片機是完美的,在不同場合用最合適的單片機,發揮它 們各自的特長,而不存在ARM一統天下,取代所有其他型號單片機的可能性。試想,原本十幾元的電子表因為采用ARM控制買到幾百元,誰能受得了?因此不要 覺得 AVR已經過時,學完51就直接學ARM,或者覺得學51沒用,直接學ARM,否則你將碰壁。

  MSP430系列單片機:比較適于 機器人開發,是美國德州儀器推向市場的一種16位、具有精簡指令集的、超低功耗的混合信號處理器。具有Flash存儲器,中斷源較多,并且可以任意嵌套, 使用時靈活方便。MSP430系列單片機的電源電壓采用的是 1.8~3.6V 電壓。因而可使其在1MHz的時鐘條件下運行時,芯片的電流會在200~400uA左右,時鐘關斷模式的最低功耗只有0.1uA。MSP430系列單片機 的各成員都集成了較豐富的片內外設。它們分別是看門狗、模擬比較器、定時器、串口0、1、硬件乘法器、液晶驅動器、10位/12位ADC、16位 Sigma-Delta AD、直接尋址模塊(DMA)、IO端口、基本定時器(Basic Timer)等的一些外圍模塊的不同組合。MSP430 系列單片機引進了JTAG技術,不僅使開發工具變得簡便,而且價格也相對低廉,并且還可以實現在線編程。

  PIC單片機:可用于機器人開發,是8位單片機,產品種類豐富,采用精簡指令集,有不錯的開發環境,引腳驅動能力強,可直接連接繼電器控制強電。自帶看門狗,有睡眠和低功耗模式。很多性能不如AVR和MSP430系列單片機,但因其有特殊優點,也被廣泛應用。

   凌陽單片機:比較適于機器人開發,以16位計算機為核心,集成不同規模的RAM、ROM和其他豐富的功能電路,使用者可以根據自己需要選擇集成了特定功 能電路的凌陽單片機。凌陽單片機指令系統提供出具有較高運算速度的16位,16位的乘法運算指令和內積運算指令,為其應用添加了DSP功能,因此凌陽適合 進行語音識別。在我國凌陽單片機在學校比較常見,應用實例較多,可作為機器人愛好者選用的單片機。

  九 實例:用AVR單片機創造機器生命

  1 什么是機器生命

   機器生命就是一個能自主生存的機器,一個自動為生存下去而奮斗的機器。對于機器生命來說,生存的含義就是不斷電,繼續運行。機器生命具有完全自主決策、 自主行動、活動于未知世界、不需人類參與就能持續運行并且自我維護等特征。影片《終結者》中的天網就是超級機器生命。《霹靂5號》描述了一個機器人從無生 命到有生命的過程。

  N.維納(Norbert Wiener,1894~1964)寫《控制論》時創造出第一個機器生命Wiener龜,這個機器龜僅有2個電子管組成的模擬計算機,但它卻能實現真正的 烏龜覓食、睡覺、探索、逃避等行為,其表現如同一個有生命的生物一樣。機器龜上面有太陽能電池,當自身電池快用完前,機器龜樂于尋找一個光線充足的地方充 電,充滿電后可能找個地方睡懶覺,或者探索未知世界,它有避免碰撞和避免到傾斜地方的趨向,我們無法預知它的行蹤,因為它不是按照程序運行的,就如同我們 自己一樣。后來維納在他的機器龜上又加了一個電子管,三個電子管連接成簡單的神經網絡,通過對機器龜訓練,維納通過搖鈴可控制機器龜的行為。正如有生物學 家訓練狗使得狗聽到搖鈴聲后就流口水。

133.jpg

  2 我們可以自己動手做一個機器寵物

   我們今天有先進的單片機,制作一個更好的機器生命其實不難。機器生命遠比按固定程序運行的機器人好玩,就如同寵物狗比玩具狗好玩一樣。我們設想的機器生 命可以是一個小型履帶式機器人,帶有太陽能板,能感受光線強弱,障礙物距離和碰撞,為了實現人機互動,該機器生命具有語音識別功能。試想你學習一天,回到 寢室,叫一聲TONY,你的機器寵物轉身飛快跑向你,那種感覺只有寵物的創造者才能體會……

134.jpg

  3 如何實現?如何設計電路?如何設計結構?

   這個機器生命方案采用ATmega16單片機做控制器,單片機的8路AD通道和其余24個IO接口都被使用。AVR單片機AD轉換頻率高于音頻,可以用 來進行簡單的語音采集。機器生命的程序較復雜,而AVR單片機適合進行快速復雜運算。本設計的電路板上除了ATmega16單片機外,還有2個 LG9110 電機驅動芯片、2個LM386音頻功放芯片,和LM393電壓比較器芯片,再加上少量電阻電容和三極管,電路簡潔,適合初學者和中級愛好者動手制作。

  LCD采用通用1602模塊,支持3位控制線4位數據線,如果你采用IO口復用技術,可用6條線控制LCD模塊。

  此方案涉及光電檢測、自動充電、語音識別、超聲波測距、鍵盤(4個碰撞開關)、LCD液晶顯示、電機驅動等技術,這些都是動手做簡單機器人的基本技術,如果愛好者能把這個機器生命做好,那么你的電路設計、調試經驗和編程能力都會有很大的提高。

  這個機器生命的技術含量相當于20世紀70年代國際機器人領域的先進水平。當時已經有很多非常精密和復雜的工業機器人被應用,但這種簡單的機器人怎么能稱作先進呢?因為技術的復雜和技術的先進不是一個概念,復雜+精密不一定等于先進。先進的東西不一定復雜和精密。

135.jpg

  A 尋光

   我們可以用光電二極管來檢測光線強弱。當然也可以用光敏電阻。將光敏電阻和一個固定電阻串聯接在電源正負極之間,光敏電阻靠近正極一側。從光敏電阻和固 定電阻連接點引出導線接到ATmega16的AD轉換輸入口。當強光照在光敏電阻時,光敏電阻阻值變小,因此其壓降變小,而固定電阻分壓增多,引出的AD 檢測電位升高,被單片機轉化為數字量后判斷光線增強。機器生命有5個光電傳感器,其中4個面向機器人前后左右四個方向,另一個指向太陽能板所面對的方向。 通過編程可以讓機器人自主移動到光線最強的地方。

  B 充電

  本設計采用4.8V鎳氫充電電池為系統供電。太陽能電池板 正負極通過一個三極管與電池正負極相連。有一個電壓比較器比較電池電壓與太陽能板的壓差,如果壓差高于某值,比較器控制三極管導通,太陽能電池板對充電電 池充電。充電電池電壓上升,當高于某值時控制三極管關斷,結束充電。為使太陽能板能對電池組充電,要求太陽能板在陽光直射下輸出電壓高于8V。

136.jpg

  C 語音識別

   用AVR單片機的高速AD檢測功能能實現簡單的語音識別。聲音信號被駐極體電容話筒接收后送至LM386音頻功放芯片放大和過濾后送至單片機AD轉換 口,單片機對音頻信號幅值采樣轉化為一組數字,然后對這組進行取方差運算,得出一個特征值,該特征值可以用于簡單的語音識別。比如你發一個“e”,方差應 該比較小,如果你發“p”爆破音,方差應該較大。當然,如果你用更復雜的數據處理,會得到更好的識別效果。本設計使用了2路聲音信號,目的是讓單片機判斷 出聲源的大體方位。

  D 超聲波測距

  用AVR的1個IO口輸出40KHz信號送至超聲波發射電路,當超聲波遇到障礙物返回后,被超聲波接收頭接收,信號經CX20106A解碼芯片處理,得到一個低電平脈沖,用該脈沖引發AVR單片機中斷,AVR通過檢查發波和收到回波之間的時間差即可算出障礙物距離。

  E 電機驅動

  本設計采用2片LG9110電機驅動芯片驅動兩臺直流減速電機。LG9110輸出最大電流為800mA,僅需要2條控制線與單片機IO口直接相連即可控制一臺電機正反轉或者停止。LG9110僅有8個引腳,使用非常方便。

  F 讓機器生命更聰明

   我的這個機器生命設計方案能實現最酷的效果是:白天,陽光明媚,機器生命跑到陽光底下曬太陽,太陽光會隨著時間變化,機器生命能自動跑到最合適的位置享 受日光浴。到了晚上,機器生命會找個安靜的地方閉目養神,等待明天太陽升起。你可以訓練機器生命,讓它知道自己的名字叫什么。比如你叫著它的名字,同時站 在它面前用強光照射它的太陽能電池板,如此反復訓練,會使機器生命聽到自己名字后向聲源方向跑去,在距離聲源一定遠處停止,因為以往這樣做它都能享受強光 照射并充電。這就如同真正的寵物狗,你叫它名字它就跑到你跟前希望能獲得食物。這一切都是完全能夠實現的,關鍵就在于編程序實現它。

  G 想象無極限,你的機器寵物將無所不能

   以上方案中,ATmega16的功能被發揮到極致,以至于沒有空閑的IO口,系統不能再擴展了。如果你用ATmega128單片機做,那么它擁有53個 IO口,30多個中斷,128Kb的程序存儲器,4Kb的RAM,使得你能編寫更復雜的程序、儲存更多的動態數據、連接更多的外設,你的機器生命將變得非 常有生命力。比如加入三軸加速度傳感器、地磁傳感器、GPS定位、雨水傳感器甚至攝像頭、無線通信模塊等,重新設計一個堅固和強勁的底盤,你的機器生命就 可以在室外自由探索了。

  以上芯片外設來源說明:在淘寶上購買很容易

  底盤:340元的高級履帶式1:16電動坦克模型

  加速度傳感器、地磁傳感器:美國AD公司的40元ADXL330加速度傳感器

  GPS定位:幾十元的車載外置GPS天線

  最后,我想說,機器人是非常好玩的,只要你有想象力,有毅力,努力研究實踐就能創造奇跡。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 色综合97天天综合网 | 亚洲欧美久久婷婷爱综合一区天堂 | 亚洲精品无码不卡 | 一级特黄爽大片刺激 | 亚洲三级在线视频 | 中国国产一级毛片视频 | 我要看黄色一级片 | 久久久网 | 欧美中文在线观看 | japanese黑人高清 | 成人黄网18免费观看的网站 | 精品成人在线观看 | 成人免费在线视频网站 | 亚洲综合久久1区2区3区 | 九九国产精品视频 | 高清视频黄色录像免费 | 天天操天天看 | 爽爽免费视频 | 欧美一级免费观看 | 东方aⅴ免费观看久久av | 亚洲一级毛片免费看 | 啪啪网站免费 | 日韩欧美精品在线观看 | 黄色一级在线观看 | 高清成人综合 | 欧美色图 亚洲 | 91精品久久久久久久99蜜桃 | 国产精品久久久久激情影院 | 国产午夜在线视频 | 天天操天天干天天射 | 激性欧美在线播激性欧美 | 国产尤物视频在线 | 91精品啪在线观看国产老湿机 | 日韩a在线观看 | 欧美成人亚洲综合精品欧美激情 | 成人免费高清 | www.狠狠| 美腿丝袜中文字幕 | 又黄又爽又色的黄裸乳视频 | 夜夜天天 | 色激情五月 |