电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>猫朋克合成器V2开源

猫朋克合成器V2开源

2022-07-05 | zip | 0.93 MB | 次下载 | 免费

资料介绍

PCB图如下:
pYYBAGK6XeWAJSiPAABbXaj4ZiU762.png
pYYBAGK6XeiAPUJ5AABYEzBU9h4900.png


 

描述

猫朋克合成器 V2

大家好,欢迎回来,这是我的 Neko Punk 合成器第 2 版,它是一个由 Arduino Nano 和 Mozzi 库驱动的猫主题合成器。

pYYBAGK6Xf6AQj1kAAClV9DqeIs280.jpg

通过改变 5 个滑槽的位置,Mozzi 可以产生更复杂和有趣的咆哮声、扫频声和合唱声。这些声音可以通过振荡器、延迟和滤波器等熟悉的合成单元快速轻松地构建。

您可以从这里查看 Mozzi 库 -  https://sensorium.github.io/Mozzi/

poYBAGK6XgGAGdu-AABz7ULASKM128.jpg

我几周前制作的上一版基于最初的 Atari Punk 控制台,最初由 Forrest Mims 于 1980 年制作。它采用了触发单稳态设置的非稳态多谐振荡器设置。通过结合这两种设置,我们得到了 Stepped Tone Generator 或 atari punk 合成器。

pYYBAGK6XgOATledAAB8WaBT2Zo301.jpg

这很容易制作,但我对它的结果并不满意。

https://www.hackster.io/Arnov_Sharma_makes/atari-punk-synth-v2-8b9dd3

一年前,我用 Mozzi Library 制作了一个类似的合成器,效果很好,所以我想为什么不在 Neko Punk Synth 的 V2 中使用 Mozzi,为了让事情变得超级酷,我使用了滑动罐,让这个合成器具有赛博朋克 -看起来不错。

所需材料

pYYBAGK6XgaAfTWtAACQ2RSepD8582.jpg

这些是这个内置的东西 -

Arduino纳米

PAM8403 音频放大器

PCBWAY提供的定制PCB

锂离子 5V 升压模块

3.7V 锂离子电池

3D打印外壳

4欧姆扬声器

滑块锅

电路设计

poYBAGK6XgiAAiqPAABxXQ2lgtk069.jpg

V2 PCB 可能是我做过的最简单的电路板。

它使用一个 Arduino Nano 作为基础微控制器,五个滑块电位器与 Arduino nano 连接。

poYBAGK6XguAfJ3fAAFca0yEPSg323.jpg

D9 进入 PAM8403 音频放大器模块的输入,PAM8403 的输出与两个 CON2 引脚连接,因此我们可以用它添加扬声器。

整个设置需要 5V 才能工作。

为了给这个设置供电,我必须使用这个你可以在网上找到的锂离子电池升压模块,这些模块非常便宜并且工作得很好。

poYBAGK6Xg6AWdqYAAC_uhY_TKY177.png

它将 3.7V 的锂离子电池提升至恒定的 5V 1A 或 2A,以使我们的 MCU 设置正常工作。

我在我的 OrCad PCB 套件中准备了 PCB,并添加了一些图形来增加电路板的美感。

从 PCBWAY 获取电路板

poYBAGK6XhCAQA4dAABSrxjYOBw767.jpg

我为这个项目使用了 PCBWAY PCB 服务。我在PCBWAY的报价页面上传了这个项目的Gerber文件。

对于这个合成板,我选择白色阻焊层颜色,因为我在板的顶部添加了相当多的圆形图形和自定义艺术。

黑色丝印与白色阻焊层颜色相得益彰。

pYYBAGK6XhKAScgnAACZ6rjD9go217.jpg

我在一周内收到了 PCB,PCB 质量非常好,这块 PCB 很大,我喜欢这些 PCB 的质量没有因为尺寸而受到影响。

从这里检查 PCBWAY -  https://www.pcbway.com/

电路板组装

poYBAGK6XhCAQA4dAABSrxjYOBw767.jpg

