1. 問題的提出
在設計機器人結構時,我們常常會用到舵機,作為旭日x3派“首百嘗鮮”活動的試用者,本次實驗我準備用旭日x3派控制一臺舵機,為了方便讀者了解實驗的設計意圖,下面先提出幾個基本問題以供討論:
(1)什么是舵機?舵機是一種能夠按照指定角度轉動的電動執(zhí)行器。
(2)舵機的結構?舵機一般由馬達、減速齒輪組、電位器和控制電路組成。
(3)怎樣控制舵機動作?給舵機提供一個特定的PWM信號,舵機就可以旋轉到指定的位置。

(4)怎樣用旭日x3派遠程控制一臺舵機?旭日x3派本身有兩個PWM脈沖信號端口(32、33),受限于供電電流,一般不建議直接控制舵機,所以我們需要借助MCU驅動舵機運動,而旭日派的任務就是給MCU發(fā)送指令,通常我們想到的就是通過串口(旭日派UART3的14、15端口)發(fā)送指令,僅僅為了串口硬線連接而把旭日派與MCU“綁定”到一起,倒不如通過無線串口通訊方便實用,所以本文準備探索通過無線串口通信控制一臺舵機。
(5)有沒有具體方案?如果采用普通舵機,還要考慮MCU的編程,為了簡化起見,采用UART串行總線舵機,只需要向舵機控制板發(fā)送指令,舵機就會按照指定角度旋轉,這樣就大大簡化了編程。對于無線串口部分,我們采用無線發(fā)送接收模塊實現(xiàn)。
2. 總體方案
具體方案如下圖所示,筆記本電腦通過wifi(SSH無線網(wǎng)絡ip地址)連接并登陸旭日x3派,實現(xiàn)筆記本端到旭日派端的無線連接,旭日x3派與串口控制板采用無線串口收發(fā)器,實現(xiàn)旭日派與MCU控制板之間無線傳遞“信息”。


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 #舵機初始位置(0位) incr = 100 #舵機轉位遞增(減)步長 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: #舵機一秒轉位一次,到達限位后反轉,往復轉動 if val >= 2500: #高限位 incr = -incr if val <= 0: #低限位 incr = -incr val += incr val1 = str(val) #轉換成字符串 if val <= 1000: test_data = '#000P'+'0'+val1+'T1000!' #當val<1000時,前位自動補0,即:若val=500,則字符串為“0500”,實際發(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. 運行效果
在筆記本端運行MobaXterm,運行python程序,效果如圖所示:


5. 挖坑時間
請旭友們幫幫忙,我的這篇文章里有一處錯誤和一處疑惑,幫我解答一下唄!
(1)電機轉動到某個限位時,會停幾秒,為什么?代碼有哪里需要改進?
(2)筆記本不需要用串口線連接旭日x3派,開機直接用充電寶給旭日派插電,Ubuntu要做什么設置,MobaXterm又要采用什么連接方式?
本文轉自地平線開發(fā)者社區(qū)原作者:David988
原鏈接:https://developer.horizon.ai/forumDetail/106482341031035906
-
單片機
+關注
關注
6067文章
44990瀏覽量
650370
發(fā)布評論請先 登錄
韻樂Vinal X3/X5卡拉OK音頻處理器調(diào)音軟件簡介
RDK X3 帶飛的智能護理系統(tǒng):讓機器人秒變貼心小棉襖

有人這CAN機器手臂控制板的原理圖嗎?CAN舵機ID無法被識別
從模擬到數(shù)字:舵機控制技術的飛躍!

HMC-XTB110 無源x3倍頻器,24-30GHz輸入技術手冊

Cadence推出Palladium Z3與Protium X3系統(tǒng)
【RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用】+03+UART+控制舵機+控制LED
【RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用】+02+舵機控制+串口通訊
CC13x1x3、CC26x1x3 Simplelink?無線MCU技術參考手冊

舵機技術新突破,無線控制更自由!
串口通信協(xié)議解析 串口通信應用實例
Simplelink? Wi-Fi? CC3x20、CC3x3x無線更新

評論