
梁山派智能小车1
简介
基于梁山派的智能小车
简介:基于梁山派的智能小车开源协议
:GPL 3.0
描述
1.项目名
- 基于立创梁山派的智能小车
- 主要是关于梁山派的代码开发和拓展版的设计
2.目标
- 学会梁山派的基础开发,可以自己独立设计一个小车
3.功能介绍
3.1.主要完成以下功能:
1.实现四驱智能小车行走与差速转弯的功能;
2.实现小车行驶速度调整的功能;
3.使用红外对管进行循迹,实现沿着固定路线行驶功能;
4.使用超声波模块,实现测距与躲避障碍物行驶的功能;
5.使用蓝牙模块,实现手机控制小车行驶功能;
3.2.模块介绍
3.2.1主控
主控是用立创梁山派
3.2.2电源
为保证电机和开发板的供电,使用12V的电池供电,而后使用MP1584EN DC_DC直流降压模块,从而获得稳定的5V电压给开发板供电
3.2.3电机
电机是直流减速电机MG370,该电机转速高,该电机额定电压12V,所以在供电方面使用了12V的电池。
3.2.4电机驱动
电机驱动使用TB6612电机驱动,有两个端口,一个TB6612可以驱动两个电机,以A端口为例,通过PWMA引脚可以使用PWM调节电机速度,通过改变AIN的值可以改变电机正反转
以左边驱动为例,在本次智能小车设计之中,左右电机的接线方式为下图,AO1等接口为电机接线口
核心为定时器的配置,我选择定时器11的0,1通道和定时器2的2,3通道,通过查询数据手册得引脚复用信息,AIN和BIN引脚配置输出模式
以左边电机为例,控制代码如下,通过传入参数dir和speed,即可控制电机的转向与速度。可以调整小车行驶过程中的速度。
3.2.5避障电路
避障使用的模块为SR04超声波测距模块,发出超市声波,可以实时测量障碍物的距离并返回数据,原理是发射超声波时开始计时,遇到障碍物返回信号停止,根据超声波在空气传播速度与时间即可得到距离。
接线图如下,PB12-ECHO,TRIG-PB10,通过上面原理测出距离后,到距离小于10cm时,小车发出警报,并且后退,左转防止装上障碍物。
3.2.6蓝牙模块
蓝牙模块通信本质上还是串口通信,在蓝牙模块初始化阶段,需要进入默认状态,通过AT等指令设置蓝牙模块的波特率,停止位,数据位等,而后配置串口,将蓝牙模块与串口相连接,通过查询数据手册,可知PF6的复用功能有UART6_RX,PF7复用功能有UART6_TX,与蓝牙模块连接图如下。其中STALE在和手机连接成功之后会输出高电平,通过读取STALE所连引脚PF9电平,可以判断蓝牙是否与手机连接,使用蓝牙串口软件来自定义开关,连接蓝牙后即可和开发板通信,从而使用手机控制开发板运动。
3.2.7循迹模块
循迹采用红外循迹,红外传感器在检测白线输出低电平,检测黑线输出高电平,根据这个原理,我们可以使小车沿着黑色线循迹。
之前在对于电机的回零问题。参考jixin-team红外原理图制作了用于电机初始点校准的红外,如左图·,在本次小车设计中,由于两路传感器比较少,不能完美的循迹所以本次使用亚博的四路红外传感器,如右图。同时具有滑动变阻器,通过转动旋钮可以改变红外传感器的灵敏度,适用于本次循迹的使用,同时也可以应用于更加复杂的环境。
为了防止小车转弯速度过快且角度变化大导致的红外检测数据跳动过大,所以增加一点延迟。
3.2.8ADC采集
板子供电时直接用12V电池供电,所以ADC端采集电压Vadc=10/40*V实时
当电池上面电压最高为12V时,Vadc=3V
当电池电压在7.4V时,需要充电,此时Vadc=1.85
在安全范围内
4.技能掌握
掌握:
- 学习嵌入式项目电路分析的能力
- 学会智能小车工作原理与嵌入式电路设计的基本方法;
- 学习原理图设计、PCB设计能力,培养独立项目设计代码开发的思维;
- 掌握元器件焊接与硬件调试技能。
不足:
- 元器件的排版还是不够好,选型上也不够仔细
- 在开发板IO口的选择上面没有考虑好距离和位置的关系,以及小车整体结构搭建不是很好
5.困难与解决办法
(1)设计过程中的问题
- 蓝牙模块接收与发送问题,一开始蓝牙模块连上但是发送的消息始终是乱码和空白,通过询问立创的开发人员,以及同样开发的伙伴们,后来重新梳理了以下蓝牙模块工作原理,了解本质还是串口的接收与发送,于是重新根据官方例程自己写了串口,去掉了一些不必要的部分,而后成成功发送与接收
- 循迹:循迹受光线和高度影响,在一开始红外检测不到可以试着去调节高度和角度,所以可调节的红外是非常必要的,可调节的红外可以帮助面对不同的环境的时候快速适应。
- pwm的配置,一开始不知道什么原因配置一样的但是只有一个pwm输出,后来关于官方pwm配置以及函数的书写和电机控制类的模块的移植都看了一遍,重新整理,把需要配置的地方写下来,而后一步一步重新配置,最后成功得到四个pwm
(2)调试过程中的问题
- 第一版本的拓展板忘记把开发板引脚的GND和五伏与3.3伏的引脚扩展出来,导致调试的时候电压非常奇怪,并且在使用降压模块从电池降压到板子后板子供电依旧不正常,后来查看原理图发现这个问题并改正了
- 第一块板子降压模块时用洞洞板连接在后面了,现在已经再PCB上面放置,H12和H13
- 由于尺寸原因,超声波没能在板子最前方直接放置,可以手动加一块洞洞板将超声波固定在最前方,并将引脚扩展、
- 固定孔直接使用的时GD32上面的固定孔,倒是与我的底盘刚好契合,可以根据底板在拓展版其他位置加上固定孔
- 降压模块上面输出电压务必用电压表测量之后再接到板子上面供电
6.演示视频
设计图

BOM


评论