0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

19.3-星曈科技 openmv Hopenmv发送五个uchar Openmv+STM32F103C8T6视觉巡线小车 STM32循迹小车系列教程

dfhjgfg 来源:dfhjgfg 作者:dfhjgfg 2024-08-20 11:32 次阅读

功能介绍放开头, 使用便捷无需愁

这是全网最详细、性价比最高的STM32实战项目入门教程,通过合理的硬件设计和详细的视频笔记介绍,硬件使用STM32F103主控资料多方便学习,通过3万字笔记、12多个小时视频、20多章节代码手把手教会你如何开发和调试。让你更快掌握嵌入式系统开发。

**V3.3.0-STM32智能小车 **

**视频: **[https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click]

V3:HAL库开发、功能:PID速度控制、PID循迹、PID跟随、遥控、避障、PID角度控制、视觉控制、电磁循迹、RTOS等功能。

第19章-OpenMV视觉循迹功能

19.3-openmv发送五个uchar

openmv 通过串口发送数据格式:帧头+一个字节 +一个字节+一个字节+一个字节+一个字节+帧尾。

把上面识别的数据发送出来结合电脑串口上位机调试、显示上位机上

前面我们通过openmv 识别到线的相对位置,那么现在要openmv 把上面的信息发给STM32,然后STM32接受到信息知道线位置才能更好控制电机运动。
如何完成通信 发送什么数据
在这里插入图片描述
如何验证发送正确的数据了

把openmv 的串口连接串口上位机,通过上位机接收数据,查看数据是否正确。
在这里插入图片描述
我们看一下代码,主要看串口部分

