查看: 5765|回复: 8

DIY四轴飞行器:让PCB板飞!(转帖)

[复制链接]
  • TA的每日心情
    擦汗
    2014-2-12 10:49
  • 签到天数: 150 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-12-16 10:11:01 | 显示全部楼层 |阅读模式
    分享到:

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


    这架直升机可以从电脑上通过USB无线适配器遥控。
    第一个飞行视频


    这是直升机的第一段飞行影像。



    控制系统工作的很棒,但是它仍然过于依赖操纵者的敏捷(见视频的结尾部分)。

    这架直升机是通过PC机上运行的Python程序控制的,我们实际上用一个游戏机的蓝牙手柄来操纵它。




    疯狂直升机四轴飞行器详述
    该系统的主要架构如下:
    12.png

    疯狂直升机的高层次系统图。

    直升机本身是围绕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/pyusb(一个python上的USB通讯软件库)。所有这些软件都能在linux和windows系统间来回无缝切换,使这个项目的管理变得容易许多。

    电动机之间的距离(X轴和Y轴方向)大约有8cm,整个飞行器的重量只有20g。




    电路板顶面的细节

    13.png

    疯狂直升机电路板顶面细节

    电路板顶面包含了传感器和控制/通讯电路。

    • 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。



    电路板底面的细节


    14.png

    疯狂直升机电路板底面细节

    这里没有什么特别之处,除了一小块电池通过胶带粘在电路板底面。这些电池来自一架Silverlit x-twin模型飞机,允许我们的直升机飞行4.5分钟。




    电池下方的电路细节

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


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

    使用道具 举报

    该用户从未签到

    发表于 2013-12-20 09:32:49 | 显示全部楼层
    专业点赞三十年
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2014-12-12 19:36
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2013-12-20 09:50:08 | 显示全部楼层
    太棒了 来了来了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2014-12-12 19:36
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2013-12-20 09:50:44 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2014-12-12 19:36
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2013-12-20 09:52:11 | 显示全部楼层
    :P:P:P:P{:soso_e179:}
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-5-11 18:10
  • 签到天数: 60 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2013-12-23 12:57:00 | 显示全部楼层
    是挺牛的…………
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-7-1 16:17
  • 签到天数: 113 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2013-12-31 13:24:11 | 显示全部楼层
    牛人
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-2-18 18:08
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2014-2-18 18:06:12 | 显示全部楼层
                                                                   
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-3-30 03:33:51 | 显示全部楼层
    d叮叮叮,牛人
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-27 21:50 , Processed in 0.183148 second(s), 33 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.