Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >项目复刻 - STM32智能小车 笔记1

项目复刻 - STM32智能小车 笔记1

原创
作者头像
笃信好学
发布于 2023-03-05 19:33:01
发布于 2023-03-05 19:33:01
1.1K0
举报
文章被收录于专栏:笃信好学笃信好学

核心能力和难点

  1. stm32或者嵌入式的核心,定时器,中断系统,通信,我掌握得不好
  2. 操作一些需要的模块,例如OLED模块,超声波测距模块,红外循迹模块,蓝牙模块,电机驱动模块,舵机等等
  3. c语言

小车的4个预期功能

功能1: 红外对管循迹

小车沿着地上粘贴着黑色胶带的路线行驶,

原理是4红外对管可以通过红外反射识别出小车和路径(黑色胶带的)的相对位置,来调节转向,实现循迹功能。

功能2: 蓝牙控制小车运动

HC-05蓝牙模块连接单片机,用已经被设计好的蓝牙操作安卓软件,去完成与小车的通信与交互,实现简单的控制运动。用usart文件控制。

功能3: 定距离跟随功能

小车与前方障碍物保持20-25cm距离,如果距离小于20cm,小车后退。如果距离大于25cm,小车前进,保持与障碍物的距离为20-25cm。原理是 HC-SR04 超声波测距模块 通过声波测距。

功能4: 结合舵机完成避障功能

小车正常直线行驶,如果前方25cm检测出来障碍物,舵机右转30度,检测右前方是否有障碍物,如果没有,右转,如果有障碍物,舵机左转60度,检测左前方是否有障碍物,如果没有,左转,如果有,倒退并直接右转。

我的小车
我的小车
小车总体设计方案 示意图
小车总体设计方案 示意图

硬件汇总和简单介绍

  1. 主控:STM32单片机 - STM32f103c8t6最小系统板,正点原子
  2. OLED显示屏模块 0.96寸 IIC/SPI
  3. HC-SR04 超声波测距模块
  4. 寻迹传感器 TCRT5000红外反射传感器
  5. HC-05 主从机一体蓝牙串口透传模块
  6. TB6612FNG电机驱动模块
  7. 电机马达 DC3V-6V直流减速电机
  8. SG90 9g舵机 固定翼航模遥控飞机 180度舵机
  9. 12v锂电池组18650充电带保护板大容量电瓶通用移动电源便携蓄电池

项目流程

  1. 下单,注意有两个版本v1.5 和v3,我的是v1.5
  2. 下载项目资源,下载【正点原子】精英STM32F103开发板的项目资源,里面有很多项目实例,可以直接复制粘贴某一模块。
  3. 组装,注意电机安装的注意事项,红黑线交叉。舵机那个斜孔螺丝太难拧了,得找个大的螺丝刀。
  4. 安装keil arm,这个和c51是不一样的。Keil v5安装新的器件pack时可能报错。发现报错:Cannotcopypsdcfileto “.download” folder。要管理员权限导入软件包或者网上直接搜下。
  5. 安装st-link驱动。St link upgrate 的时候不要打开单片机。到这里硬件和基础准备已经完成,剩下的就是软件编写了。
  6. 软件第1步,目的点亮小灯。先复制个正点原子的led 项目过来,然后在上面改。先改芯片类型,晶振频率,hd->md等等,然后点亮小灯。
  7. 端口初始化
    端口初始化
  8. 软件第2步,目的控制电机。两部分,第一部分GPIO 高低电平控制AIN和BIN端口,第二部分PWM控制PWMA和PWMB。第一部分和led小灯一样,改个端口名字。再复制个正点原子的pwm的文件过来,在上面改。定时器的计数器调节占空比,这个再好好理解下。另外可以通过逻辑分析仪观察波形输出、显示PWM波形。最后编写,前进,后退,左转,右转和停止的功能函数。
  9. PWM初始化部分代码
    PWM初始化部分代码
  10. 软件第3步,目的控制舵机。和电机pwm控制一样,调节占空比来调节舵机 转角
  11. PWM 函数
    PWM 函数
  12. 软件第4步,目的操作按键控制led。两部分 配置按键端和配置中断线和配置外部通道。这个我的第一次的keil文件可以实现,第二次又从头弄了新的keil文件,就怎么操作不了按键。记录一下,下次再试。
  13. 软件第5步,目的操作红外对管,做简单的识别。红外对管的原理可以总结为, 当前面是黑色的时候,容易接收到返回的红外线,二极管点亮,当前面不是黑色的时候,不容易接收到返回的红外线,二极管熄灭状态。我在这里卡了很久,测试了很多次,我的结论是,1我的pcb板子上面的第三个红外对管的接口失效,2我的4个红外对管的led会一直亮,除非把小车拿到距离地面差不多8cm左右的地方,根本没有识别效果,是不是我的地板原因还是我需要在一个阳光明媚的日子实验。再测。
  14. 软件第6步,目的串口接收发送,初始化usart,把TTL与单片机连接,通过串口软件发送接收数据,也可以出发usart的中端
  15. Usart初始化部分
    Usart初始化部分
  16. 软件第7步,目的测试蓝牙,安装安卓蓝牙app,实现发送给单片机信号的作用。初始化使用串口+编写中断服务函数。我的蓝牙app 可以发送信号给单片机,但是不能实现单片机发送信号给手机app,再测
  17. 软件第8步,目的操作OLED显示
  18. OLED 初始化 部分代码
    OLED 初始化 部分代码
  19. 软件第9步,目的ADC测量电池电压。锂电池电压12V左右,单片机ADC最大测量电压3.3V,这里我们需要分压电路分压。找个正点原子的adc文件复制过去。
  20. 软件第10步,目的超声波测距,原理是MCU给Trig脚一个大于10us的高电平脉冲;然后读取Echo脚的高电平信号时间,通过公式:距离 = T*声速/2 就可以算出来距离。定时器2通道2输入捕获配置需设置终端+定时器2中断服务程序
  21. 定时器2通道2输入捕获配置
    定时器2通道2输入捕获配置
  22. 软件第11步,目的实现定距离跟随功能.小车与前方障碍物保持20-25cm距离,如果距离小于20cm,小车后退。如果距离大于25cm,小车前进,保持与障碍物的距离为20-25cm。
  23. 软件第12步,结合舵机完成避障功能,小车正常直线行驶,如果前方25cm检测出来障碍物,舵机右转30度,检测右前方是否有障碍物,如果没有,右转,如果有障碍物,舵机左转60度,检测左前方是否有障碍物,如果没有,左转,如果有,倒退并直接右转。这两步都是C语言编写和场景应用,。
  24. 软件第13步,缝合上面功能:
  • 小车具有红外对管循迹、蓝牙遥控、定距离跟随、避障运动模式
  • 可以通过小车按键和APP进行切换小车的运动模式。
  • APP与OLED显示小车所处模式和超声波测量值、电池电压。

