大家好啊,我是情谊,今天我们来介绍一下我最近设计的stm32产品,我们在今年七月份的时候参加了光电设计大赛,我们小队使用的就是stm32的智能送餐小车,虽然止步于省赛,但是还是一次成长的经验吧,那么我也来分享一下我们小队这次的产品设计,希望里面的一些模块可以给你们一点的参考建议。
我先说说我的博客文章的设计吧,我准备的是以模块的方式展示代码,但是文章的最后我会附带我们小队设计的stm32小车的完整代码
接下来我再说说我的小车实现的功能:
1二维码识别,使用openmv扫描对应颜色的二维码后,oled屏幕上显示对应的菜品名称,并且小车识别追踪该颜色物体
2压力传感器感知物体重量,当压力传感器的重量超过一定值后小车才会运动,注意!这个功能和上面的二维码识别并不冲突,上面扫码后openmv只能识别到该颜色,但是小车却不能动,只有压力传感器有示数才会运动
3APP点单,我们小组是使用ESP8266wifi模块制作了一个APP来模拟点单
4温度传感器时刻感知环境温度,这个模块的功能其实就是在送餐途中进行保温使用的
5蜂鸣器播报,客户下单后蜂鸣器会进行鸣叫
6红外光管避障,我们小组并未在避障方面进行过多的功能,所以只有简单的避障功能:小车识别到前方有物体,然后停下来,等到前方没有物体后继续运动
以上就是我的产品的全部功能了
注意注意!!!
我文章末尾上传的代码只有功能1和功能2和功能6的代码,功能3我只能负责给你们说说怎么做,如果实在需要代码,请联系我,这部分代码不是免费的,功能4和功能5的代码不在我的电脑上,所以我就不进行讲解了。
器件端
首先声明一下:
本次实验的芯片是基于stm32c8t6
本次实验使用的openmv型号为openmvH7
OpenMV开发环境搭建
OpenMV IDE是用于OpenMV Cam的集成开发环境,具有强大的文本编辑器,调试终端和带有直方图显示的帧缓冲区查看器。
官方下载链接:Download – OpenMV,截至本文写作时间,最新版本为v4.2.1。
本次实验接口为串口三
代码端
openmv
import sensor, image, time
from pyb import UART
from pyb import LED
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time=2000)
# 初始化LED灯
led_red = LED(1)
led_green = LED(2)
led_blue = LED(3)
# 初始化UART
uart = UART(3, 9600)
clock = time.clock()
last_qr_color = None
while True:
clock.tick()
img = sensor.snapshot()
# 寻找二维码
qr_codes = img.find_qrcodes()
if qr_codes:
# 获取第一个二维码的颜色信息