前端实战案例⑧随音乐跳动的频谱(炫酷)


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>随音乐跳动的频谱</title>
		<style>
			html,body{
				margin: 0;
				padding: 0;
			}
			/* 设置背景图片,并选择cover */
			body{
				background: url(imgs/bcg.jpeg);
				background-size: cover;
			}
			/* 设置绝对定位并居中 */
			.container{
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%,-50%);
			}
			/* 设置spectrum为inline-block使之排练在一行并设置动画 */
			.spectrum{
				width: 20px;
				height: 120px;
				background: #000000;
				display: inline-block;
				border-radius: 6px;
				transform-origin: bottom;
				animation: dancing 1s ease-in-out infinite;
			}
			/* 设置每一个的颜色和延迟,造成一种此起彼伏的感觉 */
			.spectrum1{
				background-color: #002FC9;
				animation-delay: 0.1s;
			}
			.spectrum2{
				background-color: #390F8A;
				animation-delay: 0.2s;
			}
			.spectrum3{
				background-color: #89083F;
				animation-delay: 0.3s;
			}
			.spectrum4{
				background-color: #CC0004;
				animation-delay: 0.4s;
			}
			.spectrum5{
				background-color: #DE2C00;
				animation-delay: 0.5s;
			}
			.spectrum6{
				background-color: #FF8900;
				animation-delay: 0.6s;
			}
			.spectrum7{
				background-color: #53D600;
				animation-delay: 0.7s;
			}
			.spectrum8{
				background-color: #ABF101;
				animation-delay: 0.8s;
			}
			.spectrum9{
				background-color: #FFEB20;
				animation-delay: 0.9s;
			}
			.spectrum10{
				background-color: #9933CD;
				animation-delay: 1s;
			}
			@keyframes dancing{
				0%{
					transform: scaleY(0.1);
				}
				50%{
					transform: scaleY(1);
				}
				100%{
					transform: scaleY(0.1);
				}
			}
			/* 设置倒影,选择180度,并移位,设置透明度 */
			.container.down{
				transform: rotateX(180deg) translate(-50%,-50%);
				opacity: 0.3;
			}
		</style>
	</head>
	<body>
		<div class="container">
			<div class="spectrum spectrum1"></div>
			<div class="spectrum spectrum2"></div>
			<div class="spectrum spectrum3"></div>
			<div class="spectrum spectrum4"></div>
			<div class="spectrum spectrum5"></div>
			<div class="spectrum spectrum6"></div>
			<div class="spectrum spectrum7"></div>
			<div class="spectrum spectrum8"></div>
			<div class="spectrum spectrum9"></div>
			<div class="spectrum spectrum10"></div>
		</div>
		<div class="container down">
			<div class="spectrum spectrum1"></div>
			<div class="spectrum spectrum2"></div>
			<div class="spectrum spectrum3"></div>
			<div class="spectrum spectrum4"></div>
			<div class="spectrum spectrum5"></div>
			<div class="spectrum spectrum6"></div>
			<div class="spectrum spectrum7"></div>
			<div class="spectrum spectrum8"></div>
			<div class="spectrum spectrum9"></div>
			<div class="spectrum spectrum10"></div>
		</div>
	</body>
</html>

 更多前端简单小组件尽在主页!喜欢可以收藏哦!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: STM32随音乐跳动的灯是一种基于STM32微控制器的灯光效果应用。它可以通过处理音频输入信号,将音乐的节奏和频率转换为相应的灯光效果。该应用涉及到STM32的数字信号处理(DSP)和PWM(脉冲宽度调制)功能。 首先,该应用需要将音频信号输入到STM32微控制器。常见的方法是使用麦克风或音频输入装置连接到STM32的模拟输入引脚,通过模数转换器将模拟信号转换为数字信号。 接下来,STM32会对音频信号进行采样,通过使用数字信号处理技术来分析音频信号的频率和强度。通过对离散时间信号进行频域分析,可以提取出音频信号的频谱信息。 然后,利用频谱信息来控制灯光效果。通过STM32的PWM功能,可以调整LED灯的亮度和颜色。根据音乐的强度和频率,可以将频域分析得到的数据转换为相应的LED控制信号。例如,低频音乐可以产生较暗的灯光效果,而高频音乐可以产生较亮的灯光效果。 最后,将转换后的LED控制信号输出到LED灯上,使其按照音频信号的节奏和频率进行闪烁。通过适当的灯光动画效果,可以让灯光跟随音乐的节奏跳动,增强音乐的视觉表现力和沉浸感。 综上所述,STM32随音乐跳动的灯是一种通过STM32微控制器处理音频信号,并将其转换为灯光效果的应用。它结合了数字信号处理和PWM技术,通过适当的控制LED灯的亮度和颜色,来实现灯光效果与音乐的同步跳动。 ### 回答2: STM32是一款微控制器,具有强大的处理能力和丰富的外设接口。要实现STM32随音乐跳动的灯效,可以采用以下步骤: 首先,通过外部音频传感器或麦克风将音乐信号输入到STM32。这可以通过选择适当的外部音频接口和配置相应的寄存器来实现。 接下来,需要对输入的音乐信号进行处理。可以通过使用FFT(快速傅里叶变换)算法将音频信号转换为频域信号。这可以通过使用适当的数学库函数来实现。 然后,根据得到的频域信号,可以确定音乐的节奏和强度。可以通过数学算法和阈值检测,从频域信号中提取有用的信息。 在确定音乐的节奏和强度之后,可以将这些信息映射到灯效上。可以通过控制GPIO口的电平来控制灯的亮灭。根据音乐的强度,可以控制灯的亮度和颜色。根据音乐的节奏,可以控制灯的闪烁速度和模式。 最后,通过循环处理不断更新音乐信号,并根据实时的音乐信息来更新灯效。可以使用定时器、中断和循环来实现这一功能。 需要注意的是,为了实现较好的效果,可能需要调试和优化算法和参数。此外,还应注意保持适当的硬件和电源设计,以确保系统的稳定性和可靠性。 ### 回答3: STM32是一种微控制器芯片,具有强大的处理能力和丰富的外设接口。在STM32上制作随音乐跳动的灯效是一个很有趣的项目。下面是实现这个项目的简要步骤。 首先,我们需要通过音频传感器或者音频输入接口将音频信号输入到STM32芯片中。这可以使用外部模块或者通过麦克风进行。 接下来,我们需要使用内部的ADC(模数转换)模块将音频信号转换为数字信号,以便在STM32上进行处理。我们可以设置ADC的采样率和精度,以满足项目的要求。 然后,我们使用FFT(快速傅里叶变换)算法对音频信号进行频谱分析。FFT算法可以将时域信号转换为频域信号,得到不同频率的能量强度。 接下来,我们根据频谱分析结果设置灯光效果。可以根据不同频率的能量强度,决定不同灯光的亮度、颜色和闪烁效果。例如,高能量频率可以对应高亮度和快速闪烁的灯光,低能量频率可以对应低亮度和缓慢闪烁的灯光。 最后,在STM32上编程控制GPIO口输出,通过连接LED灯或其他可控灯光装置,使得根据不同频率的能量变化而实现灯光的随音乐跳动效果。 需要注意的是,实现这个项目需要有一定的硬件和编程知识。同时,为了使灯光效果更加流畅和精确,可能需要对算法和参数进行调整和优化。 随音乐跳动的灯效是一种很有趣的视觉效果,可以增加音乐欣赏的乐趣。实现这个项目不仅可以展示STM32芯片的强大功能,同时也可以锻炼自己在嵌入式系统设计和编程方面的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耀南.

你的鼓励将是我最最最最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值