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