新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > C8051F單片機(jī)在自動(dòng)機(jī)器人上的應(yīng)用

C8051F單片機(jī)在自動(dòng)機(jī)器人上的應(yīng)用

作者: 時(shí)間:2011-02-28 來(lái)源:網(wǎng)絡(luò) 收藏
摘 要:以2007年CCTV大學(xué)生機(jī)器人大賽自動(dòng)機(jī)器人為對(duì)象,系統(tǒng)闡述了自動(dòng)機(jī)器人的控制電路。
關(guān)鍵詞:CCTV大學(xué)生機(jī)器人賽;PID控制器;C8051F

在每年中央電視臺(tái)舉辦的CCTV大學(xué)生機(jī)器人大賽中,自動(dòng)機(jī)器人是一個(gè)典型的機(jī)電光一體化作品,它可以培養(yǎng)和訓(xùn)練大學(xué)生計(jì)算機(jī)、控制論、機(jī)構(gòu)學(xué)、機(jī)械設(shè)計(jì)和制造、傳感技術(shù)、人工智能等眾多學(xué)科的知識(shí),是大學(xué)生開展綜合知識(shí)訓(xùn)練的良好平臺(tái)。同時(shí)機(jī)器人制作比賽作為一種創(chuàng)新教育的戰(zhàn)略性手段已經(jīng)逐漸被教育界的人們所認(rèn)可,因此越來(lái)越受到各高校的重視和積極參與。在每年的機(jī)器人大賽中,機(jī)器人是由手動(dòng)機(jī)器人和自動(dòng)機(jī)器人兩部分組成,自動(dòng)機(jī)器人在比賽中擔(dān)當(dāng)主要角色,對(duì)比賽的勝負(fù)起決定性的作用。
2007年CCTV大學(xué)生機(jī)器人大賽是在一個(gè)14 m×14 m的場(chǎng)地上進(jìn)行,以參賽雙方誰(shuí)先建造完指南針為獲勝,如兩方都沒(méi)完成則以各自的得分來(lái)決定勝負(fù)。本文設(shè)計(jì)的自動(dòng)機(jī)器人以C8051F310
1 機(jī)器人車體機(jī)械機(jī)構(gòu)設(shè)計(jì)
2007年CCTV大學(xué)生機(jī)器人大賽中,比賽內(nèi)容是雙方機(jī)器人把各自的積木放到戰(zhàn)車上。整個(gè)自動(dòng)機(jī)器人的活動(dòng)區(qū)域內(nèi)沒(méi)有設(shè)置障礙,不需要爬坡等越障設(shè)置,相對(duì)而言較為簡(jiǎn)單。本文設(shè)計(jì)并參加比賽的自動(dòng)機(jī)器人在車體機(jī)械機(jī)構(gòu)上采用雙輪驅(qū)動(dòng)設(shè)計(jì),通過(guò)控制2個(gè)驅(qū)動(dòng)輪的速度和轉(zhuǎn)向來(lái)實(shí)現(xiàn)不同的運(yùn)動(dòng)軌跡,驅(qū)動(dòng)輪在底盤的后面,底盤前面有2個(gè)萬(wàn)向輪,用以支撐整個(gè)車體的平衡。在底盤的上面安置積木的夾抓機(jī)構(gòu)和提升機(jī)構(gòu)。
2 機(jī)器人的控制電路設(shè)計(jì)
2.1 的選擇

