数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 13377|回复: 77

[AVR] ATtiny13与BMP180模块折腾手记 实现嵌入式风筝高度计(原创)

  [复制链接]
发表于 2021-3-28 04:25:52 | 显示全部楼层 |阅读模式
转眼又到了踏青的时节,奈何从去年开始的疫情搅扰了大家外出的兴致,只得尽可能宅家。
今天分享一套 2019 年的作品,含全部软硬件资料,只等疫情缓和了再去放飞。


【背景】

女票是个比较会放风筝的家伙,每每到了公园或是江边总是吵吵要入手风筝。
路边摊的风筝也并不贵,十块钱一套标配线,再十块钱另加一卷线,总共二十块钱玩坏了也不心疼。

于是入手了这玩意,两卷线接在一起缠在线轮上:



放飞时顺口一句话:“这玩意能飞多高?”让强迫症甚是不爽。

两卷线也就百来米,最高不会超过线总长,但想要精确的数据就无能为力了。
理论上可以用悬链线方程来计算,但实际高空气流的存在,悬链线也不会太准。

作为强迫症电工,突然想起了手头有 BMP180.


【制作】

BMP180 是一个带温度补偿的气压计模块,理论上短时间运行可用于高度测量。
于是打算做一套足够轻巧的 BMP180 系统,挂载在风筝上测试放飞高度。

a. 电源:直接选能量/重量比最大的软包锂,工作电流按mA 算的话几十 mAh 足够;
b. 主控:首先要体积小、功耗低,并且支持锂电 3-4.2v 工作,最终选择 DIP8 版本的 ATTINY13A,程序采用拔插更新;
c. 存储:风筝高度瞬息万变,采样速度不能太低(秒级),最终选了 DIP8 版的 24C128,总计 16KB;
d. 传感:气压计就是 BMP180 模块,捎带测试温度。

整个系统用尽可能小的万用板来搞定,上 CAD 先大致走个线:



电路图:



具体焊接时考虑到要上天,连接可靠性非常关键。于是插座用了圆孔镀金版本,皮实抗冲击:



最终所有器件都打胶固定在万用板 PCB 上,确保不松动,避免意外短路。
万用板上仅包含采集所需最小系统,其余功能都用跳线搞定,降低系统总重。
DIP 版本的单片机采用拔插更新代码;DIP 版本的 EEPROM 同样由拔插实现样本读出。



最后找一个尺寸恰当的零件盒,装入减震棉、屏蔽棉以及 PCB 即可工作。
上秤过一下总重:17.2g,对风筝的影响目测不大。




【代码】

ATTINY13A 的空间比较紧张:1KB-ROM + 64B-RAM,因而使用 ICCAVR 直接寄存器级编程。
整套程序就两个功能:读取BMP180、写入24C128,额外加个延时控制下采样率。



最后设定 T13 工作在 150kHz 主频,整机平均功耗 0.5mA 左右,电池连续工作几十小时没问题。

考虑到空中电力、算力、存储比较紧张,因而 EEPROM 当中仅存储 BMP180 原始 ADC 样本:
16bit气压 + 16bit温度,总计 32bit/样本,16KB 可以存储 4K 个样本。
按照采样间隔 5s 计算,总计采样时长 5.5 小时,可以覆盖整个放飞过程。

温度、气压的计算是事后放在 PC 上进行的:
BMP180校正值、ADC原始数值都加载进 VC,校正算法由 VC 编程来计算并输出到文件。

附上 ATTINY13 源码+烧录文件,可直接烧录工作:


【测试】

整个高度计需要挂在风筝的重心位置,也就是风筝捆线扣附近,之后尽管大胆放飞。
比起原版风筝虽然有点不稳,但测试这天江边风很给力,直接两卷线全都放了出来。

贴上事后解算结果:



挂了载荷的风筝微微有点不稳,适应了几把才最终放起来,高度曲线(红)前几个小峰就是试飞失手所致。
另一条曲线(蓝)是温度变化,随风筝升空有明显下降,显然空中还是挺冷的。

全程放飞过程中,最高点距地面垂直高度大约 75m,持续 50-60 个样本,对应大约 5min 时间。
这下关于“能飞多高”总算有结论了:百来米的线大约飞高了 75m,并在最高处保持了 5min 左右。

同时可以看到最高点附近有大约 10m 的上下振幅,显然空中气流不很稳定,风筝短时间就能掉落好几层楼高度。

附上全长放飞时的动态效果:






