- 智能機(jī)器人制作完全手冊
- 《無線電》編輯部
- 3672字
- 2019-07-26 10:25:32
02 制作機(jī)器人該用什么單片機(jī)
很多接觸機(jī)器人不久的朋友面對種類繁多的單片機(jī)常會感到困惑,到底它們之間有何不同?制作機(jī)器人用哪種單片機(jī)控制比較好?我與大家分享我在制作機(jī)器人過程中使用單片機(jī)的一些經(jīng)驗(yàn),希望能讓初學(xué)者少些迷茫,讓已經(jīng)入門的朋友思維開闊。
撰寫本文時,我僅有3年單片機(jī)實(shí)踐經(jīng)驗(yàn)和機(jī)器人制作經(jīng)驗(yàn),比較了解51系列和AVR系列單片機(jī)(見圖2.1),本文中,我會著重討論AVR單片機(jī),都是我在機(jī)器人制作中一些切身體驗(yàn),錯誤和偏頗可能難免,希望大家指正!

圖2.1 筆者用AVR單片機(jī)做的吸塵機(jī)器人
2.1 入門首選 AT89S51系列單片機(jī)
AT89S51適合做單片機(jī)學(xué)習(xí)板、電子時鐘、超聲波測距儀等不需要采集模擬量和控制大功率外部元件的電路。S51與過去的C51的區(qū)別在于,S51支持ISP在線編程,即C51需要幾百元的編程器編程,而S51僅需一條25針并口線和非常簡單的轉(zhuǎn)換電路,接在臺式電腦打印機(jī)接口上,通過電腦中燒寫程序的小軟件,即可實(shí)現(xiàn)對S51單片機(jī)編程。從這一點(diǎn)看,AT89S51是制作機(jī)器人控制部分的入門之選。
2.2 愛好者制作機(jī)器人首選 AVR系列單片機(jī)
AVR單片機(jī)(見圖2.2)是1997年由Atmel公司研發(fā)出的增強(qiáng)型內(nèi)置Flash的RISC精簡指令集高速8位單片機(jī),具有高可靠性、功能強(qiáng)、高速度、低功耗等特點(diǎn)。AVR單片機(jī)比51單片機(jī)的運(yùn)行速度快得多,其內(nèi)部還集成了多路A/D轉(zhuǎn)換器、電壓比較器、ISP、I2C、JTAG總線電路、UART串口、大功率I/O口、看門狗等實(shí)用電路,并且很多AVR單片機(jī)型號有EEPROM、Flash、SRAM三種存儲器,可以實(shí)現(xiàn)實(shí)時修改程序存儲器中的內(nèi)容,即AVR單片機(jī)可以自己修改自己的程序。同時,AVR單片機(jī)一般能工作在寬電壓范圍(2.7~6.0V),有的居然可以在1.8V電壓下工作。雖然以上這些性能只是AVR眾多性能中的一部分,然而已經(jīng)讓51系列單片機(jī)望塵莫及了。

圖2.2 AVR單片機(jī)的各種封裝形式
如此高性能的單片機(jī),價格居然和51單片機(jī)差不多,比如ATmega8價格為8元左右,ATmega16在13元左右,這是AVR有極高性價比的真實(shí)寫照。
AVR家族人丁興旺,包括ATinyAVR(微小型),低功耗類,ATmegaAVR高、中、低檔5類單片機(jī)。它們都基于同一核心技術(shù),但在內(nèi)部集成的電路多少上有所不同。不論你要做電子手表,還是進(jìn)行視頻處理,都有一款合適的AVR單片機(jī)能滿足你的需要(見圖2.3)。


