多功能音乐沙漏的设计与实现

news2024/12/25 12:24:17

【摘要】随着当今社会快节奏生活的发展,当代大学生越来忽视时间管理的重要性,在原本计划只看几个视频只玩几个游戏的碎片化娱乐中耗费了大量的时光,对于自己原本的学习生活产生了巨大的影响。为更加有效的反映时间的流逝,特设计该电子沙漏电路利用控制灯珠的亮灭来模拟沙漏中沙子的掉落。在非整点时电子沙漏电路会模拟30秒正常的沙漏掉落,以提醒人们时间的可贵,要珍惜碎片化的时间,在整点时刻进行短暂的时间回溯,下部沙粒重回上部沙漏后再次掉落,同时播放歌曲并且灯珠颜色变化,此过程同为30秒,以此提醒人们时间一去不回,人们应当注重时间管理好好利用时间。

关  键  词  沙漏模拟; 音乐播发; 碎片化时间

Abstract With the development of fast-paced life in today's society, contemporary college students increasingly ignore the importance of time management. They spend a lot of time in the fragmented entertainment that originally planned to watch only a few videos and play only a few games, which has a huge impact on their original study and life. To more effectively reflect the passage of time, the electronic hourglass circuit is specially designed to simulate the fall of sand in the hourglass by controlling the light beads. The electronic hourglass circuit simulates 30 seconds of normal hourglass dropping at non-hourglass time to remind people of the value of time. To cherish fragmented time, make a short time backtrack at the whole time, lower sand grains fall back to the upper hourglass again, and play a song and change the color of the lamp beads. This process is the same as 30 seconds, to remind people that time never goes back, people should pay attention to time management and make good use of time.

Key words  Hourglass simulation;  Music Broadcast;  Fragmentation time;  

随着如今移动互联网、大数据、云计算等科学技术的日渐完善,外界的诱惑力变得越来越大,我国当代大学生们往往会沉迷于某事之中而忽略时间管理的安排[1]。在荒芜了大量时间后的碎片化学习中也是收获甚微,更对自己的个人生活产生了不可忽视的影响[2]。故根据古代沙漏中沙粒崩塌的模型[3]设计本多功能音乐沙漏进行模拟。在非整点时电子沙漏电路会模拟30秒正常的沙漏掉落,以提醒人们时间的可贵,要珍惜碎片化的时间,在整点时刻进行短暂的时间回溯,下部沙粒重回上部沙漏后再次掉落,同时播放歌曲并且灯珠颜色变化,此过程同为30秒,以此提醒人们时间一去不回,人们应当注重时间管理好好利用时间。

1  方案设计

1.1  总体方案设计

本多功能音乐沙漏采用nodemcu作为主控单片机,并通过ws2812形象的表示沙粒[4],模拟沙漏的运动过程。如图1流程图所示,在nodemcu通电之后,其可进行wifi联网实时获取当前时间,在非整点时可进行正常的沙漏掉落,在整点时会进行一个特殊的沙漏特效,同时手机blinker可与单片机进行连接,进行外部中断。

2726f89684a64f01970af6092b89574d.png

(图1.总体设计流程图)

1.2  总体电路设计

基于单片机最小系统在nodemcu开发板上的一体化[5],本多功能音乐沙漏的电路设计偏重于灯光模拟电路以及音乐播发电路两部分,其供电接口为nodemcu开发板数据接口一体,使整个系统简化扁平化。如图2所示,总体设计电路图。4dea029c65e34c07bdf3299e84b34ea0.png

(图2.总体设计电路图)

灯光模拟电路由30个ws2812小灯串联,通过统一正负极进行供电,再辅以数据线连接D5引脚,对ws2812进行编号命名,控制其开关以及颜色变化等。无源蜂鸣器电路和开发板之间有三条电路连接,正负极进行蜂鸣器供电,数据线连接D7号引脚,控制音乐的播发。

2  联网功能的实现

2.1  设计思路

