
#第八届立创电赛#ESP32-C3蓝牙小车
简介
本项目基于合宙的ESP32-C3开发板、DRV8833、麦克纳姆轮、锂电池等元件,采用两路电源供电,尽可能采用较少的贴片电子元器件,方便焊接;整套成本不足50元,具有成本低、体积小、稳定性高等特点。
简介:本项目基于合宙的ESP32-C3开发板、DRV8833、麦克纳姆轮、锂电池等元件,采用两路电源供电,尽可能采用较少的贴片电子元器件,方便焊接;整套成本不足50元,具有成本低、体积小、稳定性高等特点。开源协议
:GPL 3.0
描述
注:* 为必填项
请在报名阶段填写 ↓
* 1、项目功能介绍
目前网络上智能小车方案非常多,大多采用的是主控芯片ESP32,电机驱动L298N,单路电源供电等方案,成本较高、体积较大、稳定性较差。
本项目基于合宙的ESP32-C3开发板、DRV8833、麦克纳姆轮、锂电池等元件,采用两路电源供电,避免小车四轮启动时,ESP32-C3开发板电流不足重启;主板尽可能采用较少的贴片电子元器件,方便焊接、组装;整套成本不足50元,具有成本低、体积小、稳定性高等特点,适合中小学生学习、二次开发。
*2、项目属性
本项目首次公开,为原创项目。
* 3、开源协议
100%开源,便于中小学生学习和二次开发。
请在竞赛阶段填写 ↓
*4、硬件部分
本项目的硬件采用低成本方便,锂电池使用小米电动牙刷拆下来的小电池,整套小车成本不超过50元。
1、主控芯片:采用合宙ESP32-C3开发板,价格12.9元。支持以下功能:
——1路SPI FLASH,板载4MB,支持最高 16MB
——2路UART接口,UART0~UART1,其中下载口为UART0
——5 路 12 比特 ADC,最高采样率 100KSPS
——1路低速SPI接口,支持主模式
——1路IIC控制器
——4路PWM接口,可使用任意GPIO
——GPIO外部管脚15路,可复用
——2路贴片LED指示灯
——1路复位按键+1路BOOT按键
——1路USB转TTL下载调试口
——2.4G PCB板载天线
2、电机驱动:两块国产小体积DRV8833电机驱动模块,价格1.8元/块。每个模块可驱动2个直流减速电机。
3、电源方案:采用两路电源方案,一路为ESP32-C3供电,一路为电机供电,避免互相干扰。ESP32-C3的供电采用一个3.7V锂电池通过LDO(HT7333-A)降压稳压到3.3V供电。电机供电采用一个3.7V锂电池通过DRV8833直接供电。如果要让小车的速度更快,可以考虑采用2个3.7V锂电池供电,7.4V的电压能让小车速度更快。
4、设计的主板
主板尽可能采用较少的贴片电子元器件,成本详见BOM表。ESP32-C3、DRV8833等模块采用2.54排针固定,电池、电机采用XH2.54插件连接,方便焊接、组装,以及元件重复利用。
主板原理图如下:
初学PCB设计,画得丑了点。
PCB图:
效果图:
实物图:
焊接图:
PCB板只有HT7333-A和3个贴片电容比较难,其他都简单。
5、电机和麦克纳姆轮
某宝上买的成套材料,25元。结果发过来2个电机是坏的,重新买的2个颜色和速度还和前面的不一样,导致小车横向行走有点弯。
6、遥控器
手机APP,节省成本。
7、成果图
组装好的成品:
背面:
小车加上舵机和超声波模块:
*5、软件部分
合宙ESP32-C3支持Lua、MicroPython、乐鑫IDF等开发方式,本项目采用MicroPython开发。
1、手机蓝牙APP
蓝牙区分为经典蓝牙(Classic Bluetooth)和低功耗蓝牙(BLE),低功耗蓝牙一般为蓝牙4.0及以上的。合宙ESP32-C3配备的蓝牙5.0属于BLE,不向下兼容经典蓝牙。所以要通过手机蓝牙APP遥控ESP32-C3小车,则需要支持BLE的APP,我测试了好多APP才找到这个可用的。(iOS请自搜)
Bluefruit Connect:https://cnas.lanzoum.com/ivoGu0pre7xc,密码:4phz
注:文件为Android/HarmonyOS版,IOS版请自行搜索。这个APP有提供四向按键,且按下按键和放开均有发送消息。
2、蓝牙遥控原理
要通过手机蓝牙APP控制ESP32-C3小车,原理分三步:
① 实现蓝牙广播和连接。
② 手机蓝牙APP按下按键,通过蓝牙向ESP32-C3发送数据,需要测出每个按键发送的数据。
③ 蓝牙发送的数据被存入到BLE_MSG全局变量中,根据BLE_MSG决定小车行动(前后左右停止)。
3、测试轮子转向
小车每个轮子由两个引脚控制,通过引脚的高低电平控制轮子转动的方向。编写代码前,需要先测试,出每个轮子的转向。测试代码如下:
from machine import Pin
from time import sleep_ms
# 定义GPIO引脚,L表示左,R表示右,fw表示前轮,bw表示后轮,1表示向前,0表示向后
Lfw1 = Pin(10,Pin.OUT) # GPIO10引脚,左前轮电机向前
Lfw0 = Pin(7,Pin.OUT) # GPIO7引脚,左前轮电机向后
Rfw1 = Pin(19,Pin.OUT) # GPIO19引脚,右前轮电机向前
Rfw0 = Pin(8,Pin.OUT) # GPIO8引脚,右前轮电机向后
Lbw1 = Pin(3,Pin.OUT) # GPIO3引脚,左后轮电机向前
Lbw0 = Pin(2,Pin.OUT) # GPIO2引脚,左后轮电机向后
Rbw1 = Pin(6,Pin.OUT) # GPIO6引脚,右后轮电机向前
Rbw0 = Pin(18,Pin.OUT) # GPIO18引脚,右后轮电机向后
Lfw1.value(1)
Lfw0.value(0)
Rfw1.value(1)
Rfw0.value(0)
Lbw1.value(1)
Lbw0.value(0)
Rbw1.value(1)
Rbw0.value(0)
4、完整代码
详见我们的微X公众号文章:基于MicroPython的蓝牙遥控小车2.0来了!
*6、BOM清单
*7、大赛LOGO验证
请上传包含大赛logo的项目图片,logo以丝印形式印刷在PCB上面。
点击zip下载大赛logo标识! (大赛标识).zip
* 8、演示您的项目并录制成视频上传
视频要求:请横屏拍摄,分辨率不低于1280×720,格式Mp4/Mov,单个视频大小限100M内;
视频标题:立创电赛:{项目名称}-{视频模块名称};如立创电赛:《自动驾驶》-团队介绍。
更多详情:https://diy.szlcsc.com/posts/15a52db9fd7d40c492eb505280278e45
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | 10uF | C1,C2 | C0805 | 2 |
2 | 0.1uF | C3 | C0805 | 1 |
3 | HX25003-2A | CN1,CN2,CN3,CN4,CN5,CN6 | CONN-TH_2P-P2.50_HX25003-2A | 6 |
4 | JTAG | CN7,CN8 | HDR-TH_4P-P2.54-V-F | 2 |
5 | SS12D00G3 | SW1,SW2 | SW-TH_SS-12D01-GX | 2 |

评论