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