K210频谱显示桌面摆件(Sipeed Maix Dock)
前言
看到很多UP主的桌面上都摆上了响度显示摆件,就想着自己动手做一个,刚好手头有不用的Maix Dock K210开发板。因为K210带有FFT所以可以直接做一个频谱显示摆件。
代码
根据官方教程的代码进行了一波魔改:
from Maix import GPIO, I2S, FFT
import image, lcd, math, random, time
from fpioa_manager import fm#参数设置
sample_rate = 30000
sample_points = 1024
fft_points = 64#LCD条形柱显示宽度和数量计算
hist_x_num = int(fft_points/2)
hist_width = int(320 / hist_x_num) #changeable#LCD初始化
lcd.init()
lcd.rotation(0)
lcd.mirror(0)#麦克风初始化
fm.register(20,fm.fpioa.I2S0_IN_D0, force=True)
fm.register(30,fm.fpioa.I2S0_WS, force=True) # 19 on Go Board and Bit(new version)
fm.register(32,fm.fpioa.I2S0_SCLK, force=True) # 18 on Go Board and Bit(new version)
rx = I2S(I2S.DEVICE_0)
rx.channel_config(rx.CHANNEL_0, rx.RECEIVER, align_mode = I2S.STANDARD_MODE)
rx.set_sample_rate(sample_rate)#img初始化
img = image.Image()#增益倍数初始化
times=3.0while 1:#FFT计算audio = rx.record(sample_points)fft_res = FFT.run(audio.to_bytes(),fft_points)fft_amp = FFT.amplitude(fft_res)#绘制幅值img = img.clear()x_shift = 0maxFlag=0minFlag=0for i in range(hist_x_num):amp=int(fft_amp[i]*times)if amp < 10:minFlag+=1elif amp > 230:maxFlag+=1#限制振幅if amp > 240:hist_height = 240else:hist_height = amp#计算要显示的图像,矩形实心显示。r=random.randint(0, 255)g=random.randint(0, 255)b=random.randint(0, 255)#img = img.draw_rectangle((x_shift,0,hist_width-1,hist_height),[r,g,b],2,True)img = img.draw_rectangle((x_shift,120-int(hist_height/2),hist_width-1,hist_height),[r,g,b],2,True)x_shift = x_shift + hist_width#显示#img.draw_string(2,2, str(times), color=(255,255,255), scale=2)lcd.display(img)#自适应幅度增益if maxFlag>0 and minFlag<3:times-=0.5elif minFlag>20 and maxFlag<1:times+=0.2if times<1:times=1elif times>10:times=10time.sleep_ms(20)
步骤
将代码复制到MaixPy IDE中运行即可。
效果
B站视频
K210频谱显示桌面摆件(Sipeed Maix Dock)相关推荐
- 【K210】【MaixPy】三、Maix Dock入门之LCD的使用(播放BadApple)
Maix Dock套件中标配了一块2.4寸LCD屏下面通过实现几个功能的方式介绍一些MaixPy中关于LCD使用的一些函数. 官方LCD函数文档链接:https://cn.maixpy.sipeed. ...
- 【K210】【MaixPy】二、Maix Dock入门之Timer、PWM基础模块,实现一个变色呼吸灯(效果参考罗技G502)
文章目录 1.Timer模块 1.1.构造函数 1.2.参数 1.3.例程 1.4.附录 2.PWM功能设置 2.1.构造函数 2.2.参数 2.3.例程 官方文档点这里 1.Timer模块 ...
- 四针角oled屏连接arduino_和孩子一起做个显示温湿度的oled屏桌面摆件[青创小电视]...
青创小电视--显示温湿度的oled屏桌面摆件/家庭亲子教育DIY 简介: 使用主控板arduino nano采集温湿度传感器dht11的温湿度数据,同时显示在1.3寸分辨率为128*64的oled屏幕 ...
- K210入门必看(MAIX DOCK)(一)
目录 K210芯片上IO口 板子上的引脚 如何理解[引脚]映射[内部功能]? fpioa_manage 类 1.register(pin, func, force=True) 2.unregister ...
- K210入门 MAIX DOCK——点灯(二)
目录 首先看现象 硬件连接 GPIO的介绍 GPIO() 类 特殊方法(函数) 1.value 2. irq() 3.disirq 4. mode 常量 主要程序 以后我会尽量,一直更新K210的操作 ...
- Mac OS X显示桌面和窗口最小化方法的几个快捷键
除了可以用 command+F3 来显示桌面以外,我们还可以通过 Fn+F11 键来显示桌面. 大家都知道在 OS X 系统中,点击窗口左上角中间的小黄按钮就可以最小化当前窗口.而事实上,还有一些比点 ...
- java显示本地磁盘所有盘符,显示桌面路径
import java.io.File; import javax.swing.filechooser.FileSystemView;/** 显示本地磁盘根盘符,显示桌面路径 */ public cl ...
- 如何添加显示桌面图标置于快速启动栏
点击"开始→运行",在弹出的"运行"对话框中输入"REGSVR32 /n /i:u shell32"(不含双引号),然后回车,片刻后会弹出& ...
- 解决“显示桌面”快捷方式的丢失
把下面的内容复制到一个文本文件中,文件名字为"显示桌面"扩展名为".scf" [Shell] Command=2 _#]7Ko"Y E IconFil ...
最新文章
- python >> 和 <<
- json省市区城市级联
- 本地环境的搭配及安装配置
- date制作电子时钟
- 【原】Spark Standalone模式
- protect 继承_(转)public、protect、private继承方式 C++
- echo off备份mysql_windows下备份Linux服务器上的MySQL
- 乔布斯,影响了一个时代的人
- Gitee同步GitHub仓库如何操作
- iOS 4中禁止程序退出后保留在后台的方法
- [论文评析]ArXiv,2021, CrossFormer技术分析
- matlab 滤波器_数字滤波器的MATLAB与FPGA实现
- PostgreSQL:安装
- ajax无翻页刷新简单实例
- 超分辨率重建双三次插值Bicubic生成高分辨率图像
- android 微博 登录,Android第三方登录之微博登录
- (2011-12-11 旧博文搬运)闪耀十字军(ティンクル☆くるせいだーす)【1】
- Python基础07
- Harmonious Rectangle(dfs 打表)
- APP - 查询全国医院各科室排行榜(一)