现在这块板没有任何 SMD 组件,所以我们只需要手动将所有东西放在这块板上并用烙铁焊接它们。

我首先收集所有材料并使用滑动电位器开始组装过程。

pYYBAGK6XhKAScgnAACZ6rjD9go217.jpg

然后我从顶部将所有的 Pot 放在它们的位置,并从 PCB 的底部焊接它们的焊盘。

在此之后,我在它们的位置添加了 Arduino Nano 和 PAM8403 模块,并且组装几乎完成了。

上传代码

这是这个基于 Mozzi 库的项目的主要草图。

 

/*
使用 2 个光敏电阻 (LDR) 更改的示例
FM 合成参数和基频旋钮,
使用 Mozzi 声化库。

演示模拟输入、音频和控制振荡器、相位调制
并以音频速率平滑控制信号以避免咔嗒声。
还演示了 AutoMap,它将不可预测的输入映射到设定的范围。


电路:
 数字引脚 9 上的音频输出(在 Uno 或类似设备上),或


 电位器连接到模拟引脚 0。
 电位器的中心引脚连接到模拟引脚。
 电位器的侧引脚连接到 +5V 并接地

 模拟引脚 1 上的光敏电阻 (LDR) 和 5.1k 电阻:
 从模拟引脚到 +5V 的 LDR
 5.1k 电阻从模拟引脚到地
 
 模拟引脚 2 上的光敏电阻 (LDR) 和 5.1k 电阻:
 从模拟引脚到 +5V 的 LDR
 5.1k 电阻从模拟引脚到地

Mozzi 帮助/讨论/公告:
https://groups.google.com/forum/#!forum/mozzi-users

蒂姆·巴拉斯 2013。
此示例代码位于公共领域。
*/

#include  
#include  // 振荡器
#include  // 用于播放 Oscils 的表格
#include  
#include  // 地图不可预知的输入范围
 
// int freqVal;
 
// 所需的载波频率最大值和最小值,用于 AutoMap 
const  int MIN_CARRIER_FREQ = 22 ;
常量 int MAX_CARRIER_FREQ = 440 ;

常量 int MIN = 1 ;
常量 int MAX = 10 ;

常量 int MIN_2 = 1 ;
常量 int MAX_2 = 15 ;

// 所需的强度最大值和最小值,对于 AutoMap,注意它们是反向动态的反转
const  int MIN_INTENSITY = 700 ;
常量 int MAX_INTENSITY = 10 ;

// 所需的 mod 速度最大值和最小值,对于 AutoMap,注意它们是反向动态的反转
const  int MIN_MOD_SPEED = 10000 ;
常量 int MAX_MOD_SPEED = 1 ;

AutoMap kMapCarrierFreq ( 0 , 1023 ,MIN_CARRIER_FREQ,MAX_CARRIER_FREQ) ;
AutoMap kMapIntensity ( 0 , 1023 ,MIN_INTENSITY,MAX_INTENSITY) ;
AutoMap kMapModSpeed ( 0 , 1023 ,MIN_MOD_SPEED,MAX_MOD_SPEED) ;
AutoMap mapThis ( 0 , 1023 ,MIN,MAX) ;
AutoMap mapThisToo ( 0 , 1023 ,MIN_2,MAX_2) ;

const  int KNOB_PIN = 0 ; // 将旋钮的输入设置为模拟引脚 0 
const  int LDR1_PIN= 1 ; // 将 fm_intensity 的模拟输入设置为 pin 1 
const  int LDR2_PIN= 2 ; // 将调制速率的模拟输入设置为引脚 2 
const  int LDR3_PIN= 4 ;
常量 int LDR4_PIN= 3 ;

Oscil aCarrier(COS2048_DATA);
Oscil aModulator(COS2048_DATA);
Oscil kIntensityMod(COS2048_DATA);

int mod_ratio = 5 ; // 亮度(谐波)
long fm_intensity; // 携带来自 updateControl 的控制信息到 updateAudio

// 平滑强度以消除过渡点击
float smoothness = 0.95f ;
Smooth < long > aSmoothIntensity(平滑度);