圖2.3 吸塵機(jī)器人的控制電路板
AVR的I/O口能輸出20mA和吸收40mA的電流,不僅可直接驅(qū)動LED,甚至可直接驅(qū)動微型直流減速電機(jī),而且AVR的I/O口可編程設(shè)置成輸入、輸出、高阻態(tài),是真正的3態(tài)I/O口。
順便提一句,目前非常火熱的開源硬件平臺Arduino也是基于AVR單片機(jī)的。
根據(jù)任務(wù)具體需要,選擇最合適的單片機(jī),使單片機(jī)資源充分利用,使系統(tǒng)性價比達(dá)到最高,同時兼顧未來擴(kuò)展要求,不要一味選用高性能單片機(jī),這就是單片機(jī)的選型原則。
2.3 高級機(jī)器人控制器 ARM
ARM是一個公司名,他們基于同一內(nèi)核設(shè)計了很多高性能處理器,這些處理器都叫ARM。該技術(shù)被很多公司購買后生產(chǎn)出了集成很多功能電路的ARM芯片,使得ARM成為高性能單片機(jī)。ARM一般為32位單片機(jī),適于處理大量復(fù)雜數(shù)據(jù),很多ARM裝上了μCOS2、Windows CE、Linux操作系統(tǒng),能夠同時運(yùn)行多個程序。ARM廣泛應(yīng)用于手機(jī)、MP3、GPS導(dǎo)航儀、吸塵機(jī)器人等產(chǎn)品上。
用ARM+操作系統(tǒng)做超聲波測距儀——?dú)㈦u用了牛刀,用AVR中檔單片機(jī)做機(jī)器視覺——有些吃不消。如果把它們調(diào)換一下,一切就恰到好處了。
2.4 音頻/視頻處理首選 DSP
DSP數(shù)字信號處理(Digital Signal Processing,簡稱DSP),是一種獨(dú)特的微處理器,是以數(shù)字信號來處理大量信息的器件。其工作原理是接收模擬信號,轉(zhuǎn)換為0或1的數(shù)字信號,再對數(shù)字信號進(jìn)行修改、刪除、強(qiáng)化,并在其他系統(tǒng)芯片中把數(shù)字?jǐn)?shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實(shí)時運(yùn)行速度可達(dá)每秒數(shù)以千萬條復(fù)雜指令程序,遠(yuǎn)遠(yuǎn)超過通用微處理器,是數(shù)字化電子世界中日益重要的電腦芯片。它的強(qiáng)大數(shù)據(jù)處理能力和高運(yùn)行速度,是最值得稱道的兩大特色。
在高速小車循線、語音識別等領(lǐng)域,DSP被廣泛應(yīng)用。但如果僅用DSP檢測幾個碰撞開關(guān)、控制幾個電機(jī),當(dāng)然會顯得大材小用。
2.5 新興控制器 FPGA
FPGA(Field - Programmable Gate Array),即現(xiàn)場可編程門陣列,是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路出現(xiàn)的,系統(tǒng)設(shè)計師可以根據(jù)需要通過可編輯的連接,把FPGA內(nèi)部的邏輯塊連接起來,就好像一個電路試驗(yàn)板被放在了一個芯片里。簡單來說,如果使用者想開發(fā)一個用簡單數(shù)字邏輯電路就能控制的小車,又嫌搭電路麻煩,他就可以用軟件給一個FPGA編程,讓它實(shí)現(xiàn)數(shù)字電路功能,去控制小車。也就是說,F(xiàn)PGA可被用來模擬各種電路,有的FPGA甚至能模擬51單片機(jī)的運(yùn)行。由于FPGA通過編程即可修改它模擬的電路結(jié)構(gòu),因此在系統(tǒng)實(shí)驗(yàn)、調(diào)試中很方便,很多愛好者正在嘗試用FPGA做機(jī)器人控制器。
2.6 更多可供選擇的單片機(jī)
我們在為機(jī)器人選擇一款單片機(jī)前,首先要考慮自己面對的實(shí)際任務(wù)需要什么性能的單片機(jī)。此時我們要考慮不同單片機(jī)的“應(yīng)用廣泛程度”,比如,當(dāng)我們要做一個電子大賽智能小車,有AVR單片機(jī)和PIC單片機(jī)可滿足任務(wù)需要,如何在兩者中作出選擇,需要考慮哪種單片機(jī)學(xué)起來比較容易、學(xué)習(xí)資料容易獲取、可供參考的程序和案例更加豐富,哪種單片機(jī)更容易獲得編程軟件和下載器等。筆者感覺,要想做智能小車,AVR單片機(jī)的資料比較豐富。
世界上有種類繁多的單片機(jī),它們當(dāng)中絕大多數(shù)都可用來控制機(jī)器人,但存在一個是否合適的問題。比如,PLC是可編程控制器,當(dāng)然可以用來控制愛好者手中的機(jī)器人,但PLC多用于工業(yè)控制領(lǐng)域,設(shè)備龐大,價格昂貴,同時不易獲得用PLC控制小型機(jī)器人的資料。愛好者選擇學(xué)一種單片機(jī)前,首先得明確自己要用單片機(jī)干什么,然后再選最合適的單片機(jī)學(xué)習(xí)。學(xué)單片機(jī)重在學(xué)精一兩種單片機(jī),如果有人泛泛地學(xué)ARM、PLC、PIC、DSP、FPGA等所有有名的單片機(jī),那么他將無法擁有真正的深度開發(fā)能力。所謂深度開發(fā),以AVR單片機(jī)為例,初學(xué)者可以用它實(shí)現(xiàn)小燈交替閃爍,中級技術(shù)人員可以用它控制參加小車比賽的機(jī)器人,而真正的高級開發(fā)人員可以用AVR實(shí)現(xiàn)機(jī)器視覺、無人機(jī)自動駕駛、坦克火控系統(tǒng)……
2.6.1 AVR單片機(jī)過時了嗎?
有初學(xué)者甚至中級開發(fā)人員認(rèn)為,因ARM性能比AVR性能高,因此ARM將代替AVR, AVR將退出歷史舞臺,或者M(jìn)SP430將代替51系列單片機(jī),或者FPGA將取代所有單片機(jī)等。
我個人認(rèn)為這種看法不對,因?yàn)椴煌瑔纹瑱C(jī)都有各自的特點(diǎn)和優(yōu)點(diǎn),沒有哪種單片機(jī)是完美的,在不同場合用最合適的單片機(jī),發(fā)揮它們各自的特長,而不存在ARM一統(tǒng)天下,取代所有其他型號單片機(jī)的可能性。試想,原本十幾元的普通電子表因?yàn)椴捎肁RM控制賣到幾百元,誰能受得了?因此,不要覺得AVR已經(jīng)過時,學(xué)完51就直接學(xué)ARM,或者覺得學(xué)51沒用,直接學(xué)ARM,否則你容易碰壁。
2.6.2 MSP430系列單片機(jī)如何?
這個系列的單片機(jī)也比較適于機(jī)器人開發(fā),是美國德州儀器推向市場的一種16位、具有精簡指令集的、超低功耗的混合信號處理器。MSP430系列單片機(jī)采用的是1.8~3.6V電壓,因而可使其在1MHz的時鐘條件下運(yùn)行時,芯片的電流會在200~400μA,時鐘關(guān)斷模式的最低功耗電流只有0.1μA。MSP430系列單片機(jī)的各成員都集成了較豐富的片內(nèi)外設(shè),分別是看門狗、模擬比較器、定時器、串口0/1、硬件乘法器、液晶驅(qū)動器、10位/12位ADC、16位Sigma-Delta A/D、直接尋址模塊(DMA)、I/O端口、基本定時器等外圍模塊的不同組合。MSP430系列單片機(jī)的開發(fā)工具也比較簡便,價格也相對低廉,并且也可以實(shí)現(xiàn)在線編程。
2.6.3 PIC單片機(jī)如何?
PIC可用于機(jī)器人開發(fā),是8位單片機(jī),產(chǎn)品種類豐富,采用精簡指令集,有不錯的開發(fā)環(huán)境,引腳驅(qū)動能力強(qiáng),可直接連接繼電器控制強(qiáng)電。自帶看門狗,有睡眠和低功耗模式,但很多性能不如AVR和MSP430系列單片機(jī)。
2.6.4 凌陽單片機(jī)如何?
凌陽單片機(jī)比較適合機(jī)器人開發(fā),以16位計算為核心,集成不同規(guī)模的RAM、ROM和其他豐富的功能電路,使用者可以根據(jù)自己需要選擇集成了特定功能電路的凌陽單片機(jī)系列。凌陽單片機(jī)指令系統(tǒng)提供出具有較高運(yùn)算速度的16位,16位的乘法運(yùn)算指令和內(nèi)積運(yùn)算指令,為其應(yīng)用添加了DSP功能,因此更適合進(jìn)行語音識別。在我國,凌陽單片機(jī)在學(xué)校比較常見,應(yīng)用實(shí)例較多,可作為機(jī)器人愛好者選用的單片機(jī)之一。
TIPS:
單片機(jī)誕生前人們用什么控制機(jī)器人
1.模擬計算機(jī)
在數(shù)字計算機(jī)誕生前,人們用電子管、電容器和電感線圈、電阻搭建模擬計算機(jī),能夠完成許多簡單的計算和控制任務(wù)。所謂模擬計算機(jī)(見圖2.4),就是其計算采用的信號不是1、0這樣的數(shù)字信號,而是電壓連續(xù)變換的模擬信號,類似于自動控制原理中的各種控制器采用的運(yùn)算。別小看了模擬計算機(jī),20世紀(jì)80年代第5次中東戰(zhàn)爭時,一些國家使用的前蘇制全自動自行防空炮(見圖2.5)就是采用模擬計算機(jī)來實(shí)現(xiàn)飛機(jī)軌跡的計算,并控制火炮射擊目標(biāo)。

