你知道那些背景音乐刺耳而怪异的老式科幻电影吗?那些独特的声音是用特雷门琴发出的,特雷门琴是一种可以在没有身体接触的情况下演奏的电子乐器。当演奏时,操作者可以通过手相对于两个天线的位置来控制音量和音调。
该项目将演示如何使用易拉罐作为天线在ADS上构建和调试一个简单的特雷门琴!考虑到易用性,在这个项目中将只利用特雷门琴演示音调调节。所实现的设计如下侧框图所示。增加音量控制并不需要太多额外的工作,大家可以自行尝试。
在此,我们不会深入探讨特雷门琴的工作原理。简单地说,天线(易拉罐)就像电容的一块板,你的手将充当电容的另一块板。因此,通过改变双手和天线的距离,就可以改变电路的电容。随着振荡器中电容的变化,振荡器的输出频率也会发生变化。这种频率的变化可以在电路末端的扬声器上听到。
清单
纯模拟特雷门琴:
1. Analog Discovery Studio
2. Breadboard Canvas
3. Analog Parts Kit
· 扬声器
· 音频连接器
· OP27运算放大器(x2)
· OP37运算放大器(x2)
· 2N3904 NPN晶体管
· 2N3906 PNP晶体管
· 1N3064小信号二极管
· 1N914二极管(x2)
· 10kΩ电位器
· 100pF陶瓷电容
· 1nF陶瓷电容(x2)
· 10nF陶瓷电容(x2)
· 47nF陶瓷电容
· 100nF陶瓷电容
· 47Ω电阻(x2)
· 470Ω电阻
· 4.7kΩ电阻
· 10kΩ电阻(x5)
· 20kΩ电阻(x2)
· 47kΩ电阻(x2)
· 100kΩ电阻(x3)
4. 一个易拉罐
5. WaveForms:请复制下方链接至浏览器下载WaveForms
https://digilent.com/reference/software/waveforms/waveforms-3/start
构建电路
变频振荡器
对于变频振荡器,我们将使用OP27运算放大器搭建。OP27的引脚和规格说明可以在datasheet中看到。放置运算放大器,使其横跨在面包板的凹槽,并且槽口朝向面包板的顶部(如图所示)。运算放大器在一端需要 +5V,在另一端需要 -5V。也就是说,面包板的一个电源轨道指定为+5V,另一个电源轨道指定为-5V。在下图的面包板中,红线用于连接+5V,白线用于连接-5V。运算放大器的引脚7连接到+5V。运算放大器的引脚4连接到-5V。黑线用于接地。把100pF电容放在面包板接地端和运算放大器引脚2之间。现在我们放置电阻,振荡器中使用的所有电阻都是100kΩ,在运算放大器引脚2到引脚6之间放置一个电阻,在运算放大器引脚3到引脚6之间放置另一个电阻,将最后一个电阻放在面包板接地端和运算放大器引脚3之间。
易拉罐要与电容并联。将黑色跳线的一端连接到面包板的接地端。当你操作特雷门琴时,你要用右手握住线缆的另一端。将绿色跳线的一端连接到运算放大器的引脚2,另一端接到易拉罐上(在这里,使用稍长的线缆更容易操作)。线缆的连接,可以使其与罐头顶部的标签固定,也可以将电线绑在罐子上,只要确保有金属间的接触即可。用右手拿着黑线缆,此时你的身体就是电路的一部分,且可以用左手充当带有易拉罐的电容板。
将一根线缆连接到运算放大器的引脚6。这会将该振荡器的输出电压传送到电路的下一部分,加权加法器。
要查看此电路模块的输出,请打开WaveForms,在Supplies 仪器中将可变电源分别设置 +5V 和 -5V。启用两个电源,然后打开面包板上的V±开关为电路供电。
将示波器通道1+连接到模块的输出端,将通道1-接地,然后打开并启动Scope仪器。当你把手移向易拉罐时,你应该会看到振荡频率的变化。
定频振荡器
定频振荡器的输出应该是频率接近于变频振荡器的正弦波。在这个项目中,大约是32 kHz。为了实现这一点,我们可以使用Analog Parts Kit中的AD654 电压-频率转换器和低通滤波网络来滤除产生方波中的高频谐波。
对于定频振荡器,我们将使用OP37运算放大器搭建。OP37的引脚和规格可以在datasheet中看到。
放置运算放大器,使其横跨在面包板的凹槽,并且槽口朝向面包板的顶部(如图所示)。运算放大器在一端需要 +5V,在另一端上需要 -5V。也就是说,面包板的一个电源轨道指定为+5V,另一个电源轨道指定为-5V。在下图的面包板中,红线用于连接+5V电源轨,白线用于连接-5V电源轨。连接运算放大器的引脚7到正电源轨 (+5V)。将运算放大器的引脚4连接到负电源轨(-5V)。
将1nF电容放置在面包板接地端和运算放大器引脚2之间。在运算放大器引脚2到引脚6之间放置一个10kΩ电阻。在运算放大器引脚3到引脚6之间放置另一个10kΩ电阻。将20kΩ电阻放在面包板的接地端和运算放大器的引脚3之间。
将一根线缆连接到运算放大器的引脚6。这将把输出电压从振荡器传送到低通滤波网络。该网络由三个RC低通滤波器组成,串联连接,第一个连接到运算放大器的输出(引脚6),该模块的输出取自最后一个电容的未接地引脚。
要查看该模块不同部分的信号,需按前面描述接通电路,然后将示波器通道1+连接到运算放大器的输出(引脚6),通道2+连接到低通滤波网络的输出。不要忘记将通道 1-和 通道2-接地。
如下图所示,输出信号更像是三角波,而不是正弦波,但对于此应用中,该误差是可接受的。
混合
电路的下一部分,加权加法器,用来混合来自固定和可变频率振荡器的信号。我们将使用另一个 OP27。
从振荡器沿面包板向下移动几个孔,然后放置 OP27,使其横跨面包板的凹槽,且槽口侧朝向面包板的左侧。正如我们在构建振荡器时所做的那样,连接运算放大器的引脚7到正电源轨,运算放大器的引脚4到负电源轨。将运算放大器的引脚3连接到面包板上的一个接地端上。
如下图所示,并联两个 47kΩ 电阻。两个电阻都应连接到运算放大器的引脚2。电阻的排布应如图所示断开一行。将从变频振荡器输出的线缆连接到47kΩ 电阻的其中一个。将定频振荡器之后的低通滤波器网络的输出连接到另一个 47kΩ 电阻。最后,在运算放大器的引脚 6 处放置一根橙线,就像在步骤 1 中一样。这会将加权加法器的输出连接到电路的下一部分,即包络检波器。
由于两个输入信号的频率非常接近,当它们相加时,就会产生干扰,产生一个节拍 (一种特定的干扰模式)。此时,输出信号仍然在可听频域之外,但可以用示波器可视化。
检波器
加权加法器输出的新信号将通过一个包络检波器,该检波器跟踪拍频模式。
注意:二极管的方向非常重要。Analog Parts Kit中的二极管是橙色的,有黑色环标识的一端是“阴”极。
包络检波器的输入是加权加法器的输出。从加权加法器向下移动几个孔,将橙线(来自加权加法器)的另一端连接到二极管的橙色(“阳极”)侧。在二极管的阴极,并联 10kΩ 电阻和 47nF 电容。将电阻和电容的另一侧连接到地。
该电路的输出位于二极管、电阻和电容的连接处。在此处连接一根橙线,用于接入下一部分电路。
输出信号处在可听域中。但实际信号比较弱,且振幅较小,直流偏移却较大,这会损坏扬声器,因此需要进一步处理。
放大器
这里使用的放大器是使用 OP37 运算放大器构建的反相放大器。与OP27相比,OP37 具有相同的引脚输出,并且指令动作也类似。如果您感兴趣,下方是OP37特定的数据表。
从检波器输出进一步向下搭建电路,以与放置 OP27相同的方式放置 OP37,横跨电路板的凹槽,槽口朝向面包板的顶部。与前两个运算放大器一样,将运算放大器的引脚 7 连接到面包板的 +5V 电源轨,引脚 4 连接到面包板的 -5V 电源轨。在运算放大器附近放置一个 10kΩ 电位器。该电位器将用于设置信号的振幅(音量)。将中间引脚连接到运算放大器的引脚 2,将另一个引脚连接到运算放大器的引脚 6。放置一个 4.7kΩ 电阻,使其一侧连接到运算放大器的引脚 2。电阻的另一侧应该连接到包络检波器的输出。
运算放大器的引脚3通常会通过一个电阻接地。在这种情况下,理想的做法是使用尽可能大的电阻。为了模拟一个无限电阻,我们将让引脚 3 悬空,这样它就是一个“开路”。没有电流可以流过开路,所以它就像一个无限的电阻。
将 100nF 电容连接到运算放大器的输出端(引脚6)。将一根线缆连接到电容的另一个引脚上。这将用于将放大器输出信号发送到扬声器,而电容串联输出将消除信号的直流偏移(去耦电容)。
为了可视化信号,将示波器通道 1+连接到模块的输入端,将通道2+连接到经过去耦电容后的输出端。不要忘记将通道1-和通道2-接地。
功率放大器
此时,你可以在上一个模块的输出和地之间连接扬声器或音频连接器。或者你可以按照以下步骤进一步在扬声器之前添加一个功放电路,这将使你的“音乐”更响亮。如果你打算使用一个单独的音频放大器(可能内置在扬声器中),那么你可以省去这部分。
由于运算放大器的输出电流应保持尽可能低(根据datesheet应低于 ±10mA),但一个8Ω扬声器在1V振幅信号时将产生超过100mA的电流(我们的信号甚至会有高于1V的振幅),要达到最大响度,可以使用 AB 类功率放大器来提供必要的电流。
将 NPN 和 PNP 晶体管的发射极连接在一起。将NPN晶体管的集电极连接到+5V,将PNP晶体管的集电极连接到-5V。在每个晶体管的基极和集电极之间连接一个 10KΩ 电阻。
将二极管的阳极(“正极”引脚)连接到 NPN晶体管的基极。将第二个二极管的阳极连接到第一个二极管的阴极,将第二个二极管的阴极连接到 PNP 晶体管的基极(如下图所示)。
功率放大器的输入端是第一个二极管的阴极,在此处连接上一级放大器的输出信号。功放的输出端是晶体管的发射极。
回顾整个电路
整个电路的原理图和电路板图如下所示。
要使用特雷门琴,需要打开WaveForms,打开Supplies仪器,启用正负可变电源并将它们的电压分别设置为 +5V 和 -5V。打开Breadboard Canvas上的开关。你可以使用小螺丝刀通过微调电位器调节特雷门琴的音量大小。
简化电路与编写软件
这次特雷门琴将主要通过软件实现:我们将使用 Python 3 和 WaveForms SDK 来记录变频振荡器的输出,生成定频振荡器的输出(虚拟),并混合两个信号。包络检波器和放大器也将在软件中实现。
注意:如果你不熟悉在 Python 中使用 WaveForms SDK,请查看本指南:Getting Started with WaveForms SDK.
修改电路
由于ADS不能直接测量电容(阻抗分析仪可以测量电容,但它需要一个波形发生器通道,这对于这个应用来说太慢了),我们仍然需要前面电路的第一个模块(参见变频振荡器部分)。你将不需要电路的其他部分。
将示波器通道 1+连接到振荡器的输出,1-通道接地。
将示波器通道 2+连接到 10kΩ 电位器的中间引脚,通道 2-接地。使用跳线将电位器的另一个未连接的引脚连接到电源正极,另一个引脚接地。这个电位器将设置特雷门琴的音量。
模块
在下文中,将创建单独的 python 模块来控制测试和测量设备及不同的仪器。
请复制下方链接至浏览器下载↓
设备
该模块包含加载 WaveForms SDK 以及连接和断开 ADS的功能。
电源
该模块包含设置正、负电源电压以及打开和关闭电源的功能。
示波器
该模块包含初始化示波器和记录数据的功能。
该模块包含初始化波形发生器和生成自定义信号的功能。
主要脚本
项目的主要部分从导入必要的模块开始,然后定义项目最重要的参数:
· sampling_frequency - 模拟数据的采样频率
· buffer_size - 数据集中的数据点数(最大值为 8192)
· amplitude -设置输出信号的振幅,设置它在输出时得到大约1V的振幅
· frame_repeat - 数据集应重复多少次
· fixed_frequency - 定频振荡器的频率
这些参数、设备句柄和 SDK 库也在模块中初始化。
在此之后,对仪器进行初始化。
产生定频振荡器的输出:signalffixed=sin(2∗π∗ffundamentalfsampling∗(0:nrsample))
在主循环中,示波器通道1 上采集的数据被归一化,然后与生成的定频信号相加(混合)。结果信号的包络是通过计算信号的希尔伯特变换的绝对值来提取的。通过从样本中减去样本的平均值来消除包络的 DC 偏移,然后再次对所得信号进行归一化。读取第二个示波器通道并取平均值以获得电位器状态,它决定了所产生信号的音量(振幅)。作为最后一步,在两个 Wavegen Channels上生成具有所需振幅的信号。小贴士:你可以使用ADS上的音频输出(3.5 毫米插头)作为输出。它还具有内置放大器,能够提供 ±250 mA 电流。
你可以通过按键盘上的 Ctrl+C 来停止特雷门琴。该程序将停止运行,重置所有仪器并关闭设备,以使其可用于其他软件(如 WaveForms)。
结果
如果要可视化 Wavegen Channels上输出的信号,请将示波器(或另一个测试和测量设备)连接到任一输出通道,或使用 python的matplotlib.pyplot 模块和 plot() 函数;然而,绘图会带来显著的延迟,因此结果可能不正确。
小贴士:你可以通过将相应的列表发送到 wavegen.generate() 函数在Wavegen Channels上输出中间信号。
可以看出,如果将变量 frame_repeat 设置为 1,则输出信号会出现巨大的延迟。这是因为我们脚本的处理速度导致的:混合和解调/过滤信号的时间比波形发生器运行时的时间更长。
可以通过一个小技巧来降低这种影响:我们将对每个数据集重复几次(大约 5 次就可以了)。由于信号大多是周期性的,并且由于采样频率大和仪器缓冲区内存的减小,这个技巧的应用对产生的音频信号几乎没有影响。
小的(大约 3 毫秒)延迟仍然存在。这些是当新的数据集加载到Wavegen的缓冲区时产生的,但这些中断会给最终产生的声音增添一个非常酷的效果。
两种实现方式都有其优缺点,所以这里进行一个并列的比较:
优点
纯模拟特雷门琴
连续输出信号
无延迟
趣味性构建
混合信号特雷门琴
所需的组件更少
更灵活(例如固定频率可变)
更易于调试
趣味性构建
缺点
纯模拟特雷门琴
需要许多组件
难以调试
不够灵活
对噪音敏感(例如,如果你将手放在其中一根线缆上)
混合信号特雷门琴
输出中出现小的延迟和丢失(这可能是因为想要声音听起来有趣)
如果您想探索更多,可以添加另一个天线来设置音量并添加滑块/旋转编码器来调整混合信号的声音(你可以动态设置采样率、帧重复计数器和/或 固定频率)这些都是值得尝试的想法。