目录
- 前言
- 材料准备
- 接线图
- 软件篇(代码在文章最后)
- 使用蓝牙串口app控制小车
- 做小车所需要的代码链接
前言
之前我发布了一篇二轮的蓝牙小车教程,已经有同学做出来了,但是我感觉我写的还是不够详细,所以再写一篇。。。。这个小车也很简单。我也只是初入门的小新手,难免
材料准备
以下提供的图片是我随便找的,不一定要去这家买,买对型号的同时便宜买就行
- 开发板
我们依旧选择esp32devkitc(二十块左右)虽然做小车还是stm32多一点,但是我还是用了esp32devkitc,这个价格可以入手esp32-cam,后面有需要的话可以多加个ov2640摄像头(八块左右)实现wifi控制且图传回控制端,但是代码可能要自己写了。
虽然stm32f203c8t6、arduino pro mini和esp8266十来块,但是它们都需要外置蓝牙,这样加起来就差不多价格了,其实都行,看你们的选择!!。(本教程提供了esp32devkitc和arduino pro mini的代码,但是arduino pro mini我没有加oled)
还有一个更低价格的选择,就是esp32c2(似乎十一二块),好像有蓝牙(不过不是经典蓝牙,而是低功耗蓝牙)但是这个我没有玩过,就不再赘述。。。
2.供电(一定要想好怎么充电)
我提供了两种方案,其实还有很多种方案,这就看你们的解决问题的能力了
- 第一种就是要准备好这种dc圆头的电池,7.4v/12v或者其他什么规格的电池都行
注意!!!最好不要买3.3v以下的的电池,免得后面要用升压模块升压到5V
电池价格普遍在十几二十块,价格参差不齐,我也不好定范围。。。
有这个dc圆口,是公母头都有的(就是一个突出来一个凹进去的头)
然后可以选择esp32devkit拓展板(九块左右,这个降压啥的都有了)但是我觉得太贵了,而且我也没用过,如果不想在改造供电这方面多花心思,这个也许是一个好方案。
2.第二种方案可能需要一些动手能力
可以把那两条电源线给割开线皮,但是不要割断,拿两条杜邦公线(如果公对公的杜邦线很长可以对半剪开,然后连接电池的电源线)红色是正极,黑色是负极,建议弄完一遍的线再弄另外一边的线,最好在正极那里加一个开关,就像这样。。。记住,杜邦线要留有头的那一边插到降压模块
灵魂画手
注意:不要电池正负极碰到,不然可能。。
后面就要用这个模块了(焊好排针然后用我们刚刚接到电池的杜邦线一插就得了),lm2596s,买这个有蓝色一坨那个东西,那个是可以调输出电压的,然后重点来了!!!!,输出电压我们需要用到一个万用表,测输出电压一般在5V左右就行了
说到充电
可以买这样的充电器(注意,一定要买对应口和电池电压的充电线),价格也大概在两三块左右。
如果不想这么麻烦用专门的线充电,那可以改成type-c或者microUSB充电。
大概的模块就是TP5100充电管理模块和typec充电接口(两个价格应该在五六块左右)
然后连接的顺序就是typec→电池管理模块→电池
灵魂画手再次上线
特殊情况
如果一不小心买到了只有dc母头的电池
有两种解决方案,第一个是买这个dc免焊接插头
然后用线连接到lm2596s降压就行,不过这个充电比较麻烦。
第二个方法就是剥线皮,弄开黑色线皮的时候不出意外能看到也是一红一黑两条线,然后按照第二个方法弄就行,而且也可以用那个typec的充电方法。注意注意不要电池正负极碰到
3.车架
智能小车底盘,一般搜这个就能搜的出来了
我们这个教程是四轮版本的(一般在二十多一点),所以买这个。如果想做二轮版本的可以参照我之前写的那个教程
4.驱动板
有其他的,但是我不咋用过,因为我也是新手,我只用了l289n mini(三块钱左右)和l298n(六块左右)两款驱动板,这个教程l289n mini,缺点就是没有pwm调速,所以代码也没有加pwm调速,不过l298n可以调速,感兴趣的同学可以自己加上pwm调速,或者可以买tb6612然后自己学来写代码适配,我就不再赘述。。。
5.其他
1.OLED
我这个教程用的是0.96寸的ssd1306(价格大约在6-10块)
2.船式开关
主要是连接到上面提到供电那里的开关,这个很便宜
3.杜邦线,电烙铁,电工胶布。。。就看着买吧
总共大概在六七十左右,当然,电烙铁万用表这些东西我没算在里面
电路接线图
也可以按照自己的想法来接引脚,不过代码要修改到自己接的引脚就行
软件篇
做到这里而且能亮的话,恭喜你,已经完成了硬件上的工作,现在开始软件部分
我在这篇教程已经介绍过如何配置platformio
这个代码我是在platformio写的,所以本代码就在platformio打开
打开方法也在这个教程的软件篇的platformio部分介绍过,就不重复说了
我们介绍一下代码
在代码中我也尽量注释每一行代码
#define M1A 27 // 左侧电机正转
#define M1B 26 // 左侧电机反转
#define M2A 25 // 右侧电机正转
#define M2B 33 // 右侧电机反转
#define scl 19
#define sda 18
这几句是定义引脚输出,后面的数字是定义的引脚,如果有需要接到其他引脚,可以在这里修改
SerialBT.begin("iCar"); // 初始化蓝牙串口,并设置设备名称为"iCar"
这句括号里面的英文字母可以改成自己喜欢的蓝牙名字,后面手机控制的时候可以找到你设置的名字
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &I2Cone);
128, 64指的是oled的屏幕是128x64的尺寸,如果你是其他尺寸的OLED也可以改成其他尺寸
display.print("I'm iCar");
这句就是在oled中你想让他显示的文字,当然当然,你也可以让oled显示图片,但是我最近心思花在两款小车上,就暂时不弄这个了,感兴趣的同学可以自己找教程学。。。
使用蓝牙串口app控制小车
软件在我提供的网盘链接里
安装后打开(记得给蓝牙权限)
先连接小车的蓝牙,如果在设置已经连接过蓝牙可以在图二的已配对那里找到蓝牙小车,如果没有连接过蓝牙小车则可以在点一下右上角的放大镜搜索蓝牙,然后在其他设备那里找到你的蓝牙小车,连接上蓝牙小车后就可以返回到刚进软件的页面,现在按图三使劲点,一直点到开关的这个页面,按定是编辑,上面的是这个按键的名字,下面的是按下这个按键发送的信息。我提供代码中,0是停止,1是前进,2是后退,3是左转,4是右转。
如果按钮和实际反映出来的动作不一致调蓝牙端口那个控制就行了,尽量不要动软件和硬件了,能动的代码就不要碰它了,因为如果动了有时候会发生意想不到的事情
然后这个时候就完成了你的蓝牙小车这个作品了!尽情的享受它吧!!!!
做小车所需要的代码链接
这是网盘链接:https://www.123pan.com/s/OwH0Vv-rk4td.html提取码:jnnb
这是github链接:https://github.com/jndsb/icar_bluetoothcar