最近想做一个STM32的小车,偶然在B站上看到某人做的STM32蓝牙小车,小车可以进行红外检测,能自动避障。看起来挺好玩,实践性也很强。
文末点击“阅读原文”可以获取这个蓝牙小车的工程代码,提取码6kdv。如有任何问题也可以加我微信hzplwbs拉你入技术群交流。
一看评论区却充满了酸激流的白菜馅儿饺子味儿。
不禁感叹,难道评论区已经人均大神了吗?
但也有的网友感慨楼上课设是真牛,自己的单片机课设只是做了一个抢答器这种难度的项目而已。也有的说是课设用了下温度传感器DS18B20,做了个小项目。
我当年读本科时,单片机老师鼓动我们同学凑钱买电子元器件、51单片机,制作一个LED灯广告牌。说来也是惭愧我当时囊中羞涩都没舍得掏钱,还没开始就已经输了。
回到正题,做一个STM32小车很简单吗?
可以在某宝上买套件、模块,买回来组装起来。商家已经把工程文件写好,你把编译后的文件烧写进主控板,一个小车就做好了,但是会少很多的挑战性。
小车的轮子需要电机来驱动,选用相对简单的直流电机。而直流电机是大电流,这就涉及到小电流控制大电流的问题。怎么办?
以下三种方式,难度逐渐增加,费用逐渐降低:
-
模电学精通,用三极管、MOS管、电阻搭电机驱动电路,参考本文:介绍H桥电机驱动电路
-
用现成的电机驱动芯片L298N,配合外围电容、电阻搭电路
-
买个L298N模块怼上
有了轮子、直流电机、电机驱动模块,接下来对STM32进行编程。
通过控制GPIO引脚输出高低电平来控制电机。如果还要控制电机的转速,可以用PWM,编写程序给PWM不同的占空比。简单来说,占空比就高电平所占的比例。占空比高时输出高电压,电机转速快,反之转速慢。
到这里小车能跑起来了,通过差速转向(履带坦克车的转向方式),也可以用舵机实现转向。
本文中的小车加了红外模块、蓝牙模块、手机APP,就是一个蓝牙遥控、自动避障小车。
红外、蓝牙也不是那么好搞的。如果图省事,直接买个蓝牙、红外模块另说。
安卓手机APP可以用QT、Java开发,也可以用App Inventor开发,难度差距很大。
小结一下:小车东西做出来可能不难,但是做出来的目的是什么?为了毕业、为了好玩还是为了学习?抱着不同的目的,看法不同,收获也不同。