void  setup () {
 // Serial.begin(115200); // 设置串行输出,以便我们可以查看光照级别
startMozzi(); // :))
}


无效 更新控制() {

// freqVal = map(LDR3_PIN, 0, 1023, 1, 100);

 int freqVal = mozziAnalogRead(LDR3_PIN); // 值为 0-1023 
 int FRQ = mapThis(freqVal);
 
 int旋钮2 = mozziAnalogRead(LDR4_PIN); // 值为 0-1023 
 int knob2Val = mapThis(knob2);

// 读取旋钮
int knob_value = mozziAnalogRead(KNOB_PIN); // 值为 0-1023

// 将旋钮映射到载波频率
int carrier_freq = kMapCarrierFreq(knob_value);

//计算调制频率以保持比率
int mod_freq = carrier_freq * mod_ratio * FRQ;

// 设置 FM 振荡器频率
aCarrier.setFreq(carrier_freq);
aModulator.setFreq(mod_freq);

// 读取宽度模拟输入引脚上的光敏电阻
int LDR1_value= mozziAnalogRead(LDR1_PIN); // value is 0-1023 
// print the value to the Serial monitor for debug 
//Serial.print("LDR1 = "); 
 // Serial.print(LDR1_value); 
 // Serial.print("\t"); //打印一个标签

int LDR1_calibrated = kMapIntensity(LDR1_value);
 // Serial.print("LDR1_calibrated = "); 
 // Serial.print(LDR1_calibrated); 
// Serial.print("\t"); //打印一个标签

 // 计算 fm_intensity 
fm_intensity = (( long )LDR1_calibrated * knob2Val * (kIntensityMod.next()+ 128 ))>> 8 ; // 8 位乘法后移回范围
// Serial.print("fm_intensity = "); 
 // Serial.print(fm_intensity); 
// Serial.print("\t"); //打印一个标签

// 读取速度模拟输入引脚上的光敏电阻
int LDR2_value= mozziAnalogRead(LDR2_PIN); // 值为 0-1023 
// Serial.print("LDR2 = "); 
// Serial.print(LDR2_value); 
// Serial.print("\t"); //打印一个标签

// 这里使用浮点数表示低频
float mod_speed = ( float )kMapModSpeed(LDR2_value)/ 1000 ;
//Serial.print(" mod_speed = "); 
 // Serial.print(mod_speed);
kIntensityMod.setFreq(mod_speed);

 // Serial.println(); // 最后,打印下一行调试信息的回车
}


int  updateAudio () {
长调制 = aSmoothIntensity.next(fm_intensity) * aModulator.next();
返回aCarrier.phMod(调制);
}


无效 循环() {
音频挂钩();
}

 

代码很长,但基本上,它运行在 Mozzi 库上,无需额外的屏蔽、消息传递或外部合成器即可生成算法音乐。这个库有很好的文档记录,所以你可以从这里查看并下载它。在上传这个草图之前安装这个库。

https://sensorium.github.io/Mozzi/

 

常量 int KNOB_PIN = 0; //将旋钮的输入 设置为模拟引脚0 
const int LDR1_PIN= 1 ; //将fm_intensity的模拟输入设置为pin 1 
const int LDR2_PIN= 2 ; //将调制速率的模拟输入设置为引脚2 
const int LDR3_PIN = 4 ;   
常量 int LDR4_PIN=3;

 

POT 连接在 A0、A1、A2、A3、A4 上,音频输出为 D9。

测试

pYYBAGK6XhmAJrmwAACUEr5_yAA760.jpg

poYBAGK6XhyAGTEtAACVAn_PRdo914.jpg

现在上传草图后,我添加了一个带有 PAM8403 模块的 CON2 的 4ohm 扬声器。

为了暂时为这个设置供电,我使用移动电源为 Arduino Nano 提供 5V 2A。

要调制声音,我们只需更改所有 5 个滑动电位器的位置,这几乎就是整个测试过程。

接下来,我们继续进行最后的组装过程。

3D打印外壳

pYYBAGK6Xh6AVNk1AABIayrP784881.jpg