本多功能音乐时钟作为物联网智能家具的衍生品,系统硬件部分使用arduino软件进行代码编写和修改[6]。手机端部分使用blinker点灯科技作为控制面板。通过MQTT进行手机端-设备端-电脑端三者之间的通信,并在手机端blinker的搭建可视化移动物联网平台[7],使用者通过图3的手机界面里的按键操作即可完成对多功能音乐沙漏的中断控制。

6960cfd09cb9465b893b0239f071c46b.png

(图3.手机blinker操作平台)

2.2  联网获时的实现

当nodemcu通电后,开发板根据写入的wifi名称和wifi密码进行反复连接,如果wifi名称、密码错误或者wifi信号较弱导致连接网络不成功,则无源蜂鸣器会进行报警。如果单片机成功连接上网络,nodemcu会以一秒为间隔实时获取当前的时间并将当前时间的时、分、秒分别记录在变量hours,minu和sece之中。

每次获得数据的同时进行一次分析,首先分析当前的minu和sece是否为0,如果minu和sece均为0,则执行整点特殊功能,如果至少有一个为0则判断现在是否有程序执行,当有程序执行则继续执行此程序,无程序执行则执行非整点常规功能。

2.3  联网中断的实现

不进行中断控制时,多功能音乐沙漏运行实时功能,但在实时读取时间的时分秒的数据同时,也在获取物联网里的手机平台消息。当在手机物联网平台上进行功能按钮操作时,手机会上传该按钮对应的按钮信息,这时的按钮信息被开发板联网获取后会与代码里也有的信息进行比对,中断现有的功能程序,执行获取信息所对应功能。

3  灯光模拟的设计与实现

3.1  设计思路

将30个ws2812小灯珠分为对称的上下两组,呈现为沙漏形状,采用流水灯思路[8],用一根数据线将其串联,再串联其正负极电源线,进行供电。

如图4所示,以沙漏上半部分的ws2812为例,对于其ws2812的编号按照电路顺序从0开始编码,30个ws2812灯珠的编号为0到29,此时便可以在代码里通过对数字编号的控制达到对对应灯珠的控制。

7150605f0b074fc9afbe1c47a5ca93d7.png

(图4.上部沙漏灯珠编号图)

每个ws2812小灯珠的内部均含有红、绿、蓝3个单色LED, 基于通过控制灯珠的编号来对应具体的灯珠,再通过代码的编写,控制具体的灯珠里小LED的亮灭,再通过0~255的数值赋值,控制其亮度大小(其中0为最暗,255为最亮)[9]依照图5的RGB三原色表,便可以得到不同颜色。

a820be2447e54117b16dd40fe78ff02f.png

(图5.RGB三原色表)

根据三原色的色彩比例[10],分析出沙漏中沙子应有的黄色以及时间回溯和警醒时需要的红色灯光的三原色亮度比例,以其中占比最高的颜色亮度设置为255,其他的两种颜色依照比例计算其亮度,最终记录三原色亮度代码,通过代码在不同的时间片刻给与不同编号的灯珠以不同的颜色,根据时间的转变即起到动态的效果。

3.2  灯光模拟电路

如图6的灯光模拟电路图,依照编号顺序将ws2812灯珠依次串联,数据线连接12号引脚,通过数据的传递来控制灯的颜色以及亮灭[11]。

79588ceb3a9140369394ccdbe387ca15.png

(图6.灯光模拟电路图)

3.3  非整点常规灯光模拟效果

以灯珠呈现黄光表示沙漏的该处充满沙粒,以灯珠不发光表示沙漏的此处无沙粒,在该程序刚运行之时位于上方倒三角的 15 个灯珠全部呈现黄光,下面的15个灯珠处以熄灭状态,以模拟沙子充满容器上方的沙漏初始状态。

随着时间的变化,模拟沙漏上部的沙粒依照重力变化一粒一粒减少,下部的沙漏随之从下到上逐渐堆积。此时的沙漏模拟效果即为上部灯珠一个个熄灭,下部灯珠一个个呈现黄光[12],直到最后上方的灯珠全部熄灭,下方的灯珠全发黄光,持续此状态三秒,后重复此过程。

