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

【摘要】随着当今社会快节奏生活的发展,当代大学生越来忽视时间管理的重要性,在原本计划只看几个视频只玩几个游戏的碎片化娱乐中耗费了大量的时光,对于自己原本的学习生活产生了巨大的影响。为更加有效的反映时间的流逝,特设计该电子沙漏电路利用控制灯珠的亮灭来模拟沙漏中沙子的掉落。在非整点时电子沙漏电路会模拟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.

  

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决VMware VCenter存储上传镜像文件失败

VMware VCSA6.7上传共享文件时提示操作失败,由于不确定的原因,操作失败。通常,当浏览器不信任证书时会发生此问题。如果您使用的是自签名证书或自定义证书,请在新的浏览器选项卡中打开下面的 URL并接受证书,然后重试操…

室内定位(WiFi/UWB/蓝牙等)技术方案概述

室内无法搜索到卫星,这样常规的GPS/北斗定位都无法使用,常规免费的只有运营商的基站定位LBS,但这个精度实在太差,一般都有几十米到几百米的偏差。因此,室内定位一直是个老大难问题。 截至目前,业界比较成熟…

深度学习黎明时期的LeNet:揭开卷积神经网络的序幕

在深度学习的历史长河中,Yann LeCun 的 LeNet 是一个里程碑式的研究成果,它为后来的卷积神经网络(Convolutional Neural Networks,CNN)的发展奠定了基础。LeNet 的诞生标志着深度学习黎明时期的到来,为人工…

在Linux中部署MeterSphere并且结合内网穿透实现远程访问本地管理页面——“cpolar内网穿透”

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…

VMware虚拟机网络配置详解

vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式) 打开vmware虚拟机,我们可以在选项栏的“编辑”下的…

基于51单片机的超声波测距系统【程序+proteus仿真+参考论文+原理图+PCB等16个文件夹资料】

一、项目功能简介 整个设计系统由STC89C52单片机LCD1602显示模块声光报警模块存储模块超声波模块按键模块组成。 具体功能: 1、超声波测量距离,显示在LCD1602。 2、存储模块可以存储超声波报警值。 3、通过按键可设置报警值大小。 4、超声波报警距…

迁移redis数据库中的数据到另一台服务器

方案一 下面我使用的redis是用docker安装的,不是通过下载安装包安装的,所以和我安装方式不一样的小伙伴可以不看,因为很多操作是基于docker的 话不多说,直接开搞! 1.首先一定要确保两台服务器上面的redis版本要一致…

无人机遥控器方案定制_MTK平台无人设备手持遥控终端PCB板开发

随着科技的不断发展和无人机技术的逐步成熟,无人机越来越受到人们的关注。作为一种高新技术,无人机的应用范围不断拓展,包括农业、环境监测、城市规划、运输物流等领域。同时,无人机的飞行控制技术也得到了不断的优化和提升。 早…

[激光器原理与应用-15]:声光调制器(AOM:Acousto-optic modulator)

目录 第1章 概述 1.1 什么是AOM 1.2 AOM的主要参数 第2章 主要工作原理 2.1 光的调制技术 2.2 直接调制与间接调制 2.3 声光调制 2.4 声光调制工作原理 第3章 声光调制器件 3.1 声光调制器件的类型 3.2 应用 3.3 主要厂家 第4章 声光调制器系统 4.1 系统组成 …

Java(八)(可变参数,Collections,小案例:斗地主游戏小案例:斗地主游戏,Map集合,Stream流)

目录 可变参数 Collections 小案例:斗地主游戏 Map集合 Map的常用方法 map集合的遍历 键找值 键值对 Lambda 表达式 HashMap底层原理 集合的嵌套 Stream流 获取集合或数组的Stream流 Stream流的方法 可变参数 就是一种特殊的形参,定义在方法和构造器的形参列表中,…

Bitcoin SV 和 Bitcoin Core 之间首次跨链原子交换

我们已经执行了 Bitcoin SV 和 Bitcoin Core 之间的首次原子交换。 这一成就代表了比特币 SV 的重大进步,以去信任的方式促进了与其他区块链的无缝互操作性。 图片源自Gemini 在上一篇文章中,我们解释了原子交换的高级理论。 我们深入研究了使用哈希时间…

[设计模式] 常见的设计模式

文章目录 设计模式的 6 大设计原则设计模式的三大分类常见的设计模式有哪几种1. 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。(连接池)1. 饿汉式2. 懒汉式3. 双重检测 2. 工厂模式3. 观察者模式● 推模型● 拉…

Apache Doris 整合 FLINK 、 Hudi 构建湖仓一体的联邦查询入门

1.概览 多源数据目录(Multi-Catalog)功能,旨在能够更方便对接外部数据目录,以增强Doris的数据湖分析和联邦数据查询能力。 在之前的 Doris 版本中,用户数据只有两个层级:Database 和 Table。当我们需要连…

嵌入式八股 | 笔试面试 | 校招秋招 | 详细讲解

〇、前言 作者:赛博二哈 本嵌入式八股撰写初衷:当时求职翻遍了我能找到的所有八股,不论是嵌入式的,计算机基础的,C艹的,都很难看下去,细究其原因,有个最大的痛点: 大部…

Python读取Ansible playbooks返回信息

一.背景及概要设计 当公司管理维护的服务器到达一定规模后,就必然借助远程自动化运维工具,而ansible是其中备选之一。Ansible基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点&#x…

使用opencv的matchTemplate进行银行卡卡号识别

![字体文件](https://img-blog.csdnimg.cn/3a16c87cf4d34aceb0778c4b20ddadb2.png#pic_center import cv2 import numpy as npdef show_img(img, name"temp"):img cv2.resize(img, (0, 0), fx3, fy3)cv2.imshow(name, img)cv2.waitKey(0)cv2.destroyAllWindows()de…

242. 有效的字母异位词

这篇文章会收录到 :算法通关村第十二关-白银挑战字符串经典题目-CSDN博客 242. 有效的字母异位词 描述 : 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t …

VsCode 调试 MySQL 源码

1. 启动 MySQL 2. 查看 MySQL 进程号 [root ~]# ps -ef | grep mysqld root 21479 1 0 Nov01 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir/usr/local/mysql/data --pid-file/usr/local/mysql/data/mysqld.pid root 26622 21479 0 …

【JDK21】详解虚拟线程

目录 1.概述 2.虚拟线程是为了解决哪些问题 2.1.线程切换的巨大代价 2.2.哪些情况会造成线程的切换 2.3.线程资源是有限的 3.虚拟线程 4.适用场景 1.概述 你发任你发,我用JAVA8?JDK21可能要对这句话say no了。 现在Oracle JDK是每4个版本&#x…

minio分布式存储系统

目录 拉取docker镜像 minio所需要的依赖 文件存放的位置 手动上传文件到minio中 工具类上传 yml配置 config类 service类 启动类 测试类 图片 视频 删除minio服务器的文件 下载minio服务器的文件 拉取docker镜像 拉取稳定版本:docker pull minio/minio:RELEASE.20…