基于stm32和ov7725的智能循迹车

基于stm32和ov7725的智能循迹车基于stm32f103zet6的智能循迹车。1.L298nIN1IN2控制一个轮子,IN3IN4控制另外一个。这里使用的是直流电机,控制如下:为了使用pwm进行调速,一定要记得用跳帽使调速度端为高电平。这样,输入不同占空比的pwm波就可以实现调速了。2.连接方式连接时一定要注意的一点就是一定要保证l298n与单片机共地,否则会出现控制端有输入但输出端无输出导致车不移动的…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

基于stm32f103zet6的智能循迹车。
1.L298n
这里写图片描述
IN1IN2控制一个轮子,IN3IN4控制另外一个。这里使用的是直流电机,控制如下:
这里写图片描述
为了使用pwm进行调速,一定要记得用跳帽使调速度端为高电平。这样,输入不同占空比的pwm波就可以实现调速了。
2.连接方式
连接时一定要注意的一点就是一定要保证l298n与单片机共地,否则会出现控制端有输入但输出端无输出导致车不移动的现象。
3.ov7725
这里写图片描述
这里使用的摄像头是ov7725。ov7670也可以使用,但由于其帧率过低,在车速很快时将无法实时反映道路情况。当然,如果车速很慢ov7670也可以使用。
摄像头模块存储图像数据的过程为:等待 OV7725 帧同步信号——FIFO 写指针复位
——FIFO 写使能——等待第二个 OV7725 帧同步信号——FIFO 写禁止。通过以上 5 个步骤,我们就可以完成 1 帧图像数据在 AL422B 的存储。注意:FIFO 写禁止操作不是必须的,只有当你想将一帧图片数据存储在 FIFO,并在外部 MCU 读取完这帧图片数据之前,不再采集新的图片数据的时候,才需要进行 FIFO 写禁止。
接下来,我们来看看如何读取图像数据。
在存储完一帧图像以后,我们就可以开始读取图像数据了。读取过程为:FIFO 读指针
复位——给 FIFO 读时钟(FIFO_RCLK)——读取第一个像素高字节——给 FIFO 读时钟——读取第一个像素低字节——给 FIFO 读时钟——读取第二个像素高字节_循环读取剩余像素——结束。
可以看出,摄像头模块数据的读取也是十分简单,比如 QVGA 模式,RGB565 格式,我们总共循环读取 320*240*2 次,就可以读取 1 帧图像数据,把这些数据写入 LCD 模块,我们就可以看到摄像头捕捉到的画面了。
4.程序思路
首先,利用ov7725将“路况”反映到lcd屏上,为了辨别黑白两色,将RGB565格式转换为RBG888格式,再利用灰度化公式,计算灰度值。与阈值比较,将图像二值化,这样就可以辨别黑白了。
根据摄像头安装的位置,将所需要观察的“路况”分成左中右三段,计算三段的二值化之后的总值进行比较,就可以判断出车到底是应该左转还是右转还是直行了。
其次是pwm输出问题。选择四路pwm输出,设定好不同的占空比输出,在判断出左右转之后根据不同的占空比输出,控制电机,就可以让车按照黑线行走啦!
5.部分程序
pwm设计
基于stm32和ov7725的智能循迹车
电机设计
这里写图片描述
主程序设计
这里写图片描述
(源程序为ov7725摄像头程序)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190454.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MATLAB实现粒子群算法的进阶讲解(多维+约束条件)

    MATLAB实现粒子群算法的进阶讲解(多维+约束条件)我们在之前的博客中,对粒子群算法的实现进行了讲解,主要讲解了粒子群算法的产生,实现步骤,并且通过代码来实现了当输入变量为n维向量时的粒子群算法。许多网友对之前的代码有些疑惑,并且提到了几个问题:1,对于之前的代码,觉得有些看不懂?2,如果输入变量不再是n维向量,而是n*n维的矩阵,甚至n*n*n…维的矩阵,该如何编写代码?3,如果目标函数存在约束条件,该如何编写代码?本节就基于之前博客的内容,出现的问题,以及这两天我的一些学习,来对上述问题进行一个解答。

    2022年5月1日
    74
  • VWware15安装windows XP纯净版虚拟机「建议收藏」

    VWware15安装windows XP纯净版虚拟机「建议收藏」需要准备的工具:VMware15或其他版本winXP.iso(需要的留言)安装步骤:1.创建虚拟机选择“典型”选择“安装光盘映像文件”winXP.iso选择操作系统类型选择安装位置及虚拟机名称选择磁盘大小,最少30G选择处理器数量和内存,根据个人电脑情况而定,就是虚拟机运行速度的问题完成后启动虚拟机等待进入winPE系统选择打开“分区工具…

    2022年4月19日
    504
  • pycharm运行时interpreter为空 及 Please specify a different SDK name解决方法

    pycharm运行时interpreter为空 及 Please specify a different SDK name解决方法若 PyCharm 报错 Pleasespecif 原因是因为 PyCharm 中存在相同名字的虚拟环境变量解决 点击下图中的 showall 然后删除相同虚拟环境名字的虚拟环境就可以创建自己的虚拟环境了

    2025年12月1日
    4
  • jar 包与 war 包区别

    jar 包与 war 包区别参考:https://www.jianshu.com/p/3b5c45e8e5bdhttps://www.cnblogs.com/banml/p/11767305.htmlhttps://blog.csdn.net/cjw12581/article/details/107463971文章目录1.jar包jar与zip异同jar包主要用途2.war包war包部署优势开发阶段不适合使用war的原因部署war包到tomcat3.jar包vs.war包SpringB

    2022年5月10日
    39
  • Anaconda环境下Tensorflow的安装与卸载

    Anaconda环境下Tensorflow的安装与卸载Anaconda环境下Tensorflow的安装与卸载文章目录Anaconda环境下Tensorflow的安装与卸载一、环境的创建与删除1.查看自己配置的环境2.配置一个新的环境3.进入和退出环境4.删除环境二、包(第三方库)的安装与卸载1.查看安装的包2.安装包3.删除包4.更新包三、tensorflow的安装与卸载1.创建一个tensorflow环境2.激活tensorflow环境3.安装tensorflow4.查看是否安装成功5.查看tensorflow的版本号6.退出tensorflow环境一

    2022年7月11日
    23
  • 页面置换算法实验报告c语言(大一c语言课程设计计算器)

    在进程运行过程中,如果它需要访问的页面不在内存,需要把它调入内存,但是内存已满时,需要把内存中的某页数据送到磁盘的对换区中。而选择哪个页面,则由固定的算法来决定,称为页面置换算法

    2022年4月18日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号