国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

17自由度仿真人形教育機(jī)器人控制系統(tǒng)設(shè)計

2020-05-08 09:36:52楊劍黃澤鵬吳昶華李昆
機(jī)械工程師 2020年4期
關(guān)鍵詞:通信協(xié)議舵機(jī)上位

楊劍,黃澤鵬,吳昶華,李昆

(華南理工大學(xué) 廣州學(xué)院,廣州510800)

0 引 言

目前機(jī)器人應(yīng)用主要面向制造業(yè)和娛樂行業(yè),隨著全國各地機(jī)器人大賽的舉辦和普及,各大、中、小學(xué)校越來越重視機(jī)器人教育與培訓(xùn)。本文設(shè)計了一款應(yīng)用于普及機(jī)器人知識的17自由度仿真人形教育機(jī)器人。

1 系統(tǒng)概述

控制器系統(tǒng)以ARM7處理器為核心通過串口下載和傳輸控制信息,主要由17路舵機(jī)控制驅(qū)動電路接口、串口通信調(diào)試電路、遙控接口及電源等幾部分組成。通過UBT12HB 舵機(jī)總線半雙工串口UART通信協(xié)議,采用定時器產(chǎn)生17路PWM驅(qū)動信號,控制機(jī)器人各種姿態(tài)下的舵機(jī)角度和速度。該系統(tǒng)具有運動形態(tài)新穎、運動效果優(yōu)異、操作反應(yīng)靈敏、體態(tài)特征豐富等特點,可應(yīng)用于機(jī)器人知識普及和教學(xué)。

2 硬件設(shè)計

2.1 舵機(jī)控制設(shè)計

舵機(jī)是一種位置角度伺服驅(qū)動器,含控制電路、驅(qū)動馬達(dá)、差速器、位置檢測器和外殼等部件,其中控制電路上有用于驅(qū)動馬達(dá)與進(jìn)行信號通信的IC電路,內(nèi)部齒輪一般采用金屬材質(zhì),能夠在提供大轉(zhuǎn)矩的同時保證結(jié)構(gòu)上的穩(wěn)固。舵機(jī)結(jié)構(gòu)如圖1所示。

2.2 舵機(jī)選擇

本文采用的舵機(jī)是UBT12HB 串行總線伺服舵機(jī),舵機(jī)輸出轉(zhuǎn)矩為0.8 N·m(6.5 V),1.2 N·m (8.5 V),最大可以提供0.198 s/60°的轉(zhuǎn)速,角度偏轉(zhuǎn)范圍為-30°~240°。滿載電流為0.9 A,采用半雙工串口UART通信協(xié)議。URAT串口波特率:115 200;數(shù)據(jù)位位:8;停止位:1;校驗位:0;流量控制:NONE。采用TTL電平多層連接,共用總線,最多可以連接240個舵機(jī)。舵機(jī)主要通信協(xié)議部分參數(shù)如表1所示。

圖1 舵機(jī)結(jié)構(gòu)圖

2.3 機(jī)器人控制上位機(jī)設(shè)計

上位機(jī)通過winform平臺下提供的接口發(fā)送串口數(shù)據(jù),經(jīng)簡單硬件轉(zhuǎn)換成半雙工串口傳輸信號與舵機(jī)通信。17自由度串行總線舵機(jī)機(jī)器人控制上位機(jī)的主要功能如圖2所示。

上位機(jī)依靠串口通信,在進(jìn)行通信之前需要對串口進(jìn)行檢測,檢查舵機(jī)機(jī)器連接狀態(tài)及通信狀態(tài)是否穩(wěn)定,在連接穩(wěn)定之后才能進(jìn)行下一步的操作。舵機(jī)控制模塊由舵機(jī)編號(id)選擇、角度、速度,以及批處理功能模塊組成,能夠?qū)?7路總線舵機(jī)組中的單個或多個進(jìn)行單獨或批量控制和通信。在控制信號發(fā)送之前需要對控制信號及指令進(jìn)行檢查校驗其合法性及是否具有實際意義。篩選過濾無用指令,計算整理后由串口發(fā)送之后交給串口控制模塊檢查通信情況。

