?

一種簡易仿人類行為機器人的設計

2020-07-22 11:15林俊武周雨成鄭劍鋒
榆林學院學報 2020年4期
關鍵詞:舵機藍牙指令

林俊武,周雨成,伍 坪,鄭劍鋒

(三明學院 機電工程學院,福建 三明 365004)

當下機器人技術的研究越來越多樣化及智能化,仿人機器人技術的研究成為一種新的熱點,相對于傳統的輪式機器人技術,仿人機器人技術更接近于人類的行為,有較明顯的優勢。人類的身體結構是經過長期自然進化后的結果和選擇,實踐證明不管是對于直立行走、快速跑步,還是更復雜的運動項目,比如跳舞以及各種競技的體育項目,在整個自然界里無不說明人類具有更加合理性的身體結構。仿人型機器人在現代日常生活中具有越來越廣泛的應用,其目的就是替代人類完成各種各樣的工作。一方面可以應用于生產發展領域,比如可應用于軍事任務、災難救治、生活娛樂、科學探測、服務業等各個領域,另一方面就是在家庭服務和醫療康復等領域的應用,在當今老齡化越來越突出的社會中,利用仿人機器人能夠有效地替代人類完成各種的家務以及看護工作,這樣就可以把人們從各種瑣碎工作中解脫出來,從而安心工作,因此研究如何讓仿人機器人實現高效的人類行為并為人類服務具有重要的意義[1-2]。

基于此,本文設計了一種基于STM32單片機簡易的仿人類行為機器人,可以用來替代人類完成災難救治或者生活娛樂等任務,具有很好的實用價值。

1 系統結構簡介

本設計采用 STM32F103C8T6作為系統的控制核心,主要由MPU6050芯片實時監控和采集模塊、CDS5516數字舵機人體動作的模仿模塊、藍牙通信模塊等與外圍電路組成,其系統結構框圖如圖1所示。

圖1 系統結構框圖

由圖1可以看出,系統的工作原理:首先單片機從MPU-6050傳感器模塊獲取到人體姿態的位置數據,即在給定三維直角坐標系中關節點的x,y,z的坐標,并由此計算出三軸對應的角度,并通過藍牙從機向驅動板的藍牙主機傳輸數據,然后通過STM32對接收的的數據進行信息處理,下達指令控制CDS5516,從而啟動數字舵機,開始模仿人的手部動作。為了避免了數據的混亂和出錯,直到舵機執行的動作的完成之后,再獲取采集下一組的信號,繼續模仿,這樣周而復始完成各種模仿動作。

2 系統硬件設計

2.1 STM32F103C8T6控制模塊

本設計采用STM32F103C8T6作為系統的控制核心,其原理圖如圖2所示,此芯片共有48個引腳,系統中所用到的引腳都被標注著網絡標號,并連接到對應的相同標號上。其中的引腳RX1和TX1網絡標號中的PA2~PA3中的2根引腳分別連接到CDS5516的通訊線上,以此進行數據的傳輸。其中的引腳VDD_1~VDD_3和VDDA全部連接到3.3 V電源線上,而VSS_1~VSS_3和VSSA都接連到地線上,并且電源到地都要有接連濾波電容來進行耦合濾波以提高系統的穩定性。雖然芯片中提供有內置晶振,設計中的可以不連接外部晶振,但是內部晶振比較不穩定,為了提高晶振的穩定性,在PD0和PD1接了晶振電路,如圖3所示,再通過給外部電路進行倍頻,給系統提供工作的時鐘。STM32F103的啟動模式分別由第20腳(BOOT0)和44腳(BOOT1)來進行控制,其中系統的BOOT0腳接到地,選擇主閃存存儲器作為啟動區域,BOOT1腳作為普通強推挽輸出口來使用。

圖2 控制模塊原理圖

圖3 晶振電路圖

2.2 舵機驅動模塊設計

目前舵機一般有數字舵機和模擬舵機兩種,但數字舵機和模擬舵機其實在結構上差異并不大,主要區別在于數字舵機多了個微處理器和晶振,它可以對動脈沖送到舵機之前就對信號進行處理,并根據舵機本身設定的數值參數進行處理,這樣激勵舵機馬達的動力可以根據傳來的指令包來進行調整,適應了不同功能的需求和增強了舵機的性能,并且數字舵機相對于模擬舵機發送動脈處的頻率高得多,數字舵機無反應期更小,舵機馬達響應發射機信號的頻率更加的快,可以提供更好的精度和緊固力。

