一、缘起:

长久以来一直想玩玩用灯带让音乐可视化的项目:

原作者地址:

https://github.com/scottlawsonbc/audio-reactive-led-strip

但苦于没有动力,这次借着论坛活动的东风,将这个项目走一遍。

因为原作者提供的程序是适合Arduino和树莓派的,

作为一个创客当然不能拿来主义,所以准备将其改造为掌控板可玩的 micropython代码,

权当学习吧。

二、原理

原理大概需要这么这么几步骤:

1.获取本地的声音:这个原作者已经提供说明,只要把:

202003098408..png (105.72 KB, 下载次数: 0)

2020-3-9 03:19 上传

这里设置立体声混响,然后通过python的一个声源库:pyaudio获取内录音即可。

2.利用获取的声音频率进行音频特征提取:

通过分帧、加窗、快速傅里叶变换等将声音转换为频谱,最后将频谱映射为:RGB值。

参考资料:

https://blog.csdn.net/yunnangf/article/details/78965446

202003099450..png (213.49 KB, 下载次数: 0)

2020-3-9 02:53 上传

3.将RGB值通过UDP协议传输到主控板,进行彩灯控制。

4.

需要注意的是因为UDP每次处理的是1024位数据,而我们传送数据的格式是:|i|r|g|b|这样的4字节。

i (0 to 255): 表示彩灯的序号,rgb三个值表示灯的RGB值。

所以最多支持1024/4 = 256个灯珠。

(当然手头只有一条60个灯珠的灯带)

5.掌控本地端进行处理的内容,主要是将传过来的数据,按照4字节为一个批次进行解码就可以,然后将数据用 neopixel 库 进行处理显示。具体代码如下:

[mw_shl_code=python,false]from mpython import *

import network

import time

import neopixel

import usocket

my_wifi = wifi()

my_wifi.connectWiFi("", "")

my_rgb = neopixel.NeoPixel(Pin(Pin.P8), n=60, bpp=3, timing=1)

while not my_wifi.sta.isconnected():

time.sleep(0.2)

print("...")

port = 7777

s=usocket.socket(usocket.AF_INET, usocket.SOCK_DGRAM)

# s.setsockopt(usocket.SOL_SOCKET,usocket.SO_REUSEADDR,1)

ip=my_wifi.sta.ifconfig()[0]

oled.fill(0)

oled.DispChar(ip, 0, 0, 1)

oled.show()

s.bind((ip,port))

print('waiting...')

while True:

data,addr=s.recvfrom(1024)

print('received:','from',addr)

if data:

try:

# my_rgb.fill( (0, 0, 0) )

len_data = len(data)

oled.DispChar(str(len_data), 0, 16, 1)

oled.show()

for i in range(0,len_data,4):

my_rgb[data] = data[i+1], data[i+2], data[i+3]

my_rgb.write()

time.sleep_ms(1)

except:

pass

[/mw_shl_code]

三、本地发送端代码:

2020-3-9 02:56 上传

点击文件名下载附件

如果要运行,需安装:

Numpy

Scipy (for digital signal processing)

PyQtGraph (for GUI visualization)

PyAudio (for recording audio with microphone)

四个库。

四、实现效果:

202003091548..png (396.45 KB, 下载次数: 0)

2020-3-9 03:43 上传

五、演示视频:

