树莓派4B控制伺服电机 串口转485通信

树莓派4B控制伺服电机 TTL串口转485通信 python

1. 树莓派串口设置

1.设置树莓派的串口输出,先确保树莓派4B的串口输出正常,可以串口连接电脑测试收发,按照下面两个教程走即可。

树莓派3B+ 串口使用大全(实现串口通信功能)_Stay Hungry Stay Foolish-CSDN博客

STM32和树莓派串口透传_不脱发的程序猿-CSDN博客_stm32和树莓派

2. 电路连接

  1. 需要模块:ttl转485模块,淘宝10rmb

模块型号

  1. 接线 。上引脚图,虽然型号不一样,但是方向是一致的,我这边由于给树莓派接了风扇,所以4,6引脚被占用,依次连接:

    • 转接板VCC 到 树莓派4 引脚
    • 转接板RXD 到 树莓派 8 引脚
    • 转接板TXD 到 树莓派10 引脚
    • 转接板GND 到 树莓派14引脚
    • 转接板B- 到 电机485B
    • 转接板A+ 到 电机485A

引脚图

3. python程序

  1. 根据电机通讯手册(电机型号为光毓RMD-S-9015)确定通讯内容,我这边直接从电机驱动程序中把速度控制数据复制下来了

电机界面

  1. 将通讯消息复制到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()
    
  2. 运行效果,电机定时反转,远程启动,所以屏幕没有显示

电机运动

版权声明:本文为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. 电路连接

  1. 需要模块:ttl转485模块,淘宝10rmb

模块型号

  1. 接线 。上引脚图,虽然型号不一样,但是方向是一致的,我这边由于给树莓派接了风扇,所以4,6引脚被占用,依次连接:

    • 转接板VCC 到 树莓派4 引脚
    • 转接板RXD 到 树莓派 8 引脚
    • 转接板TXD 到 树莓派10 引脚
    • 转接板GND 到 树莓派14引脚
    • 转接板B- 到 电机485B
    • 转接板A+ 到 电机485A

引脚图

3. python程序

  1. 根据电机通讯手册(电机型号为光毓RMD-S-9015)确定通讯内容,我这边直接从电机驱动程序中把速度控制数据复制下来了

电机界面

  1. 将通讯消息复制到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()
    
  2. 运行效果,电机定时反转,远程启动,所以屏幕没有显示

电机运动

版权声明:本文为CSDN博主「Jsong-233」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44450263/article/details/121741696

生成海报
点赞 0

Jsong-233

我还没有学会写个人说明!

暂无评论

相关推荐

树莓派4B控制伺服电机 串口转485通信

树莓派4B控制伺服电机 TTL串口转485通信 python 1. 树莓派串口设置 1.设置树莓派的串口输出,先确保树莓派4B的串口输出正常,可以串口连接电脑测试收发,按照下面两个教程走即可。 树

ESP32开发之旅——AS608指纹识别模块

ESP32开发之旅——AS608指纹识别模块) 前言 本文中,您将了解到如何使用ESP32调用AS608指纹识别模块。需要注意的是,本文中的ESP32是使用Micro Python进行开发的,(同时

nodemcu 模块用mciropython 使用SD卡

使用sd卡可以扩大8266的存储器,使用时候很重要的是接线。 其他很容易。下面程序就是初始化、挂载sd卡、读sd卡里面main.cpp里面的代码行。 import machine, sdcard, os from machine