树莓派4B控制伺服电机 TTL串口转485通信 python
1. 树莓派串口设置
1.设置树莓派的串口输出,先确保树莓派4B的串口输出正常,可以串口连接电脑测试收发,按照下面两个教程走即可。
树莓派3B+ 串口使用大全(实现串口通信功能)_Stay Hungry Stay Foolish-CSDN博客
STM32和树莓派串口透传_不脱发的程序猿-CSDN博客_stm32和树莓派
2. 电路连接
- 需要模块:ttl转485模块,淘宝10rmb
-
接线 。上引脚图,虽然型号不一样,但是方向是一致的,我这边由于给树莓派接了风扇,所以4,6引脚被占用,依次连接:
- 转接板VCC 到 树莓派4 引脚
- 转接板RXD 到 树莓派 8 引脚
- 转接板TXD 到 树莓派10 引脚
- 转接板GND 到 树莓派14引脚
- 转接板B- 到 电机485B
- 转接板A+ 到 电机485A
3. python程序
- 根据电机通讯手册(电机型号为光毓RMD-S-9015)确定通讯内容,我这边直接从电机驱动程序中把速度控制数据复制下来了
-
将通讯消息复制到python程序中发送,观察能否正常工作,先在电脑上用usb转485先测试过了,在树莓派上使用时,直接把初始化的串口号改为
/dev/ttyAMA0
即可import serial import time #根据系统平台选择port port = 'COM3' if sys.platform == "win32" else '/dev/ttyAMA0' ser = serial.Serial(port, 115200) data_speed1 = '3E A2 01 04 E5 E8 03 00 00 EB' # 电机正转 data_speed2 = '3E A2 01 04 E5 18 FC FF FF 12' # 电机反转 def main(): # 控制电机定时反向旋转 while True: send_data = bytes.fromhex(data_speed1) ser.write(send_data) # 电机正转,速度控制 time.sleep(2) send_data = bytes.fromhex(data_speed2) ser.write(send_data) # 电机反转,速度控制 time.sleep(2) if __name__ == '__main__': main()
-
运行效果,电机定时反转,远程启动,所以屏幕没有显示
版权声明:本文为CSDN博主「Jsong-233」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44450263/article/details/121741696
树莓派4B控制伺服电机 TTL串口转485通信 python
1. 树莓派串口设置
1.设置树莓派的串口输出,先确保树莓派4B的串口输出正常,可以串口连接电脑测试收发,按照下面两个教程走即可。
树莓派3B+ 串口使用大全(实现串口通信功能)_Stay Hungry Stay Foolish-CSDN博客
STM32和树莓派串口透传_不脱发的程序猿-CSDN博客_stm32和树莓派
2. 电路连接
- 需要模块:ttl转485模块,淘宝10rmb
-
接线 。上引脚图,虽然型号不一样,但是方向是一致的,我这边由于给树莓派接了风扇,所以4,6引脚被占用,依次连接:
- 转接板VCC 到 树莓派4 引脚
- 转接板RXD 到 树莓派 8 引脚
- 转接板TXD 到 树莓派10 引脚
- 转接板GND 到 树莓派14引脚
- 转接板B- 到 电机485B
- 转接板A+ 到 电机485A
3. python程序
- 根据电机通讯手册(电机型号为光毓RMD-S-9015)确定通讯内容,我这边直接从电机驱动程序中把速度控制数据复制下来了
-
将通讯消息复制到python程序中发送,观察能否正常工作,先在电脑上用usb转485先测试过了,在树莓派上使用时,直接把初始化的串口号改为
/dev/ttyAMA0
即可import serial import time #根据系统平台选择port port = 'COM3' if sys.platform == "win32" else '/dev/ttyAMA0' ser = serial.Serial(port, 115200) data_speed1 = '3E A2 01 04 E5 E8 03 00 00 EB' # 电机正转 data_speed2 = '3E A2 01 04 E5 18 FC FF FF 12' # 电机反转 def main(): # 控制电机定时反向旋转 while True: send_data = bytes.fromhex(data_speed1) ser.write(send_data) # 电机正转,速度控制 time.sleep(2) send_data = bytes.fromhex(data_speed2) ser.write(send_data) # 电机反转,速度控制 time.sleep(2) if __name__ == '__main__': main()
-
运行效果,电机定时反转,远程启动,所以屏幕没有显示
版权声明:本文为CSDN博主「Jsong-233」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44450263/article/details/121741696
暂无评论