arduino灯带随音乐_【创客玩音乐】用灯带让音乐可视化相关推荐

  1. 怎么添加本地音乐_展示 | 传一学员优秀项目之音乐播放器

    ?点击上方蓝字关注我们 前言:随着移动互联网在国内的飞速发展,移动音乐作为国内最受欢迎的娱乐休闲方式之一也得到飞速的发展,有包括酷狗.QQ.酷我等在内的全用户覆盖的音乐软件,又有像网易云.虾米等在内的 ...

  2. c3074 无法使用带圆括号的_如何选择路面裂缝贴缝带?

    点击上面"蓝字"关注我们! 无胎基贴缝带 无胎基贴缝带表层没有无纺布的覆盖,用了一层极薄的黑色膜用来覆盖了有粘性的路面贴缝带,这样就保证了路面贴缝带本身的柔软性. 有胎基贴缝带 有 ...

  3. ewb交通灯报告和文件_基于EWB的交通灯设计

    本文着眼于目前普遍应用在城市道路上的交通灯控制系统,从课程设计的题目要求出发,设计了一个十字路口主次街道的交通灯控制电路. 首先进行交通灯状态变换的分析和交通灯总体框架的设计,接着提出了2种电路设计方 ...

  4. eda交通灯控制器波形输入_基于VHDL的交通灯控制器设计

    应用VHDL语言设计数字系统,大部分设计工作可在计算机上完成,从而缩短系统开发时间,提高工作效率.下面介绍基于VHDL设计交通灯控制器的一种方案,并给出源程序和仿真结果. 1 系统功能与要求 交通灯控 ...

  5. arduino 嗡鸣器 音乐_[求助]怎样实现红外遥控蜂鸣器播放音乐,求大神指正

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #define NOTE_0 -1#define NOTE_A1 441 #define NOTE_A2 495 #define NOT ...

  6. python写音乐_你想过用代码来写音乐吗?我用业余时间开发的一个可以编程写音乐的python库(一)...

    最近几个月学业繁忙,但是业余时间自己开发了很多python库,内容包括数学统计,各种游戏,还有音乐等等.其实还有试着写AI方面的,但是目前还是初期进度.今天我想先介绍一下我正在开发中的一个可以编程写音 ...

  7. led灯条串联图_串联式电路 - 自制12vled灯电路图(五款设计电路图分享)

    2.双电解电容串联式电路 判断要点:这种电路从220V整流出来,有两个电解电容串联滤波,而电容的中心点连接到灯管电路.后面的自激电路也大同小异.高频变压器B次级出来通过灯管灯丝只串有一个高耐压的电容C ...

  8. 四川音乐学院计算机音乐创作,四川音乐学院本科录音艺术与计算机音乐_四川音乐学院本科录音艺术与计算机音乐简介-查字典学校网...

    根据四川音乐学院电子音乐系"录音艺术与电脑音乐"专业本科教学计划,专业主科期末考试由作曲主科.电子音乐主科组成,具体规定及要求如下: 一.本科一年级 (一)作曲主科考试 第一学期: ...

  9. 下载spotify音乐_如何在Amazon Echo上播放Spotify音乐

    下载spotify音乐 The Amazon Echo uses Amazon's Prime Music as the default service for any music you want ...

  10. python27.dll是系统自带的吗_正版《GTA5》自带“神仙辅助”功能?官方认可外挂属实厉害...

    你知道吗?在GTA5这款游戏中除了秘籍之外,其实R星还专门制作了,属于自己的外挂系统,当然了也是作弊系统,不得不说这R星也是看开了,对于外挂的管制其实也算睁一只眼闭一只眼了,你看看线上刷钱玩家一大堆, ...

最新文章

  1. 使用 u-boot 烧写内核——韦东山嵌入式Linux学习笔记10
  2. org.apache.hadoop.util.PlatformName //cgywin下Hadoop-0.21.0 错误问题
  3. zabbix2.2安装配置(1)
  4. 前端学习(2715):重读vue电商网站35之在sessionStorage保存左侧菜单栏的激活状态
  5. 学生信息管理系统的价值PHP,php技术对学生管理系统实现的价值研究
  6. 山东2021高考成绩查询时间二本,山东二本录取结果什么时候出来,2021年高考山东二本录取结果查询时间...
  7. 传海思为 PC 开发 CPU/GPU ;小米将发布第二款 5G 手机;Firefox 68.0.2 发布 | 极客头条...
  8. Idea 集成Lombok插件
  9. Flink on YARN(上):一张图轻松掌握基础架构与启动流程
  10. matlabif语句怎么用_腾讯面试:一条SQL语句执行得很慢的原因有哪些?
  11. Ubuntu环境下Android反编译apk教程
  12. 黑苹果alc269声卡仿冒id_AppleALC仿冒声卡驱动alc269优化版(Lenovo Z580亲测)
  13. python 重命名文件出现乱码_python处理文件名乱码
  14. OLS回归模型-斯皮尔曼相关系数-数值模拟-多目标规划-养老服务床位需求预测与运营模式研究-之数学建模
  15. 第2组 团队展示(组长)
  16. 后台推送消息给app_小米加入统一推送联盟!避免多种APP后台运行,国产手机春天来了...
  17. 利用YOLOV5实现手语识别
  18. 车载服务器作用,穿针引线谈铁路机车车载系统服务器
  19. 如何将pytorch模型部署到安卓
  20. python判断三角形是否直角_Python3如何判断三角形的类型

热门文章

  1. 责任链模式(以及变种管道模式)的应用案例
  2. centos7:yum -y install gcc python36-devel bzip2-devel sqlite-devel openssl-devel readline-devel xz-d
  3. ZYNQ 图像处理之千兆网传(一)【寄存器级操作】
  4. 2019年Java招聘门槛提高,企业对Java程序员又有怎样的要求?
  5. C++标准库类型vector介绍
  6. Pytorch:模型的保存与加载 torch.save()、torch.load()、torch.nn.Module.load_state_dict()
  7. 乌镇AI论坛最全盘点:中国互联网半壁江山坐在了一起,他们怎么看AI
  8. Html5网页播放器的同层播放功能
  9. poi导出excel不可读
  10. 【R】【决策树】【随机森林】