感受自然,聆听风之声——云雀气象仪初体验(完结)

2023-03-18484
精华项目
AI 快速预览详细 收起
本文介绍了如何使用云雀气象仪和掌控板,将风速转换为音符,创作自然音乐。项目所需材料包括云雀气象仪、掌控板、I/O扩展板和充电宝。通过编写程序,将风速映射为音调,并结合温度、湿度、气压参数生成音乐。最终在天台上进行测试,展示了项目的实际效果。该项目适用于STEM教育和少儿编程入门,能够激发孩子对编程和科学的兴趣。

新的项目贴正在写,融合了风之声的小型气象站,敬请期待~

-------------------------------------------------------------------------------------------------------------------------------------------------------

学习与生活,事情一多,难免会有压力,以前我有压力就想一个人去公园,听着歌,散着步;现在没有那么多时间往外跑,只能去楼顶天台——吹吹风……

有幸率先试用云雀气象仪,刚好可以在天台陪我解解闷儿!云雀气象仪可以通过传感器测得温度、湿度、气压值、风向、风速等信息,我想,这次,可以听听风的声音了……

步骤1 器材准备

材料清单

步骤2 设计实验

手头有Arduino Uno、掌控板、Micro:bit几块板子(就是没有行空板,这次活动结束了一定买一个!),综合考虑之下,决定使用国产的集成功能最完善的掌控板。

每天我们都与风有着各种各样的接触,可是从来没有听过风的歌声,能够使用云雀让风唱歌给我们听呢?于是开始查看云雀的资料——

云雀wiki.png

或许可以用云雀获取的风速,转变成动听的音符,在利用掌控板自带的扬声器播放出来!

说干就干!

流程图1.png

步骤3 编写程序-初始化部分

打开mind+上传模式,添加掌控板,添加云雀  库https://gitee.com/liliang9693/ext-yunque

为了在掌控板显示实时时间,再添加WIFI和NTP

尽管最后为了让界面尽可能的简单,我又去掉了时间这一部分:)

编写程序的时候一定注意,连接WIFI下面要加上“等待直到连接成功”哦!

然后让屏幕显示一下IP地址,证明确实连接成功。

之后就是初始化云雀,设置时间巴拉巴拉……

1.png

接下来我加了一个过场字幕……嗯,就是记得要加清屏

2.png

关于文字的位置:掌控板X[0,127]  Y[0,63],拿不准的话单独多测试几次文字位置

 

步骤4 编写程序-循环部分

这一部分我只想说我是卧龙凤雏了……

一开始想只用风速来对应音调,使用这两个积木

3.png

然后给风速限定范围,使用条件语句创建了十几行!!!

image.png

后来我才反应过来,为什么不用映射……

image.png

附上风速等级对照表

风速等级对照表.jpg

步骤5 编写程序-参数整理

这里要先说一个东西,云雀获得的参数都是str,无法直接用于数学比较,所以需要先转换成float即浮点数。(个人理解,如若错误虚心求教,感激不尽!)

再加上音调可以用[998,131]来表示,生活中常见的风速也不大会超过8m/s,所以我的思路如下

image.png

同时考虑想要把自然数据都整合进来,参与音乐的创作,所以干脆如法炮制创建了“温度_参数”、“湿度_参数”、“气压_参数”等变量,然后将停顿时间结合参数的常规值进行简单的计算,控制在合理范围内,再将这部分程序命名为“风之声_无节拍”函数,程序见下图

image.png

全部程序如下

screenshots-云雀_风之声.mp-1679152507930.png

步骤6 天台_测试

6044b9ddf3f03caaff633f58b5727ca.jpg

嗯……今天依旧是风和日丽的一天呢(根本没风……)

前两天上山采风,采了个寂寞,还得靠我老司机开车采风!

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

所需材料/产品

加载全部

    掌控板2.0 编程入门学习主控板 - Python、图形化编程开发板

    掌控板2.0 编程入门学习主控板 - Python、图形化编程开发板

    掌控板2.0 编程入门学习主控板 - Python、图形化编程开发板

    micro:bit掌控IO扩展板(兼容行空板M10/K10、micro:bit、掌控)

    micro:bit掌控IO扩展板(兼容行空板M10/K10、micro:bit、掌控)

    micro:bit掌控IO扩展板(兼容行空板M10/K10、micro:bit、掌控)

相关推荐

评论(0)
- 没有更多了 -

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

相关推荐

所需材料/产品

掌控板2.0 编程入门学习主控板 - Python、图形化编程开发板

掌控板2.0 编程入门学习主控板 - Python、图形化编程开发板

掌控板2.0 编程入门学习主控板 - Python、图形化编程开发板

micro:bit掌控IO扩展板(兼容行空板M10/K10、micro:bit、掌控)

micro:bit掌控IO扩展板(兼容行空板M10/K10、micro:bit、掌控)

micro:bit掌控IO扩展板(兼容行空板M10/K10、micro:bit、掌控)