项目目标:蓝牙遥控小车
项目过程:
1.12月22日:
- 第一次考核结束,学长建议我们将单片机改用成stm32,并设置几个创新性的模块;
- 对小车无法直线前进的问题进行了探讨:将两轮左右对换后,发现小车直行时往另一相反方向偏转,初步判断是左右两轮规格不一致导致;考核时学长提到会不会是万向轮的问题,我们又将小车前端的万向轮固定,发现小车前行仍偏转,可以判断该问题应与万向轮无关;通过仔细观察小车前进时两轮的转动情况,我们发现,当小车悬空时,两轮转速几乎相同,但置于地面时,小车直行3-5秒后开始发生偏转,且有一轮不动。调换左右轮,情况相同。
2.12月24日:
- 探讨了换用stm32的基本想法,以及对小车的再升级计划。
- 确定在小车上增加一个红外避障的模块以及OLED显示屏:当小车向前/后/左/右行驶时,OLED显示屏第二行上出现go/back/left/right字样,停止时,出现stop字样;用红外避障检测小车前方左右两侧的障碍物,当左/右前方有障碍物的时候,第三行左/右侧go字样变为aa。
3.12月25日:
- 研究stm32单片机代码,开始编写项目主程序。
4.1月1日:
- 开始编写pwm调速程序和红外避障检测以及OLED显示屏模块的程序。在四轮配件买来之前,用第一次的三轮配件进行了初步调试(二轮改四轮的时候,因为接口的问题用到了映射,映射是个好东西,可以少用一个定时器,直接四路输出)。
5.1月5日:
- 所有材料均购入,对小车的主体部分进行了组装。
- 对小车进行各部分的调试,基本实现项目初期设定的目标。
实现结果:
- 通过手机蓝牙SPP对stm32小车发出前进,后退,暂停,左转,右转,加速,减速等指令,并实现了其相应的功能。
总结:
- 通过这次项目,我们更深入了解了有关串口通信、电机驱动和定时器设置的一些内容,对stm32单片机有了更加深入的了解。(其实并没有,我不生产代码,我只是代码的搬运工)
- 在项目进行的过程中,我们遇到了许多问题,比如OLED屏乱码,单片机vcc接口太少。
- 本次项目基本实现了初期的目标,成功换用了单片机,并增加了两个新的模块:红外避障和oled屏。
- 还有一个小注意点,以后外设多的时候,先看看哪个接口不怎么用,把这个当io口,其实最好是能规划好接口干什么,不然改代码改接口很烦。
- 32和51真的好不一样,51是32寄存器的简化简化再简化,所以我选择库函数。 他们给我的感觉是:32是一块一块地组合起来,51是一坨东西放那里(虽然这一坨东西里面也有一块一块,虽然32也可以是一坨的)。
- 小车可能算告一段落了,如果再想做小车,可能想做平衡车(好像和风力摆差不多)了。