风筝
发表于: 2019-12-24 15:50:49 | 显示全部楼层

Raspberry Pi Zero WH是一款多功能的单板计算机(SBC),只需几行代码就可以产生音调。您可以使用一些现成的电子组件轻松制作音调发生器。


在本篇文章中,我们将向您展示如何使用一个8引脚的功率放大器来放大Pi Zero产生的基于频率的音调。此外,使用gpiozero库,EduBlocks构建生成音调的代码,因此您还将学习如何查看在EduBlocks编程环境中创建等效gpiozero Python代码。


所需的硬件

要制作Pi Zero WH音调发生器,您将需要以下组件:

●    LM386功率放大器集成电路

●    10KΩ电位器

●    8Ω扬声器

●    470µF电解电容器

●    Pi ZeroWH开发板

●    面包板

●    跳线


在深入研究项目制作之前,让我们简要回顾一下LM386功率放大器IC的基础知识。


LM386功率放大器IC

为了听到Pi Zero的声音,您需要一个音频放大器。有多种音频放大器电路可用于此应用。


可以使用级联的几个分立晶体管来构建音频放大器,以增加电路的放大增益,聆听Pi Zero WH单板计算机生成的音调。但是,听音频信号的一种更简单有效的解决方案是使用LM386功率放大器IC。

LM386 .jpg

图1.  LM386功率放大器IC


LM386功率放大器是一个8引脚IC,可以将低音频信号放大到适当的可听声音电平。它还可以基于放大增益因子来增加低信号。


LM386的放大增益范围为20至200。在内部,基于1.35KΩ电阻,放大增益默认为20。要从外部改变增益,可在引脚1和8两端放置一个电阻进行调节。使用适当的电阻,可以从外部获得200的放大增益。 LM386 PA具有一个电流放大器,能够驱动4欧姆(Ω)至32Ω的扬声器负载。


另外,电源电压范围是灵活的。+ 4V至+ 15VDC的工作电压范围为LM386提供了适当的电气功能。


图2显示了LM386的引脚排列。

Figure 2. The LM386 pinout with descriptions.jpg

图2.  LM386引脚说明


通过使用LM386,诸如Big Ears、光和声音检测器以及信号调理-放大电路接口之类的各种设备都变得可能。除了检测和信号调理电路之外,LM386 PA IC还适合制作8瓦和16瓦音频放大器。要查找其他电气规格和放大器电路,请查看LM386数据手册


将LM386连接到Raspberry Pi Zero

为了听到Pi Zero WH的声音,您需要将LM386连接到Pi Zero,并将音量控件连接到LM386。音量控件通过在Pi Zero的输出引脚和LM386的输入引脚之间连接音量控件来调整Pi Zero的输出信号幅度。


图3显示了Pi Zero和LM386之间的音量控制位置的基本系统框图。这是音调发生器的三个关键组成部分。

Figure 3. The Pi Zero WH tone generator system block diagram.jpg

图3.  Pi Zero WH音调发生器系统框图


您可以使用材料清单中提供的电子组件,并将其排列在面包板上,如电气接线图所示。

Figure 4. The Pi Zero WH tone generator electrical wiring diagram..jpg

图4.  Pi Zero WH音调发生器的电气接线图。


如图4所示,470μF电解电容器是有极性的。因此,必须按照电气接线图所示放置电容器,以确保LM386正常工作。作为参考,Pi Zero WH音调发生器的等效电子电路示意图如图5所示。

Figure 5. The Pi Zero WH Tone Generator electrical wiring diagram..jpg

图5.  Pi Zero WH音调发生器电气接线图。


图6的示例显示了LM386和Pi Zero连接的完整图。

Figure 6. The Pi Zero WH SBC wired to the LM386 PA IC..jpg

图6. 连接至LM386 PA IC的Pi Zero WH SBC。


将Pi Zero WH电连接到LM386 PA后,我们就可以使用EduBlocks对音调发生器进行编码了。


EduBlocks音调发生器代码

音调发生器代码主要是一个LED闪光灯,您可以通过更改打开和关闭时间值来控制声音。


Pi Zero的GPIO17引脚上的输出闪烁速率产生一系列脉冲或方波。在EduBlocks中打开一个新的编程窗口,然后选择图7所示的块。

Figure 7. The tone generator code built in EduBlocks..jpg

图7.  内置在EduBlocks中的音调发生器代码。


您可以通过选择编程窗口上的“code”按钮来查看等效的Python代码。


用鼠标单击按钮后,您将在屏幕上看到等效的Python代码。 该代码的核心使用gpiozero库。 gpiozero库利用Python,并允许您使用Raspberry Pi快速创建物理计算设备。

,Figure 8. The equivalent Python Tone Generator Code.,.jpg

图8. 等效的Python Tone Generator代码。


如图7和8所示,您可以通过更改时间值来调整发生器的音调或声音。 您可以通过相应地更改值来创建低调或高调。 图7和8中显示的time_value产生一个频率为88.1Hz的音调。

Figure 9. An 88.1 Hertz (Hz) tone produced with a time_value of 0.005..jpg

图9. 产生的88.1赫兹(Hz)音调的time_value值为0.005。


您可以通过更改time_value来尝试使用新的音调发成器。 如果您想在产品中添加更多内容,可以添加串联限流电阻的LED,提供视觉效果。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 22 | 回复: 32



手机版|

GMT+8, 2024-5-17 15:35 , Processed in 0.050381 second(s), 10 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表