Show HN: I built a synth for my daughter
为女儿定制的便携式合成器:项目总结
TL;DR: 作者为女儿三岁生日制作了一个便携式音阶合成器,它有四个滑块控制四个循环序列中的音符。向上滑动音高升高,向下滑动音高降低。
项目概述:
作者为了女儿的兴趣,设计并制作了一个儿童友好的、具有触感的音乐玩具——便携式音阶合成器。该合成器集成了合成模块和扬声器,并提供音调、音量、音阶、音高和乐器等控制选项。它还配备了 OLED 屏幕,提供视觉反馈,并显示一个可爱的跳舞熊猫。项目使用了定制 PCB 和 3D 打印外壳。
项目背景:
受到女儿对蒙台梭利活动板的兴趣启发,作者希望创造一个类似合成器控制面板的、简单、触觉和富有创意的音乐玩具,无需持续按住按钮即可保持声音播放。
开发过程:
原型阶段:
- 从 Arduino Inventors Kit 开始,目标是构建一个基本的 MIDI 控制器,通过电位器读取数值,映射到 12 个音符,并输出 MIDI 消息。
- 使用 Arduino MIDI 库读取电位器输入,并使用 Python 脚本将 MIDI 消息转发到 Mac 的 MIDI 设备,通过 Logic Pro 进行软件乐器播放。
- 引入了 M5Stack SAM2695 合成器模块,简化了音频合成过程,并使用 Elegoo Nano 作为微控制器。
- 添加了 OLED 屏幕,使用 u8g2 图形库进行视觉反馈和动画显示(跳舞熊猫)。
- 利用 Wokwi 微控制器模拟器进行虚拟电路测试和代码调试。
外壳设计:
- 由于找不到合适的现成外壳,作者学习 CAD 并使用朋友的 Bambu Labs A1 Mini 3D 打印机制作外壳。
- 使用 Fusion 360 进行 CAD 设计,推荐 Product Design Online 的教程和 wermy 的视频。
电路板设计与组装:
- 最初使用焊接面包板进行电路连接,但由于连接脆弱,容易损坏。
- 设计了定制 PCB,使用 JLCPCB 代工制造,成本为 £35.41。
- 使用 Adafruit Miniboost 稳压电源,解决电池电压不足的问题。
关键技术:
- Arduino: 作为微控制器,负责处理用户输入和控制合成器。
- MIDI: 用于将控制信号传递给软件乐器或合成器。
- SAM2695 合成器模块: 提供音频合成功能。
- OLED 屏幕: 提供视觉反馈和动画效果。
- u8g2 图形库: 用于在 OLED 屏幕上显示图形。
- Fusion 360: 用于 CAD 设计和 PCB 设计。
- 3D 打印: 用于制作外壳。
- JLCPCB: 用于 PCB 代工制造。
未来展望:
- 优化 OLED 屏幕刷新率,减少延迟。
- 升级到 ESP32 微控制器,简化固件并扩展显示功能。
- 考虑将项目发展成产品,但需解决安全认证和生产制造等问题。
- 开放源代码,或通过 Kickstarter 众筹进行小批量生产。
- 欢迎有硬件产品开发经验的人士提供建议。