用一块简单的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


如果你认为这篇文章还不错,欢迎点赞、关注、转发、收藏~

我会持续更新优质开源项目!

展开阅读全文

页面更新:2024-03-20

标签:上个世纪   发烧友   电子乐器   电子琴   音色   音质   喇叭   源码   电路   按钮   简单   项目

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top