花100多元 做了个共轴麦轮平衡车!设计了两种外型。
第一种外型:动图为2.0倍速
第二种外型:动图为2.0倍速
小编刚看到这个小车的时候,最好奇的地方就是——这轮子方向也没变过,怎么能万向移动啊??
2、支持通过蓝牙遥控
3、支持左右平移及全向移动
4、采用串级PID进行直立平衡控制
5、支持双模式控制:共轴麦轮和经典麦轮,根据不同车身装配方式实现模式切换
原理图
PCB电路大部分采用排针焊接(模块直插)的方案。主打的就是焊接难度小,易于复刻。
PCB
如你所见,本项目的电路设计十分简单,下面简述一下工作原理。
01 ESP32主控
主控使用esp-wroom-32核心板,主频240Mhz,板载串口转TTL芯片可直接通过micro usb数据线连接电脑进行串口下载。
02 供电电路
使用3s锂电池11.1v直接给4个电机供电,11.1v再通过mp1584en降压模块输出5v给到esp32核心板的Vin引脚,通过核心板板载的ams1117得到3V3电压,给芯片mpu6050,oled模块供电。
03 IIC模块
MPU6050和oled显示模块通过一路iic控制。
04 电机接口
电机接口的8个引脚,都起到什么作用?
MxENCODERx是电机编码器的两相信号线。
MxDIR是电机的方向控制 引脚
MxBRK是电机的启停控制
MxPWM控制电机转速
注意!
pwm占空比为0,电机满速运行
占空比为1电机停转
电机由电池直接供电。
代码编写使用VScode Platformio +Arduino框架。
01 程序设计思路
如何通过蓝牙APP控制小车?
各模块初始化完成后,通过蓝牙app选择【共轴麦轮】和【经典麦轮控制模式】,然后进入loop主循环,判断各事件标志位,并执行对应函数。
定时器1周期触发中断函数 ,标记mpu6050姿态数据、编码器外部中断计数、pid计算的标志位,并读取。
函数复杂,导致出错怎么办?
注意了!esp32的定时器中断函数中,放太复杂的函数会出错,所以这里仅在中断函数中置位标记,然后再在loop循环中判断执行。
运动控制采用——串级pid,内环角度环,外环速度环,再加上一个转向环。
02APP说明
蓝牙APP使用app inventor 开发。
图形模块化编程,简单易上手。
04\结构设计
本章节会说明:车架结构设计,电机的选购,车轮的特殊设计。
车架使用solidworks进行建模。使用petg耗材3D打印制作。


说明:车架的3D外壳未计入总成本,因为是作者用自己的3D打印机制作的,在外面做一个这样的外壳大概50-100元。
电机使用的是拆机nidec无刷电机,内置电机驱动,带100线编码器。
麦克纳姆轮使用A轮B轮各两个。
轮子直径:80mm
联轴器:6mm
采用如图所示ABBA排列方式。
这样的车轮设计结构,如何实现左右平移?
其实只需在前后平衡的基础上叠加4个轮子的差速 即可实现。
轮子运动方向如下图所示:





05、开源网址
本项目已开源!开源网址:https://oshwhub.com/yuyxz/coaxial-wheat-wheel-balance-car
《共轴麦轮平衡车》已开源资料:
电路设计文件
外壳设计/物料/安装文件
程序源码