基于stm32cubeMX的的HAL库开发的智能小车------汇总篇以及所遇到的问题

我的第一辆智能小车

提示:小编也是初学者,本文适用于想完成一个基础智能四轮车的初学者,大佬还请勿喷,欢迎各位指出错误的地方。

使用的是STM32F103C8T6最小系统板

暑假在家无聊,刚好也在学习STM32的HAL库,就想着做个小车巩固自己学到的知识,顺便记录自己所遇到的错误。

小编也是现学现写,准备做一个蓝牙遥控红外寻迹超声波避障小车,现已做完。

展示如下

                                                                                   

注意:这篇文章是讲述的是汇总问题和我在制作小车的时候遇到的问题。对应的源码我也会发出来。

1.程序框图

 2.代码汇总

代码汇总的部分呢,我是将对应的寻迹,变速,避障等功能用函数封装了起来,用到了switch语句,根据手机端的蓝牙调试助手发送到单片机的单字符来判断对应的运行模式。也是遇到了几个问题,在下文中会说出。

3.遇到的问题汇总

注:这里遇到的问题若有错误,麻烦各位评论区指正。

1.小车的接线问题

跳转链接:小车的材料准备和接线问题

制作智能小车,首先要懂得L298N的使用原理,在查阅对应的资料以及某站的评论区后,有一个问题始终困扰着我,在小车接线的过程中是否需要外接减压模块,在哪里接?在经历过大量查询之后,也是解决了这个问题。因为L298N的5V供电处供电不稳定,不经过处理后容易烧坏单片机,需要外接一个稳压模块,具体的接线问题请点击上文跳转。

2.单片机驱动130直流电机

跳转链接:电机驱动与变速小车

在使用单片机驱动130直流电机的时候,发现有3个轮子在转动,有一个轮子不转动,我先是从硬件连接和代码部分入手,毕竟这种问题,不是硬件就是软件出现了问题。在经过漫长的测试之后,我猜测是单片机的IO口损坏,在跟换单片机之后,终于发现了原来是单片机的IO口损坏。这里写出是为了告诉大家,在遇到解决不了的问题之后建议换一个思路,做对比实验来发现问题。

这里推荐大家购买2块单片机。

3.蓝牙hc_05模块

跳转链接:蓝牙小车

在使用蓝牙模块的时候没遇到问题,就是有个需要注意的地方,设置按键发送字符的时候,按下按键发送字符,松开按键时也要设置发送字符,切换模式的时候不需要松开发送字符。

4.超声波和舵机部分

跳转链接:超声波避障小车

这个是我觉得最难的功能,调试了很长的时间,建议大家制作之前仔细了解超声波模块和舵机模块的原理。

问题1:超声波测距的数据不稳定。

原因:当初引脚分配有错误,舵机的信号线使用的是PA8 TIM1_CH1,超声波的ECHO引脚  使用的PA11 TIM1_CH4,后改为PB5的TIM3_CH2重映射。使用同一个定时器会干扰ARR寄存器的正常计数。

解决方法:将超声波的ECHO引脚改为PB5的TIM3_CH2重映射

问题2:避障小车偶尔撞墙。

原因:超声波避障小车前方有视野盲区。

解决方法:在避障小车的前方添加2个红外对管传感器,这里使用外部中断,设置下降沿触发,默认拉高电平。不懂的自行百度,这是基础......

5.汇总问题

在汇总的时候,我是使用当初的switch语句来控制小车,结果发现小车无法正常从普通模式切换到寻迹和避障模式。

原因:我是使用函数将寻迹和避障功能封装了起来,每次按下对应的按键后发送单字节数据到单片机,对应的程序会被打断。

解决方法:运用标志位的方式,切换模式的时候,在串口中断中切换标志位,中断:在中断条件触发的时候,CPU的执行会跳转到中断中,优先去处理中断中的程序,可以打断main.c中的while循环。

6.寄语

由于在制作的过程中需要使用大量的传感器和编写大量的代码,所以是肯定会遇到问题的,在遇到问题的时候,要有问题错误搜集的能力,我遇到问题的时候都是大量搜集资料,从而解决问题。

7.资源分享

汇总代码:智能小车

                                                                                                                    -------智能小车完结

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值