圖2 上位機(jī)整體主要功能圖

表1 舵機(jī)主要通信協(xié)議部分參數(shù)

3 軟件設(shè)計

3.1 界面設(shè)計

軟件主界面如圖3所示:左半界面是與17路串行伺服舵機(jī)實際對應(yīng)位置圖,用于顯示實際控制中的舵機(jī)機(jī)器人的狀態(tài),以及能夠以某些交互方式提高舵機(jī)選擇效率與定位;右側(cè)為數(shù)據(jù)控制與舵機(jī)操控面板,右下為信息面板,用于顯示各種交互信息和反饋數(shù)據(jù)。

圖3 軟件主界面

3.2 串口檢測

在Visual C#平臺下,利用.NET Framework 中的SerialPort組件,可以實現(xiàn)底層的串口通信,使用之前引入相應(yīng)的命名空間System.IO.Ports,利用SerialPort屬性:PortName、BaudRate、DataBits、StopBits、Parity 等 進(jìn) 行 串口的配置,采用DataReceived方法進(jìn)行數(shù)據(jù)接收和通信檢查。配置部分代碼如圖4所示。

由于SerialPort接收數(shù)據(jù)是同步阻塞調(diào)用,所以使用Invoke自動創(chuàng)建線程,接收來自串口的數(shù)據(jù)之后通過緩存數(shù)據(jù)幀再在程序線程內(nèi)部檢查格式,匹配舵機(jī)機(jī)器人的應(yīng)答指令。

3.3 串口通信與校驗

在舵機(jī)機(jī)器人的連接過程中,需要進(jìn)行通信的應(yīng)答,來判斷舵機(jī)組的連接情況與通信情況,在判斷之前需要校驗接收數(shù)據(jù)的格式,部分代碼如圖5所示。

3.4 伺服舵機(jī)控制指令

根據(jù)舵機(jī)通信協(xié)議,將某些控制指令定義在屬性上,部分代碼如圖6所示。

代碼中的幀頭內(nèi)容對應(yīng)舵機(jī)文檔協(xié)議,stop、test、read等字節(jié)數(shù)組內(nèi)存放常用指令,在程序內(nèi)部通過線程使用相應(yīng)的屬性,可以達(dá)到一個基本的控制效果。

圖4 Serial Port配置部分代碼

3.5 指令格式轉(zhuǎn)換

上位機(jī)通過串口發(fā)送字節(jié)指令,接收來自舵機(jī)機(jī)器人應(yīng)答信號處理通信問題,但是程序內(nèi)部字節(jié)指令不能直觀地進(jìn)行操作和交互,需轉(zhuǎn)換成字符、十進(jìn)制或者其他格式交互操作,部分指令格式轉(zhuǎn)換的代碼如圖7所示。

常見的幾種轉(zhuǎn)換方法有textWork16、str10to16、str16to10等,由于交互界面上的指令數(shù)據(jù)基本是text,在獲取輸入數(shù)據(jù)之后,調(diào)用相關(guān)方法將string指令轉(zhuǎn)換為byte指令存入指令表中以獲取操作數(shù),并將指令缺失的字節(jié)操作碼補(bǔ)全。

3.6 指令編輯

圖5 串口檢查校驗部分代碼圖

圖6 通信1協(xié)議部分圖

圖7 部分指令轉(zhuǎn)換方法代碼

上位機(jī)的指令編輯可以分為單路伺服舵機(jī)的指令編輯與多路舵機(jī)指令的批量編輯。部分編輯的指令存放如圖8所示。

圖8 部分指令存放結(jié)構(gòu)圖

單個舵機(jī)的指令編輯比較簡單,并沒有太多的操作限制,對于批量舵機(jī)的操作,關(guān)系到舵機(jī)機(jī)器人的姿態(tài)及批量操作中的舵機(jī)id,會存在重復(fù)、不規(guī)范、無意義的情況,所以需要對姿態(tài)的操作做一個結(jié)構(gòu)上的定義和編輯上的限制。