需要复习和理解代码

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
基于51单片机智能小车的设计与实现转弯避障_基于单片机的智能小车设计
学习智能小车系统,有助于提高搭建系统的能力和对自动控制技术的理解。智能小车是一个较为完整的智能化系统,而智能化的研究已成为我国追赶世界科技水平的重要任务。智能小车有它特有的特点:成本低,涉及的知识面广,易于拓展[1]。整个智能小车系统作为一个完整的系统,从它的原理图的实现到实物的完成的过程,不仅需要深厚的电子方面的知识,还有对电路实现的良好掌握,对于培养学生的实践能力都有重要的意义。智能小车的竞赛在我国各大高校中都受到了重视,吸引了大批的高校学生的兴趣,而且取得了很多优异的成果,为我国推进智能化的进程做出了巨大的贡献,也为智能汽车的发展提供了理论依据[2-3]。只有当把理论和模型应用到实践中,这样的创新才用意义,我们国家这几年在智能化方面的进步越来越快,也推动了我国在国际社会上在智能化方面的话语权。智能小车是智能化的一部分,它的系统里的避障、循迹、红外遥控的技术用到了智能化,将智能化应用到传统技术上是21世纪发展的趋势。我国虽然从改革开放以来大力发展科技创新,但是在智能化的创新水平与国外较发达的国家相比还有巨大的差距,智能竞赛在高校越来越流行,也证明了我国教育在这方面很快会赶上世界上的发展水平。本次设计是以单片机为CPU,通过编程和一些外围电路的设计来实现红外遥控,避障,循迹等功能。最重要的是把模型上的研究应用到实际生活中,智能车辆便做到了这一点[4-6]。在实际应用中比如在倒车的过程中实现的红外警报系统是以智能小车为模型而研发出来的。对于电子知识的热爱与钻研有利于研发更多智能车辆,使我们的生活更加便利、智能化。
全栈程序员站长
2022/11/02
2.3K0
智能小车设计规划_智能循迹避障小车设计
该课题主要基于单片机的循迹、避障、WiFi、蓝牙等功能的智能小车,在一些特殊环境下有着特殊的意义。硬件控制以arduino为控制核心。采用超声波避障和红外避障传感器共同完成寻迹、避障功能,并将相关信号传送给单片机,经单片机控制系统分析判断后控制驱动芯片驱动直流电机实现小车前进、后退、左转、右转,停止。软件采用移植性较好的c语言编写,通过手机蓝牙App实现对智能小车的控制。通过TCP/UD协议以及WiFi无线操作系统完成远距离通过终端控制,并将所扫描的信息路线传输给服务器,终端图形界面通过Qt设计实现。通过多次测试使小车能无线遥控、避障、循迹功能。
全栈程序员站长
2022/11/02
2.1K0
智能小车设计规划_智能循迹避障小车设计
CDIO工程实践 无线充电智能循迹小车制作
一、CDIO理念 CDIO工程教育模式是近年来国际工程教育改革的最新成果。从 2000 年起,麻省理工学院和瑞典皇家工学院等四所大学组成的跨国研究获得 Knut and Alice Wallenberg 基金会近 2000 万美元巨额资助,经过四年的探索研究,创立了 CDIO 工程教育理念,并成立了以 CDIO 命名的国际合作组织。 CDIO代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate) ,它以产品研发到产品运行的生命周期为载体,让学生以主动的、 实践
叶庭云
2021/07/01
1.8K0
关于stm32的智能车硬件设计_stm32小车前进程序
开始做小车的时候,手头只有一块F407的核心板,个人只是做着玩的,也没有考虑价格问题,干脆就直接拿来用了。其实F103c8t6的引脚资源和响应都是足够用的,也很便宜,推荐使用,如下图。
全栈程序员站长
2022/11/07
1K0
关于stm32的智能车硬件设计_stm32小车前进程序
树莓派综合项目2:智能小车(六)黑线循迹
树莓派综合项目2:智能小车(二)tkinter图形界面控制,实现了本地图形界面控制小车的前进后退、转向和原地转圈。
张国平
2021/02/26
4K0
树莓派综合项目2:智能小车(六)黑线循迹
51单片机智能小车循迹PPT_基于51单片机的智能小车
智能小车采用两个前轮和一个万向轮的方式,在前轮的左右两端各安装一个电机驱动,利用电机驱动芯片L293D来控制两个前轮的左右转向和停止,后轮是一个万向轮,有支撑和转向的作用。在车体底盘的前端装有4个红外光电传感器,用以实现路迹检测和避障功能。
全栈程序员站长
2022/11/02
1.2K0
智能小车设计方案_智能小车研究目的及意义
智能循迹小车是基于自动引导机器人系统,用以实现小车自动识别路线,以及选择正确的路线。智能循迹小车是一个运用传感器、单片机、电机驱动及自动控制等技术来实现按照预先设定的模式下,不受人为管理时能够自动实现循迹导航的高新科技。
全栈程序员站长
2022/11/02
6.3K0
智能小车设计方案_智能小车研究目的及意义
基于STM32设计的避障寻迹小车
根据美国玩具协会在一项研究中,过去几年全球玩具销售增长与GDP的世界平均水平大致相同。但全球玩具市场的内部结构已经占据了巨大的位置变化:传统玩具的市场份额正在下降,高科技电子玩具正在蓬勃发展。全球玩具市场的高科技电子游戏2010年的年销售额增长了67%,但传统玩具的年销售额仅增长了1%。
DS小龙哥
2023/03/06
1.8K0
基于STM32设计的避障寻迹小车
树莓派综合项目2:智能小车(五)红外避障
树莓派综合项目2:智能小车(二)tkinter图形界面控制,实现了本地图形界面控制小车的前进后退、转向和原地转圈。
张国平
2021/02/10
2.4K0
树莓派综合项目2:智能小车(五)红外避障
智能避障小车_单片机智能小车程序
1、首先就是L298N,这是一个经典的电机驱动,相信基本所有玩过单片机,玩过电机的人都使用过,它可以最高容忍15v电压输入,逻辑电平2.4-5.5v,所以使用单片机的3.3v完全可以驱动,它并没有PWM接口来控制电机的速度,只能使逻辑电平输出PWM控制通断频率来调节电机的转速,最低驱动电压的话这个没有具体测量,但是6v以上是完全没有问题的。当然,L298N也是有不少的缺点的,比如速度控制的精度差,响应较慢,发热严重,在做电赛的时候使用TB6612驱动,使用效果就更棒了,以后会在大部分的场合使用后者。
全栈程序员站长
2022/11/02
7080
基于stm32的智能小车(远程控制、避障、循迹)
学完stm32,总是想做点东西“大显身手”一下,智能小车就成了首选项目,其核心只是就是PWM输出,I/O口引脚电平判断。
全栈程序员站长
2022/11/02
3.3K1
基于STM32设计的消防小车
为了能帮助消防员有效的控制火灾,尽可能地降低人员伤亡和财产损失,当前基于STM32单片机设计了一款智能消防小车;当前小车支持烟雾浓度检测、可燃气体检测,环境温度湿度检测、火焰源检测、能支持远程遥控,方便消防员远程操控进行灭火。小车也支持自动消防,在行驶过程中,消防智能小车通过火焰传感器感应火源以检测火焰具体位置,可以利用算法设计进行循迹灭火,该模式下驱动电机水泵喷水,可以有效控制火源的第二次发生,从而完成消防作业。小车本身带了超声波测距模块,红外壁障模块,在自动或者手动控制行驶过程中可以防止碰到障碍物损伤小车。小车在消防灭火的过程中,会采集环境的温度,湿度,有毒气体,烟雾浓度信息传递给手机APP进行显示,方便消防员对火灾现场有详细的了解,便于后续支援。 经实际测试实验,该智能消防小车能够在不同模式下快速、顺利地完成相应的功能。
DS小龙哥
2023/07/24
6340
基于STM32设计的消防小车
stm32智能小车设计「建议收藏」
历时两周,总算把小车弄好了,总体上来说做的太慢了。自己在32的学习中还不够仔细深入,只是浅面的学习,当真正做一个项目时,暴露的问题就太多了。这次在小车的制作的过程中,遇到了各种各样的问题,软件,硬件,各式各样的问题迎面而来,真的好几次心态崩了。不过还好小车这个项目不只是我一个人在搞,组里的其他成员也在一直在考虑问题,想办法,不断地解决解决,总归小车终于做好了,下面是小车完成图:
全栈程序员站长
2022/11/02
8210
stm32智能小车设计「建议收藏」
Arduino智能小车——循迹篇
  相信大家都在网上看到过类似下图这样的餐厅服务机器人,或者仓库搬运机器人,但是你们有没有注意到图片中地上的那条黑线?没错,他们都是沿着这条黑线来行进的,在这一篇将教大家怎么用小车实现类似的循迹功能。
