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

(4)怎樣用旭日x3派遠程控制一臺舵機?旭日x3派本身有兩個PWM脈沖信號端口(32、33),受限于供電電流,一般不建議直接控制舵機,所以我們需要借助MCU驅動舵機運動,而旭日派的任務就是給MCU發送指令,通常我們想到的就是通過串口(旭日派UART3的14、15端口)發送指令,僅僅為了串口硬線連接而把旭日派與MCU“綁定”到一起,倒不如通過無線串口通訊方便實用,所以本文準備探索通過無線串口通信控制一臺舵機。
(5)有沒有具體方案?如果采用普通舵機,還要考慮MCU的編程,為了簡化起見,采用UART串行總線舵機,只需要向舵機控制板發送指令,舵機就會按照指定角度旋轉,這樣就大大簡化了編程。對于無線串口部分,我們采用無線發送接收模塊實現。
2. 總體方案
具體方案如下圖所示,筆記本電腦通過wifi(SSH無線網絡ip地址)連接并登陸旭日x3派,實現筆記本端到旭日派端的無線連接,旭日x3派與串口控制板采用無線串口收發器,實現旭日派與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”,實際發送字符串為:#000P0500T1000! else: test_data = '#000P'+val1+'T1000!' write_num = ser.write(test_data.encode('UTF-8')) #發送到串口 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又要采用什么連接方式?
本文轉自地平線開發者社區原作者:David988
原鏈接:https://developer.horizon.ai/forumDetail/106482341031035906
-
單片機
+關注
關注
6076文章
45495瀏覽量
670407
發布評論請先 登錄
華為路由 X3 Pro火了!業界首發Wi-Fi7+和透明天線,1299元起
舵機伺服編碼器
PWM信號是如何控制舵機的?
工業大舵機和普通舵機的區別?
什么是舵機?舵機的種類有哪些?
奇瑞風云X3系列雙車上市
舵機怎么控制正反,舵機怎么使用?
舵機如何控制?
PWM 型號舵機控制方法!
韻樂Vinal X3/X5卡拉OK音頻處理器調音軟件簡介
RDK X3 帶飛的智能護理系統:讓機器人秒變貼心小棉襖
有人這CAN機器手臂控制板的原理圖嗎?CAN舵機ID無法被識別
從模擬到數字:舵機控制技術的飛躍!
HMC-XTB110 無源x3倍頻器,24-30GHz輸入技術手冊
旭日x3派首百嘗鮮——無線串口通信控制舵機
評論