4 姿態(tài)動作設(shè)計

對于17路伺服舵機(jī)機(jī)器人的姿態(tài)(主要是在某一時刻狀態(tài)和連續(xù)的動作時對相關(guān)舵機(jī)的操作角度、回讀角度、持續(xù)時間、延時等情況)進(jìn)行描述,舵機(jī)組控制指令編輯流程如圖9所示。

圖9 舵機(jī)組控制指令編輯流程圖

對于舵機(jī)機(jī)器人姿態(tài)控制,可以分為靜態(tài)和動態(tài)狀態(tài),連續(xù)的靜態(tài)姿態(tài)組成一個基本的動態(tài),多個動態(tài)組成一個動作指令集,對于多個靜態(tài)姿態(tài)組成的動態(tài),在編輯的時候?qū)⑵浞譃槎鄠€動作組,不同的動作組之間互不影響,相同的動作組內(nèi)應(yīng)該是舵機(jī)的最小集合,對于指令的編輯的增、刪、改,有跨組編輯和組內(nèi)編輯,應(yīng)該考慮不同情況下操作合法性和合理性。

指令編輯操作完成后需要更新數(shù)據(jù),其次刷新現(xiàn)有動作組,然后提交給異步線程處理,可以在異步線程中執(zhí)行指令或者保存指令,在執(zhí)行指令時可能會有一些誤差,可以在執(zhí)行過程中給指令進(jìn)度添加一進(jìn)度條,方便對當(dāng)前執(zhí)行狀態(tài)的觀察及后續(xù)數(shù)據(jù)調(diào)整。部分執(zhí)行代碼如圖10所示。

圖10 部分執(zhí)行指令進(jìn)度代碼

5 結(jié)語

區(qū)別于普通的通過控制板控制伺服舵機(jī),文章研究了在.net平臺下利用總線串口直觀地控制一種17伺服舵機(jī)組成的機(jī)器人姿態(tài),通過指令集及對指令集的操作,可以直接獲取到控制所需的字節(jié)指令,方便指令的移植及機(jī)器人姿態(tài)的研究,對于獲取到的動作指令,內(nèi)容包括舵機(jī)號、舵機(jī)角度、速度及持續(xù)時間,得到的數(shù)據(jù)可以適用于其他型號的總線型伺服舵機(jī),能夠縮短舵機(jī)組動作姿態(tài)開發(fā)的進(jìn)度。

猜你喜歡
通信協(xié)議舵機(jī)上位
含齒隙彈載舵機(jī)的全局反步模糊自適應(yīng)控制
特斯拉 風(fēng)云之老阿姨上位
車迷(2018年12期)2018-07-26 00:42:22
基于dsPIC單片機(jī)的飛艇舵機(jī)控制實現(xiàn)
電子制作(2018年1期)2018-04-04 01:48:14
基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設(shè)計
基于高速同步485總線通信的多通道舵機(jī)控制器設(shè)計
“三扶”齊上位 決戰(zhàn)必打贏
基于ZigBee和VC上位機(jī)的教室智能監(jiān)測管理系統(tǒng)
基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計與研究
基于NS-3的PLC多頻通信協(xié)議仿真平臺設(shè)計與實現(xiàn)
電測與儀表(2016年2期)2016-04-12 00:24:52
以新思路促推現(xiàn)代農(nóng)業(yè)上位
蕉岭县| 蕲春县| 商南县| 正宁县| 壶关县| 札达县| 额济纳旗| 平武县| 贡山| 蛟河市| 社旗县| 九江市| 来安县| 扬中市| 卫辉市| 榆林市| 吴忠市| 昂仁县| 南川市| 五指山市| 曲靖市| 巨野县| 桂平市| 封丘县| 廊坊市| 前郭尔| 宁化县| 本溪| 泰安市| 平罗县| 南召县| 浪卡子县| 东乌| 平山县| 寿宁县| 上犹县| 遂平县| 钦州市| 亳州市| 北票市| 正镶白旗|