大家好,我是手工饭!喜欢做一些看似简单又不简单的东西!
先上视频:(点击观看)
如果通过简单的练习,一般人可以通过自己的手指把木棒直立而不倒的 放在指尖上,所以练习的时候,需要学会的两个条件:一是放在指尖上可以移动, 二是通过眼睛观察木棒的倾斜角度和倾斜趋势(角速度)。通过手指的移动去抵 消木棒倾斜的角度和趋势,使得木棒能直立不倒。这样的条件是不可以缺一的, 实际上加入这两个条件,控制过程中就是负反馈机制。
平衡小车也是如此,小车运动方向与倾斜方向一致,通过惯性传感器测量小车的倾角与倾角角速度,进而通过控制车轮的加速度来抵消小车的倾角和倾角角速度,小车即可平衡!
下面三幅图分析小车的几种运动可能
1、车体向左倾斜,车轮向左加速运行
2、车体垂直,车轮保持静止
3、车体向右倾斜,车轮向右加速运行
本设计使用无刷直驱动力,优点:输出轴无来回虚位,寿命长!缺点:扭力小!但是对于DIY学习平衡小车是足够的,当然不同大小体积的平衡小车需要选择不同大小的无刷电机来保证其有足够的扭力来维持小车的平衡!
主控板:核心AT32F413RC(运动控制和FOC算法) + MPU6500(姿态反馈) + LM358(电流采样) + MP6536(电机3通道半桥驱动)+AMS1117-3.3+AMS1117-5.0
为什么用AT32呢?因为便宜!因为便宜!因为便宜!基于ARM® 32位的Cortex® -M4F微控制器+FPU,最高200MHz工作频率,所以DIY有什么理由不用它呢?
MP6536是一款被大量用于无人机云台的电机3通道半桥驱动,体积小巧5x5mm封装,5V至26V供电,5.5A峰值电流输出,高达1MHz PWM频率,受保护的集成功率0.14Ω开关管,10ns开关管死区时间。
MPU6500设计有恒温加热,并且进行了温度补偿,保证传感器数据不随温度变化而发生较大的零偏。
得益于处理器的强大,算法带宽建议如下:电机电流环10KHz,电机速度环5KHz,小车角速度和直立环1KHz,小车速度环和控制环200Hz
IO板:ESP32-C3(蓝牙通信、RGB控制)+HMC5883L(获取航向角)+14500锂电池座(2S)
转速反馈:TLE5012(获取车轮速度)
我为了抛器专用的遥控手柄,从而开始学习微信小程序,但是我一点都不熟悉小程序的编程语言,只能靠我对C语言的理解去参考复制别人的代码来实现了简单控制功能,莫见笑!学习使我快乐!
小车结构:3D打印件+电机+径向磁铁+铜螺柱+螺丝+橡胶圈
原理图是用立创EDA画的,高清源文件看附件。
开源资料获取方式,芯片之家微信公众号后台回复:FOC平衡车,获取全部开源资料!
再次感谢饭饭,我们搞电子的乐趣就在于不停的折腾,通过编程,算法一步步实现我们想要的效果与功能,学习电子,希望大家Enjoy!
猜你喜欢:
柔性数组在实际项目中的应用?
干货 | protobuf-c之嵌入式平台使用
实用 | 10分钟教你搭建一个嵌入式web服务器
在公众号聊天界面回复1024,可获取嵌入式资源;回复 m ,可查看文章汇总