【树莓派+OpenCV+STM32】智能小车巡线_提取线路数据并通过串口通信传输

本文介绍了如何在树莓派4B上使用OpenCV对摄像头图像进行处理,并通过串口与STM32F103C8T6通信,实现小车轨迹控制。详细步骤包括配置串口、调用OpenCV进行图像处理和轮廓检测,展示了从树莓派到下位机的完整通信过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、所用材料

  1. 树莓派4B
  2. 树莓派官方摄像头
  3. 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)
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值