2007年CCTV大學(xué)生機(jī)器人大賽較以往的題目更靈活,自動(dòng)機(jī)器人的運(yùn)動(dòng)軌跡更復(fù)雜,因而對(duì)自動(dòng)機(jī)器人的設(shè)計(jì)和控制難度也較高。在綜合考慮各種因素后,選用Cygnal公司最近推出的C8051F系列高速。這種結(jié)構(gòu)簡(jiǎn)單,性能與DSP相近,而且其指令集與51系列單片機(jī)兼容,開發(fā)工作簡(jiǎn)單。用于自動(dòng)機(jī)器人控制的C8051F單片機(jī)具有如下的特點(diǎn)[1]:
(1) 使用Cygnal公司的專利CIP-51微控制器內(nèi)核,采用流水線指令結(jié)構(gòu);70%的指令執(zhí)行時(shí)間為1個(gè)或2個(gè)系統(tǒng)時(shí)鐘周期;速度可達(dá)25 MI/s(時(shí)鐘頻率為25 MHz時(shí))。這樣就可以應(yīng)用復(fù)雜的控制算法提高控制精度。
(2) 內(nèi)部有4個(gè)通用16位計(jì)數(shù)器/定時(shí)器和專用的看門狗定時(shí)器(WDT),不再需要附加外部計(jì)數(shù)器件和外部看門狗電路。本文的設(shè)計(jì)就是將定時(shí)器0和定時(shí)器1用作小車左右輪反饋脈沖計(jì)數(shù)。
(3) 引入了數(shù)字交叉開關(guān),允許將內(nèi)部數(shù)字系統(tǒng)資源分配給端口I/O引腳。通過(guò)設(shè)置優(yōu)先權(quán)給交叉控制寄存器,將片內(nèi)的計(jì)數(shù)器/定時(shí)器、串行總線、硬件中斷、ADC轉(zhuǎn)換啟動(dòng)輸入、比較器輸出以及微控制器內(nèi)部的其他數(shù)字信號(hào)配置為出現(xiàn)在端口I/O引腳。
(4) 內(nèi)部有1個(gè)可編程計(jì)數(shù)器陣列(PCA),由1個(gè)專用的16位計(jì)數(shù)器/定時(shí)器和5個(gè)16位捕捉/比較模塊組成。通過(guò)設(shè)置特殊功能寄存器PCAOCPM將捕捉/比較模塊0和模塊1(CEX0和CEX1)設(shè)置成脈沖寬度調(diào)制器(PWM),用于驅(qū)動(dòng)電動(dòng)機(jī)。
(5) 內(nèi)部有12位逐次逼近型ADC,可以在不增外圍電路的前提下方便地檢測(cè)模擬信號(hào)。
(6) 具有片內(nèi)JTAG和調(diào)試電路,通過(guò)JTAG接口并使用安裝在最終應(yīng)用系統(tǒng)中的器件上就可以進(jìn)行全速、非侵入式地在系統(tǒng)調(diào)試,而且支持?jǐn)帱c(diǎn)、單步、觀察點(diǎn)、堆棧監(jiān)視器,支持觀察修改存儲(chǔ)器和寄存器。
自動(dòng)機(jī)器人的控制選用C8051F系列單片機(jī)是非常合適的,由于可以硬件生成PWM,占用CPU資源很少;高性能的指令系統(tǒng)以及和C語(yǔ)言之間進(jìn)行交叉匯編,為設(shè)計(jì)各種控制算法提供了廣闊的空間。其控制電路框圖如圖1所示。

C8051F單片機(jī)在自動(dòng)機(jī)器人上的應(yīng)用


