【得捷电子Follow me第1期】总结帖:音乐律动灯
[复制链接]
总结:
【得捷电子Follow me第1期】+ 熟悉micropython的基本语法
【得捷电子Follow me第1期】+ 任务2 驱动外设
【得捷电子Follow me第1期】+ 任务3 网络时间同步到板端
【得捷电子Follow me第1期】+任务4 GPS获取及解析
【得捷电子Follow me第1期】+任务5 蜂鸣播放audio,灯棒ws2813律动
音乐律动灯
非常感谢EEWORLD举办的这个Follow me活动,让我熟悉了从没有接触过的micropython,了解了Raspberry Pi Pico w开发板的功能及使用方法,感谢直播老师的讲解。这次主要想做一个音乐律动灯,网上看到别人做的很酷炫,想自己利用这次机会实现一下,也许我的实现方法不是那么完美,但从无到有,从不知道到知道,我觉得是很值得的。
这个音乐律动灯,使用的硬件包括Raspberry Pi Pico w开发板、扩展板、GROVE OLED扩展板、GROVE BUZZER扩展板以及WS2812扩展板,利用上述模块实现了WIFI连接网络获取实时时间显示到OLED显示屏上,通过音频输出控制蜂鸣器以及灯带的律动。
主控板Raspberry Pi Pico w,扩展板,屏幕,外设蜂鸣器和灯棒。OLED接到I2C0接口上,灯棒接到D16接口,蜂鸣器接到D20接口。
根据坛友蜂鸣器播放音乐的步骤,从其基础上进行修改提取,最后板端的文件如图所示,buzzer_music.py主要是将onlinesequencer.net上下载的音乐进行蜂鸣器播放,格式为时间、注释、持续时间、仪器(onlinesequencer.net示意图格式)。
根据整个音频找到最大和最小频率,划分step,决定显示点亮几颗LED灯。根据音乐中的时间决定点亮时长。
在整个DIY过程中收获是非常大的,我本人是嵌入式Linux软件开发,针对较底层不是非常熟,也未接触到MicroPython或者Python。本人属于驱动移植+应用开发,有点小范围。参加这个活动了解了MicroPython,可写简单的逻辑控制功能,知道了有种Python可以直接在嵌入式中运行。针对RP2040这颗处理器的功能也有了进一步的认识,原来这颗芯片可以做这么多事情,非常适合物联网设备,我的这个构想也可以通过联网将音乐数据拿到进行转换,输出给灯带让灯带随音乐进行律动。
通过这次活动,又了解了一个软件Mu Editor,这个软件非常简洁,针对MicroPython开发非常方便,开发Linux最开始sourceinsight+Ubuntu,后来就是vscode+Ubuntu,开发单片机一般用keil,我们公司买的版权,了解的开发工具多了也是很有好处的。
在完成任务的过程中,熟悉测试了板端的LED灯的控制逻辑,测试了OLED使用IIC驱动的控制逻辑,蜂鸣器通过PWM控制的逻辑,定位模块的功能测试,因为定位功能需要天线接收卫星信号进行解析数据,因此天线需要在室外才能够有信号。另外我学习了10-WS2813 Mini灯带的控制逻辑,根据基本控制逻辑进行修改,结合自己的实现原理来点亮LED灯带,因为只有一条10个灯珠,所以感觉有些单调,如果可以阵列控制应该会更好一些。
|