单片机/MCUwilliam hill官网
直播中

王兰

13年用户 904经验值
擅长:基础元器件
私信 关注
[文章]

基于STM32的四轴飞行器DIY教程


今年飞行器、航拍十分的火热,这里分享一个基于STM32 四轴飞行器的教程。

我们在制作一个非常袖珍的四轴飞行器,就用PCB作为承力结构。第一个版本被命名为疯狂直升机。
它的主要特点有:
  • STM32 Cortex-M3 CPU
  • 3轴加速度计
  • 1轴/2轴陀螺仪
  • Nordic 2.4GHz 射频通信芯片
  • 电动机,螺旋桨和银辉(Silverlit)X翼模型飞机的电池


这架直升机可以从电脑上通过USB无线适配器遥控。我们制作了三架样品(每个成员各一架),并完成了大多数的固件程序。
为了达到稳定飞行的目的,还需要解决一些控制上的问题,以及完成电脑上的控制程序模块。
更多的信息和实际飞行视频会在稍后公布:)


第一个飞行视频
[media]http://v.youku.com/v_show/id_XMjY1NjQ3NTAw.html[/media]

控制系统工作的很棒,但是它仍然过于依赖操纵者的敏捷(见视频的结尾部分)。
这架直升机是通过PC机上运行的Python程序控制的,我们实际上用一个游戏机的蓝牙手柄来操纵它。



疯狂直升机四轴飞行器详述像承诺过的那样,我们要在这里公布疯狂直升机(也是我们第一架四轴飞行器)的更多信息。
该系统的主要架构如下:
2.jpg
疯狂直升机的高层次系统图。