在自動(dòng)機(jī)器人運(yùn)動(dòng)控制中采用兩輪驅(qū)動(dòng),通過(guò)對(duì)2個(gè)驅(qū)動(dòng)輪電機(jī)轉(zhuǎn)速和轉(zhuǎn)向的精確控制來(lái)控制機(jī)器人的運(yùn)動(dòng)軌跡。對(duì)左右輪驅(qū)動(dòng)電機(jī)M1、M2的轉(zhuǎn)速采用PWM脈寬調(diào)制進(jìn)行驅(qū)動(dòng),單片機(jī)輸出的PWM信號(hào)和轉(zhuǎn)向控制信號(hào)送給電機(jī)控制專用芯片L298,L298芯片能夠直接驅(qū)動(dòng)兩個(gè)電機(jī)運(yùn)轉(zhuǎn)。在M1、M2電機(jī)上裝有能夠檢測(cè)其轉(zhuǎn)速的兩路光電編碼器,兩路光電編碼器的信號(hào)分別送給倍頻器和鑒向器,進(jìn)行轉(zhuǎn)速和轉(zhuǎn)向的檢測(cè),轉(zhuǎn)速和轉(zhuǎn)向信號(hào)輸送給C8051F310單片機(jī),在其內(nèi)部進(jìn)行PID運(yùn)算,將運(yùn)算后的結(jié)果控制PCA陣列,從而控制PWM的占空比。下面對(duì)其電路進(jìn)行具體分析。
2.2 MCU電路
采用C8051F310作為控制電路的MCU[2],用P0口實(shí)現(xiàn)對(duì)驅(qū)動(dòng)電機(jī)的控制。P0.0、P0.1用于輸出控制M1、M2轉(zhuǎn)速的PWM信號(hào),P0.2、P0.3用于控制M1、M2的轉(zhuǎn)向;P0.4、P0.5用于M1、M2的轉(zhuǎn)速反饋,即用于計(jì)算反饋驅(qū)動(dòng)電機(jī)的轉(zhuǎn)速;P0.6、P0.7用于檢測(cè)M1、M2的轉(zhuǎn)向,即用于取得驅(qū)動(dòng)電機(jī)的轉(zhuǎn)向反饋。通過(guò)P0口實(shí)現(xiàn)了對(duì)兩個(gè)驅(qū)動(dòng)電機(jī)的閉環(huán)控制。通過(guò)嵌入在C8051F310的PID算法,即可實(shí)現(xiàn)對(duì)M1、M2轉(zhuǎn)速和轉(zhuǎn)向的精確控制,在比賽場(chǎng)地運(yùn)行時(shí)可根據(jù)場(chǎng)地上的白色引導(dǎo)線來(lái)調(diào)整機(jī)器人的軌跡線。
2.3 電機(jī)的選擇
由于在比賽時(shí)電源必須自帶,驅(qū)動(dòng)電機(jī)采用直流電機(jī),本文采用的是FAULHABER公司生產(chǎn)的2342L024CR直流電機(jī)。通過(guò)改變PWM的占空比來(lái)改變它的轉(zhuǎn)速,通過(guò)改變電源的極性來(lái)改變電機(jī)的轉(zhuǎn)向。為了能夠準(zhǔn)確測(cè)出電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向,在每個(gè)電機(jī)上裝有兩路光電編碼器,光電編碼器輸出與電機(jī)轉(zhuǎn)速成正比的方波信號(hào),兩路信號(hào)在頻率上相等,在相位上相差90°,如圖2所示的CHa和CHb信號(hào)。

C8051F單片機(jī)在自動(dòng)機(jī)器人上的應(yīng)用


2.4 電機(jī)驅(qū)動(dòng)電路
為了控制直流電動(dòng)機(jī),需用半導(dǎo)體功率器件進(jìn)行驅(qū)動(dòng)。大多數(shù)直流電動(dòng)機(jī)的驅(qū)動(dòng)是采用開關(guān)型驅(qū)動(dòng)方式。由于PWM調(diào)制方式使晶體管工作在開關(guān)狀態(tài),這種調(diào)速方式不僅功率損耗低、效率高,而且具有調(diào)速范圍廣、響應(yīng)速度快等特點(diǎn)。當(dāng)輸入信號(hào)為零時(shí),伺服電機(jī)處于微振狀態(tài),克服了靜摩擦力的影響,有利于改善伺服系統(tǒng)低速運(yùn)行時(shí)的平穩(wěn)性。
本文采用L298為電機(jī)驅(qū)動(dòng)芯片,它采用雙H橋式為主驅(qū)動(dòng)電路,如圖3所示。該電路不僅能夠調(diào)速而且還能正反轉(zhuǎn),可以驅(qū)動(dòng)同步進(jìn)電機(jī)或同時(shí)驅(qū)動(dòng)2個(gè)直流電機(jī)。通過(guò)它的2個(gè)引腳PWM和DIR實(shí)現(xiàn)對(duì)電機(jī)的控制。通過(guò)改變PWM引腳的占空比,可以實(shí)現(xiàn)對(duì)電機(jī)的轉(zhuǎn)速控制;通過(guò)改變DIR引腳的高低電平,可以實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)控制。

