首页 > 应用与分享 > ESP32-C3蓝牙小车#第八届立创电赛#
  • ESP32-C3蓝牙小车#第八届立创电赛#

  • 2024-01-18 15:54:54 阅读量:1572

瑞萨MCU杯第八届立创电子设计开源大赛正式落幕,最终获奖项目正式出炉!本文介绍的是:本届大赛三等奖项目ESP32-C3蓝牙小车

本文作者:瑞萨MCU杯第八届立创电子设计开源大赛选手@PY学习笔记禁止商用,未经许可禁止转载


1、项目功能介绍

目前网络上智能小车方案非常多,大多采用的是主控芯片ESP32,电机驱动L298N,单路电源供电等方案,成本较高、体积较大、稳定性较差。

本项目基于合宙的ESP32-C3开发板、DRV8833、麦克纳姆轮、锂电池等元件,采用两路电源供电,避免小车四轮启动时,ESP32-C3开发板电流不足重启;主板尽可能采用较少的贴片电子元器件,方便焊接、组装;整套成本不足50元,具有成本低、体积小、稳定性高等特点,适合中小学生学习、二次开发。

 

2、硬件部分

本项目的硬件采用低成本方便,锂电池使用小米电动牙刷拆下来的小电池,整套小车成本不超过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板载天线


 ESP32-C3


2、电机驱动:两块国产小体积DRV8833电机驱动模块,价格1.8元/块。每个模块可驱动2个直流减速电机。

 小体积DRV8833


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图

 


效果图

效果 


实物图:

主板

 

焊接图

焊接


PCB板只有HT7333-A和3个贴片电容比较难,其他都简单。

 

 5、电机和麦克纳姆轮

某宝上买的成套材料,25元。结果发过来2个电机是坏的,重新买的2个颜色和速度还和前面的不一样,导致小车横向行走有点弯。


麦轮


麦轮2

 

6、遥控器

手机APP,节省成本。

 

7、成果图

组装好的成品


成品


背面


背面


小车加上舵机和超声波模块:

超声波

 

 

3、软件部分


合宙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有提供四向按键,且按下按键和放开均有发送消息。


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来了!

 

 

4、BOM清单



bom

 

 

5、大赛LOGO验证



LOGOlogo2



您的浏览器版本过低(IE8及IE8以下的浏览器或者其他浏览器的兼容模式),存在严重安全漏洞,请切换浏览器为极速模式或者将IE浏览器升级到更高版本。 【查看详情】
推荐您下载并使用 立创商城APP 或者最新版 谷歌浏览器火狐浏览器360浏览器搜狗浏览器QQ浏览器 的极(高)速模式进行访问。
© 2022 深圳市立创电子商务有限公司 版权所有

提示

您确定删除此收货地址吗?

提示

您确定删除此收货地址吗?

成功提示

content

失败提示

content

微信咨询

关注公众号咨询客服

咨询客服
  • 在线客服热线

    0755-83865666

  • 服务时间

    工作日  8:30~20:30

    节假日  8:30~18:00

  • 服务投诉

QQ咨询
优惠券
芯媒体

立创商城旗下芯媒体

微信号:icsight

建议反馈
填问卷 立创用户体验问卷调查 立即参与
活动规则
活动规则
展开客服