#.....省略部分代码...
uart = UART(3,115200,bits=8, parity=None, stop=1, timeout_char = 1000)#初始化串口三、波特率115200 TXD:P4PB10 RXD:P5PB11#.....省略部分代码...
def send_five_uchar(c1,c2,c3,c4,c5):#功能发送五个无符号字符(unsigned char)
    global uart;
    data = ustruct.pack("

整个工程代码如下

import pyb, sensor, image, math, time
from pyb import UART
import ustruct
from image import SEARCH_EX, SEARCH_DS
import time
import sensor, lcd
#导入需要的库和模块#使用中可能根据自己情况需要修改的值
#1. GROUND_THRESHOLD 阈值参数 通过工具- >机器视觉- >阈值编辑器- >帧缓冲区 调整出要识别的LAB阈值。
#2.注意是否有下面两句根据自己摄像头调整
  #sensor.set_vflip(True)
  #sensor.set_hmirror(True)
​
​
#sensor.set_contrast(1)#设置相机图像对比度。-3至+3。
#sensor.set_gainceiling(16)#设置相机图像增益上限。2, 4, 8, 16, 32, 64, 128。
​
uart = UART(3,115200,bits=8, parity=None, stop=1, timeout_char = 1000)#初始化串口三、波特率115200 TXD:P4PB10 RXD:P5PB11
​
roi1 = [( 20,   105, 10, 10),
          ( 45,   105, 10, 10),
          ( 75,   105, 10, 10),
          ( 105,  105, 10, 10),
          (130,   105, 10, 10)]#定义一个名为roi1的列表,其中包含了5个元组。每个元组代表了一个矩形感兴趣区域在图像上的位置和大小。
#具体而言,每个元组包含了4个数值依次的含义是:ROI左上角点的x坐标、ROI左上角点的y坐标、ROI的宽度、ROI的高度led = pyb.LED(1) # led = pyb.LED(1)表示led表示红灯。各种状态如下:Red LED = 1, Green LED = 2, Blue LED = 3, IR LEDs = 4.
led.on()         #点亮红灯 板载红灯点亮表示程序得到执行
​
sensor.reset()#初始化相机传感器
sensor.set_pixformat(sensor.RGB565)#设置相机模块的像素模式:sensor.RGB565: 16 bits/像素。
sensor.set_framesize(sensor.QQVGA)#设置图像分辨率、如果改变分辨率也要调整ROI区域。摄像头不同、应用场景不同可以选择不同分辨率。这里使用QQVGA可能画质很胡,但是为了兼容不同型号摄像头我们先使用QQVGA 不影响循迹效果
sensor.skip_frames(time=2000)#跳过指定数目的帧。在这里,设置为跳过2000毫秒(即2秒)的帧。这样可以给传感器一些时间进行初始化和自适应调整。
sensor.set_auto_whitebal(True)#设置为自动白平衡模式。这使得摄像头可以根据场景中的光照条件自动调整图像的白平衡,从而保持图像色彩更加准确和自然。
sensor.set_auto_gain(False)#关闭自动增益模式。通常情况下,开启自动增益会帮助摄像头自动调整亮度,并在低亮度环境下提高图像清晰度。通过设置为False,禁用了这个功能,使用固定增益值。# 注意是否有下面两句根据自己摄像头调整
sensor.set_vflip(True)  #垂直方向翻转 根据自己摄像头和模块安装位置调整 !!!重要不同摄像头是否需要镜像根据实际情况定,如果不需要镜像需要注释掉
sensor.set_hmirror(True) #水平方向反转 根据自己摄像头和模块安装位置调整 !!!重要不同摄像头是否需要镜像根据实际情况定,如果不需要镜像需要注释掉
​
​
#lcd.init() #初始化lcd屏幕#最好根据自己情况设置一下!!!
#GROUND_THRESHOLD=(0, 8, -128, 23, -128, 80)#阈值参数,用于在图像处理中对标物体进行颜色识别分割。在OpenMV IDE软件 工具- >机器视觉- >阈值编辑器- >帧缓冲区 调整出要识别的LAB阈值。
GROUND_THRESHOLD=(0, 30, -22, 23, -128, 80)#阈值参数,用于在图像处理中对标物体进行颜色识别分割。在OpenMV IDE软件 工具- >机器视觉- >阈值编辑器- >帧缓冲区 调整出要识别的LAB阈值。
def send_five_uchar(c1,c2,c3,c4,c5):#功能发送五个无符号字符(unsigned char)
    global uart;
    data = ustruct.pack("

openmv在线运行(即板子需要连接openmv IDE 控制运行)

使用openmv连接外部供电时候一定不能接错接反电源**
在这里插入图片描述
通过SSCOM查看发送的数据 是否和摄像头应该识别的状态一致
在这里插入图片描述

如何脱机运行

然后就可以脱机运行(openmv 板子不连接 openmv IDE 上电自动运行)

  1. USB 把openmv 连接到电脑,点击连接
  2. 点击连接
    在这里插入图片描述
    点击否保留我们的注释内容
    在这里插入图片描述
    然后我们在openmv 对应的U盘就会看到多的main文件,打开可以可以看到是刚刚代码
    在这里插入图片描述

现在我们拔掉USB进行如下连接

然后打开串口软件查看接收到的数据。
在这里插入图片描述
这里我们openmv发送了数据,下面我们使用STM32进行接受

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 小车
    +关注

    关注

    0

    文章

    54

    浏览量

    20828
  • STM32F103C8T6
    +关注

    关注

    106

    文章

    160

    浏览量

    82997
  • 循迹
    +关注

    关注

    0

    文章

    14

    浏览量

    12993
  • openMV
    +关注

    关注

    3

    文章

    39

    浏览量

    9779
收藏 人收藏

    评论

    相关推荐

    第19.1 章-瞳科技 OpenMV视觉循迹功能 超详细OpenMVSTM32单片机通信

    第19.1 章-[瞳科技]OpenMV视觉循迹功能 超详细OpenMVSTM32单片机通信
    的头像 发表于 08-20 11:41 767次阅读
    第19.1 章-<b class='flag-5'>星</b>瞳科技 <b class='flag-5'>OpenMV</b><b class='flag-5'>视觉</b><b class='flag-5'>循迹</b>功能 超详细<b class='flag-5'>OpenMV</b>与<b class='flag-5'>STM32</b>单片机通信

    19.4-STM32接收数据-状态显示在屏幕 openMV寻迹与小车控制 Openmv+STM32F103C8T6视觉线小车

    19.4-STM32接收数据-状态显示在屏幕 openMV寻迹与小车控制 Openmv+STM32F103C8T6视觉
    的头像 发表于 08-20 11:12 707次阅读
    19.4-<b class='flag-5'>STM32</b>接收数据-状态显示在屏幕 <b class='flag-5'>openMV</b>寻迹与<b class='flag-5'>小车</b>控制 <b class='flag-5'>Openmv+STM32F103C8T6</b><b class='flag-5'>视觉</b><b class='flag-5'>巡</b><b class='flag-5'>线</b><b class='flag-5'>小车</b>

    怎样去设计基于STM32F103C8T6循迹避障小车

    基于STM32F103C8T6循迹避障小车完整制作过程由于本人的一小项目,要做一基于STM32
    发表于 08-03 06:20

    如何利用STM32F103C8T6完成循迹避障小车的制作?

    如何利用STM32F103C8T6实现循迹避障小车的制作?
    发表于 10-08 09:09

    基于stm32红外线小车的设计资料分享

    基于stm32的红外线小车(基础版)硬件篇软件篇一、硬件篇1.stmf103c8t6最小系统板2.l298n电机驱动模块3.两
    发表于 12-07 06:22

    基于openMV的追球小车设计资料分享

    程序设计【microPython】2)STM32控制程序设计 【C语言】①对OpenMV发送的数据包进行解析②小车的简单PID控制③系统状态
    发表于 01-14 09:23

    基于STM32F103C8T6线小车制作过程以及出现的问题参考

    基于STM32F103C8T6线小车制作过程以及出现的问题参考
    发表于 01-20 06:56

    基于openmv与51小车串口通信线的相关资料推荐

    **基于openmv与51小车的串口通信线**新手小菜鸡,写的可能不大行,欢迎大神指正。硬件连接:我用的是openmv3(注意供电电压端V
    发表于 01-24 07:26

    基于OPENMVSTM32的识别追踪小车设计实现

    STM32为控制器的寻物小车,不多说,直接进入正题!材料准备小车底盘直流减速电机杜邦线若干7.2V电源L298N模块STM32F407最小系
    发表于 02-25 06:21

    基于stm32的红外线小车(基础版)

    基于stm32的红外线小车(基础版)硬件篇软件篇一、硬件篇1.stmf103c8t6最小系统板2.l298n电机驱动模块3.两
    发表于 11-23 18:21 0次下载
    基于<b class='flag-5'>stm32</b>的红外<b class='flag-5'>巡</b><b class='flag-5'>线</b><b class='flag-5'>小车</b>(基础版)

    基于openmv与51小车的串口通信线

    **基于openmv与51小车的串口通信线**新手小菜鸡,写的可能不大行,欢迎大神指正。硬件连接:我用的是openmv3(注意供电电压端V
    发表于 11-29 11:06 54次下载
    基于<b class='flag-5'>openmv</b>与51<b class='flag-5'>小车</b>的串口通信<b class='flag-5'>巡</b><b class='flag-5'>线</b>

    OPENMVSTM32的识别追踪小车(详细版)之OPENMV

    STM32为控制器的寻物小车,不多说,直接进入正题!材料准备小车底盘直流减速电机杜邦线若干7.2V电源L298N模块STM32F407最小系
    发表于 01-13 12:05 0次下载
    <b class='flag-5'>OPENMV</b>和<b class='flag-5'>STM32</b>的识别追踪<b class='flag-5'>小车</b>(详细版)之<b class='flag-5'>OPENMV</b>端

    【DIY】基于OpenMVSTM32追球小车

    简单识别程序设计【microPython】2)STM32控制程序设计 【C语言】①对OpenMV发送的数据包进行解析②小车的简单PID控制③
    发表于 01-14 13:01 39次下载
    【DIY】基于<b class='flag-5'>OpenMV</b>的<b class='flag-5'>STM32</b>追球<b class='flag-5'>小车</b>

    使用stm32f103c8t6设计的蓝牙小车

    使用stm32f103c8t6设计的蓝牙小车,具有前进后退,左转右转等功能
    发表于 08-07 16:08 25次下载

    第19.2章-科技 openmv H7 plus openmv视觉循迹功能-完成视觉识别指定区域 OpenMV视觉模块循迹 STM32F103C8T6视觉线

    第19.2章-【科技】openmv H7 plus openmv视觉循迹功能-完成
    的头像 发表于 08-20 11:28 385次阅读