訾詩(shī)宇,李小斌,吳宏岐,劉 霞
(寶雞文理學(xué)院電子電氣工程學(xué)院,寶雞 721016)
隨著智能控制、機(jī)器學(xué)習(xí)等科目的迅速發(fā)展,作為控制論集大成者的機(jī)器人研究也隨之進(jìn)入了一個(gè)新的時(shí)代。人形機(jī)器人是最復(fù)雜的機(jī)器之一,也是人類最早想象的關(guān)于未來的圖景之一。機(jī)器人的研究日趨熱點(diǎn)化,加上筆者對(duì)于機(jī)器人一直以來的興趣,學(xué)校也恰好有這個(gè)條件和機(jī)會(huì)給筆者提供了一套類人機(jī)器套裝,所以有此設(shè)計(jì)。
H1-B型智能機(jī)器人系統(tǒng)主要包括單片機(jī)主控電路、電源模塊電路、發(fā)音模塊電路、步進(jìn)電機(jī)動(dòng)作模塊電路、聲音傳感器模塊電路、光學(xué)傳感器模塊電路、機(jī)器人外形設(shè)計(jì)等,單片機(jī)檢測(cè)到傳感器發(fā)來的信號(hào)并處理后,指示步進(jìn)電機(jī)或音頻模塊做出相應(yīng)動(dòng)作[1]。
之所以要用單片機(jī)控制系統(tǒng),是因?yàn)閱纹瑱C(jī)是將CPU、儲(chǔ)存器、T/C、I/O接口都集成在一塊IC卡上的微型計(jì)算機(jī),可以完成傳統(tǒng)計(jì)算機(jī)可以完成的所有工作。再加上其體積小、成本低廉,成為了微型機(jī)器人(廣義上)最常用的控制系統(tǒng)中心。Abilix 能力風(fēng)暴H1-B機(jī)器人是對(duì)新手十分友好的教學(xué)類機(jī)器人,集電子學(xué)、機(jī)械、計(jì)算機(jī)、仿生學(xué)和傳感器等多方面的知識(shí)于一體。
Abilix頭腦風(fēng)暴H1-B教育機(jī)器人采用了RAM 的 STM32 芯片,內(nèi)核為ARM 32位的Cortex-M3,最高時(shí)序頻率為72MHz,閃存容量為384K,SRAM為64K,2.0-3.6V供電,2個(gè)12位模數(shù)轉(zhuǎn)換器,1μm轉(zhuǎn)換時(shí)間,16個(gè)輸入通道,2個(gè)DMA控制器,USB2.0接口。單片機(jī)與PC之間的通信通過USB串聯(lián)接口實(shí)現(xiàn),通信芯片為SILABSCP2102。
傳感器模塊采用反射式的紅外光電傳感器和聲音傳感器,NXP公司的1114F處理芯片,工作原理為傳感器收端沒有接收到紅外線,表明探頭沒有檢測(cè)到障礙,傳感器輸出低電平到比較器的反相輸入端,反相輸入端的電壓小于正相輸入端電壓,則比較器輸出端輸出高電平,此時(shí)開始避開障礙;接收端接收到紅外線信號(hào),表明探頭檢測(cè)到了障礙,此時(shí)繼續(xù)運(yùn)動(dòng)[2]。此外遇到故障后可以發(fā)出聲音提醒。在傳感器的信號(hào)接收和信號(hào)發(fā)送流程中,由于傳感器采用了一體式模塊化設(shè)計(jì),讓信號(hào)采集和發(fā)送處于一條線路上,使得系統(tǒng)得到了簡(jiǎn)化。
Abilix 頭腦風(fēng)暴 H1-B 型教育機(jī)器人套裝自帶七個(gè)智能電機(jī)模塊作為機(jī)器人的關(guān)節(jié)使用,通過H-CON101控制器可以控制其速度和角度,在無限旋轉(zhuǎn)模式下還可以作為輪子或者風(fēng)車的軸來使用,可以設(shè)置轉(zhuǎn)速快慢,取值范圍在-1023~1023之間,0為電機(jī)停止,-1023為順時(shí)針最大速度,1023為逆時(shí)針最大速度。
Abilix H1-B型機(jī)器人采用充電鋰電池供電,交流電通過適配器和平衡充將220V/60Hz的國(guó)標(biāo)交流電轉(zhuǎn)換為12V/3.5A的直流電,鋰電池的充電電壓為12.6V,輸出為11.1V,單片機(jī)的工作電壓為5V,因此系統(tǒng)控制板配置有Maxim 603穩(wěn)壓芯片,可以將11.1V的電壓濾波2為5V的工作電壓,低壓復(fù)位保護(hù)電路為DS1233。
本機(jī)器人套裝提供的軟件是基于VJC編程環(huán)境的,用戶在已有可視化模板模塊程序基礎(chǔ)上做適當(dāng)修改,使用模板選擇窗口,并選擇已有的模板程序,建立自己的項(xiàng)目,一鍵下載到程序A,或者程序B,來控制機(jī)器人模板程序?qū)崿F(xiàn)的示例項(xiàng)目中的基本功能[3]。在一個(gè)機(jī)器人中,可以使用其中一個(gè)或多個(gè)編輯器,實(shí)現(xiàn)機(jī)器人的編程和控制,也可以使用原有模板或者對(duì)模板進(jìn)行編輯,再創(chuàng)建新的方式實(shí)現(xiàn)機(jī)器人的控制。
機(jī)器人還有一個(gè)對(duì)新手來說很友好的特點(diǎn),全程可以使用圖形化交互式C 語(yǔ)言(VJC)來完成主程序設(shè)計(jì),這種程序設(shè)計(jì)模式避開了繁瑣的代碼編寫,以較為直觀的方法實(shí)現(xiàn)了主程序的構(gòu)建。在本次設(shè)計(jì)中,本人使用的是VJC 5.0,它包含了流程圖編輯器、動(dòng)作編輯器、模型編輯器,可以直接使用原模版程序,也可以對(duì)模板進(jìn)行修改后實(shí)現(xiàn)機(jī)器人的控制,高級(jí)用戶可以使用JC代碼編輯器進(jìn)行編寫開發(fā)。
模塊庫(kù)功能是將復(fù)雜的編程語(yǔ)言轉(zhuǎn)化為簡(jiǎn)單的圖形化模塊,列舉在該庫(kù)中方便用戶拖動(dòng)調(diào)用。筆者使用的環(huán)境是VJC5.1,它安裝簡(jiǎn)單,使用方便,兼容性高。
流程圖編程的模塊分五類,控制器模塊庫(kù),智能電機(jī)模塊庫(kù),集成傳感器模塊庫(kù),控制器模塊庫(kù),程序模塊庫(kù)[4]。
(1)控制器模塊庫(kù)。針對(duì)控制器本身及l(fā)/O接口進(jìn)行檢測(cè)設(shè)置的模塊庫(kù)。
(2)智能電機(jī)模塊庫(kù)。本機(jī)器人常用的執(zhí)行器模塊庫(kù),包含本機(jī)器人主要部分的執(zhí)行(智能電機(jī)的控制,動(dòng)作頁(yè)的執(zhí)行[動(dòng)作編輯器產(chǎn)生])。
(3)集成傳感器模塊庫(kù)。本機(jī)器人常用的傳感器控制模塊庫(kù),包含了所有的傳感器功能。
(4)控制模塊庫(kù)。在用戶程序中,讀取各端口傳感器的返回值一般有兩種用途:儲(chǔ)存和判斷,其中用于判斷的情況居多。在VJC中提供了while語(yǔ)句、if…else…語(yǔ)句、for語(yǔ)句三種判斷方式的流程圖模塊,在控制模塊庫(kù)中,如果要做判斷必須有被比較的對(duì)象和比較參考值。被比較的對(duì)象一般是傳染期的返回值或者更新后的變量值,所以在傳感器模塊庫(kù)中所有具備“讀取”功能的模塊都可以直接轉(zhuǎn)換成條件判斷模塊。
(5)程序模塊庫(kù)。在進(jìn)行較大程序的編寫時(shí),有的時(shí)候總會(huì)有幾條指令重復(fù)出現(xiàn),此時(shí)我們可以將其定義為子程序,程序模塊庫(kù)就是滿足這一需求的庫(kù)。
本文對(duì)H1-B機(jī)器人的控制系統(tǒng)做了粗略的分析,并編寫了上位機(jī)程序用來實(shí)現(xiàn)機(jī)器人的特定動(dòng)作,借助本文章可以對(duì)H1-B型機(jī)器人總體框架有一個(gè)基本的認(rèn)識(shí),并在此基礎(chǔ)上做相應(yīng)的程序編寫。