开源一辆精致的Mini FOC无刷平衡车,AT32F413+ESP32-C3
<p data-tool="mdnice编辑器">【转自芯片之家】</p><p data-tool="mdnice编辑器">大家好,我是手工饭!喜欢做一些看似简单又不简单的东西!</p>
<p></p>
<p></p>
<section>
<p>最近我精心制作了一款mini平衡车希望大家喜欢,虽然提供了基本功能可演示软件,但我建议大家可以<strong>挑战自我一步一步的实现自己的软件</strong>。</p>
<p> </p>
</section>
<section _blank="" data-tool="mdnice编辑器" data-website="<a target=">
<h2 data-tool="mdnice编辑器">2 平衡原理</h2>
<p data-tool="mdnice编辑器">如果通过简单的练习,<strong>一般人可以通过自己的手指把木棒直立而不倒的 放在指尖上</strong>,所以练习的时候,需要学会的两个条件:一是放在指尖上可以移动, 二是通过眼睛观察木棒的倾斜角度和倾斜趋势(角速度)。<strong>通过手指的移动去抵 消木棒倾斜的角度和趋势,使得木棒能直立不倒</strong>。这样的条件是不可以缺一的, 实际上加入这两个条件,控制过程中就是<strong>负反馈机制</strong>。</p>
<p></p>
<p data-tool="mdnice编辑器">平衡小车也是如此,小车运动方向与倾斜方向一致,<strong>通过惯性传感器测量小车的倾角与倾角角速度,进而通过控制车轮的加速度来抵消小车的倾角和倾角角速度,小车即可平衡!</strong></p>
<p data-tool="mdnice编辑器">下面三幅图分析小车的几种运动可能</p>
<p data-tool="mdnice编辑器">1、车体向左倾斜,车轮向左加速运行</p>
<p></p>
<p data-tool="mdnice编辑器">2、车体垂直,车轮保持静止</p>
<p></p>
<p data-tool="mdnice编辑器">3、车体向右倾斜,车轮向右加速运行</p>
<p></p>
<h2 data-tool="mdnice编辑器">3 丝滑稳定的核心动力</h2>
<section>相信大部分都玩过DIY平衡车,<strong>但是常见的平衡小车动力一般采用有刷直流减速电机</strong>,虽然力矩大但是由于减速箱工艺问题导致减速箱输出轴有较大背隙(也可以称之为虚位,即保证电机轴固定的情况下,用手来回转动输出轴,最理想情况是来回一点都转不动),从而导致平衡小车直立时有小幅度来回抖动,这个时候不管算法再怎么高级都是没有用的,除非减速箱虚位很小(当然每个人对这个小理解程度都不一样)。</section>
<p></p>
<p>本设计使用无刷直驱动力,优点:输出轴无来回虚位,寿命长!缺点:扭力小!但是对于DIY学习平衡小车是足够的,<strong>当然不同大小体积的平衡小车需要选择不同大小的无刷电机来保证其有足够的扭力来维持小车的平衡!</strong></p>
<p></p>
<h2 data-tool="mdnice编辑器">4 硬件部分</h2>
<p data-tool="mdnice编辑器"><strong>主控板:</strong>核心AT32F413RC(运动控制和FOC算法) + MPU6500(姿态反馈) + LM358(电流采样) + MP6536(电机3通道半桥驱动)+AMS1117-3.3+AMS1117-5.0</p>
<ul data-tool="mdnice编辑器">
<li>
<section>
<p>为什么用AT32呢?因为便宜!因为便宜!因为便宜!<strong>基于ARM® 32位的Cortex® -M4F微控制器+FPU,最高200MHz工作频率,</strong>所以DIY有什么理由不用它呢?</p>
</section>
</li>
</ul>
<p></p>
<ul data-tool="mdnice编辑器">
<li>
<section>
<p>MP6536是一款被<strong>大量用于无人机云台的电机3通道半桥驱动</strong>,体积小巧5x5mm封装,5V至26V供电,5.5A峰值电流输出,高达1MHz PWM频率,受保护的集成功率0.14Ω开关管,10ns开关管死区时间。</p>
</section>
</li>
<li>
<section>
<p>MPU6500设计有恒温加热,并且进行了温度补偿,保证传感器数据不随温度变化而发生较大的零偏。</p>
</section>
</li>
</ul>
<p></p>
<ul data-tool="mdnice编辑器">
<li>
<section>
<p>得益于处理器的强大,算法带宽建议如下:<strong>电机电流环10KHz,电机速度环5KHz,小车角速度和直立环1KHz,小车速度环和控制环200Hz</strong></p>
</section>
</li>
</ul>
<p data-tool="mdnice编辑器"><strong>IO板:</strong>ESP32-C3(蓝牙通信、RGB控制)+HMC5883L(获取航向角)+14500锂电池座(2S)</p>
<ul data-tool="mdnice编辑器">
<li>
<section>ESP32-C3功能也强大,集成蓝牙与wifi,但是我并不喜欢它的编程方式。</section>
<section> </section>
<p></p>
<p> </p>
<p></p>
</li>
<li>
<section>所以看到源码后就知道我写的是什么垃圾,哈哈!</section>
</li>
</ul>
<p data-tool="mdnice编辑器"><strong>转速反馈:</strong>TLE5012(获取车轮速度)</p>
<ul data-tool="mdnice编辑器">
<li>
<section>磁编码旋转角度编码器</section>
<section> </section>
<p></p>
<p></p>
</li>
</ul>
<h2 data-tool="mdnice编辑器">5 上位机部分</h2>
<p data-tool="mdnice编辑器"><strong>我为了抛器专用的遥控手柄,从而开始学习微信小程序,但是我一点都不熟悉小程序的编程语言,只能靠我对C语言的理解去参考复制别人的代码来实现了简单控制功能,莫见笑!学习使我快乐!</strong></p>
<p></p>
<p data-tool="mdnice编辑器"> </p>
<h2 data-tool="mdnice编辑器">6 结构部分</h2>
<p data-tool="mdnice编辑器">小车结构:3D打印件+电机+径向磁铁+铜螺柱+螺丝+橡胶圈</p>
<p></p>
<h2 data-tool="mdnice编辑器">7 原理图</h2>
<p data-tool="mdnice编辑器">原理图是用<strong>立创EDA</strong>画的,高清源文件看附件。</p>
<p></p>
<p></p>
<p></p>
<h2 data-tool="mdnice编辑器">8 软件流程图</h2>
</section>
<section></section>
<section></section>
<section _blank="" data-tool="mdnice编辑器" data-website="<a target=">
<h2 data-tool="mdnice编辑器">9 相关资料</h2>
</section>
<p><strong>开源资料获取方式</strong>,见下:<a href="https://pan.baidu.com/s/1EQ28leyFAk-BLAOOLBC5rA" target="_blank">https://pan.baidu.com/s/1EQ28leyFAk-BLAOOLBC5rA</a></p>
<section>提取码:g4ao</section>
这个强大了,感谢分享这么好的资料。点赞! <p>谢谢分享,羡慕动手能力强的</p>
<p>ESP32-C3还是便宜,哪里都能用 </p>
大佬请问会做BLDC的无感控制吗?我看你这个应该是带反馈的 <p>感谢分享。。。</p>
感谢楼主的分享,资料做的很详细啊,板子画的也好看。 <p>感谢分享,里面没有原理图和源码!</p>
页:
[1]