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

  0 引言

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

  1 機器人的組成及工作原理

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

a.jpg

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

  2 STC12系列單片機

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

  3 硬件設(shè)計

  3.1 系統(tǒng)電源

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

  3.2 電機驅(qū)動電路

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

b.jpg

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

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

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

c.jpg

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

  3.4 車速檢測模塊

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

d.jpg

  3.5 其他電路

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

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

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

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

e.jpg

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

  PID參數(shù)模糊自整定是找出PID中3個參數(shù)與e和ec之間的模糊關(guān)系,,在運行中通過不斷檢測e和ec,,根據(jù)模糊控制原理來對3個參數(shù)進行在線修改,以滿足不同e和ec對控制參數(shù)的不同要求,,而使被控對象有良好的動穩(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)的動態(tài)性能,。圖5是PID控制器設(shè)計結(jié)構(gòu)原理圖。

f.jpg

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

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

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

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

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

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

  模糊PID控制根據(jù)系統(tǒng)運行的不同狀態(tài),考慮Kp,、Ki,、Kd三者的關(guān)聯(lián),根據(jù)工程經(jīng)驗并依據(jù)各參數(shù)的作用,,通過大量的測試獲得本系統(tǒng)對應(yīng)路況下的PID參數(shù),,實驗數(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)境為直道進入一個半徑為100 cm的3/4圓,;

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

  5 結(jié)束語

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



 

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