串口接收
通信¶
目前我们是通过上位机发送指令控制下位机,其实下位机也可以发送一些数据给上位机。
当前下位机也将电机的转速发送给上位。
编码器¶
编码器内部有一个码盘,码盘上会打一些孔位,目前我们的编码器上的孔位为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)