Skip to content

microcai/balancedcar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

balance 是自平衡小车。

利用陀螺仪测量倾角速度,使用马达移动下身进行平衡

平衡算法在 algorithm/

platform/ 下是模拟器。

模拟器依赖 box2D , freetype2 和 ftgl。 当然, OpenGL 是必须的。

ftgl 是利用freetype和OpenGL 绘制字体的库。

box2D 是个物理模拟引擎。

弄好依赖后,

autoreconf && ./configure && make

执行 ./platform/balance 看模拟效果。

可以使用键盘按钮给小车施加干扰。小车受到干扰后能马上恢复平衡。

 F3 F4 F6 F7 .... 自己试试看吧,呵呵。


 关于开发:

 platform/simulator.cpp 是模拟器入口。

 如果为单片机开发,需要依照 simulator.cpp 的格式,编写

 1. 入口点
 2. 时钟中断
 3. 陀螺仪驱动
 4. PWM 驱动

 然后在时钟中断里周期性的调用算法即可。

 对应具体小车的推重比,有可能需要调节算法里的 P I D 控制参数。尽管我已经尽努力尽量做到和重量重心等物理参数无关了。 


 优点:

 只需要使用陀螺仪即可,无需加速度传感器。重心自适应。最低可以每秒只迭代20次依然维持平衡。
迭代周期越短,平衡能力越强。能耗越大,呵呵。推荐的迭代周期是 200Hz , 也就是 5ms 一次迭代。




 

About

and algorithm of self-balancing car as well as an simple simulator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors