基于Arduino制作吉他自动调音器

发布时间:2022-12-05  

弹吉他时最重要的事情之一是确保乐器音准。即使是最好的吉他手,用一把走调的吉他也不会听起来有任何好处。使用标准调音器手动调音一直很常见,但自动调音器让事情变得更容易,更有趣!这个基于 Arduino 的项目将为您调音吉他。


概述

pYYBAGL59emAZECOAADtILPSsYc718.png

上图显示了自动吉他调音器的概览。

按钮用于选择要调音的琴弦

六个 LED 显示屏用于指示选择了哪个字符串

连接到电机的夹具用于转动调音栓,直到琴弦调准。

输入和输出由上述四个电路控制:按钮的数字输入电路、吉他的模拟音频输入电路、LED 显示屏的数字输出电路和调音栓的电机驱动电路抓手。这四个电路与 Arduino Due 交互,后者正在运行使用 Simulink 开发的算法。


音频输入电路

吉他通过标准吉他电缆连接到调音器。吉他电缆的末端有两个连接,称为尖端和套管。电缆的一端将连接到输入插孔,该插孔具有用于尖端和套管的引线。我将电线焊接到这些引线上,以将尖端和套管连接到音频输入电路。

poYBAGL59eSACSgkAAHCV7cZzbw802.png

我建议在这个电路中使用 TL972 运算放大器。它是一款噪声非常低的轨到轨放大器,可以在非常低的电源电压下工作。


电动调音钉夹

pYYBAGL59eGAT6mMAAOc0eNqjnc714.png

这个项目中没有使用任何直流电机。我需要一个低速高扭矩的减速电机。我使用的电机速度为 6 RPM,最大扭矩为 613 oz-in。它的电压范围为 3-12 V,因此我使用 9 V 电池作为电源。


在电机的轴上,我使用夹具轮毂、四个螺丝和一些胶带组装了一个简单的夹持机构。


软件

我使用Simulink 及其对 Arduino 的支持包来开发调谐器的算法。Simulink 是用于开发算法和建模动态系统的框图环境。支持包允许我使用 Simulink 模块读取和写入 Arduino 上的引脚。使用该软件的外部模式功能,我可以在 Arduino 上模拟一个算法,在模拟运行时自动生成代码并调整参数,而无需重新编译任何代码。然后我可以将算法部署到硬件以独立执行。我创建的模型如下所示:

poYBAGL59dyAQaOyAAImGwnnJg0549.png

外部模式允许使用范围模块来监控在硬件上运行的算法的某些部分。这对于监听按钮的数字输入和吉他的模拟输入特别有用。从按钮作用域我们可以看到,当按钮被按下时,输入从 0 变为 1。

pYYBAGL59dmAQ0TgAAFPjilzesQ387.png

我希望这个从 0 到 1 的变化触发所选字符串的变化。这被称为上升触发器。我创建了一个名为“Select String”的 Stateflow 图,它有六个状态,每个字符串一个状态,并根据这个上升的触发输入从一个状态更改为下一个状态。以下是对 Stateflow 图的更详细介绍:

poYBAGL59daAQShjAAEPA0ChjQM368.png

进入每个状态后,相应灯串的 LED 引脚设置为高电平。在退出每个状态时,该引脚设置为低电平。我选择了六根弦中最低的低 E 弦作为我的默认值。当我第一次打开调谐器时,它将以这种默认状态启动。


Stateflow 图上有七个输出:一个用于六个灯串中的每一个的 LED,一个称为“periodRange”,我将在后面讨论。六个 LED 输出直接进入 Arduino 数字输出模块,以打开或关闭相应的 LED。


现在让我们看看模型的音频处理部分。吉他信号通过模拟输入模块进入。对于 5 kHz 的采样率,我将块的采样时间设置为 0.0002 秒。当我弹吉他并打开音频范围块时,我能够看到如下图所示的波形:

pYYBAGL59dKAHIVwAAJ2qk0mzpU992.png

