《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于STC12C5A60S2的教育機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)
基于STC12C5A60S2的教育機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)
摘要: 目前許多高等教育院校采用教育機(jī)器人進(jìn)行課堂教學(xué)和培養(yǎng)學(xué)生的創(chuàng)新能力。本文設(shè)計(jì)的教育機(jī)器人通過紅外光電傳感器陣列檢測路面信息并利用模糊自整定PID算法將采集的路面信息和電機(jī)運(yùn)行數(shù)據(jù)進(jìn)行實(shí)時(shí)處理,,實(shí)現(xiàn)教育機(jī)器人的智能巡航并將機(jī)器人的狀態(tài)顯示輸出,。
Abstract:
Key words :
 

  0 引言

  目前許多高等教育院校采用教育機(jī)器人進(jìn)行課堂教學(xué)和培養(yǎng)學(xué)生的創(chuàng)新能力。本文設(shè)計(jì)的教育機(jī)器人通過紅外光電傳感器陣列檢測路面信息并利用模糊自整定PID算法將采集的路面信息和電機(jī)運(yùn)行數(shù)據(jù)進(jìn)行實(shí)時(shí)處理,,實(shí)現(xiàn)教育機(jī)器人的智能巡航并將機(jī)器人的狀態(tài)顯示輸出,。

  1 機(jī)器人的組成及工作原理

  機(jī)器人由硬件和軟件兩部分組成。采用STC12CSA60S2單片機(jī)作為系統(tǒng)控制的核心部件,,完成路面信息檢測,、直流電機(jī)控制、電機(jī)轉(zhuǎn)速檢測,、數(shù)碼管顯示,、蜂鳴器報(bào)警以及鍵盤輸入等功能,硬件系統(tǒng)框圖如圖1所示,。

a.jpg

  軟件部分主要完成路況檢測,、PID電機(jī)控制,、輸入輸出人機(jī)接口,可實(shí)現(xiàn)各種機(jī)器人巡航動(dòng)作,、智能循跡等功能,。

  2 STC12系列單片機(jī)

  本文采用的STC12C5A60S2單片機(jī)是是宏晶科技生產(chǎn)的STC12系列單片機(jī)。該單片機(jī)是單時(shí)鐘/機(jī)器周期(1T),,具有高速、低功耗,、超強(qiáng)抗干擾和無法解密諸多優(yōu)點(diǎn),。指令代碼完全兼容傳統(tǒng)8051,速度快8-12倍,。工作電壓為3.3 V~5.5 V(5V單片機(jī)),,有6個(gè)16位定時(shí)器,兼容普通8051的定時(shí)器或4個(gè)外部中斷,,具有看門狗和EEPROM功能,,并且內(nèi)部集成MAX810專用復(fù)位電路。

  3 硬件設(shè)計(jì)

  3.1 系統(tǒng)電源

  由于電機(jī)在啟動(dòng)瞬間電流很大,,要求電源有足夠大的驅(qū)動(dòng)能力,,因此系統(tǒng)采用雙電源供電方式。利用LM7805將12 V鋰電池組電壓轉(zhuǎn)換為5 V穩(wěn)壓電源給單片機(jī)最小系統(tǒng)電路,、路面檢測電路,、數(shù)碼管顯示電路和電機(jī)測速電路供電。而電機(jī)驅(qū)動(dòng)電路直接由另外一組鋰電池輸出的12 V電壓直接供電,。

  3.2 電機(jī)驅(qū)動(dòng)電路

  本系統(tǒng)使用的直流電機(jī)額定電壓為12 V,,額定轉(zhuǎn)速為300 rpm。電機(jī)驅(qū)動(dòng)電路采用專用芯片L298N作為電機(jī)驅(qū)動(dòng)芯片,。用該芯片作為電機(jī)驅(qū)動(dòng),,不僅穩(wěn)定性好,大大地簡化驅(qū)電路,,而且驅(qū)動(dòng)能力大,,有利于電機(jī)轉(zhuǎn)速的穩(wěn)定。電機(jī)驅(qū)動(dòng)電路如圖2所示,。

