数码之家

 找回密码
 立即注册
搜索
查看: 12043|回复: 77

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

  [复制链接]
发表于 2021-3-28 04:25:52 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

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

x
转眼又到了踏青的时节,奈何从去年开始的疫情搅扰了大家外出的兴致,只得尽可能宅家。
今天分享一套 2019 年的作品,含全部软硬件资料,只等疫情缓和了再去放飞。


【背景】

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

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

IMG1.JPG

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

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

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


【制作】

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

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

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

IMG2A.png

电路图:

电路图

电路图



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

IMG2B.JPG

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

IMG2C.JPG

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

IMG3.JPG


【代码】

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

IMG4.png

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

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

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

附上 ATTINY13 源码+烧录文件,可直接烧录工作: KiteRec(SRC HEX).zip (7.35 KB, 下载次数: 11)


【测试】

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

贴上事后解算结果:

IMG5.png

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

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

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

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

EFF1.gif




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

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

最后祝大家 DIY 愉快!


打赏

参与人数 12家元 +183 收起 理由
jf201006 + 20 謝謝分享
zhujinliang + 20 優秀文章
myrydddddd + 10
spirndai + 20 看起来很有趣
慕名而来 + 10 優秀文章
maidoo + 6 優秀文章
newnet1234 + 20 謝謝分享
玛德陛下 + 20 謝謝分享
lttc + 20 原創內容
zjzkl + 12 謝謝分享

查看全部打赏

发表于 2021-3-28 09:24:21 来自手机浏览器 | 显示全部楼层
楼主啥编译器?这玩意儿精度怎么样?我也有一个只不过感觉就是看看。
回复 支持 反对

使用道具 举报

发表于 2021-3-28 09:48:44 | 显示全部楼层
热爱生活的楼主:lol:
回复 支持 反对

使用道具 举报

发表于 2021-3-28 10:28:22 | 显示全部楼层
:praise:厉害了,又要授精的节奏啊。
回复 支持 反对

使用道具 举报

发表于 2021-3-28 11:26:36 | 显示全部楼层
楼主厉害! 这图能看出高度上升一些温度就下降。

70多米的高空温度就降了近10℃,还真是高处不胜寒啊
回复 支持 反对

使用道具 举报

发表于 2021-3-28 14:08:43 | 显示全部楼层
tulips 发表于 2021-3-28 11:26
楼主厉害! 这图能看出高度上升一些温度就下降。

70多米的高空温度就降了近10℃,还真是高处不胜寒啊 ...

确实。以前住过25楼,感觉风力比较大,温度也比楼下低不少。
一层就算2.6米(公寓楼,层高偏低),也有65米
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-3-28 15:31:57 | 显示全部楼层
触景情伤 发表于 2021-3-28 09:24
楼主啥编译器?这玩意儿精度怎么样?我也有一个只不过感觉就是看看。

ICCAVR v7.22.

BMP180 精度不错啊,高度差个 10cm 就有反应,如果能上卡尔曼滤波会更好。
但是长时间的话毕竟气压会随天气变化,需要做基线滤波
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 15:33:11 | 显示全部楼层
hzw6834 发表于 2021-3-28 09:48
热爱生活的楼主

感谢捧场!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 15:33:50 | 显示全部楼层
cushion 发表于 2021-3-28 10:28
厉害了,又要授精的节奏啊。

感谢支持!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 15:38:10 | 显示全部楼层
tulips 发表于 2021-3-28 11:26
楼主厉害! 这图能看出高度上升一些温度就下降。

70多米的高空温度就降了近10℃,还真是高处不胜寒啊 ...

感谢支持!

看样子这个 bmp180 还是挺好用的,装在盒子里加了屏蔽、减震棉,还是分分钟吹透
回复 支持 反对

使用道具 举报

发表于 2021-3-28 15:38:59 | 显示全部楼层
楼主,我要学习,有电路图吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 15:45:36 | 显示全部楼层
amo73 发表于 2021-3-28 14:08
确实。以前住过25楼,感觉风力比较大,温度也比楼下低不少。
一层就算2.6米(公寓楼,层高偏低),也有65 ...

放飞的广场旁有个二三十层的公寓楼,这么算来的确和测得的高度差不多:

EFF2.gif
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 15:46:34 | 显示全部楼层
cutter 发表于 2021-3-28 15:38
楼主,我要学习,有电路图吗

布线那张就是,bmp180 和 24c128 直接挂在 attiny13 上。
原理图最早偷懒没画,这回补上,内容和布线没啥区别(电路图已补充到主题帖)


回复 支持 反对

使用道具 举报

发表于 2021-3-28 16:45:13 | 显示全部楼层
感谢分享。
请问,曲线图是哪个软件绘制的?
还有,既然距离<100m,何不搞个无线传输,实时看高度?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 18:54:43 | 显示全部楼层
lyy-cy 发表于 2021-3-28 16:45
感谢分享。
请问,曲线图是哪个软件绘制的?
还有,既然距离

曲线就是 EXCEL,转好的 TXT 文档粘进去的;

无线数传啊,主要是重量吃不消。这块板子有 10g 左右,盒子 7g,就已经风筝不太稳了。
无线数传、额外PCB、额外电池容量都会带来重量,目测能上 30g 以上。

这个电池是 60mAh 的,发射瞬间几个 C 的电流不是闹的,尤其在空中比较冷的环境下。
回复 支持 反对

使用道具 举报

发表于 2021-3-28 20:34:12 | 显示全部楼层
其实可以弄个无线传输 更好玩
回复 支持 反对

使用道具 举报

发表于 2021-3-28 20:41:22 来自手机浏览器 | 显示全部楼层
技术男,有吃又有喝,支持一波
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-28 22:22:46 | 显示全部楼层
2545889167 发表于 2021-3-28 20:34
其实可以弄个无线传输 更好玩

在 3.7v 工作环境下,可有合适的模块推荐?

距离 75m 肯定不够的,因为风筝实际并不在头顶正上方。
目测要能 150m 以上才能稳定传输。

这个距离下不知 315M/433M 和 2.4G 哪个更好,当然前提是功率不超标
回复 支持 反对

使用道具 举报

发表于 2021-3-29 00:09:24 来自手机浏览器 | 显示全部楼层
这个系统可以做到7g,采用smd封装的元件,可以做到蓝牙耳机那么大一个,放飞时影响就小多了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-29 01:08:44 | 显示全部楼层
zhkrid 发表于 2021-3-29 00:09
这个系统可以做到7g,采用smd封装的元件,可以做到蓝牙耳机那么大一个,放飞时影响就小多了 ...

手头的确没有专门针对 PCB 优化,画个板子打样成 0.8mm 厚的也能轻不少;
现在的 PCB 是 10g,剩下的 7g 是盒子

目前比较有挑战的是无线数传,需要 150m+ 的稳定距离,但发射功率和电池重量矛盾不好调和。
还没有算上天线.....
回复 支持 反对

使用道具 举报

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

本版积分规则

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

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-3-29 16:02 , Processed in 0.296400 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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