示波器块帮助我调整音频电路中的电位器以改变输入的增益。在波形峰值不达到最大值 1023 的情况下,应将增益设置得尽可能高。这将允许最精确地读取信号。


不弹吉他时,输入信号应该是 500 到 700 之间的一条直线。在我的例子中,它大约是 550。知道这个值很重要,因为调音器应该只在有音符时处理音频正在播放。我选择了一个值 575,就在这条平线上方,作为我的阈值。仅当信号高于此阈值时才会处理音频。由于 Simulink 允许我在仿真运行时调整参数,因此我可以轻松设置阈值。


当在吉他上弹奏单个音符时,生成的波形是周期性的。波形的周期对应于某个音高。调音算法通过确定波形的周期来估计弦的音高。我编写了一个执行此音高估计的 MATLAB 函数,并使用 MATLAB 功能块将其包含在我的 Simulink 模型中。为了确定字符串是否合拍,MATLAB 函数需要一个输入来指示每个字符串的音调范围。这是 Stateflow 图的输出“periodRange”。该函数根据周期范围确定琴弦的音高是过高、过低还是音准,并相应地为电机生成输出。


MATLAB 函数的输出是控制电机的三个引脚。这些输出直接进入 Arduino 数字输出模块。


一旦我确保我的算法一切正常,我就可以将它部署到硬件上,这样它就可以独立运行,而无需连接到 PC 并且独立于 Simulink。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    ,后者正在运行使用 Simulink 开发的算法。 音频输入电路 吉他通过标准吉他电缆连接到调音器吉他电缆的末端有两个连接,称为尖端和套管。电缆的一端将连接到输入插孔,该插......
    plc控制器怎么用 plc控制器怎么修复;  plc控制器怎么用   PLC(Programmable Logic Controller)控制器的使用通常需要以下步骤:   了解......
    方面的出色特性。 吉他自动调音器 来自西安电子科技大学的同学利用 AMD Spartan7 器件设计了一套吉他自动调音器。参赛者将采样到的吉他音量信号经过 FIR、FFT 等信号处理算法监测、频率分析、消除......
    加湿器怎么用_怎么选购加湿器;  加湿器怎么用   1.注意加湿器的清洁卫生   加湿器使用要注意定期清洁和换水,否则会产生霉菌等微生物,随着气雾漫入空气里,很容易惹起呼吸系统疾病。倡议,加湿......
    新产品非常适合于恶劣的工业应用环境,例如焊接设备和机床控制,以及各种专业音频应用领域,包括电吉他、放大器和混音器。 TT Electronics公司产品管理和工程副总裁巴里·彼得斯(Barry Peters......
    不干扰的信道优于2.4G。所以5.8G传送技术应用在无线电吉他等无线乐器领域可以算得天独厚。2.4G无线电吉他之所以应用比较广泛,主要是离不开当年2.4G技术高速发展,电吉他虽然顺着这场东风去掉了有线,但顺着2.4G......
    音器如何操作 电子分音器有什么用;电子分音器是分音器中的一种,主要功能是用来作讯号部分的频路设定的,我们今天就来了解一下电子分音器的作用以分音器的操作 电子分音器 电子分音器又称主动式电子分音器......
    Output):用于将多个通道的信号进行再混合处理后输出。   5. 钢琴和其他乐器输出(Instrument Output):一些调音台还提供了专门用于连接乐器的输出接口,比如钢琴、吉他等。   此外......
    即是正义,在信号界也不例外! 当然长的啥样,光凭肉眼也看不出来,得用示波器看,这就涉及到怎么用示波器的问题。 常遇到客户咨询,问:“我的电源噪声好大!怎么会这样?怎么办?” ——额……我们......
    示波器探头怎么用;示波器是一种用处十分普遍的电子测量仪器,它可以把眼睛看不清的电子信号转换成可以看到的图象。示波器探头对测定效果的准确度及其准确性尤为重要,它是联接被测电源电路与示波器键入的电子......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>