b.jpg

  3.3 紅外光電傳感器尋跡陣列模塊

  紅外光電檢測電路工作原理是:紅外線射到路面并反射,,利用紅外線在黑線和白線對光的反射系數(shù)不同的特點(diǎn)一白色反光線,黑色吸收光線,,電路設(shè)計(jì)一個(gè)發(fā)射紅外光和一個(gè)紅外光敏二極管,,當(dāng)檢測到黑線時(shí),檢測電路向單片機(jī)發(fā)出一個(gè)高電平信號(hào),。當(dāng)檢測到白色時(shí),,檢測電路向單片機(jī)發(fā)出一個(gè)低電平信號(hào),。

  由7組紅外光電檢測電路排成一排構(gòu)成一個(gè)紅外光電傳感器陣列模塊,安置在機(jī)器人的車頭位置,。在對黑線循跡的過程中,,紅外光電傳感器陣列模塊可以求得機(jī)器人對黑線軌跡位移偏移量。單片機(jī)檢測到紅外光電傳感器陣列模塊的信號(hào)與機(jī)器人的位移偏移量如表1所示,。

c.jpg

  當(dāng)機(jī)器人行駛的狀態(tài)不一樣時(shí),,7組傳感器輸出的值也對應(yīng)不同,從表中可以得到機(jī)器人在巡航過程中機(jī)器人所處位置與黑色軌跡的偏移量,。

  3.4 車速檢測模塊

  教育機(jī)器人系統(tǒng)通過車速檢測模塊來讀取當(dāng)前車速,。采用的方法是在后左右輪上分別粘貼一個(gè)均勻分布有黑白條紋的編碼盤(見圖3(a)),利用圖3(b)的檢測電路來對編碼盤上的黑白條紋進(jìn)行檢測,。當(dāng)車輪轉(zhuǎn)動(dòng)時(shí),,紅外接收管接收到的反射光強(qiáng)弱高低變化就會(huì)產(chǎn)生與車輪轉(zhuǎn)速相對應(yīng)的脈沖信號(hào),將該脈沖信號(hào)進(jìn)行放大整形后輸入單片機(jī)的引腳P3.4和P3.5,,記錄單位時(shí)間內(nèi)所得到的脈沖數(shù),,就能夠表示出當(dāng)前車左右輪子的速度,同時(shí)通過累加可以計(jì)算出小車所行走的路程,。

d.jpg

  3.5 其他電路

  數(shù)碼管顯示電路主要是顯示當(dāng)前機(jī)器人的行走速度,。采用LED數(shù)碼管動(dòng)態(tài)顯示,段碼用PNP三極管驅(qū)動(dòng),。系統(tǒng)顯示的距離范圍在10米之內(nèi),,選用4位LED共陽數(shù)碼管,通過單片機(jī)編程實(shí)現(xiàn)動(dòng)態(tài)掃描顯示,。顯示字符由單片機(jī)P0口送出,,P1.6、P1.7,、P3.0和P3.1分別控制每一位數(shù)碼管的動(dòng)態(tài)顯示,。

  報(bào)警電路通過單片機(jī)P3.7控制蜂鳴器來完成。P3.7輸出低電平時(shí),,蜂鳴器報(bào)警,;P3.7輸出高電平,蜂鳴器不報(bào)警,。單片機(jī)的外部中斷輸入口P3.2和P3.3與地之間分別接入輕觸按鈕作為系統(tǒng)的啟動(dòng)和停止開關(guān),,作為按鍵輸入電路。

  4 系統(tǒng)軟件設(shè)計(jì)

  系統(tǒng)控制的實(shí)現(xiàn)是由軟件完成的,。軟件設(shè)計(jì)基于keilC51編寫的,,采用模塊化結(jié)構(gòu)設(shè)計(jì),各個(gè)功能子塊獨(dú)立。在結(jié)構(gòu)上由1個(gè)主程序文件main.c和8個(gè)子程序文件(key.c,、pid.c,、detect.c、seg.c,、speed.c和motor.c)組成,。main.c主程序文件完成一系列任務(wù)的初始化工作和處理各個(gè)任務(wù)工作的協(xié)調(diào)。key.c文件完成按鍵中斷檢測和蜂鳴器報(bào)警任務(wù),;seg.c文件完成數(shù)碼管顯示,;sp∞d.c文件完成電機(jī)速度檢測;motor.c完成PWM的配置和電機(jī)的控制,;detect.c文件完成紅外光電傳感器陣列檢測,;pid.c文件實(shí)現(xiàn)模糊參數(shù)自整定PID運(yùn)算處理。其中定時(shí)器TO產(chǎn)生采樣周期T秒定時(shí)中斷,,每間隔T秒中斷一次,完成一次PID控制計(jì)算,,同時(shí)調(diào)用模糊參數(shù)自整定PID運(yùn)算子程序?qū)y試轉(zhuǎn)速和設(shè)定轉(zhuǎn)速進(jìn)行差值計(jì)算得到輸出值,,用于配置PWM的輸出,控制電機(jī)轉(zhuǎn)速,。主程序和定時(shí)器TO中斷處理流程圖如圖4所示,。

