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