当前位置: 首页 > 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(四)

相关文章:

视觉巡线小车——STM32+OpenMV

系列文章目录 第一章:视觉巡线小车——STM32OpenMV(一) 第二章:视觉巡线小车——STM32OpenMV(二) 第三章:视觉巡线小车——STM32OpenMV(三) 第四章:视觉巡…...

升级TrinityCore 服务器硬件

升级服务器 原服务器架构:Ubuntu装VirtualBox装Ubuntu虚拟机 原配置: 宿主机 内存4G 内核4 usb外接硬盘 Ubuntu虚拟机 内存1756MB 内核4 ip 192.168.0.12 升级服务器架构:FreeBSD装bhyve装Ubuntu虚拟机 新配置:宿主机 内存…...

NVidia 的 gpu 开源 Linux Kernel Module Driver 编译 安装 使用

见面礼,动态查看gpu使用情况,每隔2秒钟自动执行一次 nvidia-smi $ watch -n 2 nvidia-smi 1,找一台nv kmd列表中支持的 GPU 的电脑,安装ubuntu22.04 列表见 github of the kmd source code。 因为 cuda sdk 12.3支持最高到 ubu…...

win7显卡驱动更新后msvcp140.dll丢失的解决方法

msvcp140.dll是一个 DLL(动态链接库)文件,它是 Microsoft Visual C 2015 Redistributable Package 的一部分。这个文件包含 C 应用程序在运行时所需的标准库函数,主要涉及执行与 C 编程语言相关的操作,如内存管理、数学…...

(11)Python引领金融前沿:投资组合优化实战案例

1. 前言 本篇文章为 Python 对金融的投资组合优化的示例。投资组合优化是从一组可用的投资组合中选择最佳投资组合的过程,目的是最大限度地提高回报和降低风险。 投资组合优化是从一组可用的投资组合中选择最佳投资组合的过程,目的是最大限度地提高回报…...

git删除本地远程分支

gitlab删除远程分支 要删除GitLab上的远程分支&#xff0c;你可以使用Git命令行工具。以下是删除远程分支的步骤和示例代码&#xff1a; 首先&#xff0c;确保你已经在本地删除了分支。删除本地分支的命令是&#xff1a; git branch -d <branch_name> 如果分支没有被合…...

前端-04-VScode敲击键盘有键入音效,怎么关闭

目录 问题解决办法 问题 今天正在VScode敲项目&#xff0c;不知道是按了什么快捷键还是什么的&#xff0c;敲击键盘有声音&#xff0c;超级烦人啊&#xff01;&#xff01;于是我上网查了一下&#xff0c;应该是开启了VScode的键入音效&#xff0c;下面是关闭键入音效的办法。…...

JMeter数据库连接操作及断言

一、数据库操作 应用场景&#xff1a; 接口自动化数据校验&#xff1a;用于验证接口返回的数据与数据库中的数据是否一致。特殊业务&#xff1a;处理一些与数据库相关的特殊业务逻辑。性能测试&#xff1a;测试数据库的性能&#xff0c;如查询、更新等操作的响应时间。 连接数…...

Maven settings.xml 私服上传和拉取配置

公司内部自行开发的依赖包需要上传到maven私服时&#xff0c;可以在项目的pom.xml中配置&#xff0c;也可以在本地计算机的maven目录settings.xml中配置。本文讲述的是如何在settings.xml中进行配置。 场景&#xff1a;有两个maven私服&#xff0c;其中一个为公司的&#xff0…...

【STM32】MPU内存保护单元

注&#xff1a;仅在F7和M7系列上使用介绍 功能&#xff1a; 设置不同存储区域的存储器访问权限&#xff08;管理员、用户&#xff09; 设置存储器&#xff08;内存和外设&#xff09;属性&#xff08;可缓冲、可缓存、可共享&#xff09; 优点&#xff1a;提高嵌入式系统的健壮…...

用Python爬虫能实现什么?

Python 是进行网络爬虫开发的一个非常流行和强大的语言&#xff0c;这主要得益于其丰富的库和框架&#xff0c;比如 requests、BeautifulSoup、Scrapy 等。下面我将简要介绍 Python 爬虫的基础知识和几个关键步骤。 1. 爬虫的基本原理 网络爬虫&#xff08;Web Crawler&#…...

【QT】label中添加QImage图片并旋转(水平翻转、垂直翻转、顺时针旋转、逆时针旋转)

目录 0.简介 1.详细代码及解释 1&#xff09;原label显示在界面上 2&#xff09;水平翻转 3&#xff09;垂直翻转 4&#xff09;顺时针旋转45度 5&#xff09;逆时针旋转 0.简介 环境&#xff1a;windows11 QtCreator 背景&#xff1a;demo&#xff0c;父类为QWidget&a…...

