Post Go back to editing

教你DIY一辆自己的 “赛格威”平衡车!(ZT)

网上看到一位强大的技术宅自己打造的平衡车以及完整的图文分享(很详细,有结构设计、电路设计和部分软件代码。。。),看到用了ADIMEMS传感器,转过来分享下,也希望ADI的传感器专家能讲解下里面传感器的关键作用,给咱们这种MEMS门外汉扫个盲啥滴~~~~~~~~另外,想知道赛格威的那个平衡车也是用的ADIADXL335么?

(原帖见http://www.guokr.com/article/437624/

原理简介

“赛格威”平衡车

“赛格威”(英语:Segway)是一种电力驱动、具有自我平衡能力的个人用运输载具,是都市用交通工具的一种。由美国发明家狄恩·卡门与他的DEKA研发公司(DEKA Research and Development Corp.)团队发明设计,并创立思维车责任有限公司(Segway LLC.),自2001年12月起将思维车商业化量产销售。(资料来源:维基百科中文)

“赛格威”是一种让人留下深刻印象的代步工具,它占地不足一平方米,乘车人像使用滑板一样站立其上,双手解放,但却可以仅通过身体移动改变重心位置,就进行前进后退,转弯刹车等操作。传统的交通工具都无法做到随心而动,必须把大部分精力放在控制方向和速度上,而“赛格威”并不需要专门的操控装置,一切由车身自主完成,也由此获得了“平衡车”的别名。

“赛格威”平衡车看来神奇,但你有没有发现它的原理其实很简单呢?拜最新科技所赐,关键零件都可以在淘宝上直接买到,而控制程序也可以查阅原理自行编写。拥有自己的平衡车,其实非常简单。

倒立摆和机器人

“赛格威”的平衡问题,实际上是一个多级倒立摆问题。当一个人用手托住一根竹竿的底部使它在空中竖直不倒下,这就是一个一级倒立摆系统的模型。如果第一根竹竿上面用铰链连着其他竹竿,或者竹竿本身具有一定的弹性(可比拟“赛格威”上的有骨骼和关节的大活人),就成了多级倒立摆。



Parents
  • 控制程序部分

    果壳网友们的素质都很高,这里就提一些关键部分。一些个人认为有用的代码附在最后。

    流程图

    车身角度获取

    选用的传感器为模拟量输出,因此只需要用单片机的AD采集数据后计算出角度值即可,需要注意的是,采集后的数据直接使用效果会很糟糕。需要再次进行滤波计算,得到一个准确、及时、抗扰动的真实角度数据。调速过程中可以用串口将数据输出,辅助调试。

    计算车轮速度

    这里就是简单的PID控制车轮转速,如果不记得就百度看看。调试参数会花点时间,刚开始参数别调过大,否则抖动起来有危险!另外需要设置角度过大停机的功能。

    获取转向数据

    转向数据为采集转向电位器而来,采集后的数据进行滤波处理后再用。转向中间设置一个无效的死区,也是防止误动作。

    遥控

    (图片来自网络)

    遥控为最普通的4键遥控器,淘宝成品。

    语音

    语音选用成品语音模块,厂家提供完整说明文档。

    温度

    硬件原先选用18b20,很是遗憾这部分程序没调通,可能原因1:系统必须有多处中断,并且中断服务程序比较多,因而打乱了18b20的时序,加上没有示波器,因而没调通。可能原因2:智商问题。

    尝试调试了近2小时无果后改用模拟量温度芯片LM35D,电压直接由电阻分压而来。

    其余部分可自由发挥。

Reply
  • 控制程序部分

    果壳网友们的素质都很高,这里就提一些关键部分。一些个人认为有用的代码附在最后。

    流程图

    车身角度获取

    选用的传感器为模拟量输出,因此只需要用单片机的AD采集数据后计算出角度值即可,需要注意的是,采集后的数据直接使用效果会很糟糕。需要再次进行滤波计算,得到一个准确、及时、抗扰动的真实角度数据。调速过程中可以用串口将数据输出,辅助调试。

    计算车轮速度

    这里就是简单的PID控制车轮转速,如果不记得就百度看看。调试参数会花点时间,刚开始参数别调过大,否则抖动起来有危险!另外需要设置角度过大停机的功能。

    获取转向数据

    转向数据为采集转向电位器而来,采集后的数据进行滤波处理后再用。转向中间设置一个无效的死区,也是防止误动作。

    遥控

    (图片来自网络)

    遥控为最普通的4键遥控器,淘宝成品。

    语音

    语音选用成品语音模块,厂家提供完整说明文档。

    温度

    硬件原先选用18b20,很是遗憾这部分程序没调通,可能原因1:系统必须有多处中断,并且中断服务程序比较多,因而打乱了18b20的时序,加上没有示波器,因而没调通。可能原因2:智商问题。

    尝试调试了近2小时无果后改用模拟量温度芯片LM35D,电压直接由电阻分压而来。

    其余部分可自由发挥。

Children
No Data