C8051F單片機在自動機器人上的應用
關鍵詞:CCTV大學生機器人賽;PID控制器;C8051F
在每年中央電視臺舉辦的CCTV大學生機器人大賽中,自動機器人是一個典型的機電光一體化作品,它可以培養和訓練大學生計算機、控制論、機構學、機械設計和制造、傳感技術、人工智能等眾多學科的知識,是大學生開展綜合知識訓練的良好平臺。同時機器人制作比賽作為一種創新教育的戰略性手段已經逐漸被教育界的人們所認可,因此越來越受到各高校的重視和積極參與。在每年的機器人大賽中,機器人是由手動機器人和自動機器人兩部分組成,自動機器人在比賽中擔當主要角色,對比賽的勝負起決定性的作用。
2007年CCTV大學生機器人大賽是在一個14 m×14 m的場地上進行,以參賽雙方誰先建造完指南針為獲勝,如兩方都沒完成則以各自的得分來決定勝負。本文設計的自動機器人以C8051F310單片機為MCU。
1 機器人車體機械機構設計
2007年CCTV大學生機器人大賽中,比賽內容是雙方機器人把各自的積木放到戰車上。整個自動機器人的活動區域內沒有設置障礙,不需要爬坡等越障設置,相對而言較為簡單。本文設計并參加比賽的自動機器人在車體機械機構上采用雙輪驅動設計,通過控制2個驅動輪的速度和轉向來實現不同的運動軌跡,驅動輪在底盤的后面,底盤前面有2個萬向輪,用以支撐整個車體的平衡。在底盤的上面安置積木的夾抓機構和提升機構。
2 機器人的控制電路設計
2.1 MCU的選擇
2007年CCTV大學生機器人大賽較以往的題目更靈活,自動機器人的運動軌跡更復雜,因而對自動機器人的設計和控制難度也較高。在綜合考慮各種因素后,選用Cygnal公司最近推出的C8051F系列高速單片機。這種單片機結構簡單,性能與DSP相近,而且其指令集與51系列單片機兼容,開發工作簡單。用于自動機器人控制的C8051F單片機具有如下的特點[1]:
(1) 使用Cygnal公司的專利CIP-51微控制器內核,采用流水線指令結構;70%的指令執行時間為1個或2個系統時鐘周期;速度可達25 MI/s(時鐘頻率為25 MHz時)。這樣就可以應用復雜的控制算法提高控制精度。
(2) 內部有4個通用16位計數器/定時器和專用的看門狗定時器(WDT),不再需要附加外部計數器件和外部看門狗電路。本文的設計就是將定時器0和定時器1用作小車左右輪反饋脈沖計數。
(3) 引入了數字交叉開關,允許將內部數字系統資源分配給端口I/O引腳。通過設置優先權給交叉控制寄存器,將片內的計數器/定時器、串行總線、硬件中斷、ADC轉換啟動輸入、比較器輸出以及微控制器內部的其他數字信號配置為出現在端口I/O引腳。
(4) 內部有1個可編程計數器陣列(PCA),由1個專用的16位計數器/定時器和5個16位捕捉/比較模塊組成。通過設置特殊功能寄存器PCAOCPM將捕捉/比較模塊0和模塊1(CEX0和CEX1)設置成脈沖寬度調制器(PWM),用于驅動電動機。
(5) 內部有12位逐次逼近型ADC,可以在不增外圍電路的前提下方便地檢測模擬信號。
(6) 具有片內JTAG和調試電路,通過JTAG接口并使用安裝在最終應用系統中的器件上就可以進行全速、非侵入式地在系統調試,而且支持斷點、單步、觀察點、堆棧監視器,支持觀察修改存儲器和寄存器。
自動機器人的控制MCU選用C8051F系列單片機是非常合適的,由于可以硬件生成PWM,占用CPU資源很少;高性能的指令系統以及和C語言之間進行交叉匯編,為設計各種控制算法提供了廣闊的空間。其控制電路框圖如圖1所示。
在自動機器人運動控制中采用兩輪驅動,通過對2個驅動輪電機轉速和轉向的精確控制來控制機器人的運動軌跡。對左右輪驅動電機M1、M2的轉速采用PWM脈寬調制進行驅動,單片機輸出的PWM信號和轉向控制信號送給電機控制專用芯片L298,L298芯片能夠直接驅動兩個電機運轉。在M1、M2電機上裝有能夠檢測其轉速的兩路光電編碼器,兩路光電編碼器的信號分別送給倍頻器和鑒向器,進行轉速和轉向的檢測,轉速和轉向信號輸送給C8051F310單片機,在其內部進行PID運算,將運算后的結果控制PCA陣列,從而控制PWM的占空比。下面對其電路進行具體分析。
2.2 MCU電路
采用C8051F310作為控制電路的MCU[2],用P0口實現對驅動電機的控制。P0.0、P0.1用于輸出控制M1、M2轉速的PWM信號,P0.2、P0.3用于控制M1、M2的轉向;P0.4、P0.5用于M1、M2的轉速反饋,即用于計算反饋驅動電機的轉速;P0.6、P0.7用于檢測M1、M2的轉向,即用于取得驅動電機的轉向反饋。通過P0口實現了對兩個驅動電機的閉環控制。通過嵌入在C8051F310的PID算法,即可實現對M1、M2轉速和轉向的精確控制,在比賽場地運行時可根據場地上的白色引導線來調整機器人的軌跡線。
2.3 電機的選擇
由于在比賽時電源必須自帶,驅動電機采用直流電機,本文采用的是FAULHABER公司生產的2342L024CR直流電機。通過改變PWM的占空比來改變它的轉速,通過改變電源的極性來改變電機的轉向。為了能夠準確測出電機的轉速和轉向,在每個電機上裝有兩路光電編碼器,光電編碼器輸出與電機轉速成正比的方波信號,兩路信號在頻率上相等,在相位上相差90°,如圖2所示的CHa和CHb信號。
2.4 電機驅動電路
為了控制直流電動機,需用半導體功率器件進行驅動。大多數直流電動機的驅動是采用開關型驅動方式。由于PWM調制方式使晶體管工作在開關狀態,這種調速方式不僅功率損耗低、效率高,而且具有調速范圍廣、響應速度快等特點。當輸入信號為零時,伺服電機處于微振狀態,克服了靜摩擦力的影響,有利于改善伺服系統低速運行時的平穩性。
本文采用L298為電機驅動芯片,它采用雙H橋式為主驅動電路,如圖3所示。該電路不僅能夠調速而且還能正反轉,可以驅動同步進電機或同時驅動2個直流電機。通過它的2個引腳PWM和DIR實現對電機的控制。通過改變PWM引腳的占空比,可以實現對電機的轉速控制;通過改變DIR引腳的高低電平,可以實現電機的正反轉控制。
經過74LS86芯片倍頻和74LS74芯片鑒向后的信號輸送給MCU(C8051F310),MCU經過PID運算后的結果輸送給MCU內部的PCA陣列,從而輸出符合要求的PWM脈沖信號以及電機的轉向信號給直流電機,精確控制電機的轉速和轉向。
2.7 引導線的檢測
在比賽場地上有3 cm寬的白色引導線,自動機器人可以沿著引導線確定自己的運動軌跡,因此,自動機器人可以利用白色的引導線來校正自己的運動軌跡。為了能夠準確地檢測到場地的白色引導線,采用光纖傳感器來檢測。光纖傳感器上主要有如圖5所示的發射光裝置和接收光裝置。
發射光裝置發射出的光遇到前方的檢測物后,反射回來給接收裝置,如果檢測物的距離和灰度不同,則反射回來的光的強度也不同。當調節好距離之后,設定不同的閾值就可以檢測不同的灰度。光纖傳感器檢測比賽場地上的白色引導線,利用場地灰度不同,即白色引導線比周圍背景的反射率更高的特點,使機器人行走時引導線處于機器人兩驅動輪的中間。具體設計是:機器人左右各有4個光纖傳感器,分別為1~4號傳感器,如圖6所示。考慮到引導線的寬度為3 cm,左1號傳感器和右1號傳感器之間的距離設為4 cm,留1cm的余地,左右傳感器內部之間的距離為2.5 cm。機器人行走時:如果左右光纖傳感器都沒有檢測到引導線,說明引導線在機器人兩驅動輪的中間,兩輪的速度正確;當左邊的光纖傳感器檢測到引導線,說明左驅動輪的速度偏大,機器人在往右邊偏移,這時應該減小左驅動輪速度或增大右驅動輪速度進行校正。左邊的光纖傳感器有4個,當1號光纖傳感器檢測到,說明偏移量較小其校正量也應較??;如果是2號光纖傳感器檢測到,說明偏移量更大,校正量也應更大。以此類推,4號光纖傳感器偏移量最大,校正量也最大。若是右邊的光纖傳感器檢測到白色引導線,其原理同左邊的光纖傳感器。這樣MCU就可以通過光纖傳感器傳送來的信號實時調整左右驅動輪的速度,使機器人按要求的路線運行。
以上是以C8051F單片機作為主MCU在自動機器人控制電路中的應用,它通過PID算法和光電檢測器構成雙閉環的控制電路,實現了對驅動電機的精確控制,能夠很好地滿足比賽的控制要求。通過比賽實踐證明了該電路具有體積小、功耗低、控制精度高、成本低的優點,非常適合大學生參賽使用,同時也是一個很好的訓練和培養學生實踐創新能力的試驗項目。
從電機的編碼器上輸出兩路矩型脈沖信號,它們的頻率相等,與電機的轉速成正比,相位上相差90°(如圖2的Cha、CHb)。在PID算法中,為了提高脈沖取樣的頻率,提高算法的控制精度,要求能夠提高編碼器的矩形脈沖分辨率。因此本文對光電編碼器的兩路脈沖信號進行倍頻。倍頻芯片采用74LS86,它同時能夠進行4個“異或”運算:Q=A×B。驅動電機的兩路矩形方波信號CHa、CHb輸入給74LS86的A、B端,通過74LS86“異或”運算后所得到的頻率為原來的兩倍(如圖2的CHc)。
2.6 鑒向電路
在控制電機的PID算法中,MCU要知道電機的正反轉,即需要鑒向電路。本文所用鑒向器的芯片是74LS74。74LS74是2路正邊緣D觸發器,它可以同時檢測2路電機的轉向,其工作過程為:74LS74的觸發端CK引腳和輸入端D引腳分別與電機光電編碼器輸送過來的2路方波信號CHa、CHb相連。因為74LS74的輸出信號是:Q = CK↑·D,若CK引腳與CHb相連,D引腳與CHa相連,屬于上升沿觸發器。當電機正轉時,其2路脈沖信號如圖4(a)所示,CHb信號上升沿所對應的CHa信號為高電平,這時74LS74芯片的輸出端Q為1;當電機反轉時,其2路脈沖信號如圖4(b)所示,CHb信號上升沿所對應的CHa信號為低電平,這時74LS74芯片的輸出端Q為0。因此通過鑒向電路可以判斷電機的轉向。
伺服電機相關文章:伺服電機工作原理
pid控制器相關文章:pid控制器原理
光纖傳感器相關文章:光纖傳感器原理
評論