环境搭建
视觉程序和通信程序
控制程序
遇见问题
0. 先验知识
有一定的 Linux 基础,会基本命令操作。Linux 教程
掌握 Python 语言语法,会编写基本 Python 程序。Python 教程
掌握 OpneCV 计算机视觉库,会用 API 进行基础图像操作。OpneCV 教程
1. 环境搭建
这一步主要安装系统和安装必要的软件。
1.1 系统安装
我在树莓派安装的是 Ubuntu20.04(server)系统,步骤就是用 SD 卡烧录系统镜像文件。
1.2 必要软件安装
烧录好的 SD 卡插进树莓派后,连接显示器,由于只有终端使用不方便,先要安装桌面。
远程连接软件 NoMachine 便于以后没有显示器远程连接。
固定 IP 以后就使用这个 IP 在服务端远程连接树莓派。
2. 视觉和通信程序
2.1 视觉处理步骤
通过亮度和颜色空间筛选出大概的感兴趣区域。
通过图像形态学操作,腐蚀膨胀等得出最终需要区域。
需要的区域是白色,不需要的是黑色。
通过找轮廓操作,获取边缘,然后通过区域特征,筛选出需要的轮廓。
2.2 通信程序
serial.read(1) # 读一字节
serial.write(bytes) # 写 bytes 类型串
2.3 基本控制
控制舵机:定义一个 Servo 类型,可自定义最大脉冲宽度。
2.4 多线程处理
因为串口接收如果放在跟图像处理(时间长)可能不能即时接收到数据,就用多线程。
import threading
thread = threading()
thread.start()
5. 遇到问题
5.1 bytes 类型与 int 类型转换
pyserial 接收,发送函数用的是 bytes 类型,相当于 char 。可以用 bytes.hex() 转为 16 进制数对应的字符串如 b'\xaa' -> 'aa'。可以用 int.tobytes() 转为将 int 类型转为指定字节长的 bytes 类型如:1 -> b'\x01'。可以用 int() 将 bytes 类型转为 int 类型。
5.2 gpiozero 安装后要重启后才成使用
5.3 CH340 模块使用
我的这款模块
![](https://img-blog.csdnimg.cn/img_convert/f2b0800f3ef37461243e8ebd055cc250.jpeg)
使用过程发现插电脑后树莓派再单独连 vcc 不行。如果两方同时供电的话应该只需一方(PC)供电, vcc 与 3.3v 短接起来。