本项目参考了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我这里不好使,后来改了很久才有现在的效果)