用一块简单的PCB,做一个音质不错的电子乐器
什么是Stylophone?
Stylophone是电子乐器。上个世纪七十年代,Stylophone曾风靡一时。
事实上,它的出现是一个巧合!
一位发烧友在为孩子修理玩具电子琴时,突发奇想制作了它。
他不但将电子琴复原,还添加了一系列音色修饰功能 ,创造出一个音质奇佳、音色优美的新型掌上电子乐器。
滚石乐队,摇滚先驱David Bowie都曾青睐于它。
工程描述
于是,我花83元仿制了一个价值300+的stylophone。本项目主要模仿了其键盘和操作方式。
它能通过一个按钮修改音色,音色有两种,正弦波的音色浑厚低沉、三角波的音色相对明亮……
视频加载中...
另外两个按钮则可以调整高、中、低音 。
非常适合arduino新手入门 。
硬件原理
这是 非常简 单、非常有趣的项目!
使用合宙ESP32C3、AD9833、LM4781、PCF8574T、喇叭、电位器制作。
电路原理非常简单:
杜邦线接的是GND,当按钮检测到被GND"按"住,就会使I2C扫描三个PCF8574T的管脚输入状态,检测到低电平就会控制AD9833输出相对应频率的波形,并输出给喇叭发出音乐声。
设计图
原理图
PCB
源码void loop() { Wire.requestFrom(PCF8591_ID_0, 1); Wire.available(); a = Wire.read(); Wire.requestFrom(PCF8591_ID_1, 1); Wire.available(); b = Wire.read(); Wire.requestFrom(PCF8591_ID_2, 1); Wire.available(); c = Wire.read(); if (a == 0xff and b == 0xff and c == 0xff )AD.setFrequency(MD_AD9833::CHAN_0, 0); switch (WAVE_S) { case 0: for (int i = 0; i < 8; i++) { if (a == KEY_D[i])AD.setFrequency(MD_AD9833::CHAN_0, float(WAVE[i])); if (b == KEY_D[i])AD.setFrequency(MD_AD9833::CHAN_0, float(WAVE[i + 8])); if (c == KEY_D[i])AD.setFrequency(MD_AD9833::CHAN_0, float(WAVE[i + 16])); }
因格式原因,源码无法完全上传,如需要"源码+电路源文件" ,请自取,无偿分享:https://oshwhub.com/shukkkk/esp32c3_stylophone#P6
本文全部资料参考:立创开源硬件平台《PCB电子乐器 》作者:爆改车间主任
https://oshwhub.com/shukkkk/esp32c3_stylophone#P6
如果你认为这篇文章还不错,欢迎点赞、关注、转发、收藏~
我会持续更新优质开源项目!