이 세션에서는 Raspberry Pi와 PYGAME 함수를 사용하여 사운드 보드를 만들 것입니다. 간단히 말해서 Raspberry Pi GPIO 핀에 몇 개의 버튼을 연결하고이 버튼을 누르면 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 Model B를 사용하고 있습니다. 모든 기본 하드웨어 및 소프트웨어 요구 사항은 이전에 논의되었으며, 시작하려면 Raspberry Pi 소개 및 Raspberry PI LED Blinking에서 찾아 볼 수 있습니다.
- OS가 사전 설치된 Raspberry Pi
- 전원 공급
- 스피커
- 1KΩ 저항기 (6 개)
- 푸시 버튼 (6 개)
- 1000uF 커패시터
작동 설명:
여기 에서는 Raspberry Pi에서 버튼을 사용하여 사운드를 재생 합니다. 6 개의 오디오 파일을 재생하기 위해 6 개의 푸시 버튼을 사용했습니다. 이 버튼을 눌러 더 아름다운 패턴을 만들기 위해이 보드를 확장하기 위해 더 많은 버튼과 오디오 파일을 추가 할 수 있습니다. 더 설명하기 전에 아래 단계를 완료하십시오.
1. 먼저 아래 링크에서 6 개의 오디오 파일을 다운로드하거나 오디오 파일을 사용할 수 있지만 코드에서 파일 이름을 변경해야합니다.
여기에서 오디오 파일 다운로드
2. Raspberry Pi 데스크톱 화면에 새 폴더를 만들고 이름을 "PI SOUND BOARD"로 지정합니다.
3. 이전 단계에서 DESKTOP에 생성 한 폴더에 다운로드 한 오디오 파일의 압축을 풉니 다.
4. Raspberry Pi에서 터미널 창을 열고 아래 명령을 입력합니다.
sudo amixer cset numid = 3 1
이 명령은 PI가 보드의 3.5mm 오디오 잭을 통해 오디오 출력을 제공하도록 지시합니다.
HDMI 포트에서 오디오 출력을 원하는 경우 아래 명령을 사용할 수 있습니다.
$ sudo amixer cset numid = 3 2
5. 스피커를 Raspberry Pi 보드의 3.5mm 오디오 출력 잭에 연결합니다.
6. PYTHON 파일 (*.py 확장자)을 만들어 같은 폴더에 저장합니다. Raspberry Pi에서 Python 프로그램을 만들고 실행하려면이 자습서를 확인하십시오.
7. 파이 게임 믹서 는 OS에 기본적으로 설치됩니다. 실행 후 프로그램이 PYMIXER를 호출하지 않으면 터미널 창에 아래 명령을 입력하여 Raspberry Pi의 OS를 업데이트하십시오. Pi가 인터넷에 연결되어 있는지 확인하십시오.
sudo apt-get 업데이트
OS가 업데이트 될 때까지 몇 분 동안 기다리십시오.
이제 아래 주어진 회로도에 따라 모든 구성 요소를 연결하고 PYHTON 프로그램을 바탕 화면에 생성 된 PYHTON 파일에 복사하고 마지막으로 실행을 눌러 버튼을 통해 오디오 파일을 재생합니다. 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로 호출 할 수 있습니다.
import pygame.mixer
오디오 파일을 재생하기 위해 파이 게임 믹서 를 호출 하고 있습니다.
audio1 = pygame.mixer.Sound ("buzzer.wav")
데스크톱 폴더에 저장된 'buzzer.wav'오디오 파일을 요청합니다. 다른 파일을 재생하려면 위에 주어진 기능에서 오디오 파일 이름을 변경하십시오. 데스크탑 폴더에있는 모든 파일의 이름을 지정할 수 있습니다.
channel1 = pygame.mixer.Channel (1)
여기서는 모든 오디오 파일을 동시에 재생할 수 있도록 각 버튼에 대한 채널을 설정합니다.
if (IO.input (21) == 0): channel1.play (audio1)
if 문의 조건 이 참이면 그 아래의 문이 한 번만 실행됩니다. 따라서 GPIO 핀 21이 낮아 지거나 접지되면 audio1 변수에 할당 된 오디오 파일이 재생됩니다 . 회로도에 따라 첫 번째 버튼을 누르면 GPIO 핀 21이 낮아지는 것을 볼 수 있습니다. 따라서 해당 버튼을 눌러 모든 오디오 파일을 재생할 수 있습니다.
while 1: 은 forever 루프로 사용되며이 명령을 사용하면이 루프 내부의 명령문이 계속 실행됩니다.
Raspberry Pi로 가장 만족스러운 사운드 보드 를 만들기 위해 Python 프로그램을 변경할 수 있습니다. 더 많은 버튼을 추가하여 더 재미있게 만들고 더 많은 오디오 파일을 재생할 수도 있습니다.