e.jpg

  4.1 模糊PID參數(shù)自整定控制器原理

  PID參數(shù)模糊自整定是找出PID中3個(gè)參數(shù)與e和ec之間的模糊關(guān)系,在運(yùn)行中通過不斷檢測e和ec,,根據(jù)模糊控制原理來對3個(gè)參數(shù)進(jìn)行在線修改,,以滿足不同e和ec對控制參數(shù)的不同要求,而使被控對象有良好的動(dòng)穩(wěn)態(tài)性能,。從系統(tǒng)的穩(wěn)定性,、響應(yīng)速度、超調(diào)量和穩(wěn)態(tài)精度等方面來考慮,,Kp,,Ki,Kd的作用如下:Kp的作用是加快系統(tǒng)的響應(yīng)速度,,提高系統(tǒng)的調(diào)節(jié)精度,;Ki用于消除系統(tǒng)的穩(wěn)態(tài)誤差;Kd改善系統(tǒng)的動(dòng)態(tài)性能,。圖5是PID控制器設(shè)計(jì)結(jié)構(gòu)原理圖,。

f.jpg

  由PID各個(gè)參數(shù)對系統(tǒng)的影響得到:

  (1)當(dāng)誤差|e|較大時(shí),說明誤差的絕對值較大,,不論誤差的變化趨勢如何,,都應(yīng)該考慮控制器的Kp取較大值,以提高響應(yīng)的快速性;而為防止因?yàn)閨ec|瞬時(shí)過大,,kd應(yīng)該取較小的值,;為控制超調(diào),ki也應(yīng)該取值很小,。

  (2)當(dāng)誤差|e|在中等大小時(shí),,為保證系統(tǒng)的相應(yīng)速度并控制超調(diào),應(yīng)減小Kp,,Ki值應(yīng)增大,,Kd應(yīng)適中。

  (3)當(dāng)誤差|e|較小時(shí),,為保證系統(tǒng)具有良好的穩(wěn)態(tài)特性,,應(yīng)加大Kp、Ki的取值,,同時(shí)為避免產(chǎn)生振蕩,,Kd的取值應(yīng)該和|ec|聯(lián)系起來。

  教育機(jī)器人屬于典型的非線性,、時(shí)變,、模型不確定復(fù)雜系統(tǒng)。在實(shí)際中,,機(jī)器人行駛道路有直道,、大彎道、“S”型小彎道,。利用教育機(jī)器人在相同的路況下其特性基本不變,,可分別確定這3種道路參數(shù)下的最佳PID參數(shù)。其核心思想是把控制周期內(nèi)的機(jī)器人狀態(tài)視為不變,,只要控制周期較短,,就可實(shí)現(xiàn)很好的控制效果。在機(jī)器人實(shí)際的行使中,,每10ms進(jìn)行1次控制,,可滿足要求。

  4.2 PID參數(shù)設(shè)定

  模糊PID控制根據(jù)系統(tǒng)運(yùn)行的不同狀態(tài),,考慮Kp,、Ki、Kd三者的關(guān)聯(lián),,根據(jù)工程經(jīng)驗(yàn)并依據(jù)各參數(shù)的作用,,通過大量的測試獲得本系統(tǒng)對應(yīng)路況下的PID參數(shù),實(shí)驗(yàn)數(shù)據(jù)如下:

  (1)在直道上系統(tǒng)取kp=3,,Ki=5,,kd=0,,測試環(huán)境為一條長度5 m的長直道;

  (2)在大彎道上系統(tǒng)取kp=10,,Ki=1,,kd=1,測試環(huán)境為直道進(jìn)入一個(gè)半徑為100 cm的3/4圓,;

  (3)在“S”型小彎道上系統(tǒng)取kp=7,,Ki=4,kd=3,,測試環(huán)境為3個(gè)90度圓弧構(gòu)成的"S"型小彎道,。

  5 結(jié)束語

  用STC12C5A60S2單片機(jī)配合紅外光電陣列檢測模塊對直流電機(jī)執(zhí)行參數(shù)自整定模糊PID控制器,解決了直流電機(jī)在巡航過程中產(chǎn)生抖動(dòng)前進(jìn)的控制問題,,使得教育機(jī)器人在行走的過程中更平穩(wěn),,且控制方法簡單、實(shí)用,。



 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。