一、需求描述
通过 python 实现对云台的控制,使用到的相关模块:
1、pyserial,串口模块,用于连接串口,并通过串口发送指令
2、bytes,内置模块,用于将 16 进制的指令转化成字节流
二、实现代码:版本 v1
1、详细过程见代码备注
2、关键一步是发送数据时的处理,使用到了 bytes,请查阅“三”
3、环境搭建根据云台的说明书进行,这里采用的是串口连接设备
import serial
from common.config import serial_com
class SerialHandler(object):
def __init__(self, port=serial_com, baudrate=9600, parity="无",
bytesize=8, stopbits=1):
"""
串口初始化,设置串口相关参数
:param port: str 类型, 例:COM1
:param baudrate: int 类型,取值范围:[4800, 9600, 19200,
18400, 57600, 115200]
:param parit: str 类型,N:"无", O:"奇", E:"偶"
:param bytesize: int 类型,取值范围:[7, 8]
:param stopbits: int 类型,取值范围:[1, 2]
"""
# 根据上位机显示,转换成 serial 库识别的参数
if parity == "无":
parity = 'N'
elif parity == "奇":
parity = 'O'
elif parity == "偶":
parity = 'E'
else:
pass
self.serial_handler = serial.Serial()
self.serial_handler.port = port