Openmv识别红绿灯并与STM32通信

前言

我们在自己动手做项目或者参加比赛时摄像头与STM32的搭配使用时非常常见的,但是因为刚开始用或者没有用习惯的原因而导致我们在使用的过程中经常受到受阻,这期我就来一篇两者搭配使用的过程。

工作原理

1、工作原理
Openmv识别红绿灯并与STM32通信的工作原理是通过串口通信来实现的。首先,在Openmv端,它需要通过内置的视觉算法来识别红绿灯。一旦识别到红绿灯,Openmv会根据预设的模式来执行相应的操作,并将数据打包发送给STM32。
在STM32端,它会根据接收到的数据包来解析Openmv所识别的红绿灯信息,并根据这些信息来执行相应的控制操作,比如说控制机械臂去抓取物体,控制小车进行前进后退等。

2、注意事项

在使用Openmv进行视觉识别时,需要注意光源的影响。因为Openmv的相机是定焦相机,如果在较暗的环境下拍摄,可能会导致拍摄不清楚。因此,需要保证光源充足或者使用补光灯等设备来提高拍摄亮度或者是改变颜色阈值进行调节。
在进行STM32与Openmv的串口通信时,需要注意数据的传输速率和数据包的格式。如果传输速率过慢或者数据包格式不正确,可能会导致通信失败或者数据丢失等问题。
在使用STM32控制机械臂等设备时,需要注意安全问题。因为机械臂等设备具有一定的危险性,如果不慎操作不当,可能会导致设备损坏或者人员受伤等问题。因此,需要对设备进行安全保护或者使用相应的安全措施。

引脚连接(这里我用的是openmv的串口三和STM32的串口一)

Openmv的P4,VCC,GND分别与STM32的PA10,VCC,GND连接,两者的P5和PA9,可接可不接。

Openmv代码部分

这打印出呗检测到的颜色的中心坐标和颜色标志数字,这需要注意的就是串口发送数据的格式与STM32串口接收端的数据格式要相互对应

from machine import Pin
import sensor, image, time,math,pyb
from pyb import UART,LED
import json
import ustruct


# 初始化摄像头
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 20)
sensor.set_auto_gain(False) # 颜色跟踪必须关闭自动增益
sensor.set_auto_whitebal(False) # 颜色跟踪必须关闭白平衡
sensor.set_brightness(5000)
#sensor.skip_frames(time = 20)       # 跳过帧,不屏蔽的话有些时候会报错

#程序开始
uart = UART(3,9600)   #定义串口3变量
uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters

#红绿蓝颜色集合
thresholds = [(33, 77, 51, 127, 127, -121),#(0, 53, 127, 39, -128, 127), # generic_red_thresholds
              (60, 38, -50, -7, 127, -92),#(30, 7, 127, -32, 127, 14),#(30, 100, -64, -8, -32, 32), # generic_green_thresholds#
              (100, 72, -128, 127, 127, 43),#(100, 0, 127, -128, 28, 127)#(46, 13, -70, -27, 93, -44),# generic_yello_thresholds
              ]

clock = time.clock(
  • 10
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电子小芯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值