摘 要: 教育機(jī)器人有其靈活性和精確的優(yōu)點(diǎn),,并且易用,、易學(xué)和擴(kuò)展性強(qiáng),因而在社會有其廣大的市場和發(fā)展前途,。介紹了紅外測距模塊猶如機(jī)器人的眼睛,,實(shí)現(xiàn)機(jī)器人的避障功能,并且通過液晶顯示使人們知道機(jī)器人離障礙物的精確距離,,從而更加靈活控制機(jī)器人,。
關(guān)鍵詞: 教育機(jī)器人;凌陽單片機(jī),;紅外測距,;液晶顯示;A/D轉(zhuǎn)換
0 引言
針對目前市場上教育機(jī)器人存在的不足,,研究更加靈活,、易用,、易學(xué)和擴(kuò)展性強(qiáng)的教學(xué)機(jī)器人,服務(wù)于小學(xué)的機(jī)器人技術(shù)教育,、信息技術(shù)教育,、電子技術(shù)教育、小學(xué)生創(chuàng)新設(shè)計(jì),。本文主要針對機(jī)器人的紅外測距和液晶顯示兩個模塊的硬軟件設(shè)計(jì)以及A/D轉(zhuǎn)換的過程進(jìn)行了較詳細(xì)的論述。本文所設(shè)計(jì)的系統(tǒng)的核心是一個基于凌陽SPACE061A微控制器的可擴(kuò)展的控制平臺[1],。
此教育機(jī)器人利用具有強(qiáng)大擴(kuò)展功能的凌陽單片機(jī)與模擬輸出的Sharp GP2D12紅外測距傳感器模塊硬件相連并通過C語言程序的軟件支持來實(shí)現(xiàn)機(jī)器人的測距,,從而實(shí)現(xiàn)機(jī)器人的避障功能。同樣采用SMC1602C液晶顯示模塊來實(shí)現(xiàn)對測量距離的精確顯示,,從而使人們很直觀地知道機(jī)器人(車)與障礙物的距離,,從而更加靈活地控制機(jī)器人。同時利用凌陽單片機(jī)的8通道10位精度的A/D轉(zhuǎn)換模塊的其中一個通道(其中一個通道專為聲音模數(shù)轉(zhuǎn)換器,,有聲音錄放功能)把來自紅外測距模塊的距離轉(zhuǎn)化的電壓模擬輸出量轉(zhuǎn)換成數(shù)字量,。此機(jī)器人體積小,功耗低,,并且測量轉(zhuǎn)換精度高,,能夠在線下載程序;其圖形化C語言編譯器基于流程圖的圖形化交互式C語言,,簡單直觀,,易于小學(xué)生學(xué)習(xí)和使用,適合小學(xué)生的思維方式[2],。
1 系統(tǒng)的硬件設(shè)計(jì)及實(shí)現(xiàn)
教育機(jī)器人硬件系統(tǒng)主要由SPCE061A單片機(jī),、紅外測距模塊、液晶顯示模塊,、電源,、下載口、晶振和復(fù)位電路組成,,如圖1所示,。其中,凌陽單片機(jī)是機(jī)器人的心臟和核心部分,,與外接功能模塊相連,,實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)化、輸入輸出和處理功能,,從而使各模塊能夠正常運(yùn)行和實(shí)現(xiàn)各模塊的協(xié)調(diào)工作,。紅外測距模塊:采用模擬輸出的Sharp GP2D12距離傳感器,測量機(jī)器人與外界障礙物的距離,,并把數(shù)據(jù)經(jīng)A/D轉(zhuǎn)換后傳輸給單片機(jī)處理,,從而實(shí)現(xiàn)機(jī)器人的避障功能,。液晶顯示模塊:采用SMC1602C液晶顯示模塊,單片機(jī)把輸入的距離信號傳輸給液晶顯示模塊,,從而實(shí)現(xiàn)對測量距離的精確顯示,,使人們很直觀地知道機(jī)器人(車)與障礙物的距離,從而更加靈活地控制機(jī)器人[3],。電源模塊:由帶鎖開關(guān),、電壓調(diào)整器SPY0029芯片、三端穩(wěn)壓器7805模塊,、發(fā)光二極管,、穩(wěn)壓管、電容電阻等器件組成,,為單片機(jī)和各模塊提供12 V,、 5 V、3.3 V的電壓,,保證單片機(jī)和各模塊能夠正常工作,。外部上電復(fù)位:通過某種方式,使單片機(jī)內(nèi)存各寄存器的值變?yōu)槌跏嫉牟僮鞣Q為復(fù)位,,由復(fù)位鍵,、電容電阻、LED指示燈組成,,其目的是為了通過對系統(tǒng)的電源電壓進(jìn)行監(jiān)控,,而使系統(tǒng)運(yùn)行在一個正常、可靠的工作環(huán)境,,并在一旦出現(xiàn)電源異常的情況下能立即采取相應(yīng)的措施,,使系統(tǒng)及時恢復(fù)正常。晶振模塊:由32 768 Hz的晶振和兩個電容構(gòu)成,,作為單片機(jī)的時鐘信號,,為單片機(jī)提供系統(tǒng)時鐘、實(shí)時時鐘和時間基準(zhǔn)信號,,從而保證單片機(jī)正常運(yùn)行和程序的執(zhí)行,。下載口:由數(shù)據(jù)緩沖器74HC244和電容、電阻,、穩(wěn)壓管等組成,。用隨機(jī)帶有的一根連接電纜與計(jì)算機(jī)打印機(jī)端口連接,即在線調(diào)試或把寫好的程序直接下載到機(jī)器人控制器中,。
2 紅外測距模塊原理
圖2反映了紅外測距的原理,,如圖知道了距離L和角度?茲,根據(jù)簡單的數(shù)學(xué)方法即可求出障礙物與機(jī)器人(車)的距離Z,。圖3為GP2D12的輸入輸出關(guān)系曲線,。
從圖3可以看出電壓與距離的變化關(guān)系不是成線性的,,其關(guān)系曲線為下降拋物線,距離測量范圍為10~80 cm,,電壓范圍是0.4~2.5 V,。
因?yàn)镚P2D12輸出的距離信號是電壓模擬信號,所以要經(jīng)過A/D轉(zhuǎn)換后,,才能夠被單片機(jī)接收和處理,,因此A/D轉(zhuǎn)換至關(guān)重要,但因?yàn)榱桕枂纹瑱C(jī)內(nèi)置7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC),,所以GP2D12可以直接與凌陽單片機(jī)相連,。SPCE061A有8路可復(fù)用10位ADC通道,其中一路通道(MIC_In)用于語音輸入,,模擬信號經(jīng)過自動增益控制器和放大器放大后進(jìn)行A/D轉(zhuǎn)換。其余7路通道(Line_In)和IOA[0~6]管腳復(fù)用,,可以直接通過引線(IOA[0~6])輸入,,用于將輸入的模擬信號(如電壓信號)轉(zhuǎn)換為數(shù)字信號。它由DAC0和逐次逼近寄存器SAR(Successive Approximation Register)組成,。所以其A/D轉(zhuǎn)換的原理是逐次逼近式,,即:首先將SAR中數(shù)據(jù)的最高有效位試設(shè)為‘1’,而其他位則全設(shè)為‘0’,,即10 0000 0000B,。這時,DAC0輸出電壓VDAC0(1/2滿量程)就會與輸入電壓Vin進(jìn)行比較,。如果Vin>VDAC0,,則保持原先設(shè)置為‘1’的位(最高有效位)仍為‘1’;否則,,該位會被清‘0’,。接著,逐次逼近式控制又將下一位試設(shè)為‘1’,,其余低位依舊設(shè)為‘0’,,即110000 0000B,VDAC0與Vin進(jìn)行比較,,若Vin>VDAC0,,則仍保持原先設(shè)置位的值,否則便清‘0’該位,。這個逐次逼近的過程一直會延續(xù)到10位中的所有位都被測試之后,,A/D轉(zhuǎn)換的結(jié)果保存在SAR內(nèi)。這種轉(zhuǎn)換具有精度高,、速度快,、轉(zhuǎn)換時間固定的優(yōu)點(diǎn),,從而保證了液晶顯示的及時性、精確性[4],。
3 系統(tǒng)的軟件設(shè)計(jì)及實(shí)現(xiàn)
軟件的編程主要是實(shí)現(xiàn)紅外測距模擬電壓量的A/D轉(zhuǎn)換處理,、避障功能的實(shí)現(xiàn)和液晶顯示。程序采用C語言編輯,,并在凌陽單片機(jī)支持的Suplus IDE集成環(huán)境下運(yùn)行和執(zhí)行,。程序思路如下[5]:
(1)定義地址端口,;
?。?)液晶模塊和凌陽單片機(jī)I/O口初始化;
?。?)從GP2D12紅外測距模塊的電壓與距離的關(guān)系曲線中采集15個參考點(diǎn)(并且對應(yīng)A/D轉(zhuǎn)換后的數(shù)據(jù)),;
(4)進(jìn)行A/D轉(zhuǎn)換操作的準(zhǔn)備工作,;
?。?)開始進(jìn)行A/D轉(zhuǎn)換;
?。?)根據(jù)15個參考點(diǎn),,計(jì)算出采集到的距離;
?。?)使液晶作好接收數(shù)據(jù)的準(zhǔn)備,,并發(fā)送數(shù)據(jù);
?。?)液晶顯示,。
機(jī)器人(車)從遠(yuǎn)處過來,紅外測距模塊GP2D12不停地對外測量機(jī)器人(車)與障礙物的距離,,經(jīng)A/D轉(zhuǎn)換為數(shù)字信號后輸入到凌陽單片機(jī)的Flash中,,數(shù)據(jù)經(jīng)單片機(jī)處理后經(jīng)I/O口輸出給液晶顯示模塊顯示,顯示范圍為10~80 cm,。在程序中設(shè)好一個數(shù)值為拐彎閾值,,GP2D12每測一個數(shù)據(jù)都與設(shè)定值相比較,如果不相等,,則繼續(xù)前進(jìn),,不發(fā)生拐彎;如果相等,,使機(jī)器人(車)拐彎,,從而自動躲避障礙物[6]。
程序流程如圖4所示,。從圖4可以看出取了15個參考點(diǎn),,并且包括GP2D12紅外測距范圍的起始點(diǎn)和終點(diǎn),。當(dāng)測距數(shù)據(jù)超出了10~80 cm的范圍時,設(shè)置fRet=0,,即液晶顯示為零,。當(dāng)所測數(shù)據(jù)等于這15個參考點(diǎn)時,則直接輸出數(shù)據(jù),,并且程序跳出子程序,。當(dāng)所測數(shù)據(jù)非15個參考點(diǎn)時,此時要經(jīng)過流程圖中提到的一種數(shù)學(xué)方法計(jì)算求出,。此計(jì)算方法的詳細(xì)步驟如下:測到的非15個參考點(diǎn)的距離,,從第一個參考點(diǎn)依次循環(huán)向后比較,若此點(diǎn)A/D轉(zhuǎn)換的數(shù)據(jù)小于某一個參考點(diǎn)的A/D轉(zhuǎn)換值,,則這個點(diǎn)位于此點(diǎn)與上一個參考點(diǎn)之間,,測出這個點(diǎn)橫坐標(biāo)與兩個參考點(diǎn)橫坐標(biāo)的距離比,此時可以確定出此點(diǎn)在兩個參考點(diǎn)的橫坐標(biāo)的位置,,此時再加上上一個參考點(diǎn)的橫坐標(biāo),,就可以確定出此點(diǎn)的橫坐標(biāo)。同理得此點(diǎn)縱坐標(biāo)在兩個參考點(diǎn)的位置,,此時在加上相鄰的下一個參考點(diǎn)的縱坐標(biāo),即可得到此點(diǎn)的縱坐標(biāo),,橫坐標(biāo)縱坐標(biāo)都知道了,,即可確定此點(diǎn)的位置,然后跳出子程序,,最后返回[7],。
4 結(jié)論
在上述設(shè)計(jì)方案的基礎(chǔ)上研制出了樣機(jī)。樣機(jī)的整體性能已經(jīng)達(dá)到了預(yù)期要求,。但在以下方面有待改進(jìn):
?。?)電機(jī)驅(qū)動方式方面:目前所使用的邏輯驅(qū)動是開環(huán)控制,只能利用PWM實(shí)現(xiàn)電機(jī)的控制,,遠(yuǎn)遠(yuǎn)不能滿足精確度的要求,。若能給電機(jī)加上碼盤和用PID方式對電機(jī)進(jìn)行精確控制,在比賽中將會有更大的主動權(quán),。
?。?)測距方面:目前所使用的紅外傳感器只能實(shí)現(xiàn)簡單的比較。精確地計(jì)算差值并利用差值對轉(zhuǎn)向進(jìn)行精確的控制,,這也是改進(jìn)的方向之一[8],。
(3)在具體的硬件和軟件設(shè)計(jì)方面要注意以下問題:①AD轉(zhuǎn)換口IOA0-6要設(shè)置為懸浮式輸入口,;②外部接的電阻不能太小,,否則就能把電壓拉下來,;③液晶顯示有鎖存功能,液晶的數(shù)據(jù)口和AD轉(zhuǎn)換口不能重復(fù),。
參考文獻(xiàn)
[1] 薛鈞義,,張彥斌.凌陽十六位單片機(jī)原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2003.
[2] 李晶皎.嵌入式語音技術(shù)及凌陽16位單片機(jī)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,,2003.
[3] 李正軍.計(jì)算機(jī)控制系統(tǒng)(第一版)[M].北京:機(jī)械工業(yè)出版社,,2005.
[4] 王齊浩.模擬電子技術(shù)基礎(chǔ)(第二版)[M].濟(jì)南:山東科學(xué)技術(shù)出版社,2003.
[5] 嚴(yán)鐘豪,,譚祖根.非電量電測技術(shù)(第2版)[M].北京:機(jī)械工業(yè)出版社,,2003.
[6] 張廣軍.光電測試技術(shù)(第一版)[M].北京:中國計(jì)量出版社,2003.
[7] 周旭,,嚴(yán)玉龍,,王珊珊,等.基于CANopen協(xié)議的輪式機(jī)器人控制系統(tǒng)實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,,2013,,32(23):20-23.
[8] 李歡,魏衡華.基于仿人機(jī)器人的無線視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,,2014,,33(10):88-91,94.