赞
踩
通过制作小车,可以get到:
1、直流减速电机的控制;
2、编码器测速;
3、STM32——定时器(PWM、正交编码、中断)、串口接收发送等;
4、OpenMV——图像二值化,线性回归处理等;
5、PID算法——速度环、转向环控制以及串级使用;
6、数据解析——串口接收处理。
该系列文章主要介绍,如何使用STM32+OpenMV来实现一个基于视觉处理的自主巡线小车。主要包括,减速电机的驱动,速度采集,PID速度闭环控制,PID参数整定,OpenMV黑线视觉处理,串口数据解析,最后小车巡线闭环控制。功能还是比较单一,最终实现了小车的视觉巡线功能,其他功能需要自行二次开发,如识别线路分支,指示灯提示,按键切换状态,OLED显示参数,陀螺仪检测姿态等等。
主要对STM32进行逻辑代码的编写,以及调试。
通过图形化的方式对STM32的外设进行配置,简单方便,节省时间。
对OpenMV进行开发,主要使用Python语言。推荐参考内容:
OpenMV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了_open mv
通过使用该助手,可以观察实际值与目标值的曲线进行PID参数的调整,直观便捷。推荐参考内容:
采用STM32F103C8T6即可。这里主要用到该芯片的定时器、中断、串口等功能,定时器主要用于生成PWM、编码器解码、产生定时中断;串口主要用来接收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遍历每一个色块,就可以获取他们所有信息,而这些,只需要两行代码!
主要作用:进行图像处理,对黑线图像进行二值化处理,再对其及进行线性回归处理等。
推荐参考内容:
减速电机需要自带编码器,方便测速。至少需要两个减速电机加一个万向轮进行辅助,有兴趣的可以挑战两轮平衡小车巡线。
TB6612是一款功能强大的直流电机驱动器,其内部高度集成化,使其运用电路设计简单。
AIN1 | AIN2 | PWMA | Motor |
1 | 0 | 1 | 正转 |
0 | 1 | 1 | 反转 |
1 | 1 | 1 | 刹车 |
0 | 0 | 0 | 停车 |
X | X | X | 刹车 |
欢迎查看!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。