• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Arduino的四自由度機械臂控制

      2022-12-21 07:41:24連百萬韓靜卜周樂濤
      無線互聯(lián)科技 2022年19期
      關(guān)鍵詞:波特率舵機按鍵

      連百萬,韓靜卜,周樂濤

      (西京學院,陜西 西安 710123)

      0 引言

      工業(yè)機器人技術(shù)迅速發(fā)展,越來越多地用于機械、電子、汽車等行業(yè)。在工業(yè)加工中使用機械臂不僅能提高生產(chǎn)率,而且還能降低工人的勞動密度[1]。

      1 系統(tǒng)總體設(shè)計

      本文提出一種四自由度機械臂的設(shè)計,以Arduino為核心,通過按鍵模塊檢測用戶的控制信號,當Arduino對控制信號進行識別后,驅(qū)動舵機控制模塊來操作相應(yīng)的舵機轉(zhuǎn)動,從而帶動整個機械臂的運動[2]。硬件部分主要有Arduino UN3、PWM舵機(MG996R,MG90S)、舵機驅(qū)動模塊PCA9685、5V3A開關(guān)電源、輕觸按鍵。使用本文設(shè)計的基于Arduino的機械臂可以對機械臂進行多關(guān)節(jié)的控制,并且能夠利用按鍵控制其抓取一定體積的物體??傮w設(shè)計框架如圖1所示。

      圖1 總體設(shè)計框架

      1.1 系統(tǒng)功能

      本文基于Arduino的機械臂的設(shè)計,實現(xiàn)了機械臂的控制功能,完整的功能包括以下3點:

      (1)按鍵控制功能。

      基于Arduino的機械臂需要通過輸入器件(按鍵模塊)來獲取用戶的操作要求,再根據(jù)按鍵信號的種類驅(qū)動外圍電路進行控制。

      (2)機械臂四自由度控制功能。

      系統(tǒng)的機械臂采用4個舵機進行轉(zhuǎn)軸控制,可以實現(xiàn)機械臂的四自由度控制。

      (3)抓取物體功能。

      機械臂組件中頂部的舵機用于對金屬爪子進行控制,通過控制金屬爪子,對應(yīng)舵機轉(zhuǎn)動便可控制其抓取一定體積的物體。

      1.2 主控模塊設(shè)計

      本文設(shè)計的基于Arduino的四自由度機械臂無須進行復雜的算法運算,只需要檢測用戶的按鍵輸入信號以及輸出控制信號到舵機驅(qū)動電路。選用的Arduino主控模塊使用的單片機型號為ATmega328,采用最小系統(tǒng)實現(xiàn)基本的控制功能,包括主控芯片、時鐘電路、復位電路。其中復位電路如圖2所示。

      圖2 復位電路

      1.3 舵機驅(qū)動與選擇

      本文選用的是PWM舵機,控制舵機轉(zhuǎn)動時需要向舵機輸入PWM信號。常見的PWM舵機控制方式有兩種:

      (1)處理器使用IO直接輸出PWM信號控制。

      該方式需要處理器選擇具有信號輸出功能的IO連接PWM舵機的控制引腳,通過軟件編程輸出特定的PWM信號。

      (2)使用舵機驅(qū)動模塊控制。

      舵機驅(qū)動模塊內(nèi)部具有驅(qū)動器實現(xiàn)對舵機的精準控制,當控制PWM舵機時,PWM信號由舵機驅(qū)動模塊產(chǎn)生。當處理器通過舵機驅(qū)動模塊,間接對PWM舵機進行控制時,處理器無須與每一路的PWM舵機進行連接,舵機直接與舵機驅(qū)動模塊連接,處理器只需與舵機驅(qū)動模塊的數(shù)字通信接口連接,然后根據(jù)特定的控制協(xié)議向舵機驅(qū)動模塊發(fā)送控制指令,便可實現(xiàn)舵機的簡單控制。處理器通過舵機驅(qū)動模塊控制舵機轉(zhuǎn)動時,一個角度只需發(fā)送一次控制指令便可,無須持續(xù)發(fā)送占用系統(tǒng)資源。同時舵機驅(qū)動模塊由于主要工作是負責PWM舵機的控制,因此常常支持多路PWM舵機的控制。

      本文選擇使用的是:舵機驅(qū)動模塊對PWM舵機進行控制,模塊使用的舵機驅(qū)動芯片為PCA9685。

      1.4 PCA9685舵機驅(qū)動電路

      PCA9685使用的通信協(xié)議是I2C,所以Arduino只需要使用兩個IO口與PCA9685芯片進行連接。PCA9685是一個最大輸出十六路PWM信號的驅(qū)動芯片[3],并且每一路的PWM信號分辨率都能達到12位。PCA9685舵機驅(qū)動電路的電源電路是為模塊提供穩(wěn)定電源的首要電路,主要包括兩部分電路,MP1584電路以及RT9193-33電路。其中MP1584電路如圖3所示。

      圖3 MP1584電路

      1.5 按鍵模塊

      通過輕觸按鍵來獲取用戶的控制需求,由于需要控制4個舵機,每個舵機需要對機械臂進行順時針和逆時針的轉(zhuǎn)動控制,因此四自由度共需要8個輕觸按鍵來獲取用戶的控制信號。當按下輕觸按鍵時,只需要將其中一個按鍵觸點連接到處理器的IO口,同一自由度的另一個按鍵觸點連接到電源或者GND,通過軟件判斷處理器的IO電平高低,便可識別當前輕觸按鍵處于按下或是彈起的狀態(tài)。按鍵電路如圖4所示。

      圖4 按鍵電路

      1.6 軟件設(shè)計

      作品包含了系統(tǒng)初始化軟件設(shè)計、主循環(huán)軟件設(shè)計、Arduino按鍵IO軟件設(shè)計、舵機控制軟件設(shè)計等,軟件設(shè)計流程如圖5所示。

      圖5 軟件設(shè)計流程

      本設(shè)計中系統(tǒng)軟件的初始化程序為輕觸按鍵初始化、舵機驅(qū)動模塊初始化和TTL串行口初始化。由于舵機驅(qū)動模塊(PCA9685)與Arduino使用I2C的協(xié)議來進行通信,因此舵機驅(qū)動模塊的初始化是將PCA9685芯片與I2C接口連接的,Arduino的接口設(shè)置為I2C模式,然后通過I2C通信協(xié)議來設(shè)定模塊的工作頻率,最后為了實現(xiàn)每次系統(tǒng)上電,機械臂可以恢復到初始化狀態(tài),將在舵機驅(qū)動模塊初始化中,為每一路舵機設(shè)置一個默認的初始擺動角度。為了方便整個系統(tǒng)的運行調(diào)試,本文為Arduino主控模塊編寫了串口調(diào)試信息輸出功能,因此在初始化軟件中需要設(shè)置調(diào)試的TTL串行接口。串行通信需要通信方均設(shè)置同樣的數(shù)據(jù)傳輸速率后,才能進行通信。在TTL串行口通信的數(shù)據(jù)傳輸速率稱為波特率。TTL串口初始化主要是將Arduino主控模塊的TTL串行口的通信波特率設(shè)置為與PC進行通信時相同波特率,而常用的通信波特率為9 600 bps,則Arduino主控模塊系統(tǒng)軟件的TTL串行口初始化,主要將串行口通信波特率設(shè)置為9 600 bps。

      2 結(jié)語

      在整個軟硬件系統(tǒng)搭建完成后,需要測試每個舵機對機械臂的控制精度,從而了解整個機械臂的控制精準度[4]。具體測試時,實現(xiàn)使用8個輕觸按鍵分別控制4個舵機按特定角度進行轉(zhuǎn)動,記錄每個舵機的理論控制角度和實際控制角度,統(tǒng)計成表后對數(shù)據(jù)進行分析。其中一路舵機的測試數(shù)據(jù)如表1所示,實際控制角度為多組數(shù)據(jù)中的最大值。

      表1 舵機精度測試

      由表1可以看出,整個Arduino軟件的舵機控制精度均保持在95%以上。因此,本文設(shè)計的基于Arduino的機械臂,控制精準度較高,能夠滿足實際使用需求。

      猜你喜歡
      波特率舵機按鍵
      基于有限狀態(tài)機的按鍵檢測程序設(shè)計
      電子制作(2021年3期)2021-06-16 03:14:26
      CAN 總線波特率自適應(yīng)程序設(shè)計
      智能制造(2020年5期)2020-07-03 06:24:00
      含齒隙彈載舵機的全局反步模糊自適應(yīng)控制
      自動化學報(2019年6期)2019-07-23 01:18:36
      基于FPGA的異步串行通信波特率容錯設(shè)計
      電子測試(2018年7期)2018-05-16 06:27:18
      基于dsPIC單片機的飛艇舵機控制實現(xiàn)
      電子制作(2018年1期)2018-04-04 01:48:14
      基于高速同步485總線通信的多通道舵機控制器設(shè)計
      一種多方向?qū)Ч獍存I結(jié)構(gòu)設(shè)計
      電子制作(2016年1期)2016-11-07 08:43:05
      基于云模型的舵機同步控制
      按鍵的多種狀態(tài)檢測及消抖處理方法
      家電科技(2013年4期)2013-07-09 10:55:08
      C*Core芯片SCI串口波特率容限優(yōu)化
      恩平市| 平湖市| 西乌珠穆沁旗| 威海市| 聂荣县| 托里县| 青龙| 葵青区| 历史| 克拉玛依市| 洞头县| 双江| 昌江| 上蔡县| 惠来县| 惠水县| 西安市| 南投县| 三门县| 怀宁县| 响水县| 襄垣县| 邯郸县| 太白县| 南部县| 韶山市| 顺昌县| 霍林郭勒市| 太保市| 彰武县| 合阳县| 延津县| 洪湖市| 红桥区| 灵丘县| 通江县| 许昌县| 敦煌市| 浦城县| 周至县| 凌海市|