【立创开源】ESP32 平衡车

本项目参考了B站上 手工大 的视频以及程序,然后根据自己的需要稍微进行了改动。

原视频网址:【平衡小车--使用ESP32在Arduino环境下自制加测试(开源)】 https://www.bilibili.com/video/BV1KL4y1W7i8?share_source=copy_web&vd_source=9ba8a1a42740c64300efbea6bc94c293

主控是基于ESP32的最小系统,可通过自制的遥控器控制,也可以通过WIFI或者蓝牙控制,预留了超声波模块接口。

材料:

2 x DC 3-9V (100-300)RPM 带编码器电机

1 x TB6612FNG 驱动器

1 x ESP32最小系统板(基于ESP32-WROOM-32制作)

1 x LM2596S-5.0

1 xTMB12A05蜂鸣器

2 x 18650 电池

1 x 电池盒

1 x NRF24L01

1 x mpu6050

2 x 轮子

2 x 板子 (150mm x60mm) 电线 螺丝和螺母

先来几张完成的实物图

原理图设计

这里采用了模块化设计,可以将ESP32最小系统板、TB6612电机驱动模块、MPU6050、NRF24L01无线通信等模块直接插在平衡车底板上,方便单独测试和更换。

大图看不清可以看下面的图

这一部分作为一个拓展,可以接一些5V的外接设备,比如灯光、小风扇之类的,可以通过遥控器来控制设备的电源通断。

这个不用多说,通过遥控器按下按键,喇叭发出声音。

接2个带霍尔编码器的减速电机,第一版设计的时候将5V电源供给了编码器,第二版改为3.3V供电,使编码器输出电平和ESP32一致。

这个电机驱动模块目前比较贵,可以用DRV8833替代

这里单独使用了NRF24L01模块,使用自制的遥控器控制。响应速度快、控制距离远

电路上设计了急停按键,但是程序里还没写这一块,感觉用处不大,本身原程序已经有了保护措施,车身倾斜到一定角度就会停车。

 姿态测量就靠这个模块来实现,这里直接使用现成的模块,制作起来更简单。

加入了超声波测距模块,但程序里还没有写,后期再慢慢补上。

电源部分,这里采用了LM2596-5.0 ,能够为全系统提供稳定的5V 3A的电流。采用开关控制,加了一个二极管,防止电池接反烧毁电路。

下面是PCB设计

PCB设计没什么可说的,主要就是电源走线一定要粗。

车架部分

车架尺寸为150mm*60mm,使用CAD设计了一块底板。可以使用PCB制作,也可以用亚克力。

小车做好后先要调试车轮的正反转以及PID,这个根据个人的小车的结构以及电机的参数自行修改,我的程序仅供参考(PS:原作者的PID我这里不好使,后来改了很久才有现在的效果)

ESP32 控制 TB6612 四路驱动板的程序通常涉及到使用 ESP32 的数字信号处理能力来发送脉冲宽度调制 (PWM) 信号给 TB6612 双 H-bridge 驱动器,以便控制电机或其他负载的转动方向和速度。TB6612 支持两组独的高电压 PWM 输出,每组可以连接到一对电机。 下面是一个基本步骤的概述: 1. **初始化硬件**:首先,需要在 ESP32 中配置相应的硬件引脚作为 PWM 输出口,比如 GPIO4 和 GPIO5 对应 TB6612 的 OUT1A 和 OUT1B。 ```c #include <TB6612FNG.h> TB6612FNG tb6612(4, 5); // 使用 GPIO4 和 GPIO5 连接 ``` 2. **设置模式**:TB6612 需要设置为半桥工作模式,这将允许通过 PWM 脉冲切换驱动器的上下两个 MOSFET。 ```c tb6612.setHalfBridgeMode(); ``` 3. **编写主循环**:在主循环中,生成并发送 PWM 信号,改变占空比来控制电机的转动。例如,如果你想让左电机顺时针旋转,你可以这样做: ```c int left_speed = 0; // 0-255 之间的值,表示速度 tb6612.setMotorSpeed(TB6612::LEFT, left_speed); ``` 4. **控制步进**:如果需要精确控制电机的步进,可以调整 PWM 的频率和周期来实现。 ```c setInterval(1000 / motor_speed, [this]() { tb6612.update(); }); ``` 5. **安全性和错误处理**:确保在中断或异常发生时能正确关闭电机,并处理可能的通信错误。 完成以上步骤后,你就有了一个基础的 ESP32 控制 TB6612 四路驱动板的程序框架。具体的编程语言通常是 C++,因为它与 ESP32 模块有更好的兼容性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值