在气球中充满氦气,由于氦气密度小于空气平均密度,气球排开了一定体积的空气,受到升力大于其自身重力,气球就可以向上飞了。

当我们给气球加上适当的负载之后,此时升力等于重力,那么气球就可以悬浮在空中了,如果我们再给气球安装上推进电机,并且仍然保证气球所获得升力等于重力,气球就可以在空中受控制的航行了。

这次我们就来开发一个可以飞的气球,我称之为“飞行气球“,下面是飞行气球的结构:

其中需要几大比较重要的部件:

  • 控制板(飞行控制板,负责接受信号以及驱动推进器)

  • 推进器(推进电机,带动螺旋桨叶推动气球航行)

  • 载具(气球,负载提供给升力)


控制板

制作一个好的控制板是非常重要的,其负责接受控制信号并且控制各个推进器的动力输出(转速)。所以使用一款兼具无线功能的MCU是最优选择,那么蓝牙SOC就当之无愧的入选了,蓝牙可以方便的和手机进行链接,并且功耗也较低。

SOC全称为System on chip,也就是片上系统的意思。对于一块蓝牙SOC来说,就是将蓝牙射频电路,单片机(MCU)功能集成到了一个芯片上。使用它不仅可以降低成本,并且芯片所占面积大大减少。生产蓝牙SOC的厂家有很多,这次用的是比较流行的Nordic公司的NRF52832。

由上图可见,在NRF52832中集成了一个性能较好的Cortex M4F内核,主频为64MHZ,这对于我们的应用无疑是给出了很大的拓展空间,带有FPU(float process unit)浮点运算单元使得进行浮点运算更加快速。
确定好了SOC之后,控制板还需要驱动我们的推进电机工作,那么我们就需要设计一个电机驱动电路了。由于气球的载重量有限,需要在各个环节都要减少重量,过于复杂的电路一概不予考虑,只需要最最简单的就可以了。

电机驱动芯片占地面积小,使用起来简单,驱动以及保护功能齐全,并且稳定性十分有保障。所以我选择了一款超级迷你的电机驱动芯片DRV8837,并且绘制好了电路的原理图

除了电机驱动芯片以及SOC芯片的电路之外,我还给板子上添加了一个姿态传感器MPU6050以及一个气压传感器BM280,用来获取姿态以及高度数据。

接下来将原理图文件转换成PCB文件并且进行简单的布局,布线等等操作。完成之后的样子可以初步的看出板子的样子。

这一次制作的板子为4层板,因为板子面积过于狭小,所以两层板布线困难巨大,故给板子添加了两个电源层,所有信号线则从板子表面通过。

切换成3D模式下,观察板子表面布局看看是否有问题

将板子的模型文件导出,导入到渲染软件中得到板子大概的效果图

板子拿到手之后,对于这种元件比较小、密度比较大的板子,按照常规来说应该开钢网才比较好焊接。而我这次图便宜没有开钢网,在焊接上栽了不少跟头,不是虚焊就是引脚连锡,反正出现各种问题。最后费了好大劲才焊接成功,这次长记性了,下回一定开钢网。

控制板到这里就算制作好了,给它编程之后就可以使用了。我在Nordic给的SDK(software development kit)软件开发包中修改了一下蓝牙串口的例程,在蓝牙串口接受服务的回调函数中,处理来自手机的数据包并且保存下来,方便后面控制电机使用。

电机转速采用PWM(Pulse width modulation)控制,所以我需要初始化一下NRF52832的pwm外设。

到这里我们就把代码写好了,控制板可以正常使用了,接下来我们看推进器的选择


推进器

推进器主要起着控制气球的姿态、以及前进后退的角色。在气球上使用的推进电机肯定不宜太重,那么空心杯电机肯定是不二之选,轻便的重量使得他可以很好的挂载在气球上。买来的电机以及螺旋桨。

拆了一个电机,用里面的铜丝来制作导线,铜丝不要太粗否则影响重量

所有的电子设备此时全部就准备好了,为了重量考虑,电池尽量使用最小的,这里使用的是一块100mah 3.7V锂电池,重量约3g

为了安装这四个电机,切割了一些泡沫塑料板,用来做支架,并且使用UHU模型胶粘接到电机上


将电机的另外一头焊接到刚刚做好的控制板上,这样控制板就可以控制电机的运转了


载具

关于载具我使用的是铝箔气球,因为铝箔气球有着很好看的外观以及各种造型,我在网上购买了一只形状是鲨鱼的气球。内充的气体一般是选择氦气,氦气属于惰性气体,安全性较高,氦气在花店可以加注,如果找不到花店的话也可以上网购买。
充好气的鲨鱼气球,由于很容易就飘到天花板上,只能用手按住拍照

将控制板使用透明胶带粘接到鲨鱼底部

接着依次使用UHU模型胶水粘贴四个电机至鲨鱼气球上,完成后的样子,四个电机就可以完成鲨鱼气球的前进,左右转弯,上浮下沉等等动作

从背后看看鲨鱼气球的样子

我顺便开发了一个微信小程序用来遥控气球,如图所示,油门使用中间的滑块控制,而左右转弯以及上浮下沉则是通过手机的重力感应。最上方处则是水平姿态线,用于指示手机此时的姿态。