CSP-J模拟赛day1

yjq的吉祥数 文件读写 输入文件 a v o i d . i n avoid.in avoid.in 输出文件 a v o i d . o u t avoid.out avoid.out 限制 1000ms 512MB 题目描述 众所周知&#xff0c; 这个数字在有些时候不是很吉利&#xff0c;因为它谐音为 “散” 所以yjq认为只要是 的整数次幂的数…...

Docker构建LNMP环境并运行Wordpress平台

1.准备Nginx 上传文件 Dockerfile FROM centos:7 as firstADD nginx-1.24.0.tar.gz /opt/ COPY CentOS-Base.repo /etc/yum.repos.d/RUN yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c make && \useradd -M -s /sbin/nologin nginx && \cd /o…...

《峡谷小狐仙-多模态角色扮演游戏助手》复现流程

YongXie66/Honor-of-Kings_RolePlay: The Role Playing Project of Honor-of-Kings Based on LnternLM2。峡谷小狐仙--王者荣耀领域的角色扮演聊天机器人&#xff0c;结合多模态技术将英雄妲己的形象带入大模型中。 (github.com) https://github.com/chg0901/Honor_of_Kings…...

Qt 使用Installer Framework制作安装包

Qt 使用Installer Framework制作安装包 引言一、下载安装 Qt Installer Framework二、简单使用2.1 创建目录结构 (文件夹结构)2.2 制作程序压缩包2.3 制作程序安装包 引言 Qt Installer Framework (安装程序框架)是一个强大的工具集&#xff0c;用于创建自定义的在线和离线安装…...

Typora 1.5.8 版本安装下载教程 (轻量级 Markdown 编辑器),图文步骤详解,免费领取(软件可激活使用)

文章目录 软件介绍软件下载安装步骤激活步骤 软件介绍 Typora是一款基于Markdown语法的轻量级文本编辑器&#xff0c;它的主要目标是为用户提供一个简洁、高效的写作环境。以下是Typora的一些主要特点和功能&#xff1a; 实时预览&#xff1a;Typora支持实时预览功能&#xff0…...

linux代填密码切换用户

一、背景 linux用户账户密码复杂&#xff0c;在不考虑安全的情况下&#xff0c;想要使用命令自动切换用户 二、操作 通过 expect 工具来实现自动输入密码的效果 yum install expect创建switchRoot.exp文件&#xff0c;内容参考下面的 #!/usr/bin/expect set username root…...

防火墙的经典体系结构及其具体结构

防火墙的经典体系结构及其具体结构 防火墙是保护计算机网络安全的重要设备或软件&#xff0c;主要用于监控和控制进出网络流量&#xff0c;防止未经授权的访问。防火墙的经典体系结构主要包括包过滤防火墙、状态检测防火墙、代理防火墙和下一代防火墙&#xff08;NGFW&#xf…...

【BUG】已解决:note: This is an issue with the package mentioned above,not pip.

已解决&#xff1a;note: This is an issue with the package mentioned above&#xff0c;not pip. 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷…...

【ARM】SMMU系统虚拟化整理

目录 1.MMU的基本介绍 1.1 特点梳理 2.功能 DVM interface PTW interface 2.1 操作流程 2.1.1 StreamID 2.1.2 安全状态&#xff1a; 2.1.3 HUM 2.1.4 可配置的操作特性 Outstanding transactions per TBU QoS 仲裁 2.2 Cache结构 2.2.1 Micro TLB 2.2.2 Macro…...

PYQT按键长按机制

长按按键不松开也会触发 keyReleaseEvent 事件&#xff0c;是由于操作系统的键盘事件处理机制。大多数操作系统在检测到键盘按键被长按时&#xff0c;会重复生成按键按下 (keyPressEvent) 和按键释放 (keyReleaseEvent) 事件。这种行为通常被称为“键盘自动重复”。 通过检测 …...

SAPUI5基础知识15 - 理解控件的本质

1. 背景 经过一系列的练习&#xff0c;通过不同的SAPUI5控件&#xff0c;我们完成了对应用程序界面的初步设计&#xff0c;在本篇博客中&#xff0c;让我们一起总结下SAPUI5控件的相关知识点&#xff0c;更深入地理解SAPUI5控件的本质。 通常而言&#xff0c;一个典型UI5应用…...

十七、【机器学习】【非监督学习】- K-均值 (K-Means)

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…...

算法力扣刷题记录 五十六【501.二叉搜索树中的众数】

