当前位置: 首页 > news >正文

视觉巡线小车——STM32+OpenMV

系列文章目录

第一章:视觉巡线小车——STM32+OpenMV(一)

第二章:视觉巡线小车——STM32+OpenMV(二)

第三章:视觉巡线小车——STM32+OpenMV(三)

第四章:视觉巡线小车——STM32+OpenMV(四)


目录

系列文章目录

前言

一、开发环境

1、Keil

2、STM32Cube MX

3、OpenMV IDE

4、野火PID串口调试助手

二、硬件准备

1.单片机

2.OpenMV

3、减速电机

4、电机驱动

总结


前言

        该系列文章主要介绍,如何使用STM32+OpenMV来实现一个基于视觉处理的自主巡线小车。主要包括,减速电机的驱动,速度采集,PID速度闭环控制,PID参数整定,OpenMV黑线视觉处理,串口数据解析,最后小车巡线闭环控制。功能还是比较单一,最终只实现了小车的巡线功能,其他功能可自行补充。


一、开发环境

1、Keil

        主要对STM32进行逻辑代码的编写,以及调试。

2、STM32Cube MX

        通过图形化的方式对STM32的外设进行配置,简单方便,节省时间。

3、OpenMV IDE

        对OpenMV进行开发,主要使用Python语言。推荐参考内容:

OpenMV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了_open mv

4、野火PID串口调试助手

        通过使用该助手,可以观察实际值与目标值的曲线进行PID参数的调整,直观便捷。推荐参考内容:

1、野火多功能调试助手上位机 — 野火产品资料下载中心 

2、野火电机驱动板 — 野火产品资料下载中心 

二、硬件准备

1.单片机

        采用STM32F103C8T6即可。STM32F103C8T6内部时钟为72MHz,64个引脚,支持SWD和JTAG下载。存储容量为512K的FLASH,以及64K的SRAM,能够为系统运行和数据存储提供充足的空间。同时STM32F103C8T6支持外部晶振,可做RTC时钟源。拥有11个定时器,其中4个为通用定时器,2个基本定时器和2个高级定时器,以及1个系统定时器和2个看门狗定时器。丰富的通信接口,如I2C,SPI、等,能够满足小车的通信要求。

2.OpenMV

        OpenMV是由美国克里斯团队基于MicroPython发起的开源机器视觉项目,目的是创建低成本,可扩展,使用python驱动的机器视觉模块。OpenMV搭载了MicroPython解释器,使其可以在嵌入式端进行python开发。OpenMV基于32位,ARM Cortex-M7内核的OpenMV-H7,并结合各种摄像头,可以进行多种机器视觉应用的实现,比如人脸检测,物体分类等。

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(四)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL8的备份方案——差异备份(CentOS)
  • 最新 Docker 下载镜像超时解决方案:Docker proxy
  • 【Python数据分析】数据分析三剑客:NumPy、SciPy、Matplotlib中常用操作汇总
  • R语言学习笔记10-向量-矩阵-数组-数据框-列表对比
  • 神经网络中如何优化模型和超参数调优(案例为tensor的预测)
  • 【HarmonyOS开发】弹窗交互(promptAction )
  • opencv,连续拍摄多张图像求平均值减少噪点
  • 均值滤波算法及实现
  • Matlab演示三维坐标系旋转
  • Python基础语法篇(下)+ 数据可视化
  • 【Gin】精准应用:Gin框架中工厂模式的现代软件开发策略与实施技巧(上)
  • 前端表格解析方法
  • Python酷库之旅-第三方库Pandas(037)
  • 【iOS】内存对齐
  • Windows版MySQL5.7解压直用(如何卸载更换位置重新安装)
  • @angular/forms 源码解析之双向绑定
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • ES2017异步函数现已正式可用
  • javascript面向对象之创建对象
  • jquery ajax学习笔记
  • MQ框架的比较
  • Nodejs和JavaWeb协助开发
  • PHP变量
  • STAR法则
  • Vue小说阅读器(仿追书神器)
  • 从零搭建Koa2 Server
  • 工程优化暨babel升级小记
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 设计模式走一遍---观察者模式
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 手写一个CommonJS打包工具(一)
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • Android开发者必备:推荐一款助力开发的开源APP
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 移动端高清、多屏适配方案
  • !!java web学习笔记(一到五)
  • #### golang中【堆】的使用及底层 ####
  • (2)(2.10) LTM telemetry
  • (4.10~4.16)
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (二)PySpark3:SparkSQL编程
  • (排序详解之 堆排序)
  • (七)理解angular中的module和injector,即依赖注入
  • (转)http协议
  • (转)人的集合论——移山之道
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .NET C# 配置 Options
  • .NET CORE Aws S3 使用
  • .NET Core 发展历程和版本迭代
  • .net 获取url的方法
  • .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF!(完整版)
  • .NET成年了,然后呢?
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)