0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

旭日x3派首百嘗鮮——無線串口通信控制舵機(jī)

地瓜機(jī)器人 ? 2022-08-11 11:29 ? 次閱讀

1. 問題的提出

在設(shè)計(jì)機(jī)器人結(jié)構(gòu)時(shí),我們常常會用到舵機(jī),作為旭日x3派“首百嘗鮮”活動的試用者,本次實(shí)驗(yàn)我準(zhǔn)備用旭日x3派控制一臺舵機(jī),為了方便讀者了解實(shí)驗(yàn)的設(shè)計(jì)意圖,下面先提出幾個(gè)基本問題以供討論:

(1)什么是舵機(jī)?舵機(jī)是一種能夠按照指定角度轉(zhuǎn)動的電動執(zhí)行器。

(2)舵機(jī)的結(jié)構(gòu)?舵機(jī)一般由馬達(dá)、減速齒輪組、電位器控制電路組成。

(3)怎樣控制舵機(jī)動作?給舵機(jī)提供一個(gè)特定的PWM信號,舵機(jī)就可以旋轉(zhuǎn)到指定的位置。

pYYBAGDVmC2AGf_XAAJ3YsnJ2zo337.png

(4)怎樣用旭日x3派遠(yuǎn)程控制一臺舵機(jī)?旭日x3派本身有兩個(gè)PWM脈沖信號端口(32、33),受限于供電電流,一般不建議直接控制舵機(jī),所以我們需要借助MCU驅(qū)動舵機(jī)運(yùn)動,而旭日派的任務(wù)就是給MCU發(fā)送指令,通常我們想到的就是通過串口(旭日派UART3的14、15端口)發(fā)送指令,僅僅為了串口硬線連接而把旭日派與MCU“綁定”到一起,倒不如通過無線串口通訊方便實(shí)用,所以本文準(zhǔn)備探索通過無線串口通信控制一臺舵機(jī)。

(5)有沒有具體方案?如果采用普通舵機(jī),還要考慮MCU的編程,為了簡化起見,采用UART串行總線舵機(jī),只需要向舵機(jī)控制板發(fā)送指令,舵機(jī)就會按照指定角度旋轉(zhuǎn),這樣就大大簡化了編程。對于無線串口部分,我們采用無線發(fā)送接收模塊實(shí)現(xiàn)。

2. 總體方案

具體方案如下圖所示,筆記本電腦通過wifi(SSH無線網(wǎng)絡(luò)ip地址)連接并登陸旭日x3派,實(shí)現(xiàn)筆記本端到旭日派端的無線連接,旭日x3派與串口控制板采用無線串口收發(fā)器,實(shí)現(xiàn)旭日派與MCU控制板之間無線傳遞“信息”。

pYYBAGL0ZkOAU3tCAAf3SYkl63s543.pngpYYBAGL0ZkeAO6DRAEGMQtovwYA717.png

3. 控制編程

下面借鑒了官方python例程,并做了修改:

#!/usr/bin/env python3# coding = utf-8import sysimport osimport timeimport serialimport serial.tools.list_portsdef serialTest():    print("List of enabled UART:")    os.system('ls /dev/tty[a-zA-Z]*')    uart_dev= '/dev/ttyS3' #定義串口端口    baudrate = 115200 #波特率    val = 1500  #舵機(jī)初始位置(0位)    incr = 100  #舵機(jī)轉(zhuǎn)位遞增(減)步長    try:        ser = serial.Serial(uart_dev, int(baudrate), timeout=1) # 1s timeout    except Exception as e:        print("open serial failed!\n")    print(ser)    print("Starting demo now! Press CTRL+C to exit")    while True:  #舵機(jī)一秒轉(zhuǎn)位一次,到達(dá)限位后反轉(zhuǎn),往復(fù)轉(zhuǎn)動                if val >= 2500:  #高限位                incr = -incr        if val <= 0:     #低限位                incr = -incr        val += incr        val1 = str(val)  #轉(zhuǎn)換成字符串        if val <= 1000:                test_data = '#000P'+'0'+val1+'T1000!'                  #當(dāng)val<1000時(shí),前位自動補(bǔ)0,即:若val=500,則字符串為“0500”,實(shí)際發(fā)送字符串為:#000P0500T1000!        else:                test_data = '#000P'+val1+'T1000!'        write_num = ser.write(test_data.encode('UTF-8'))   #發(fā)送到串口        print(test_data)        time.sleep(1)    ser.close()    return 0if __name__ == '__main__':    if serialTest() != 0:        print("Serial test failed!")    else:        print("Serial test success!")