C8051F單片機(jī)在自動(dòng)機(jī)器人上的應(yīng)用

C8051F單片機(jī)在自動(dòng)機(jī)器人上的應(yīng)用


經(jīng)過(guò)74LS86芯片倍頻和74LS74芯片鑒向后的信號(hào)輸送給MCU(C8051F310),MCU經(jīng)過(guò)PID運(yùn)算后的結(jié)果輸送給MCU內(nèi)部的PCA陣列,從而輸出符合要求的PWM脈沖信號(hào)以及電機(jī)的轉(zhuǎn)向信號(hào)給直流電機(jī),精確控制電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向。
2.7 引導(dǎo)線的檢測(cè)
在比賽場(chǎng)地上有3 cm寬的白色引導(dǎo)線,自動(dòng)機(jī)器人可以沿著引導(dǎo)線確定自己的運(yùn)動(dòng)軌跡,因此,自動(dòng)機(jī)器人可以利用白色的引導(dǎo)線來(lái)校正自己的運(yùn)動(dòng)軌跡。為了能夠準(zhǔn)確地檢測(cè)到場(chǎng)地的白色引導(dǎo)線,采用光纖傳感器來(lái)檢測(cè)。光纖傳感器上主要有如圖5所示的發(fā)射光裝置和接收光裝置。

C8051F單片機(jī)在自動(dòng)機(jī)器人上的應(yīng)用

發(fā)射光裝置發(fā)射出的光遇到前方的檢測(cè)物后,反射回來(lái)給接收裝置,如果檢測(cè)物的距離和灰度不同,則反射回來(lái)的光的強(qiáng)度也不同。當(dāng)調(diào)節(jié)好距離之后,設(shè)定不同的閾值就可以檢測(cè)不同的灰度。光纖傳感器檢測(cè)比賽場(chǎng)地上的白色引導(dǎo)線,利用場(chǎng)地灰度不同,即白色引導(dǎo)線比周圍背景的反射率更高的特點(diǎn),使機(jī)器人行走時(shí)引導(dǎo)線處于機(jī)器人兩驅(qū)動(dòng)輪的中間。具體設(shè)計(jì)是:機(jī)器人左右各有4個(gè)光纖傳感器,分別為1~4號(hào)傳感器,如圖6所示。考慮到引導(dǎo)線的寬度為3 cm,左1號(hào)傳感器和右1號(hào)傳感器之間的距離設(shè)為4 cm,留1cm的余地,左右傳感器內(nèi)部之間的距離為2.5 cm。機(jī)器人行走時(shí):如果左右光纖傳感器都沒(méi)有檢測(cè)到引導(dǎo)線,說(shuō)明引導(dǎo)線在機(jī)器人兩驅(qū)動(dòng)輪的中間,兩輪的速度正確;當(dāng)左邊的光纖傳感器檢測(cè)到引導(dǎo)線,說(shuō)明左驅(qū)動(dòng)輪的速度偏大,機(jī)器人在往右邊偏移,這時(shí)應(yīng)該減小左驅(qū)動(dòng)輪速度或增大右驅(qū)動(dòng)輪速度進(jìn)行校正。左邊的光纖傳感器有4個(gè),當(dāng)1號(hào)光纖傳感器檢測(cè)到,說(shuō)明偏移量較小其校正量也應(yīng)較??;如果是2號(hào)光纖傳感器檢測(cè)到,說(shuō)明偏移量更大,校正量也應(yīng)更大。以此類推,4號(hào)光纖傳感器偏移量最大,校正量也最大。若是右邊的光纖傳感器檢測(cè)到白色引導(dǎo)線,其原理同左邊的光纖傳感器。這樣MCU就可以通過(guò)光纖傳感器傳送來(lái)的信號(hào)實(shí)時(shí)調(diào)整左右驅(qū)動(dòng)輪的速度,使機(jī)器人按要求的路線運(yùn)行。