3.4  整点特殊灯光模拟效果

在该功能中沙漏中的沙粒会呈现出不同的颜色状态,灯珠发光表示沙漏的该处充满沙粒,灯珠不发光则表示沙漏的此处无沙粒。初始状态的的多功能音乐沙漏上部15个灯珠不发光,下部15个灯珠呈现黄光,表示该沙漏为装满普通黄沙且已经流完的普通沙漏。

之后进行一个短暂的时间重置,下部的沙粒会以反重力的形式倒流到沙漏上部。当上部再次再次充满沙粒的时候,上部灯珠由正常的黄光变为白光,并在再次飞速掉至沙漏下部的过程中变换为其他多彩颜色,而在最终落入沙漏下部时呈现出刺眼的红色,整个过程的时间与正常的循环时间恰好相同,以表示时光一去不复返,无人可以控制时间的流逝,况且我们的人生本该是绚丽多彩,不能走到最后只剩满目沧桑,我们应该抓紧现有时光。

4  歌曲播放功能的设计与实现

4.1  设计思路

当用PWM方波驱动无源蜂鸣器时,无源蜂鸣器可视为一个小型扬声器[13],基于nodemcu内部时钟分频[14],根据不同频率的方波信号即可播放出不同频率的音调。根据音调的高低与时间变化即可实现无源蜂鸣器的歌曲播放功能。

4.2  实现过程

以南京邮电大学的校歌《信达天下》进行参考,找到其简谱图,如图7:

b8597c44bccc4e8d8647ac31a5a36e01.png

(图7.参考的乐谱图)

依照八度的音程按波长比例平均分成十二等份,每一等份称为一个半音(小二度)的原理[15],将音符NTC0定义为-1,NTC1定义为262,NTC2定义为294,NTC3定义为330,NTC4定义为350,NTC5定义为393,NTC6定义为441,NTC7定义为495,NTCL5为196,NTCL6为221,NTCL7为248,NTCH1为525,NTCH2为589,按照乐谱写入对应的音符数组。

已知一拍的时长大约为400—500ms[16],将一拍的时长以400ms近似,则当以四分音符为节拍时,四分音符的时长就为400ms,八分音符的时长就为200ms,十六分音符的时长就为100ms,以此基础将乐谱里的节拍记录在数组里。

程序运转时单片机将音符与节拍逐一对应,驱动无源蜂鸣器演奏对应音符持续指定节拍时间,然后再执行下一音符与节拍,从而实现动态的歌曲播放。

5  结 束 语

通过常规灯光模拟、特殊灯光模拟、音乐播发三大核心的功能的实现,从而可以在联网中断控制和非中断实时循环等情况里进行多种有机集合。基于多功能音乐沙漏的设计与实现,可以实时观察到时间的流逝,感受到时间的无情,从而在音乐的鼓舞之下抓紧碎片化的时间,积极投身于学习生活之中去。