当然之前设计控制板时候设计的姿态传感器也可以用上,我移植了MPU6050的DMP库,这样可以免去很多复杂的数学计算就可以轻易的获得欧拉角。对于闭环算法,我就简单的使用了一个比例项来控制,因为考虑到在室内气球的姿态比较稳定,所以就没有使用过多的算法。

最后来几张在飞行的图片

微信关注 “DLGG创客DIY”

设为“星标”,重磅干货,第一时间送达。

你点的每个在看,我都当成喜欢

硬核创客DIY遥控氦气球飞行器——会飞的鲨鱼的诞生的全过程相关推荐

  1. B站up主硬核打造「螃蟹火星车」,遥控、拍照、测距,还能做人脸检测;网友:赛博螃克...

    鱼羊 白交 发自 凹非寺 量子位 报道 | 公众号 QbitAI 吃完的螃蟹壳是干垃圾还是湿垃圾? 或者,裹上一层黑科技,让它变身「火星车」,馋哭隔壁家小孩. 更硬核的是,这样一台螃蟹火星车,并非只是 ...

  2. 【20210108期AI简报】技术宅硬核跨年,开源DIY墨水屏日历!

    导读:本期为 AI 简报20210108期,将为您带来 9 条相关新闻,新年新气象,恭祝大家牛年大吉~ 1. 技术宅硬核跨年,DIY墨水屏日历:自动刷新位置.天气,随机播放2000多条「毒鸡汤」| 开 ...

  3. DIY自平衡车意外失去左腿后,小哥爆改假肢玩出了花,稚晖君:技术到内心都硬核...

    明敏 梦晨 发自 凹非寺 量子位 | 公众号 QbitAI 没人骑也能自己走的电动单车,你见过吗? 前进.倒车都是基操了: 单凭两个车轮支撑就能稳如泰山,多轮爆踹都不会倒. 载人行驶也毫无压力,一个成 ...

  4. 绝对干货硬核实用作品教程——DIY制作空气净化器全过程,可能是年度最佳创客DIY作品(微长)...

    公众号关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 作者:皮皮 转载自:电子芯吧客 先看成品! 结构篇 首先我们需要给空气净化器设计一个 ...

  5. 被问到有没有内核开发经验_一个人就是一个开发团队!成电硬核毕业生自制迷你电脑走红...

    点击上方蓝字 给一个关注吧 △小视频 近日,一段长3分多钟的小视频在B站突然爆红,不仅登上首页,获得超过200万的播放量,还被众多观众"膜拜".有网友在评论区说:"其实这 ...

  6. 全网刷爆!B站Up主何同学带火这只A股:最硬核桌子,苹果也做不到!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 B站UP主一条视频,直接让A股上市公司股价涨超13%? 失踪三个月之 ...

  7. 这个B站up主太硬核了!纯手工打造AI小电视:硬件自己焊接,驱动代码全手写...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 晓查 发自 凹非寺  本文转自自:量子位(QbitAI) 一个低调的 ...

  8. 真正的全栈工程师!B站硬核UP主自己造了一个激光雷达

    机器之心报道 机器之心编辑部 转载自:机器之心 从零造一个激光雷达,需要多久? 激光雷达(LiDAR)是激光探测及测距系统的简称,目前广泛应用在无人驾驶和扫地机器人等领域.这种广泛的应用一方面得益于激 ...

  9. 被问到有没有内核开发经验_一个人就是一个开发团队!成电硬核毕业生自制迷你电脑走红!...

    △小视频 近日,一段长3分多钟的小视频在B站突然爆红,不仅登上首页,获得超过200万的播放量,还被众多观众"膜拜".有网友在评论区说:"其实这些东西吧,外行看起来很牛,但 ...

最新文章

  1. MFC 多线程及线程同步
  2. linux 增加 ip_conntrack_max 造成 内核内存问题
  3. flask 与layui冲突
  4. Spring学习总结(18)——Spring整合Mysql数据库一主多从、多主多从配置
  5. cookie和session原理
  6. leetcode-876. 链表的中间结点解法
  7. 解除单个文件的与svn服务器的关联
  8. 使用常识 | 如何在word中添加勾选框
  9. 打印iphone支持的所有字体
  10. 你一定要知道的敏捷规划工具:影响地图
  11. 前端开发如何独立解决跨域问题
  12. Linux网络服务之DHCP
  13. DreamweaverCS6 破解补丁和说明
  14. 面部识别软件揭示家族成员相似性
  15. 全国公立医院病案首页上报系统(适用于二、三级医院)
  16. Java基础强化训练——开发工具及输出语句训练
  17. 关于网盘等图标出现在设备和驱动器的情况
  18. TCP通信多发多收,和接收多个客户端消息
  19. 金蝶K3提取在途订单数据并设置触发(可用于在途订单交期回复)
  20. echarts 清除上一次的实例

热门文章

  1. 洛谷 1373 小a和uim之大逃离
  2. 2年Java面试提问总结
  3. Python学习笔记--2--面向对象编程
  4. 用cookie实现localstorage功能
  5. 《梦断代码》读后感一
  6. JS配合css实现slide文字框缩放伸展效果
  7. UA MATH567 高维统计IV Lipschitz组合2 Spherical Distribution的Lipschitz函数 Isoperimetric不等式
  8. DirectX SDK 9.28版本安装错误S1023
  9. Kendall Rank(肯德尔等级)相关系数
  10. 八. 输入输出(IO)操作6.文件与目录管理