基于數字舵機的優勢,而且模擬舵機的動作控制主要通過信號線輸入PWM波,通過改變占空比的值來決定舵機轉動的角度,容易產生誤差,且每個舵機的機械特性都不是線性的,這樣給舵機調試帶來了不便。因此,本設計中采用的是型號為CDS5516的數字舵機,它是一種集總線式的通訊接口、電機、伺服驅動為一體的數字舵機,在控制方面具有較高的可靠性和靈活性,其原理結構圖如圖4所示,其中引腳MCU_TXD和MCU_RXD分別是單片機用來給CDS5516接發數據的兩個引腳,但收發信號都是接在CDS5516的SIG引腳上,因此根據分時復用原理,加入了控制收發信號的開關,其中MCU_TXEN和MCU_RXEN連接在單片機上,是控制74HC126使能的引腳,作為控制收發(MCU_RXD和MCU_TXD)的開關。CDS5516的電源范圍為6.8 V~14 V,它的電源外接了8.4V,而設計中實際接了9 V。因為設計中選用的微處理器的輸出電壓為3.3 V,所以為了防止信號的傳輸出錯,需要在單片連接SIG這條信號線上加5 V的上拉電源和10KΩ左右的上拉電阻限流。

在設計中則直接用繼電器來代替74HC126的開關作用,其驅動原理圖如圖5所示,其中繼電器的電源和地端接了個續流二極管,這樣以續流的形式消耗掉繼電器中電感帶來的高感應電動勢,保護了三極管和單片機引腳不被擊穿。

圖4 CDS5516舵機驅動電路連接原理圖

圖5 CDS5516驅動設計原理圖

2.3 MPU-6050硬件模塊

MPU6050芯片是一種具有實時監控和采集的模塊[3],其結構如圖6所示。

圖6 MPU-6050硬件模塊

它是一種整合了6軸運動處理的模塊,可以適應不同的工作環境,串口的波特率有9 600 bps與115 200 bps,適合所有單片機和電腦連接。它的航向角、橫滾角、府仰角都為±180°且分辨率為0.01°。具有體積小、響應快的特點,它的工作電壓為3 V~5 V,可以直接用與STM32相同的電源進行供電。STM32主要通過串口1的引腳與其RX和TX連接和通訊,其中的RST和B0直接懸空,SCL和SDA是I2C的時鐘和數據。該模塊位于采集模塊的STM32板上,用來采集人肢體的運動角度。

3 系統軟件設計

3.1 通信協議

3.1.1 CDS5516數字舵機通信協議

CDS5516采用異步串行總線通訊方式,理論上可以選用UART異步串行方式來控制254個機器人舵機,每個舵機可以設置不同的ID,然后就可以用尋址的方式獨立控制串聯起來的舵機。CDS5516上電后有0.6S不響應期,這個時間段不接收單片機的任何指令[4]。CDS5516有指令包格式和應答包格式。

指令包格式包括有字頭、ID、數據長度、指令、參數和校驗等6部分,字頭為指令的前兩個字節,當舵機接受到兩個0XFF時候,才接受這個指令包,它的ID號有254個。第254個ID是廣播ID,可以使每個舵機都接受到指令。數據長度為發送參數的長度再加上2,校驗和:校驗和為Check Sum = ~ (ID + Length + Instruction + Parameter1 + ... Parameter N),校驗位只取8位,計算和如果超出255,則取最低的位。

應答包格式包括有字頭、ID、數據長度、當前狀態、參數和校驗和等6部分,應答包包含舵機的當前狀態ERROR,工作不正常的話會通過這個字節體現出來,字節為0的時候則表示無出錯,否則出錯,各位的高電平分別代表:BIT6:指令出錯;BIT5:過載;BIT4:校驗和錯;BIT3:指令超范圍;BIT2:過熱;BIT1:角度超范圍;BIT0:過壓欠壓。

3.1.2 HC-05藍牙通信協議

藍牙是一種常用的無線通信,它的收發設備中的芯片價格便宜,功耗低,射程是由應用來決定的、理論上是無限的,但是由于墻壁對信號的衰弱和信號反射的相互干擾,藍牙大多數都應用在室內。