参  考  文  献

  1. 陈必忠,孙晓军.中国内地大学生时间管理倾向的时代变迁:1999~2020[J].心理科学进展,2022,30(09):1968-1988.
  2. 周婧怡,何济玲.大学生碎片化学习注意力失焦环境下元认知能力水平现状调查[J].中国教育技术装备,2021(08):19-22+27.
  3. 李霖渊,胡林,许锋,张忠政,曲东升,张兴刚,孔维姝.沙漏计时原理二维数值模拟[J].大学物理,2008(09):47-50.DOI:10.16854/j.cnki.1000-0712.2008.09.010.
  4. 李耀明,周洪艳,郜慧波,苑刚,徐磊.基于Arduino多功能手杖LED灯设计与实现[J].南方农机,2018,49(09):8+28.
  5. 孙福玉.电子沙漏的设计与实现[J].实验室科学,2018,21(03):1-2+6.
  6. 叶险峰,李锡华,施红军.基于Arduino平台的电子电路设计实验教学实践[J].实验科学与技术,2020,18(02):68-72.
  7. 胡文睿,谈潘攀.基于物联网的智慧浴室系统的设计[J].电脑知识与技术,2021,17(26):127-130.DOI:10.14004/j.ckt.2021.2619.
  8. 孙浩文.基于Arduino的花式流水灯的设计与实现[J].电子技术与软件工程,2019(24):71-72.
  9. 辛亚辉,陈景乾.Arduino色光三原色实验探究——以人教版八年级物理教材为例[J].发明与创新(初中生),2021(10):38-39.
  10. 钱惠国.红绿蓝三色LED调色特性的实验研究[J].实验科学与技术,2015,13(01):27-30.
  11. 史添添.基于WiFi-AP模式的流水灯控制系统的设计与实现[J].信息与电脑(理论版),2021,33(02):101-103.
  12. 聂秀珍.论电子沙漏的原理与电路设计[J].信息通信,2017(11):68-70.
  13. 魏永辉.嵌入式STM32下无源蜂鸣器发声[J].科技展望,2016,26(24):163.
  14. 苏神保,刘丹.基于NodeMCU的物联网教学平台设计与实现[J].江西通信科技,2021(04):22-24.DOI:10.16714/j.cnki.36-1115/tn.2021.04.004.
  15. 陈可圆.巴赫《十二平均律BWV861》的演奏诠释[J].北方音乐,2020(13):37-38.
  16. 郭林.中国古代音乐“拍”的研究——80年代以来中国古代音乐“拍”研究[J].人民音乐,2010(04):69-73.

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1258896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

canvas基础:绘制线段,绘制多边形

canvas实例应用100 专栏提供canvas的基础知识,高级动画,相关应用扩展等信息。 canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重要的帮助。 文章目录 使用…

TDA4开发环境Docker化

文章目录 背景1. TDA4X Linux SDK编译环境镜像构建1.1 安装SDK1.2 验证制卡1.2.1 出现的问题:1.3 验证编译1.3.1 出现的问题2. TDA4X Linux-RT SDK编译环境镜像构建2.1 安装SDK2.2 出现的问题参考背景 开始阅读本篇前,假设你已经对docker有了一定了解,且有过docker换件搭建…

优思学院|5S不只是清洁,但却离不开清洁!

