基于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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 群体遗传学—admixture软件快速群体分群

    群体遗传学—admixture软件快速群体分群群体遗传学中测的很多个个体,得到了最终的SNPvcf文件,需要将其分成群体,看那几个物种聚在一起,一般使用的软件就是STRUCTURE,但是STREUTURE运行速度极慢,后面frappe软件提升了速度,但是也不是很快;admixture凭借其运算速度,成为了主流的分析软件。admixture软件一共分为5步:#step1/USER/zhusitao/Software/vcft

    2025年7月8日
    0
  • 一键禁用Win10自动更新,联想官方出品!!

    一键禁用Win10自动更新,联想官方出品!!对于Win10系统的强制更新,真的是是又爱又恨,更新是为了解决电脑系统存在的安全风险以及加入一些新功能,但经常性的开机或者关机都要更新配置,遇到大更新还需要花费很长的等待时间,更加可气的是还会出现更新失败的风险。有时真恨不得将它永久禁止更新。。目前网络上常见的禁止更新方法有两种,1、禁用WindowsUpdata相关服务;2、通过组策略禁止更新。事实证明这两种方法已经摆脱不了win10自…

    2022年6月4日
    155
  • python 可迭代对象 迭代器 生成器_Python3迭代器获取

    python 可迭代对象 迭代器 生成器_Python3迭代器获取在日常提升Python基本功的时候,可能会被Python的迭代器和生成器搞晕,之前在学习和使用时,本来forin循环体和enumerate函数用的飞起,觉得自己已经彻底了解了Python的迭代特性,但接触了迭代器和生成器后,突然感觉懵逼,大概率会被可迭代、迭代器、生成器等概念搞的不知所向,本文就是结合日常项目应用,对Python的迭代概念进行系统性的全面解析,包括其底层实现原理,还有一些常见的应用,希望能帮助更多人,同时也算作给自己梳理思路了。一、基本概念二、迭代器三、生成器四、基本应用

    2022年9月28日
    0
  • pycharm2021最新激活码[最新免费获取]

    (pycharm2021最新激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsaWN…

    2022年3月26日
    78
  • LINUX系统更改系统时区

    LINUX系统更改系统时区Linux-Redhat系统更改系统时区[root@localhost~]#date #查看本地时间ThuMay1923:41:32EDT2022[root@localhost~]#hwclock–show #查看硬件时间Thu19May202211:42:07PMEDT-0.332325seconds当前系统版本:RedHatEnterpriseLinuxServerrelease7.0(Maipo)查看目前的时区:[r

    2025年6月24日
    0
  • C程序设计的抽象思维-递归过程-砝码称重

    C程序设计的抽象思维-递归过程-砝码称重

    2022年2月6日
    50

发表回复

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

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