直升机本身是围绕CPU组织起来的。CPU的任务是读取物理传感器(陀螺仪和加速度计)的测量结果,给出控制信号控制电机,让直升机保持稳定。通过一个控制反馈回路,CPU每秒能够对电机发送250次调节转速的指令。无线通信的带宽需求很低,仅仅需要发送操作命令和接受遥测数据。CPU上运行的程序可以通过无线通信更新。
控制和遥测程序在电脑上运行,控制程序从手柄读取输入,然后向直升机发送命令。我们也有调节直升机上控制参数的程序模块,并且会记录下传感器的测量结果,方便调整控制回路。
所有这些开发工作在Windows或linux系统上完成。事实上有三个人同时在这个项目上工作,两个人在Linux上工作,剩下一个人主要使用Windows。利用自由/开源软件(FLOSS,Free/Libre and Open Source Software)许可对提高工作效率非常有帮助。我们主要使用GCC编译器编译直升机程序,GNU( GNU's Not Unix,一个包含了递归的缩写!GNU Linux工程是为与可复制﹑修改﹑和重新分配的源代码一起的类Unix操作系统的发展而建立的。)建立我们的工程,Mercurial(一个轻量级的分布式版本控制系统)管理我们的源代码,与直升机之间的通讯采用python/pyu***(一个python上的USB通讯软件库)。所有这些软件都能在linux和windows系统间来回无缝切换,使这个项目的管理变得容易许多。
电动机之间的距离(X轴和Y轴方向)大约有8cm,整个飞行器的重量只有20g。



威廉希尔官方网站 板顶面的细节
3.jpg
威廉希尔官方网站 板顶面包含了传感器和控制/通讯威廉希尔官方网站 。
  • JTAG/串行接口用来向处理器编程,传送debug信息。
  • CPU是STM32 Cortex - M3。时钟设定为内部振荡器64MHz。
  • 2轴X-Y陀螺仪InvenSense IDG500。它的模拟信号输出连接到CPU的模数转换器。
  • Z轴陀螺仪InvenSense ISZ500。和X-Y陀螺一样,模拟信号输出连接到CPU的模数转换器。
  • 2.4GHz的射频通信基于Nordic的nRF24L01 芯片。它实际上是一个通过SparkFun出售的带接口威廉希尔官方网站 板,通过SPI端口连接到CPU。
  • 3轴加速度计是Bosch SMB380。它通过I²C总线连接到CPU。



威廉希尔官方网站 板底面的细节 4.jpg 疯狂直升机威廉希尔官方网站 板底面细节
这里没有什么特别之处,除了一小块电池通过胶带粘在威廉希尔官方网站 板底面。这些电池来自一架Silverlit x-twin模型飞机,允许我们的直升机飞行4.5分钟。



电池下方的威廉希尔官方网站 细节 5.jpg 在电池下方是供电威廉希尔官方网站 和功率控制威廉希尔官方网站 。
  • 充电插座连接外界的5V电源,给电池充电
  • 电源开关切换直升机的电源供应(连接器/充电电池)
  • 5V升压威廉希尔官方网站 将3〜4V的电池电压升压到5V。
  • 两个3.3V线性稳压器,从5V电压降压输出3.3V电压。数字和模拟3.3V供电电压相互独立。这是为了减少对模拟器件的噪声干扰(两个陀螺仪,设计中很重要的一部分)。
  • 最后,在四个侧边正中有电动机的驱动晶体管。电能从PCB梁的顶部和底部布线传送,为电动机提供能量。


值得一提的是,我们在3.3V稳压器右边放置了电池充电芯片,这是一片常用的MAX1555,它工作的很好。
使用升压威廉希尔官方网站 的目的在于在电池的基础上提供更加稳定的供电,在电池即将耗尽,电压开始下降时它特别有效,同时还能够减小电机驱动威廉希尔官方网站 带来的噪声。但是说到底这些芯片使用2.8V线性稳压器供电就能工作,因此我们计划在下一个版本中取消升压威廉希尔官方网站 ,同时还打算把无线通讯模块也集成到威廉希尔官方网站 板上。
电动机和螺旋桨都来自Silverlit x-twin模型飞机,它们直接由电池电压供电。

本教程来自果壳DIY:http://www.guokr.com/article/6171/


回帖(68)

ben111

2014-12-4 23:21:16
号召大家一起来做飞行器吧
举报

tec cherry

2014-12-5 11:39:16
nice  take a look  mark  
举报

金鑫

2014-12-5 13:35:45
有配件提供吗?非常不错
举报

jj152125

2014-12-7 21:32:34
不错nice                  
举报

郑居烽

2014-12-13 11:32:01
bucuo ......................
举报

tyboy

2014-12-17 23:34:54
听着这声音怎么有种想一巴掌拍过去的冲动~~
举报

1049010335

2014-12-22 12:01:28
很想试试                  
举报

zkper

2015-3-20 19:58:25
好迷你,赞一个!
举报

1767802879

2015-4-3 22:17:15
楼主能不能给资料啊?我想仿照你的做一个,qq:1767802879
举报

1653195900.147400

2015-4-10 16:16:17
好小呀                       
举报

时爱明

2015-5-6 23:14:04
这个不错,不过就是不能撞,撞一下就废了
举报

lnxkxx

2015-5-7 23:45:46
楼主威武啊,赞一个
举报

lnxkxx

2015-5-7 23:46:15
楼主威武啊,赞一个
举报

走晒太阳

2015-6-16 22:02:58
最开始想买一个大四轴,后来发觉这样的小四轴更适合我的需求。赞一个。
举报

黄洪阳

2015-7-30 08:19:44
多谢分享。。。。。。。。。。。。。。。。。。。。。。
举报

风随1204

2015-7-30 16:15:24
想要资料仿做一个,能给不
举报

赵岩飞

2015-8-2 18:45:36
好东西,感谢楼主分享
举报

杨兰

2015-8-13 00:32:03
好迷你,赞一个!
举报

h1654155854.3559

2015-8-21 08:10:07
不错  能不能分享一下STM32的代码啊
举报

更多回帖

发帖
×
20
完善资料,
赚取积分