全栈程序员站长
2022/09/06
3.6K0
Arduino智能小车——循迹篇
基于51单片机四路循迹小车
本系统以设计题目的要求为目的,采用STC89C52单片机为控制核心,利用红外传感器检测轨道,控制电动小汽车的自动循迹,快慢速行驶。
全栈程序员站长
2022/09/10
1.1K0
基于51单片机四路循迹小车
毕业设计 – 题目:基于stm32的智能扫地机器人设计与实现
随着人口老龄化的到来和人民对提升生活品质的需要, 人们对在现实生活场景中取代人力的服务机器人有着迫切的需要。 同时, 机电、 自动控制、 计算机、 传感器等技术的发展也为制造服务机器人提供了技术支持。 扫地机器人是服务机器人中技术最成熟和最为广泛使用的机器人。 它可以自动的在室内行走, 通过刷扫和吸尘将地面上的碎屑吸收进垃圾收集装置中, 完成清洁地面的任务,有效的减少了人们清洁地面这种简单重复的家务劳动, 节约了劳动力, 提高了生活品质。 对于许多忙于工作和生的人来说,扫地机器人已经成为家庭必备的产品。
全栈程序员站长
2022/07/22
4.9K0
毕业设计 – 题目:基于stm32的智能扫地机器人设计与实现
STM32单片机介绍_基于单片机的智能循迹小车
其实前几周就已经将小车调好并且也发了视频,但是每天忙于复习,也没有时间来对小车的流程设计、硬件设计、程序编写进行一个总结,正好周五可以休息一下,就分三个模块对这个智能小车项目进行一个总结。
全栈程序员站长
2022/11/02
1.1K0
基于嵌入式Linux的移动机器人控制系统
随着科学技术的发展和社会的需要,移动机器人技术得到了迅速发展,正在渗透到各行各业中,使人们的生活更加便利。现今以单片机为核心的移动机器人存在处理数据量有限、控制系统速度低、人机交互机制单一等缺点,不能满足机器人多任务的要求。系统中增加协处理器的系统结构也得到了广泛应用,虽然可以管理多种传感器,但这种结构却增加了硬件的冗余度和复杂度,见参考文献。为此,提出了以嵌入式处理器S3C2440为核心的多任务机器人控制系统。 1 控制系统硬件设计 控制系统选用两轮独立驱动小车为移动式机器人平台,后轮为一个尼龙万向轮
机器人网
2018/04/25
2.4K0
基于嵌入式Linux的移动机器人控制系统
智能小车设计思路简述
初次设计智能小车会发现毫无头绪,无从下手。智能小车的设计主要包含两部分,硬件部分和软件部分。
全栈程序员站长
2022/11/08
1.3K0
基于单片机的智能小车设计
随着科技的发展,智能机器人在日常生活中的应用越来越广泛。智能小车作为智能机器人的一种,具有便携性和多功能的特点,在教育、娱乐和工业等领域得到了广泛关注和应用。智能小车可以通过远程控制实现各种动作,如前进、后退、转弯等,并且可以通过搭载传感器实现避障、测距等功能。
DS小龙哥
2023/09/01
6240
基于单片机的智能小车设计
推荐阅读
相关推荐
基于51单片机智能小车的设计与实现转弯避障_基于单片机的智能小车设计
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文