很多说5S不止是清洁和搞卫生那么简单,相信有正规地学习过5S的人都应该深切了解。 不过,5S之中的确包括了清理、清洁的步骤,5S,也被称为“五常法则”或“五常法”,它包含了: 整理(SEIRI&#x…

8.统一异常处理 + 统一记录日志

目录 1.统一异常处理 2.统一记录日志 1.统一异常处理 在 HomeController 类中添加请求方法(服务器发生异常之后需要统一处理异常,记录日志,然后转到 500 页面,需要人工处理重定向到 500 页面,提前把 500 页面请求访问…

Containerd Container管理功能解析

Containerd Container管理功能解析 container是containerd的一个核心功能,用于创建和管理容器的基本信息。 本篇containerd版本为v1.7.9。 更多文章访问 https://www.cyisme.top 本文从ctr c create命令出发,分析containerd的容器及镜像管理相关功能。 …

01 项目架构

关于我 曾经就职于蚂蚁金服,多年的后端开发经验,对微服务、架构这块研究颇深,同时也是一名热衷于技术分享、拥抱开源技术的博主。 个人技术公众号:码猿技术专栏个人博客:www.java-family.cn 前期一直在更新《Spring…

什么是美颜sdk?视频直播美颜sdk技术深度剖析

美颜sdk可以通过实时处理图像,提升主播或用户在视频直播中的外观。通过美颜sdk接口调用可以轻松实现美颜效果。美颜sdk的核心目标是在保持图像真实性的同时,为用户创造出最理想的美化效果。 一、美颜sdk的技术实现 1.面部识别技术:美颜sdk…

虚拟直播在文旅行业火爆发展!背后的“生意经”你抓住了吗?

自疫情结束以来,文化和旅游行业恢复势头强劲,各大旅游景点消费活跃度持续攀升。在这种情况下,“直播文旅”模式的深度融合对文旅行业的客流导入起到了极大的带动作用。 不过,当前的文旅直播也出现了一些问题&#xf…

流媒体播放器EasyPlayer播放H.265与H.264时进度条样式异常该如何解决?

H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,可支持H.264与H.265编码格式,性能稳定、播放流畅,能支持WebSocket-FLV、HTTP-FLV,HLS(m3u8&#…

北京 | 竹云与南方电网携手荣获“IDC 2023未来企业奖未来连接领导者”

11月22日-23日,2023第八届IDC中国数字化转型年度盛典在北京召开。本次大会以“竞放数字力量”为主题,汇聚超过1000位来自不同行业的大咖与伙伴共同参与此次盛会,从全球化视角出发,围绕本土化落地人工智能(大模型&#…

pytest系列——pytest_collection_modifyitems钩子函数修改测试用例执行顺序

前言 pytest默认执行用例是根据项目下的文件名称按ascii码去收集运行的;文件中的用例是从上往下按顺序执行的。 pytest_collection_modifyitems 这个函数顾名思义就是收集测试用例、改变用例的执行顺序的。 【严格意义上来说,我们在用例设计原则上用例…

NFTScan | 11.20~11.26 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2023.11.20~ 2023.11.26 NFT Hot News 01/ OKX Ordinals 市场 API 完成升级 11 月 21 日,OKX Ordinals 市场 API 现已完成升级,新增支持按币种单价查询、排序&…

TDA4VM EVM开发板调试笔记

文章目录 1. 前言2. 官网资料导读3. 安装 Linux SDK4. 制作SD 启动卡5. 验证启动1. 前言 TDA4作为一般经典的车规级SOC芯片,基于它的低阶智驾方案目前成为各家智驾方案公司的量产首选,这也使得基于TDA4的开发需求陡增,开发和使用TDA4既要熟悉Linux驱应用开发,还要熟悉传统…

uniapp基础-教程之HBuilderX配置篇-01

uniapp教程之HBuilderX配置篇-01 为什么要做这个教程的梳理,主要用于自己学习和总结,利于增加自己的积累和记忆。首先下载HBuilderX,并保证你的软件在C盘进行运行,最好使用英文或者拼音,这个操作是为了保证软件的稳定…

瑞芯微RK3588核心板在网络录像机产品中的应用与优势-迅为电子

你是否曾经想过,网络录像机是如何工作的?为什么它可以在没有电脑的情况下进行录像和监控?答案是,它依赖于RK3588核心板。那么,RK3588核心板到底在网络录像机产品中扮演着什么样的角色呢?它又具有哪些优势呢…

力扣:239. 滑动窗口最大值

题目&#xff1a; 给定一个数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 提示&#xff1a; 1 < nums.length < 10^5-10^4 < n…

使用UI Automation库用于UI自动化测试

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

NX二次开发UF_CURVE_ask_spline_data 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_spline_data Defined in: uf_curve.h int UF_CURVE_ask_spline_data(tag_t spline_tag, UF_CURVE_spline_p_t spline_data ) overview 概述 Reads the spline data a…

FreeRTOS-任务管理

目录 任务管理 创建任务 创建任务示例1&#xff1a;创建两个同等级的任务 创建任务示例2&#xff1a;使用任务参数 删除任务 删除任务示例&#xff1a;删除任务 挂起任务 任务优先级 优先级实验&#xff1a;修改优先级 Tick 延时函数 延时示例 空闲任务 钩子函数…

创意二维码案例:意大利艺术家的最新二维码艺术展!

意大利艺术家——米开朗基罗皮斯特莱托&#xff08;Michelangelo Pistoletto&#xff09;的个人艺术展“二维码‘说’”&#xff08;QR CODE POSSESSION&#xff09;正在北京798艺术区的常青艺术画廊展出&#xff0c;这是一次别出心裁的创意艺术展&#xff01; 主要体现在3个方…