藍牙通信是指兩個藍牙模塊或藍牙設備之間進行通信,進行數據通信的雙方一個是主機,一個是從機。數據處理主要過程:串口發生的數據只能一次一個字節數據在0~255位內,而采集的數據有負數且角度在0~300°范圍,所以只能用軟件進行處理,符號可以在程序中轉換為正數,只要要發送的數據中加個判斷正負的標志位即可,然后一次發送數據長度不夠的可以用16位的變量保存采集到的數據,然后發送兩次,接著驅動板接受到數據后在把數據給組合起來,這樣就解決了數據的處理。通過在電腦的串口助手上給兩個藍牙模塊發送AT指令,做好配對后就可以進行數據的透傳。每個藍牙的配對方式都有點不一樣,本設計中選用的是HC-05[5]。

3.1.3 MPU-6050通信協議

MPU-6050的通信協議中的數據格式有校驗位、起始位、數據位、停止位等組成,通信中需要注意的是溫度和歐拉角的數據要放大100倍后輸出,而加速度計和陀螺儀數據則沒有放大輸出。另外假設串口的波特率為9 600,大概1 ms一個字節,那么幀頭加幀尾一共24字節,則串口輸出時間需要24 ms,這樣就超過了數據的更新頻率(通常為50 Hz),就會導致模塊的出錯,所以可以適當降低其更新的頻率來解決,可以把更新頻率降為10 Hz左右。

3.2 軟件流程框圖設計

3.2.1 驅動模塊程序

驅動模塊的功能是給機器人輸入激勵,用來控制機器人的行動,其程序流程框圖如圖7所示,驅動程序過程就是剛開始先給機器人舵機上電反應時間,等待接收采集板角度數據,數據接收到后立馬發送激勵信號給CDS5516舵機,控制對應的舵機的運作實現跟蹤功能。為了提高抗干擾能力,在程序中加了閉環控制系統。在程序的數據位中加入了校驗位,以判斷執行是否完成的指令,進而進行反饋,若是異常將不執行這條指令的操作,并繼續請求采集板發送數據,若是都完成,則發送接收標志到采集板,繼續接收采集板數據。

圖7 驅動板程序流程圖

3.2.2 采集模塊程序

采集板主要是負責信號的采集,其程序流程框圖如圖8所示,其中延遲3秒的目的是為了讓角度傳感器上電自動校準數據,程序比較簡單,只要采集到數據,接收到驅動的標志信號,通過藍牙發送數據,再繼續判斷是否接收到下一次數據發送請求標志,再繼續發送。

圖8 采集板程序框圖

4 系統調試

系統調試是確定舵機的控制參數,經過不斷的測試確定了硬件的復位狀態的數值和對應動作的控制數據,如表1所示。各個舵機的ID號,輸入的信號值為0到1 023,對應的角度為0°到300°,復位值是機器人模仿人立正姿勢的狀態,通過傳輸±復位值來控制舵機的向前行動或者向后運動。

表1 舵機的初始數值

通過調試實現了語音控制機器人的驅動,可以語音敬禮和舉起右手,機器人則分別做出敬禮和舉起右手的姿勢,如圖9所示。語音跳舞,機器人則伴著音樂節奏舞蹈。

圖9 機器人敬禮手勢

5 結論

本文以STM32F103C8T6作為系統的控制核心,結合實時監控和采集模塊、數字舵機人體動作的模仿模塊、藍牙通信模塊等,設計了一款簡易的仿人類行為機器人,可以用來災難救治、生活娛樂、軍事任務區域。測試表明,該機器人具有測試性能好,成本低,操作簡單等優點,具有很好的實用價值。

猜你喜歡
舵機藍牙指令
藍牙音箱的直線之美
《單一形狀固定循環指令G90車外圓仿真》教案設計
含齒隙彈載舵機的全局反步模糊自適應控制
簡單、易用,可玩性強Q AcousticsBT3藍牙音箱
適合自己的才是最好的 德生(TECSUN) BT-50藍牙耳機放大器
基于dsPIC單片機的飛艇舵機控制實現
基于高速同步485總線通信的多通道舵機控制器設計
中斷與跳轉操作對指令串的影響
基于云模型的舵機同步控制
一種基于滑窗的余度指令判別算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合