【摘要】機器人通常采用舵機作為關節連接件,本文提出了一種基于stc單片機的通用多關節機器人控制系統,以stc單片機和uart串行通信接口等部分構成硬件系統,用C語言開發了機器人串口調試軟件及綜合控制軟件,結合PID算法控制雙足機器人完成前后行走,翻跟頭。
【關鍵詞】STC單片機;串口通信;PID算法
1.系統整體設計
本設計的機器人系統由控制中心(MCU)模塊、舵機驅動模塊、電源管理模塊、UART串口模塊、超聲波傳感器模塊等構成,整個系統構成一個閉環控制系統。硬件組成框圖如圖1所示。
圖1 系統整體結構
2.系統硬件電路設計
2.1 主芯片選擇
STC12C5410AD單片機是增強型8051單片機,單時鐘/機器周期,工作電壓5.5V一3.5V,工作頻率范圍0~35MHz,512字節片內數據存儲器,10K字節片內Flash程序存儲器,ISP(在系統可編程)/IAP(在應用可編程),可通過串口直接下載程序,EEPROM功能,6個16位定時/計數器,PWM(4路)/PCA(可編程計數器陣列,4路),8路10位A/D轉換,SPI同步通信口。
2.2 舵機驅動模塊
由于舵機的響應時間對機器人控制平衡很重要,為了實現其快速響應,將舵機的工作電壓提高到+6V。為了減小此時間常數,還可以通過改變舵機的安裝位置,加長力臂可以實現提高舵機的響應速度。舵機的輸出轉角大小與給定的PWM信號值成線性關系,以PWM信號為系統輸入信號,改變PWM的占空比,實現舵機控制。
2.3 電源管理模塊
電源管理芯片的好壞直接影響系統的穩定性。從整個系統的穩定可靠的角度出發,選擇了一款低壓差芯片TPS7350,該芯片最具特色的優點是當輸出電流為100mA時,最大壓差只有35mV,只需很少的外圍器件就能滿足應用要求。此外,充分使用該芯片的復位功能,減少了芯片的使用量,提高了系統的穩定性。為了減小系統運行過程中由于電機紋波對電源的干擾,特設計了大電容與大電感組成的電容容量為1410uF的LC濾波電路,對引入電源管理芯片的電源進行濾波,保證電源芯片的正常工作電壓。
2.4 超聲波傳感器檢測電路
超聲波傳感器電路主要是實現測距的功能。主要由超聲波發射電路和接收電路兩部分組成。
超聲波接收電路主要使用集成電路CX20106A,它是一款紅外線檢波接收的專用芯片,常用于電視機紅外遙控接收器。考慮到紅外遙控常用的載波頻率38kHz與測距的超聲波頻率40kHz較為接近,可以利用它制作超聲波接收電路。實驗證明用CX20106A接收超聲波(無信號時輸出高電平),具有很好的靈敏度和較強的抗干擾能力,具體見圖3。CX20106A的第5腳的電阻決定接收的中心頻率,220kΩ的電阻決定了接收的中心頻率為40kHz。當CX20106A接收到40kHz的信號時,會在第7腳產生一個低電平下降脈沖,這個信號可以接到單片機的外部中斷引腳作為中斷信號輸入。
3.控制系統設計
要實現機器人所完成各種動作需要用到多舵機分時控制原理。具體的,給每個舵機定義一個角度所對應的脈寬變量,并賦予初始值為舵機的中間角度。還要給定時器設定初值既是舵機PWM波脈寬初值。當每次定時器時間到產生溢出中斷,進入中斷服務子程序后,首先把所有的舵機控制輸出口拉低清零,再給某一位置高,并給賦予PWM脈寬的定時時間。最后移位使下次進入中斷時給下一位置高,相當于是將時間片傳遞給了下一個舵機驅動。其原理如圖2所示。
根據經驗舵機在運行過程中要從電源吸納較大的電流,若舵機與單片機控制器共用一個電源,則舵機會對單片機產生較大的干擾。因此,舵機與單片機控制器采用兩個電源供電,兩者不共地,通過光耦來隔離,并且給舵機供電的電源最好采用輸出功率較大的開關電源。該舵機控制器占用單片機的個SCI串口。串口用于接收上位機傳送過來的控制命令,以調節每一個通道輸出信號的脈沖寬度。MAX232為電平轉換器,將上位機的RS232電平轉換成TTL電平。
圖2 舵機分時控制原理
4.系統軟件編程與仿真
本系統需設計完成的軟件包括:機器人串口調試上、下位機軟件和機器人獨立運行軟件;單片機下位機軟件。
機器人的單片機運行程序是包含有舵機的控制、完成各種動作的腳本程序、兩個主動輪直流電機的驅動程序,還有一些基本的延時、初始化設置等程序。由于程序包含的內容較多,為了方便程序的組織,將各個功能模塊分別做成一個獨立的C程序,由主程序的頭文件包含其他所有要用到的C程序的頭文件,來調用其他C文件中的一些功能函數。程序這樣設計比較方便將各個功能進行移植。通過在頭文件中對各個端口物理地址的宏定義,在其C文件中實現了與物理地址的分離。當物理地址發生變化時,只需修改頭文件中的宏定義即可。
5.總結
整個硬件系統成本低廉,由于可以無線與電腦通信,具有良好的二次開發接口。在此硬件基礎上搭建的雙足步行機器人,具有避障、測距、發音、語音識別、并和電腦具有無線通信的功能,具有好的展示效果和學習效果。
參考文獻
[1]胡漢才.高檔AVR單片機原理及應用.北京:清華大學出版社,2007.
[2]張培仁,等.十六位單片微處理器原理及應用(凌陽SPCE061A).北京:清華大學出版社,2005.
[3]梁磊,王樹強,許芹.多路PWM信號產生算法研究.電氣電子教學學報,2008;30(4):47—49.
[4]崔坤征,羅均,謝少榮,等.一種用于動態障礙物探測的超聲波系統的研制.機電工程,2005;22(6):44—48.
[5]謝黎明,趙軍,楊虹,等.紅外線人體感應控制語音系統的研究.科學技術與工程,2008;8(7):1798—1801.