4. 運(yùn)行效果

在筆記本端運(yùn)行MobaXterm,運(yùn)行python程序,效果如圖所示:

poYBAGL0ZtGACaJ0AAM2CiVocN0906.gif

pYYBAGL0aCSAXyZ2AaRNBnU4wu0667.gif

5. 挖坑時(shí)間

請旭友們幫幫忙,我的這篇文章里有一處錯誤和一處疑惑,幫我解答一下唄!

(1)電機(jī)轉(zhuǎn)動到某個(gè)限位時(shí),會停幾秒,為什么?代碼有哪里需要改進(jìn)?

(2)筆記本不需要用串口線連接旭日x3派,開機(jī)直接用充電寶給旭日派插電,Ubuntu要做什么設(shè)置,MobaXterm又要采用什么連接方式?


本文轉(zhuǎn)自地平線開發(fā)者社區(qū)

原作者:David988

原鏈接:https://developer.horizon.ai/forumDetail/106482341031035906

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6030

    文章

    44499

    瀏覽量

    632168
收藏 人收藏

    評論

    相關(guān)推薦

    Simplelink? Wi-Fi? CC3x20、CC3x3x無線更新

    電子發(fā)燒友網(wǎng)站提供《Simplelink? Wi-Fi? CC3x20、CC3x3x無線更新.pdf》資料免費(fèi)下載
    發(fā)表于 09-23 11:56 ?0次下載
    Simplelink? Wi-Fi? CC<b class='flag-5'>3x</b>20、CC<b class='flag-5'>3x3x</b><b class='flag-5'>無線</b>更新

    ESP32控制舵機(jī)的正反轉(zhuǎn)原理是什么

    舵機(jī)是一種將電信號轉(zhuǎn)換為機(jī)械運(yùn)動的設(shè)備,廣泛應(yīng)用于機(jī)器人、無人機(jī)、汽車等領(lǐng)域。ESP32是一款功能強(qiáng)大的微控制器,具有豐富的外設(shè)接口和高性能的處理能力,可以方便地控制舵機(jī)實(shí)現(xiàn)正反轉(zhuǎn)等動
    的頭像 發(fā)表于 08-20 09:13 ?767次閱讀

    舵機(jī)控制程序案例

    舵機(jī)控制板是串口通訊的(TTL 電平),可以使用任何串口設(shè)備給它發(fā)指令,從而控制舵機(jī)。
    發(fā)表于 04-24 18:36 ?4次下載

    串口通信如何控制步進(jìn)電機(jī)轉(zhuǎn)動?

    在自動化控制系統(tǒng)中,步進(jìn)電機(jī)的控制是一項(xiàng)重要的技術(shù)任務(wù)。通過串口通信控制步進(jìn)電機(jī)轉(zhuǎn)動,可以實(shí)現(xiàn)遠(yuǎn)程控制
    的頭像 發(fā)表于 04-19 16:23 ?1714次閱讀

    寶馬(中國)召回部分進(jìn)口X3、2系和X4車型

    此次型號覆蓋的具體數(shù)量包括:2023年8月29日生產(chǎn)的進(jìn)口X3車型1輛,2023年9月21日至9月25日生產(chǎn)的進(jìn)口2系車型2輛,以及同一期間生產(chǎn)的進(jìn)口X4車型48輛。
    的頭像 發(fā)表于 03-01 14:56 ?746次閱讀

    舵機(jī)控制例程、原理介紹

    電子發(fā)燒友網(wǎng)站提供《舵機(jī)控制例程、原理介紹.zip》資料免費(fèi)下載
    發(fā)表于 02-23 14:02 ?1次下載

    【飛騰4G版免費(fèi)試用】飛騰4G版開發(fā)板套裝測試及環(huán)境搭建

    時(shí),調(diào)試串口位置為 J2,串口終端程序必須設(shè)置為:波特率:115200;數(shù)據(jù)位:8;奇偶校驗(yàn):無;停止位:1 8TX10RX12地 飛騰4G版開發(fā)板套裝文件下載鏈接: 度網(wǎng)盤鏈接:
    發(fā)表于 01-22 00:47

    【核桃1B 開發(fā)板試用體驗(yàn)】+串口及MP3音樂播放控制

    核桃開發(fā)板除了提供調(diào)試串口外,還提供了UART2來供用戶使用,如串口屏、數(shù)據(jù)記錄模塊、超射波測距、MP3播放模塊等。 UART2的位置如圖1所示,所占用的引腳為PI5和PI6。 圖1
    發(fā)表于 01-05 18:20

    無線串口監(jiān)控怎么連接

    監(jiān)控是通過利用無線通信技術(shù)來替代傳統(tǒng)的有線串口連接,實(shí)現(xiàn)遠(yuǎn)程讀寫串口設(shè)備的數(shù)據(jù)。它利用了無線網(wǎng)絡(luò)和串口服務(wù)器的相互配合,將
    的頭像 發(fā)表于 01-04 15:18 ?670次閱讀

    香橙AIpro嘗鮮計(jì)劃來啦!四重福利玩法搶AIpro開發(fā)板、京東卡

    OrangePiAIpro已正式發(fā)布。為了讓更多的朋友體會到OrangePiAIpro的澎湃算力,香橙聯(lián)合華為昇騰開啟了OrangePiAIpro嘗鮮計(jì)劃!香橙的粉絲們可參與報(bào)名嘗鮮
    的頭像 發(fā)表于 12-28 16:44 ?738次閱讀
    香橙<b class='flag-5'>派</b>AIpro<b class='flag-5'>嘗鮮</b>計(jì)劃來啦!四重福利玩法搶AIpro開發(fā)板、京東卡

    什么是舵機(jī)?舵機(jī)的種類有哪些?

    、 **RS-485 **串口舵機(jī) 采用平衡發(fā)送和差分接收,具有良好的抗干擾能力,信號能傳輸上千米。一條總線上允許掛載多個(gè)舵機(jī),且總線上每個(gè)舵機(jī)都有一個(gè)唯一的ID(0~250),
    發(fā)表于 12-12 09:47

    TogetherROS系統(tǒng)中如何配置網(wǎng)絡(luò)連接

    無論是旭日X3,還是TogetherROS,在正式使用之前,都還需要進(jìn)行一些必要的配置,完善必要的功能模塊,提供完整的算力支持,達(dá)到最佳狀態(tài)。 網(wǎng)絡(luò)連接 第一個(gè)配置,是無線網(wǎng)絡(luò)連接。
    的頭像 發(fā)表于 12-01 15:39 ?442次閱讀
    TogetherROS系統(tǒng)中如何配置網(wǎng)絡(luò)連接

    TogetherROS目標(biāo)檢測運(yùn)行方法

    到了旭日X3板子上; 2.有一個(gè)HDMI的顯示器也連接到了旭日X3板子上,它主要用于顯示后續(xù)
    的頭像 發(fā)表于 11-28 16:41 ?452次閱讀
    TogetherROS目標(biāo)檢測運(yùn)行方法

    分布式網(wǎng)絡(luò)分組和通信

    分布式網(wǎng)絡(luò)分組 沒問題,ROS2提供了一個(gè)DOMAIN的機(jī)制,就類似分組一樣,處于同一個(gè)DOMAIN中的計(jì)算機(jī)才能通信,我們可以在電腦和旭日X3端中加入這樣一句配置,即可將兩者分配到
    的頭像 發(fā)表于 11-27 15:59 ?380次閱讀
    分布式網(wǎng)絡(luò)分組和<b class='flag-5'>通信</b>

    地平線機(jī)器人開發(fā)UART串口通信程序

    運(yùn)行示例程序 接下來就可以運(yùn)行串口通信的例程了。 $ sudo python3 test_serial.py 實(shí)物接線完成后,在旭日X3
    的頭像 發(fā)表于 11-27 10:55 ?368次閱讀