一、所用材料
- 树莓派4B
- 树莓派官方摄像头
- STM32F103C8T6最小系统板
二、实现功能
在树莓派上用OpenCV对摄像头中的图像进行处理,将图像处理后的数据通过串口通信给到下位机STM32F103C8T6,再由下位机给出控制信号,利用pid算法实现对小车运动轨迹的控制。硬件连接实物如下图所示。(本文章只讲述到树莓派与下位机之间通信的部分)
三、实现过程
3.1 树莓派
1、配置串口
可以参考 学习笔记一:树莓派与STM32的UART通信 这篇博客的第一章,里面详细讲述了如何改变串口的映射和mini串口调试助手的安装及使用。其中在我安装好minicom后,在终端输入 minicom -D /dev/ttyAMA0 后确实出现了提示没有权限的情况,这个时候需要现在终端输入 sudo chmod 777 /dev/ttyAMA0 再输入 minicom -D /dev/ttyAMA0 就可以正常打开miniocm了。
按照上面这篇博客的步骤,确保树莓派和电脑之间可以正常通信后再进行下一步操作。
2、调用OpenCV
在使用OpenCV前可以再确认一下树莓派的通信是否正常,可以试着运行下面的代码。 如果串口通正常,将会间接收到从1-100的数字。
import serial
import time
ser = serial.Serial('/dev/ttyAMA0',115200)
num = 1
while True:
ser.write(str(int(num)).encode() + '\r\n')
num += 1
if num > 100:
num = 1
time.sleep(0.2)