至于合成器的主体,我们通常使用一个盒子状的外壳来容纳扬声器和电子设备。

我的想法是在正面制作一张猫脸,让它看起来像一只 BOX CAT,我在正面添加了猫的面部信息,例如胡须、鼻子、眼睛。

poYBAGK6XiCAc_IZAABIB0D3TMQ959.jpg

poYBAGK6XiOAdOgCAABngcyOCvk006.jpg

我在 fusion360 中对身体进行建模,然后在我的 ender 3 上对每个部分进行 3D 打印。

我用橙色 PLA 准备了主体,用黑色 PLA 准备了瞳孔、眉毛、胡须和鼻子,用白色 PLA 准备了眼睛。

pYYBAGK6XiWAXtunAABw7q8Oexw205.jpg

pYYBAGK6XiiAdX81AABz_L66ARQ195.jpg

打印设置也很正常,我使用了一个 0.8mm 的喷嘴,层高为 0.32mm,填充量为 20%,并支持基体。

打印完所有部件后,我使用强力胶将所有面部部件连接到基体上。

总装

poYBAGK6XiqACcxpAACK7Rs5kXk168.jpg

现在我们开始主要组装,首先添加一个扬声器到带有螺母和螺栓的底座上。

接下来,我将 DC Jack 和摇臂开关添加到基体中。

pYYBAGK6Xi2AGIQVAAB3CxGK_tI408.jpg

pYYBAGK6XjSAVwr7AACbZZUdm2s753.jpg

poYBAGK6XjeABPJyAAB7dw0dCf0460.jpg

然后我们将 Lithium Boost 模块与 DC 插孔和开关连接起来。

然后,我将所有东西放在机身内,并用一些 M2 螺丝从底部添加主 PCB,组装完成。

结果

poYBAGK6XgGAGdu-AABz7ULASKM128.jpg

要打开此设置,我们只需按下摇杆开关并更改滑动电位器位置即可调制声音。

 

 

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1XL4015+LM358恒压恒流电路图
  2. 0.38 MB   |  133次下载  |  1 积分
  3. 2elmo直线电机驱动调试细则
  4. 4.76 MB   |  9次下载  |  6 积分
  5. 3GB 4706.17-2010 家用和类似用途电器的安全电动机-压缩机的特殊要求
  6. 3.47 MB   |  6次下载  |  1 积分
  7. 4GB/T4706.1-2024 家用和类似用途电器的安全第1部分:通用要求
  8. 7.43 MB   |  4次下载  |  1 积分
  9. 5ADL-GPIB IEEE 488命令集函数参考手册
  10. 0.67 MB   |  2次下载  |  5 积分
  11. 6仪表培训课件
  12. 1.82 MB   |  2次下载  |  1 积分
  13. 7海拉2代PWM-TAS传感器手册
  14. 4.31 MB   |  1次下载  |  5 积分
  15. 8DTSD1352导轨式多功能电能表安装使用说明书 V2.15
  16. 1.19 MB   |  1次下载  |  免费

本月

  1. 1XL4015+LM358恒压恒流电路图
  2. 0.38 MB   |  133次下载  |  1 积分
  3. 2新概念模拟电路第四册信号处理电路电子书免费下载
  4. 10.69 MB  |  58次下载  |  免费
  5. 3800VA纯正弦波逆变器的参考设计
  6. 2.96MB   |  23次下载  |  免费
  7. 4纯电动汽⻋的主要部件及⼯作原理
  8. 5.76 MB   |  15次下载  |  5 积分
  9. 5新概念模拟电路(电子版全集)
  10. 29.33 MB   |  13次下载  |  免费
  11. 6GP328和GP88S对讲机的维修实列资料合集免费下载
  12. 0.03 MB   |  10次下载  |  10 积分
  13. 7Type-C VL160数据手册
  14. 0.92 MB   |  10次下载  |  3 积分
  15. 8elmo直线电机驱动调试细则
  16. 4.76 MB   |  9次下载  |  6 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935115次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420061次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233084次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191366次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183329次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81581次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73805次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65985次下载  |  10 积分