前言 二叉搜索树操作&#xff0c;继续。 记录 五十六【501.二叉搜索树中的众数】 一、题目阅读 给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;找出并返回 BST 中的所有 众数&#xff08;即&#xff0c;出现频率最高的元素&#xff09;…...

分布式搜索引擎ES-Elasticsearch进阶

1.head与postman基于索引的操作 引入概念&#xff1a; 集群健康&#xff1a; green 所有的主分片和副本分片都正常运行。你的集群是100%可用 yellow 所有的主分片都正常运行&#xff0c;但不是所有的副本分片都正常运行。 red 有主分片没能正常运行。 查询es集群健康状态&…...

低代码与传统编程:快速高质量构建系统的比较与方法

在信息技术飞速发展的今天&#xff0c;企业对软件系统的需求不断增加。然而&#xff0c;如何在保证高质量的前提下快速构建系统成为了一个关键问题。本文将深入探讨低代码&#xff08;Low-Code&#xff09;开发与传统代码编程的区别&#xff0c;并探讨如何利用这两种方法快速高…...

WebRTC音视频-环境搭建

目录 期望效果 1:虚拟机和系统安装 2:WebRTC客户端环境搭建 2.1&#xff1a;VScode安装 2.2&#xff1a;MobaXterm安装 3:WebRTC服务器环境搭建 3.1&#xff1a;安装openssh服务器 3.2&#xff1a;安装Node.js 3.3&#xff1a;coturn穿透和转发服务器 3.3.1&a…...

Memcached开发(八):使用PHP进行操作

目录 1. 安装与配置 1.1 安装Memcached服务器 1.2 安装PHP的Memcached扩展 2. 基本操作 2.1 连接Memcached服务器 2.2 设置与获取数据 2.3 删除数据 2.4 检查数据是否存在 2.5 添加和替换数据 3. 高级操作 3.1 批量操作 3.2 数据计数器 3.3 CAS&#xff08;Check …...

[Spring Boot]Protobuf解析MQTT消息体

简述 本文主要针对在MQTT场景下&#xff0c;使用Protobuf协议解析MQTT的消息体 Protobuf下载 官方下载 https://github.com/protocolbuffers/protobuf/releases网盘下载 链接&#xff1a;https://pan.baidu.com/s/1Uz7CZuOSwa8VCDl-6r2xzw?pwdanan 提取码&#xff1a;an…...

网站中文域名好不好/seo石家庄

1. 需求 目前我们开发的TCP服务端程序只能服务于一个客户端&#xff0c;如何开发一个多任务版的TCP服务端程序能够服务于多个客户端呢? 完成多任务&#xff0c;可以使用线程&#xff0c;比进程更加节省内存资源。 2. 具体实现步骤 编写一个TCP服务端程序&#xff0c;循环等…...

个人网站建设程序设计/google ads

Shell文本处理三剑客之一awk(2) 表达式与其他编程语言一样&#xff0c;awk表达式用于存储&#xff0c;操作和获取数据 一个awk表达式可由数值&#xff0c;字符常量&#xff0c;变量&#xff0c;操作符函数和正则表达式自由组合而成 变量是一个值的标识符&#xff0c;定义awk变量…...

做外贸没有网站需要注意什么/武汉seo顾问

一、搜索“无线诊断”应用程序 二、在“无线诊断”应用程序中找“嗅探器”...

防伪码网站怎么做/百度网站大全

声明&#xff1a;本文是《 Java 7 Concurrency Cookbook 》的第六章&#xff0c;作者&#xff1a; Javier Fernndez Gonzlez 译者&#xff1a;许巧辉 校对&#xff1a;方腾飞 在本章中&#xff0c;我们将包含&#xff1a; 使用非阻塞线程安全的列表使用阻塞线程安全的列表用…...

wordpress全局阴影/怎样申请网站注册

前言&#xff1a;这篇文章对于工作多年的可能用处不大,但对于刚刚接触Java的同学肯定是有一些帮助,现在我总结我接触liunx后常见的一些命令 1&#xff1a;日志查询常用的命令 ll&#xff1a;查询目录下所有的文件 ls -lht&#xff1a;查询目录下所有文件的大小 cd&#xff1a;切…...

python 做网站缺点/网站优化推广seo

前言 本篇文章继续我们的微软挖掘系列算法总结&#xff0c;前几篇文章已经将相关的主要算法做了详细的介绍&#xff0c;我为了展示方便&#xff0c;特地的整理了一个目录提纲篇&#xff1a;大数据时代&#xff1a;深入浅出微软数据挖掘算法总结连载&#xff0c; 有兴趣的童鞋可…...