- Необходимые компоненты:
- Рабочее объяснение:
- Принципиальная электрическая схема:
- Объяснение программирования:
На этом занятии мы собираемся использовать функции Raspberry Pi и PYGAME для создания звуковой платы. Проще говоря, мы собираемся подключить несколько кнопок к контактам Raspberry Pi GPIO, и при нажатии этих кнопок Raspberry Pi воспроизводит аудиофайлы, хранящиеся в его памяти. Эти аудиофайлы можно воспроизводить по одному или все вместе. Другими словами, вы можете нажимать одну или несколько кнопок одновременно, Raspberry Pi будет воспроизводить один или несколько аудиофайлов одновременно. Посмотрите демонстрационное видео в конце этой статьи. Также ознакомьтесь с нашей серией руководств по Raspberry Pi вместе с некоторыми хорошими проектами IoT.
У нас есть 26 контактов GPIO в Raspberry Pi, которые можно запрограммировать, из которых некоторые используются для выполнения некоторых специальных функций, а затем у нас остается 17 контактов GPIO. Каждый вывод GPIO может выдавать или потреблять максимум 15 мА. И сумма токов со всех GPIO не может превышать 50 мА. Таким образом, мы можем потреблять максимум 3 мА в среднем с каждого из этих контактов GPIO. Мы будем использовать резисторы, чтобы ограничить ток. Узнайте больше о выводах GPIO и кнопке взаимодействия с Raspberry Pi здесь.
Необходимые компоненты:
Здесь мы используем Raspberry Pi 2 Model B с Raspbian Jessie OS. Все основные требования к оборудованию и программному обеспечению обсуждаются ранее, вы можете найти их во введении Raspberry Pi и мигании светодиода Raspberry PI, чтобы начать работу, кроме того, что нам нужно:
- Raspberry Pi с предустановленной ОС
- Источник питания
- Оратор
- Резистор 1КОм (6 шт.)
- Кнопки (6 шт.)
- Конденсатор 1000 мкФ
Рабочее объяснение:
Здесь мы воспроизводим звук с помощью кнопок с 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,5 мм на плате.
Если вы хотите вывод звука через порт HDMI, вы можете использовать следующую команду:
$ sudo amixer cset numid = 3 2
5. Подключите динамики к выходному аудиоразъему 3,5 мм на плате Raspberry Pi.
6. Создайте файл PYTHON (с расширением *.py) и сохраните его в той же папке. Ознакомьтесь с этим руководством по созданию и запуску программы Python в Raspberry Pi.
7. Микшер Pygame будет установлен в ОС по умолчанию. Если программа после выполнения не вызывает PYMIXER, обновите ОС Raspberry Pi, введя команду ниже в окне терминала. Убедитесь, что Pi подключен к Интернету.
sudo apt-get update
Подождите несколько минут, пока ОС обновится.
Теперь подключите каждый компонент в соответствии со схемой, приведенной ниже, скопируйте программу PYHTON в файл PYHTON, созданный на рабочем столе, и, наконец, нажмите «Выполнить», чтобы воспроизвести аудиофайлы с помощью кнопок. Программа Python приведена в конце демонстрационного видео.
Принципиальная электрическая схема:
Объяснение программирования:
Здесь мы создали программу Python для воспроизведения аудиофайлов при нажатии кнопки. Здесь нам нужно понять несколько команд, которые мы использовали в программе.
импортировать RPi.GPIO как IO
Мы собираемся импортировать файл GPIO из библиотеки, указанная выше команда позволяет нам программировать контакты GPIO PI. Мы также переименовали «GPIO» в «IO», поэтому в программе всякий раз, когда мы хотим обратиться к контактам GPIO, мы будем использовать слово «IO».
IO.setwarnings (Ложь)
Иногда, когда контакты GPIO, которые мы пытаемся использовать, могут выполнять другие функции. Тогда вы будете получать предупреждения всякий раз, когда выполняете программу. Эта команда сообщает Raspberry Pi игнорировать предупреждения и продолжить работу с программой.
IO.setmode (IO.BCM)
Здесь мы будем называть выводы ввода-вывода PI по имени их функции. Таким образом, мы программируем GPIO по номерам контактов BCM, что позволяет нам вызывать PIN-коды с их номером контакта GPIO. Как мы можем назвать PIN39 как GPIO19 в программе.
импортировать pygame.mixer
Мы вызываем микшер pygame для воспроизведения аудиофайлов.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Мы запрашиваем аудиофайл buzzer.wav, хранящийся в папке рабочего стола. Если вы хотите воспроизвести любой другой файл, просто измените имя аудиофайла в функции, указанной выше. Вы можете назвать любые файлы, находящиеся в папке рабочего стола.
channel1 = pygame.mixer.Channel (1)
Здесь мы настраиваем канал для каждой кнопки, чтобы мы могли воспроизводить все аудиофайлы одновременно.
если (IO.input (21) == 0): channel1.play (audio1)
В случае, если условие в инструкции if истинно, приведенная ниже инструкция будет выполнена один раз. Таким образом, если на контакте 21 GPIO низкий уровень или заземление, он будет воспроизводить аудиофайл, назначенный переменной audio1 . Согласно принципиальной схеме, мы видим, что контакт 21 GPIO становится низким, когда мы нажимаем первую кнопку. Таким образом, мы можем воспроизвести любой аудиофайл, нажав соответствующую кнопку.
в то время как 1: используется как цикл forever, с этой командой операторы внутри этого цикла будут выполняться непрерывно.
Вы можете внести изменения в программу python, чтобы сделать звуковую плату максимально удобной с Raspberry Pi. Вы даже можете добавить больше кнопок, чтобы сделать вещи более интересными и воспроизвести больше аудиофайлов.