基于STC12C5A60S2的教育機器人的設(shè)計
紅外光電檢測電路工作原理是:紅外線射到路面并反射,利用紅外線在黑線和白線對光的反射系數(shù)不同的特點一白色反光線,黑色吸收光線,電路設(shè)計一個發(fā)射紅外光和一個紅外光敏二極管,當(dāng)檢測到黑線時,檢測電路向單片機發(fā)出一個高電平信號。當(dāng)檢測到白色時,檢測電路向單片機發(fā)出一個低電平信號。
由7組紅外光電檢測電路排成一排構(gòu)成一個紅外光電傳感器陣列模塊,安置在機器人的車頭位置。在對黑線循跡的過程中,紅外光電傳感器陣列模塊可以求得機器人對黑線軌跡位移偏移量。單片機檢測到紅外光電傳感器陣列模塊的信號與機器人的位移偏移量如表1所示。
當(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)前車左右輪子的速度,同時通過累加可以計算出小車所行走的路程。
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所示。
評論