微型小乐器 : MicroSynth 小巧而优美
简 介: 介绍了由 David Levi 的博客中他制作的一款小巧优雅的电子琴。他巧妙的利用了电阻网络形成了指数电压电路,进而产生了准确的音节频率。这样的设计给与我们更多有趣的电路设计技巧。很可惜在其博客中并没有找到完整的电路设计图纸。
关键词
: 模拟电子琴,555,音节
本文介绍了 David Levi 在 MicroSynth: Part Biz Card, Part Synth, All Analog 中给出的一款低成本、简洁、迷你的音乐合成器,适合学习、娱乐。
§01 MicroSynth
一、背景介绍
也许一个只有一个八度范围小型电子琴使用普通单片机可以方便的完成,但这款全模拟音乐合成器则使得对音乐、电子以及信号原理的学习更能够充满乐趣。这一点是弥足珍贵的(They are alse expensive !)
1、关于MicroSynth
David Levi希望更多的人了解、只在这款迷你音乐合成器:MicroSynth,简单、有趣、内容丰富,它仅仅有一个名片大小。
▲ 图1.1 名片大小的MicroSynth PCB 板
(1)设计特点
David设计的MicroSynth 使用了触摸按键,替代了机械按钮。 巧妙使用运放(OP-AMP)设计的振荡器可以自动产生按照指数分布的音节频率;这要比利用555定时器与双极性三极管电路更加简洁;
因此MicroSynth的技术特点为:
- 没有机械按钮
- 没有任何数字芯片;
- 没有555定时器芯片
- 无需使用匹配的双极性三极管。
虽然使用双层PCB板制作,但所有的线圈均可在顶层铺设;底层只作为公共底线。它使用了4个运放,四个的N-MOS三极管,一个无源扬声器。
▲ 图1.2 小巧的MicroSynth正面元器件布局
最初 David 设计MicroSynth就是作为他的特色明信片,把玩它使得David获得很多乐趣。一天他认为MicroSynth 应该拥有它作为发明物的应有的权利,被更多人看到它那灵妙的身姿。
2、关于David
MicroSynth 的作者David是 MicroKits 品牌的发明人和拥有者,MicroKits 是最初是提供 特雷门琴(Theremin) 简单设计与实现方案的项目。作者开始制作这类音乐合成电子作品,当然他现在还不打算将其工程化。随着制作更大的音乐电路,他使用MicroSynth测试一些想法,顺便也作为他本人的名片。
二、技术细节
1、触摸按键
MicroSynth 上的按键不是机械按钮,而是触摸电阻按键。当手指触碰按钮时,电机两端就会有微量电流通过手指表面流过,足以打开晶体管开关。就像普通计算机上的薄膜开关的原理一样,只是这里你的手指充当了按钮导通薄膜。
2、指数电压
音乐各个音节频率是呈现指数分布,每增加一个八度频率增加一倍。在MicroSynth电路设计中,各个按键对应电阻参数则是按照线性增加。 电路板上的压控振荡器(VCO)的输出频率正比于输入电压。例如,设计一个输出10、20、30、40Hz 等间隔频率信号的电路比较容易,但设计一个呈现信号耐压指数增加电路,比如10、20、40、80Hz则需要丰富的电路技巧。
大多数音乐合成电路使用双极性三极管的指数变化增益将输入线性电压转换成指数变化电压,但这需要有精确匹配电阻、温度补偿以及电路精细调整才行。如果不把众多琐碎因素考虑进去,则产生的音节不是太集中,就是分散。
使用555 定时器电路产生音节则需要利用RC充放电时间呈现指数变化才能够输出指数变化的音节频率。555定时器不仅比普通运放昂贵,它所工作的电压也比运放高。
作者巧妙设计了一款仅需要两个运放电路,可以将线性增加的电阻转换成指数变化的电压输出,来控制一个VCO。本质上讲,这个电路输出电压是电阻的多项式函数,但在一个八度音程范围内它已经非常逼近指数变化函数了。
3、骇客精神
追求极致精简的电路骇客们希望利用最为传统器件完成电路设计。当别人还在嘲笑那些使用微控制器实现本来可以由555定时器实现的功能的时候,David放出狠话,实际上有的时候555定时器都显得多余。
§02 电路设计
一、电路原理
1、电路器件
序号 | 器件名称 | 规格 | 数量 |
---|---|---|---|
1 | 喇叭 | FS-2308 | 1 |
2 | USB接口插座 | Micro-USB | 1 |
3 | 双运放芯片 | MCP6002T-I/SN | 2 |
4 | 喇叭驱动 | PAM8302AADCR | 1 |
5 | MOS管 | N-沟道MOSFET | 11 |
6 | 电容 | 1uF,100nF,4.7nF | 1uf:2; 100nF:6; 4.7nF:10 |
7 | 电阻 | 1M,200k,100k,37.4k,10k,2k | 1M:18; 200k:4:,100k:14; 37.4k::1; 10k:6; 2k:9 |
8 | 电位器 | 10k | 2 |
2、核心电路
下面这个电路则使用了两个运放来产生指数(等比)分布的电压。其中包括了键盘电路、指数电压电路、高八度电路、微调电路等。
▲ 图2.1 MicroSynth电路图原理图
(1)按键电路
按键电路本质上是由12个1kΩ电阻串联起来,通过按键开关将指数电压运放电路负极性输入端接地。为了简单起见,使用了普通开关表示串联电阻接入地,实际上这些开关将来都是有MOS管来代替。
十二个按钮可以产生一个八度音高中的十二个半音阶。当多个按键被按下时,该电路不会产生和弦,只有最高音节输出。
(2)微调电路
电路图中标志有“Fine Tune”的电位器用于对输出电压进行微调,一边产生准确的音节频率。
(3)八度音程开关
微调输出电压由右面单位增益,或者倍压电路缓冲之后送到指数电压电路。当“Octave”对应开关打开时,缓冲运放为单位增益,如果Octave开关闭合,则缓冲运放增益为2。利用这个开关可以产生两个八度的音节。
(4)指数电压电路
指数电压电路是这个电路的核心,它将串联的线性变化的电阻转换成指数变化的电压。了解它的原理需要一些数学推导。
决定输出电压是有三部分电路组成:
- 微调+倍程电路舒适的基准电压 U r e f U_{ref} Uref。经过200k,100k分压电路在输出运放“+”端产生 U r e f / 3 U_{ref} /3 Uref/3电压;
- 由 R 1 = 37.4 k Ω R_1 = 37.4k\Omega R1=37.4kΩ与键盘电阻 R k e y = n ⋅ 1 k Ω R_{key} = n \cdot 1k\Omega Rkey=n⋅1kΩ组成的对 U r e f U_{ref} Uref的分压电路;
- 输出电压 U o u t U_{out} Uout经过200k,100k以及前面的分压电路在输出运放的“-”极需要产生一个电压等于“+”极电压 U r e f / 3 U_{ref} /3 Uref/3。
根据运放在放大状态下,输入端“虚短”特性,输出运放的“-”极电压也应该为 U r e f / 3 U_{ref} /3 Uref/3。这个电压与输出电压在200k电阻上产生的电流为: I 1 = U r e f 3 − U o u t 200 k I_1 = {{{{U_{ref} } \over 3} - U_{out} } \over {200k}} I1=200k3Uref−Uout
由37.4k(假设称为 R 1 R_1 R1)与键盘电阻 R k e y R_{key} Rkey组成的对 U r e f U_{ref} Uref分压电路,根据戴维南定理,可以看成由电压 U k e y U_{key} Ukey,内阻 R 0 R_0 R0组成的电压源。
U k e y = R k e y ⋅ U r e f R k e y + R 1 , R 0 = R k e y ⋅ R 1 R k e y + R 1 U_{key} = {{R_{key} \cdot U_{ref} } \over {R_{key} + R_1 }},\,\,R_0 = {{R_{key} \cdot R_1 } \over {R_{key} + R_1 }} Ukey=Rkey+R1Rkey⋅Uref,R0=Rkey+R1Rkey⋅R1
那么它在输出运放的输入电阻(100k)上产生的电流为:
再根据放大状态下运放的“虚断”特性, I 1 = I 2 I_1 = I_2 I1=I2,所以
下面,假设:
- U r e f = 2.44 V U_{ref} = 2.44V Uref=2.44V
- R 1 = 37.4 k Ω R_1 = 37.4k\Omega R1=37.4kΩ
- R k e y = n ⋅ 1 k Ω , n = 0 , 1 , 2 , 3 ⋯ 11 R_{key} = n \cdot 1k\Omega ,\,\,n = 0,1,2,3 \cdots 11 Rkey=n⋅1kΩ,n=0,1,2,3⋯11
那么可以计算出对于不同的按键电阻 n n n,所对应的输出电压。下图同时显示了根据公式“计算值”以及对应12音律的音节值。可以看到它们之间非常接近。
▲ 图2.2 不同按键n对应的输出电压
from headm import *
R1=37.4e3
Uref=2.44
def keyU(n):
Rkey=n*1e3
Uout = 1/3+(200e3*((Rkey+R1)/3-Rkey))/(Rkey*R1+100e3*(Rkey+R1))
Uout = Uout * Uref
return Uout
Uout = [keyU(nn) for nn in list(range(12))]
Uth = [Uref*exp(-n/12*log(2)) for n in list(range(12))]
printf(Uout)
plt.plot(list(range(12)), Uout, label='计算值')
plt.plot(list(range(12)), Uth, label='音节值')
plt.xlabel("n")
plt.ylabel("Uout")
plt.scatter(list(range(12)), Uout)
plt.scatter(list(range(12)), Uth)
plt.legend(loc='upper right')
plt.grid(True)
plt.tight_layout()
plt.show()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
3、按键电路
下图给出了按键实际电路,它是将手指触碰电极所产生的微弱电流通过1M欧姆的下拉电阻驱动MOS管导通,相当于一个对地的开关,驱动前面核心电路中1k欧姆电阻网络。
▲ 图2.3 按键电路图
人体触碰电路过程中,不仅会等效成贯彻导通电阻,另外还会引入空间的交流电压信号。所以在按键电路中还有1M欧姆与4n7电容组成的滤波电路。
下图是作者对于这个电路进行的电路仿真,可以看出它可以有效的导通。
▲ 图2.4 利用人工等效模型进行电路仿真
下面是按键实际电路,指尖触碰按键焊盘后,便可以触发电路工作。
▲ 图2.5 电路板上实际的按键
※ 电路小结 ※
在 David 的BLOG 的网页中并没有找到完整的电路图。对于这个电路中振荡电路的工作原理以及如果判断是否有按键被按下等,作者并没有进行详细的说明。
◎ 公众号留言:
-
垂直雨林
:虽然说晚了,但是祝大家国庆快乐 -
逸翰
:没有开源文件吗 -
苏公雨
:感谢卓老师的分享! -
DavidLin
:卓大大,背景介绍中also的拼写拼错了你写成alse了- 作者: 谢谢。
-
(┯_┯)painful world(┯_┯)
:按我的理解做一个简单的描述,实际上是37.2k电阻和键盘电阻做并联分流,然后运放将并联后的电阻反映成为电压。电阻并联的公式 1/(1/r1+1/r2),当r1固定而r2可变时,并联得到的r合电阻的阻值,和r2的阻值就形成近似对数的关系,然后运放将这个阻值反映成电压就形成近似对数或指数的电压了。这种做法类似于,需要用指数或对数电位器而手上只有线性电位器时,在线性电位器的滑动端到其中一个固定端并联一个定值电阻,就可以构成近似的对数或指数电位器,就可以用作音量电位器。巧妙的想法,虽然我知道这种特性却没有想到可以做等距音调。压控振荡器那块可以用cd4046,是一个较为线性的模电压控振荡器。 -
呆呆
:大大,电路小结中:“工作原理以及如果判断是”应该是“工作原理以及如何判断是”吧- 作者: 对的
-
好想吃鱼
:没有画出来的电路应该有个个线性驰张振荡器,双运放构成,第一个运放是积分器,第二个运放是施密特触发器,外加一个放电管,输出锯齿波,经过一个功放推动小喇叭 -
luke
:蹲一个完整原理图
■ 相关文献链接:
● 相关图表链接:
- 图1.1 名片大小的MicroSynth PCB 板
- 图1.2 小巧的MicroSynth正面元器件布局
- 表2-1 MicroSynth电路元器件
- 图2.1 MicroSynth电路图原理图
- 图2.2 不同按键n对应的输出电压
- 图2.3 按键电路图
- 图2.4 利用人工等效模型进行电路仿真
- 图2.5 电路板上实际的按键
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/120585802
- 点赞
- 收藏
- 关注作者
评论(0)