可编程硬件Arduino初探(2)-神奇的鸡腿multiwii
0.前言
本文以multiwii为引子,重点介绍使用multiwii来完成多轴飞行器飞控的工作.
1.介绍
multiwii是任天堂公司针对wii游戏机的一个体感项目,主要应用于任天堂的wii游戏机遥控器手柄.用于检测玩家的动作,从而完成游戏互动.后来开源.
multiwii作为一个最初用于检测遥控器姿态的项目,后被用于研究多轴飞行器\云台等.目前有大量的玩家和学着在对这个项目进行着贡献.
具体内容请自行科普:
http://www.multiwii.com/
http://multiwii.org/
http://wiibrew.org/wiki/Wiimote/Extension_Controllers
http://baike.baidu.com/view/126669.htm
2.理论
整个项目使用arduino\avr作为中央处理器模块.使用陀螺仪\加速度计\地磁感应计\气压传感器作为传感器模块.通常常用的一体化传感器芯片有GY-80\GY-86
arduino和传感器之间使用i2c协议进行通信.所有数据均写在串口上.连接十分简单.仅需4个端口.SCL\SDA\Vcc\Gnd
下面介绍各个芯片作用:
arduino\avr:中央处理器;负责数据处理;
陀螺仪:负责感知XYZ三轴上的角度变化.
加速度计:用于感知XYZ三轴上的速度变化.
地磁感应计:用于感知方向
气压计:用于感知高度变化
在多轴飞行器的实践使用中,使用陀螺仪来保持姿态,使用加速度计来保持头向上,使用地磁感应计来保持方向,使用气压计来完成定高飞行.
在云台的实践中,使用陀螺仪来保持镜头方向即可.
也有一些简单的多轴飞行器,没有使用地磁和气压计,同样也能完成飞行工作.
3.硬件
arduino
arduino pro mini 基于avr mega328 的arduino开发板
5V 16Mhz
http://kb.open.eefocus.com/index.php?title=Arduino_Pro_Mini
GY-86是集合了陀螺仪\加速度\磁场\气压为一体的传感器模块,下面介绍具体使用的芯片.
GY-86图:
陀螺仪+加速度:MPU6050
6轴加运动感器,结合了陀螺仪和加速度
http://baike.baidu.com/view/8879632.htm?fromtitle=mpu6050&type=syn
芯片图:
罗盘:HMC5883L
精度在1°-2°之间.
http://wenku.baidu.com/link?url=8h03FVfWSjVifGQD0kh4tiwVmK4zYsS-x3NvYpBanYLLGd3hr22if6PNP4Bnvt8jlFur_tyCfikzd_GRmzCXUNhjjv_OiS8We6zMneEvXDe
芯片图:
气压:MS5611
精度可达10cm
http://baike.baidu.com/link?url=x3KuycbKcVnhdN8E0W1LMiAWcQmuwnaZKcGax1qxsA5n6u18FwDwI3JYyII-LEYRyyVyhYe6BT8obna8S_QVRa
芯片图: