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