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