C8051F單片機(jī)在自動(dòng)機(jī)器人上的應(yīng)用

以上是以C8051F單片機(jī)作為主MCU在自動(dòng)機(jī)器人控制電路中的應(yīng)用,它通過(guò)PID算法和光電檢測(cè)器構(gòu)成雙閉環(huán)的控制電路,實(shí)現(xiàn)了對(duì)驅(qū)動(dòng)電機(jī)的精確控制,能夠很好地滿足比賽的控制要求。通過(guò)比賽實(shí)踐證明了該電路具有體積小、功耗低、控制精度高、成本低的優(yōu)點(diǎn),非常適合大學(xué)生參賽使用,同時(shí)也是一個(gè)很好的訓(xùn)練和培養(yǎng)學(xué)生實(shí)踐創(chuàng)新能力的試驗(yàn)項(xiàng)目。

2.5 倍頻電路
從電機(jī)的編碼器上輸出兩路矩型脈沖信號(hào),它們的頻率相等,與電機(jī)的轉(zhuǎn)速成正比,相位上相差90°(如圖2的Cha、CHb)。在PID算法中,為了提高脈沖取樣的頻率,提高算法的控制精度,要求能夠提高編碼器的矩形脈沖分辨率。因此本文對(duì)光電編碼器的兩路脈沖信號(hào)進(jìn)行倍頻。倍頻芯片采用74LS86,它同時(shí)能夠進(jìn)行4個(gè)“異或”運(yùn)算:Q=A×B。驅(qū)動(dòng)電機(jī)的兩路矩形方波信號(hào)CHa、CHb輸入給74LS86的A、B端,通過(guò)74LS86“異或”運(yùn)算后所得到的頻率為原來(lái)的兩倍(如圖2的CHc)。
2.6 鑒向電路
在控制電機(jī)的PID算法中,MCU要知道電機(jī)的正反轉(zhuǎn),即需要鑒向電路。本文所用鑒向器的芯片是74LS74。74LS74是2路正邊緣D觸發(fā)器,它可以同時(shí)檢測(cè)2路電機(jī)的轉(zhuǎn)向,其工作過(guò)程為:74LS74的觸發(fā)端CK引腳和輸入端D引腳分別與電機(jī)光電編碼器輸送過(guò)來(lái)的2路方波信號(hào)CHa、CHb相連。因?yàn)?4LS74的輸出信號(hào)是:Q = CK↑·D,若CK引腳與CHb相連,D引腳與CHa相連,屬于上升沿觸發(fā)器。當(dāng)電機(jī)正轉(zhuǎn)時(shí),其2路脈沖信號(hào)如圖4(a)所示,CHb信號(hào)上升沿所對(duì)應(yīng)的CHa信號(hào)為高電平,這時(shí)74LS74芯片的輸出端Q為1;當(dāng)電機(jī)反轉(zhuǎn)時(shí),其2路脈沖信號(hào)如圖4(b)所示,CHb信號(hào)上升沿所對(duì)應(yīng)的CHa信號(hào)為低電平,這時(shí)74LS74芯片的輸出端Q為0。因此通過(guò)鑒向電路可以判斷電機(jī)的轉(zhuǎn)向。

伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理


pid控制器相關(guān)文章:pid控制器原理


光纖傳感器相關(guān)文章:光纖傳感器原理


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