串口接收

通信

目前我们是通过上位机发送指令控制下位机,其实下位机也可以发送一些数据给上位机。

当前下位机也将电机的转速发送给上位。

编码器

编码器内部有一个码盘,码盘上会打一些孔位,目前我们的编码器上的孔位为13个。

孔的两侧有光源发射器和接收器,电机转动过程中,光就通过孔,编码器内部就进行计数。

在单位时间内,我们可以统计出,计数的量,就可以算出转动了多少圈。

简单编码器协议

  • 目前下位机会每秒钟发送2次编码器数据给上位机
  • 数码内容为 电机的转速,单位为 100圈/秒。拿到的值除以100就是 圈/秒

通信实现

调试工具

代码调试

import serial
import struct

if __name__ == '__main__':

    ser = serial.Serial(port='/dev/ttyUSB0', baudrate=115200)

    while True:
        read = ser.read(2)

        data = bytearray([])
        data.extend(read)
        data = struct.unpack('h', data)[0]
        print(data)