视觉巡线小车——STM32+OpenMV
系列文章目录
第一章:视觉巡线小车——STM32+OpenMV(一)
第二章:视觉巡线小车——STM32+OpenMV(二)
第三章:视觉巡线小车——STM32+OpenMV(三)
第四章:视觉巡线小车——STM32+OpenMV(四)
视觉巡线小车(STM32+OpenMV)——总结
通过制作小车,可以get到:
1、直流减速电机的控制;
2、编码器测速;
3、STM32——定时器(PWM、正交编码、中断)、串口接收发送等;
4、OpenMV——图像二值化,线性回归处理等;
5、PID算法——速度环、转向环控制以及串级使用;
6、数据解析——串口接收处理。
前言
一、开发环境
1、Keil
2、STM32Cube MX
3、OpenMV IDE
4、野火PID串口调试助手
二、硬件准备
1.单片机
2.OpenMV
3、减速电机
4、电机驱动
总结
前言
该系列文章主要介绍,如何使用STM32+OpenMV来实现一个基于视觉处理的自主巡线小车。主要包括,减速电机的驱动,速度采集,PID速度闭环控制,PID参数整定,OpenMV黑线视觉处理,串口数据解析,最后小车巡线闭环控制。功能还是比较单一,最终实现了小车的视觉巡线功能,其他功能需要自行二次开发,如识别线路分支,指示灯提示,按键切换状态,OLED显示参数,陀螺仪检测姿态等等。
效果展示:视觉巡线小车(STM32+OpenMV)——总结
一、开发环境
1、Keil
主要对STM32进行逻辑代码的编写,以及调试。
2、STM32CubeMX
通过图形化的方式对STM32的外设进行配置,简单方便,节省时间。
3、OpenMV IDE
对OpenMV进行开发,主要使用Python语言。推荐参考内容:
OpenMV下载 | 星瞳科技
OpenMV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了_open mv
4、野火PID串口调试助手
通过使用该助手,可以观察实际值与目标值的曲线进行PID参数的调整,直观便捷。推荐参考内容:
1、野火多功能调试助手上位机 — 野火产品资料下载中心
2、野火电机驱动板 — 野火产品资料下载中心
二、硬件准备
1.单片机
采用STM32F103C8T6即可。这里主要用到该芯片的定时器、中断、串口等功能,定时器主要用于生成PWM、编码器解码、产生定时中断;串口主要用来接收OpenMV的数据和发送数据到上位机。
2.OpenMV
OpenMV是由美国克里斯团队基于MicroPython发起的开源机器视觉项目,目的是创建低成本,可扩展,使用python驱动的机器视觉模块。OpenMV搭载了MicroPython解释器,使其可以在嵌入式端进行python开发。OpenMV基于32位,ARM Cortex-M7内核的OpenMV-H7,并结合各种摄像头,可以进行多种机器视觉应用的实现,比如人脸检测,物体分类等。OpenMV搭载MicroPython解释器,这允许你在嵌入式上使用Python来编程 (Python 3 to be precise). Python使机器视觉算法的编程变得简单得多。比如,直接调用find_blobs()方法,就可以获得一个列表,包含所有色块的信息。 使用python遍历每一个色块,就可以获取他们所有信息,而这些,只需要两行代码!
主要作用:进行图像处理,对黑线图像进行二值化处理,再对其及进行线性回归处理等。
推荐参考内容:
OpenMV | 星瞳科技
OpenMV Cam | 星瞳科技
10分钟快速上手 · OpenMV中文入门教程
3、减速电机
减速电机需要自带编码器,方便测速。至少需要两个减速电机加一个万向轮进行辅助,有兴趣的可以挑战两轮平衡小车巡线。
4、电机驱动
TB6612是一款功能强大的直流电机驱动器,其内部高度集成化,使其运用电路设计简单。
AIN1 |
AIN2 |
PWMA |
Motor |
1 |
0 |
1 |
正转 |
0 |
1 |
1 |
反转 |
1 |
1 |
1 |
刹车 |
0 |
0 |
0 |
停车 |
X |
X |
X |
刹车 |
完结
欢迎查看!!!
第一章:视觉巡线小车——STM32+OpenMV(一)
第二章:视觉巡线小车——STM32+OpenMV(二)
第三章:视觉巡线小车——STM32+OpenMV(三)
第四章:视觉巡线小车——STM32+OpenMV(四)
视觉巡线小车(STM32+OpenMV)——总结
作者:画凉ZL