## 项目说明
**esp32共轴麦轮平衡车,四个麦克纳姆轮共轴排列实现平衡车左右平移及全向移动。**
**共轴麦轮和经典麦轮双模式控制。根据不同车身装配方式可实现共轴麦轮和经典4轮麦轮小车的双模式切换。**
**主控采用esp-wroom-32核心板,pcb电路大部分采用排针焊接(模块直插)的方案,焊接难道小,原理简单,易于复刻。**
**采用串级pid进行直立平衡控制。**
**solidworks结构建模并采用3d打印制作车身框架,打印耗材使用petg或者pla。**
**使用app inventor制作蓝牙上位机进行遥控,通过蓝牙控制能够进行前后,原地左右转,左右平移及左上(下)右上(下)全向移动。**
## 开源协议
**GPL 3.0.(未经作者授权,禁止转载)**
## 项目相关功能
**共轴麦轮和经典麦轮双模式控制。根据不同车身装配方式可实现共轴麦轮和经典4轮麦轮小车的双模式切换。**
**共轴麦轮模式:**
**1.通过串级pid控制基本的直立平衡**
**2.使用蓝牙app进行遥控,通过蓝牙控制能够进行前后,原地左右转,左右平移及左上(下)右上(下)全向移动。**
**经典麦轮模式:**
**1.使用蓝牙app进行遥控,通过蓝牙控制能够进行前后,原地左右转,左右平移及左上(下)右上(下)全向移动。**
## 项目进度
**solidwrks建模验证完成。**
**pcb及原理图设计验证完成。**
**软件代码编写验证完成。**
## 硬件介绍
#### 1.1 esp32主控
![image.png](//image.lceda.cn/pullimage/IeBqU47TpONsVjhXYaXBXcJWsaUtPhmdUOTiAveX.png)
主控模块使用esp-wroom-32核心板,主频240Mhz,板载串口转TTL芯片可直接通过micro usb数据线连接电脑进行串口下载.
#### 1.2 供电电路
![image.png](//image.lceda.cn/pullimage/8Jfrzv4dp3hXK8cFJfw5Z95w57YYJAICPTdiqmHs.png)
使用3s锂电池11.1v直接给4个电机进行供电,11.1v再通过mp1584en降压模块输出5v给到esp32核心板的Vin引脚通过核心板板载的ams1117得到3V3电压给芯片,mpu6050,oled模块进行供电.
#### 1.3 IIC模块
![image.png](//image.lceda.cn/pullimage/z0NZ7FuWgcPpU5La769IfKNJe1KsqxqeeWsndhr2.png)
MPU6050和oled显示模块通过一路iic进行控制,3v3供电.
#### 1.4 电机接口
![image.png](//image.lceda.cn/pullimage/GeJU0OcfJIZI2ytiYLRMlWhWgs49kRyOMWCYoudM.png)
电机接口位zh1.5-8p,其中8个引脚,MxENCODERx为各电机编码器的两相信号线,电机内集成的编码器通过3v3进行供电.MxDIR为电机方向控制引脚,MxBRK为电机启停控制,MxPWM控制电机转速,注意pwm占空比为0电机满速运行,占空比为1电机停转,与寻常逻辑反一下.电机由电池直接供电.
#### 2.1 车架硬件
![image.png](//image.lceda.cn/pullimage/BqZ5KVeUUxVr2ZADvAVhH9X0nlRbJZwI9l86jpyU.png)
![image.png](//image.lceda.cn/pullimage/ojLVKhhwzyk0KE01PjqxW7OGjLlVa9Bjl7LkoctX.png)
车架整体使用solidworks进行建模,使用petg耗材3d打印制作.
#### 2.2 电机及麦克纳姆轮
![image.png](//image.lceda.cn/pullimage/NjRmpbJuofPqqRT6DSNIoPD90SjOYN7tjysmNG2i.png)
电机使用的是拆机nidec无刷电机,内置电机驱动,带100线编码器.12v-24v供电.和一般有刷减速电机操作逻辑类似,通过一路pwm进行调速,两个gpio进行方向和启停控制,性能好,价格低,性价比很高.
麦克纳姆轮使用A轮B轮各两个,轮子直径80mm,使用6mm联轴器,采用如图所示ABBA排列方式.左右平移运动通过在前后平衡的基础上叠加4个轮子的差速即可实现.运动状态各轮子转动方向如下图.
![image.png](//image.lceda.cn/pullimage/paYrw0isutCKKCmRm91SskW7Td1cRimMwg6ITmpP.png)
前进
![麦轮排列(前进).png](//image.lceda.cn/pullimage/n6InLRypXt0DWg8iYW1S16uBMPGZCA2AjrhVBCAm.png)
后退![麦轮排列\(后退).png](//image.lceda.cn/pullimage/b1b2Z1Q67u0E2SeOkdcmnsB0Nvg2ydTsgIQfNylZ.png)
左平移
![麦轮排列\(左平移).png](//image.lceda.cn/pullimage/XjDxGbse0bbJWaI9OTRNkX6c1Hm0aV7mzoOt3gAz.png)
右平移
![麦轮排列\(右平移}.png](//image.lceda.cn/pullimage/FWIj7IdSnyWaPDYTeJ3pI90OgOYdr0MaKYcbWHJz.png)
左转
![麦轮排列\(右转\).png](//image.lceda.cn/pullimage/PgfQkMqgngv74YaKflJgmr66JkDE1ODjFDB8BGzR.png)
右转
![麦轮排列\(左转\).png](//image.lceda.cn/pullimage/5vwJP7JbaeEXeEYAJJ52DRWrZ37juVVishSPDHVX.png)
####
## 软件说明
#### 1 代码说明
代码编写使用VScode Platformio +Arduino框架
整体程序思路为各模块初始化完成后.根据车架组装模式通过蓝牙app选择共轴麦轮和经典麦轮控制模式后进入loop主循环判断各事件标志位并执行对应函数,定时器1周期触发中断函数标记mpu6050姿态数据读取,编码器外部中断计数读取以及pid计算的标志位.esp32的定时器中断函数中放太复杂的函数会出错,所有仅在中断函数中置位标记位然后在loop循环中判断执行.
运动控制采用串级pid,内环角度环,外环速度环.,再加上一个转向环(仅产生差速非yaw轴闭环).
#### 2 app说明
蓝牙app使用app inventor开发,图形模块化编程,简单易上手.
![image.png](//image.lceda.cn/pullimage/NuJUyzTut1XgT0CUSGB7BpzZ7qGH7HLGvknIGwp7.png)
## 设计注意事项
提示:这里说明作品在制作中需要注意的一些注意事项(没有可以不写)
## 实物展示
### ![3e475cbdfc6293d8694476e8352d7b8.jpg](//image.lceda.cn/pullimage/AOIXWjVNHVf6mbXVCABCfYfkAIpTBuuqlv5A7Liu.jpeg)
![ff2bfdceb1599153f9595bb7ab879bb.jpg](//image.lceda.cn/pullimage/gt8lgsQgBkUKiAx8WbWy4z8SQLApsHdKzbGoDDn8.jpeg)
51
74
收藏到专辑