以上,使用 ATtiny13 与 BMP180 折腾了一套嵌入式高度计,挂在风筝上测出了放飞高度

给冷嗖嗖的踏春之旅添加一点点电工的味道。

最后祝大家 DIY 愉快!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 12家元 +183 收起 理由
jf201006 + 20 謝謝分享
zhujinliang + 20 優秀文章
myrydddddd + 10
spirndai + 20 看起来很有趣
慕名而来 + 10 優秀文章

查看全部打赏

 楼主| 发表于 2022-11-16 00:25:05 | 显示全部楼层
soma 发表于 2022-11-15 20:46
只有温度和大气压,高度要自己换算吧

高度直接由气压换算来的,+1m <=> -10Pa
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-16 00:23:59 | 显示全部楼层
南天音乐 发表于 2022-11-15 16:18
为啥高度下来后温度没有回升

应该和风速导致的热传导时间常数变化有关:

高空风速大,热传导时间常数小,传导快,所以温度迅速降下;
地面没风速,热传导时间常数大,传导慢,于是温度缓慢回升。

温度曲线最后是有一点回升趋势的,应该是时间常数太大了。
回复 支持 反对

使用道具 举报

发表于 2022-11-15 20:46:20 | 显示全部楼层
只有温度和大气压,高度要自己换算吧
回复 支持 反对

使用道具 举报

发表于 2022-11-15 16:18:02 | 显示全部楼层
为啥高度下来后温度没有回升
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2022-11-11 09:40:55 | 显示全部楼层
可以试下32位8051,STC32G12K128, 2组 CAN,3组LIN,硬件USB直接下载,硬件USB直接仿真,速度快,抗干扰强,有 DMA 支持 TFT/串口/SPI/ADC/I2C联系0513-55012928,QQ:3323874452免费+包邮送哦!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2022-11-10 14:09:26 | 显示全部楼层
这个高度测试不错
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-22 19:18:12 | 显示全部楼层

感谢支持!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-22 19:17:33 | 显示全部楼层
sdec040721 发表于 2021-4-25 15:27
NB plus, 竟然把风筝高度测出来了.

有机会挂个皮托管,争取测出风筝的空速
回复 支持 反对

使用道具 举报

发表于 2021-4-25 15:27:23 | 显示全部楼层
NB plus, 竟然把风筝高度测出来了.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-19 19:44:19 | 显示全部楼层
realwinchen 发表于 2021-4-16 10:50
这画面绝对,百分之一千的回头率,一会JC叔叔就过来了

禁止收听敌台哈哈哈哈
回复 支持 反对

使用道具 举报

发表于 2021-4-16 10:50:04 | 显示全部楼层
t3486784401 发表于 2021-4-3 20:20
2.4G 水汽吸收太大,看样子是大家都来证实了的;

接收干嘛用手机,要用带锅的定线天线才有调调,你想一 ...

这画面绝对,百分之一千的回头率,一会JC叔叔就过来了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-14 23:00:41 | 显示全部楼层
chaoweikeji 发表于 2021-4-14 18:20
绑线上就好了,非得配重,我就奇怪了

绑线上和绑线扣上有区别吗?我原版也并无配重。

不过如果加天线的话,可能得考虑平衡问题。
回复 支持 反对

使用道具 举报

发表于 2021-4-14 18:20:42 | 显示全部楼层
绑线上就好了,非得配重,我就奇怪了
回复 支持 反对

使用道具 举报

发表于 2021-4-14 11:37:36 | 显示全部楼层
厉害厉害,学习了,支持楼主这种有意思的折腾!:praise:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-10 23:29:43 | 显示全部楼层
xiaolingfu 发表于 2021-4-10 11:30
成功榨取attiny13资源

attiny13 好好用的话,资源很微妙
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-10 23:28:47 | 显示全部楼层
wen4007 发表于 2021-4-9 21:28
楼主,请问一下数据是怎么传上来的

放飞完以后,回收高度计;
拔下 24C128 用编程器读出数据;
最后用 VS 一类的软件处理原始数据,计算获得高度
回复 支持 反对

使用道具 举报

发表于 2021-4-10 11:30:25 来自手机浏览器 | 显示全部楼层
成功榨取attiny13资源
回复 支持 反对

使用道具 举报

发表于 2021-4-9 21:28:50 | 显示全部楼层
楼主,请问一下数据是怎么传上来的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-9-2 04:24 , Processed in 0.358801 second(s), 15 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表