圖2.4 早期模擬計算機(jī)

圖2.5 采用模擬計算機(jī)的防空炮
2.由齒輪和凸輪組成的控制器
在模擬計算機(jī)誕生前,也就是蒸汽機(jī)時代,有些機(jī)械天才硬是用數(shù)百個齒輪和凸輪搭建出機(jī)械計算機(jī),人們通過轉(zhuǎn)動印有數(shù)字的各種齒輪,另一些齒輪就將運(yùn)算結(jié)果顯示出來了。機(jī)械計算機(jī)在人類史上曾經(jīng)是高科技產(chǎn)品,第二次世界大戰(zhàn)時,德國著名的密碼機(jī)(見圖2.6)就是一種機(jī)電混合式計算機(jī),它是當(dāng)時最保密的通信工具。

圖2.6 密碼機(jī)
3.由發(fā)條、秒表和繼電器組成的控制器
在電氣時代開始時,人們用鐘表內(nèi)機(jī)械的旋轉(zhuǎn)分時針控制繼電器的通斷,從而控制一些機(jī)床和生產(chǎn)線的運(yùn)行。這種裝置類似于早期洗衣機(jī)內(nèi)的定時器。
- 解構(gòu)ChatGPT
- AIGC:讓生成式AI成為自己的外腦
- 這就是推薦系統(tǒng):核心技術(shù)原理與企業(yè)應(yīng)用
- 機(jī)器人系統(tǒng)設(shè)計及應(yīng)用
- 硅基物語·AI寫作高手:從零開始用ChatGPT學(xué)會寫作
- 深度學(xué)習(xí)詳解:基于李宏毅老師“機(jī)器學(xué)習(xí)”課程
- PyTorch深度學(xué)習(xí)應(yīng)用實(shí)戰(zhàn)
- C#神經(jīng)網(wǎng)絡(luò)編程
- 移動機(jī)器人技術(shù)及其應(yīng)用
- 玩轉(zhuǎn)ChatGPT:秒變AI論文寫作高手
- 深入淺出圖神經(jīng)網(wǎng)絡(luò):GNN原理解析
- Python3智能數(shù)據(jù)分析快速入門
- 計算機(jī)應(yīng)用與數(shù)據(jù)分析+人工智能
- 智能體設(shè)計指南:成為提示詞高手和AI Agent設(shè)計師
- 深度學(xué)習(xí)與圍棋