在本节中,我们将使用Raspberry Pi和PYGAME函数制作共鸣板。简单来说,我们将几个按钮连接到Raspberry Pi的GPIO引脚上,当按下这些按钮时,Raspberry Pi将播放存储在其内存中的音频文件。这些音频文件可以一一播放,也可以一起播放。换句话说,您可以同时按下一个或多个按钮,Raspberry Pi将相应地同时播放一个或多个音频文件。查看本文结尾处的演示视频。还要查看我们的Raspberry Pi教程系列以及一些优秀的IoT项目。
Raspberry Pi中有 26个GPIO引脚可以编程,其中一些用于执行某些特殊功能,然后剩下17个GPIO。每个GPIO引脚最多可以提供或吸收15mA的电流。所有GPIO的电流总和不能超过50mA。因此,我们从这些GPIO引脚中的每个引脚平均平均可吸收的最大电流为3mA。我们将使用电阻器限制电流。在此处了解有关GPIO引脚和与Raspberry Pi的接口按钮的更多信息。
所需组件:
在这里,我们使用 带有Raspbian Jessie OS的Raspberry Pi 2 ModelB。前面已经讨论了所有基本的硬件和软件要求,您可以在Raspberry Pi简介和Raspberry PI LED闪烁中查找它,以开始使用,而我们还不需要:
- 带有预装操作系统的Raspberry Pi
- 电源供应
- 扬声器
- 1KΩ电阻器(6个)
- 按钮(6个)
- 1000uF电容器
工作说明:
在这里,我们使用带有Raspberry Pi的按钮播放声音。我们使用了6个按钮来播放6个音频文件。我们可以添加更多按钮和音频文件来扩展此面板,从而通过按这些按钮来创建更漂亮的图案。在进一步解释之前,请完成以下步骤。
1.首先,从下面给出的链接下载6个音频文件,或者您可以使用音频文件,但随后需要在代码中更改文件名。
从此处下载音频文件
2.在Raspberry Pi桌面屏幕上创建一个新文件夹,并将其命名为“ PI SOUND BOARD”。
3.将下载的音频文件解压缩到我们在上一步中在DESKTOP上创建的文件夹中。
4.在Raspberry Pi中打开终端窗口,然后输入以下命令:
须藤搅拌机cset numid = 3 1
此命令告诉PI通过板上的3.5mm音频插孔提供音频输出。
如果要从HDMI端口输出音频,则可以使用以下命令:
$ sudo混合器cset numid = 3 2
5.将扬声器连接到Raspberry Pi板上的3.5mm音频输出插孔。
6.创建一个PYTHON文件(扩展名为*.py)并将其保存在同一文件夹中。查看本教程,了解如何在Raspberry Pi中创建和运行Python程序。
7. Pygame混音器将默认安装在操作系统中。如果程序在执行后没有调用PYMIXER,请在终端窗口中输入以下命令来更新Raspberry Pi的操作系统。确保Pi已连接到互联网。
sudo apt-get更新
等待几分钟,以更新操作系统。
现在,按照下面给出的电路图连接每个组件,将PYHTON程序复制到在桌面上创建的PYHTON文件中,最后点击run来通过按钮播放音频文件。演示视频最后给出了Python程序。
电路原理图:
编程说明:
在这里,我们创建了Python程序来根据按钮按下来播放音频文件。在这里,我们需要了解一些已在程序中使用的命令。
导入RPi.GPIO作为IO
我们将从库中导入GPIO文件,上述命令使我们能够对PI的GPIO引脚进行编程。我们还将“ GPIO”重命名为“ IO”,因此在程序中,每当要引用GPIO引脚时,我们都将使用“ IO”一词。
IO.setwarnings(False)
有时,当我们尝试使用的GPIO引脚可能正在执行某些其他功能时。然后,您将在执行程序时收到警告。该命令告诉Raspberry Pi忽略警告并继续执行程序。
IO.setmode(IO.BCM)
在这里,我们将通过功能名称来引用PI的I / O引脚。因此,我们正在通过BCM引脚号对GPIO进行编程,这使我们能够使用GPIO引脚号来调用PIN。就像我们可以在程序中将PIN39称为GPIO19一样。
导入pygame.mixer
我们正在调用pygame混音器来播放音频文件。
音频1 = pygame.mixer.Sound(“ buzzer.wav”)
我们要求将“ buzzer.wav”音频文件存储在桌面文件夹中。如果要播放其他文件,只需在上面提供的功能中更改音频文件名。您可以命名桌面文件夹中存在的任何文件。
channel1 = pygame.mixer.Channel(1)
在这里,我们为每个按钮设置一个通道,以便我们可以同时播放所有音频文件。
如果(IO.input(21)== 0):channel1.play(audio1)
如果if语句中 的条件为true,则它下面的语句将被执行一次。因此,如果GPIO引脚21变为低电平或接地,则它将播放分配给 audio1 变量的音频文件 。 根据电路图,我们看到按下第一个按钮时GPIO引脚21变为低电平。因此,我们可以通过按相应的按钮播放任何音频文件。
1: 用作永久循环,使用此命令,该循环内的语句将连续执行。
您可以对python程序进行更改,以使Raspberry Pi成为最令人满意的Sound Board。您甚至可以添加更多按钮来使事情变得更有趣并播放更多音频文件。