banner
Центр новостей
Выбирайте из нашего широкого спектра продуктов и услуг мирового класса, чтобы получить поистине незабываемые впечатления.

Как использовать зуммер для воспроизведения музыки с помощью Raspberry Pi Pico

Jul 13, 2023

С помощью дешевого пьезо-зуммера вы можете устанавливать будильники или проигрывать целые мелодии.

Независимо от того, создаете ли вы игру, которая подает звуковой сигнал, когда вы теряете ход, будильник, который вас будит, или просто симпатичный дисплей, воспроизводящий 8-битную музыку, недорогой пьезо-зуммер может стать отличной частью вашего Raspberry Pi Pico. проект. Чрезвычайно дешевые зуммеры (часто их можно найти менее чем за 1 доллар за штуку) чрезвычайно просты в программировании на MicroPython и могут даже изменять частоту для воспроизведения музыкальных нот.

Существует два типа пьезозуммеров: активные и пассивные. Активные зуммеры будут издавать шум, если их просто подключить к питанию без участия микроконтроллера, а пассивные - нет. Пассивные зуммеры предпочтительнее для такого рода проектов, поскольку они предлагают лучший диапазон звуков, хотя в нашем тестировании работали оба.

Ниже мы покажем вам, как подключить Raspberry Pi Pico к пьезозуммеру и запрограммировать его на MicroPython для воспроизведения короткой мелодии.

Это не может быть проще. Вы подключаете контакт заземления зуммера к контакту GND на Pico, а положительный контакт зуммера — к стандартному контакту GPIO на пико, в нашем случае GP15. Наш пассивный зуммер не имел отрицательных или положительных меток на своих контактах и ​​работал, когда любой из них был подключен к любому контакту Pico.

1. Начните с импорта Pin и PWM из библиотеки машины и засыпайте из библиотеки utime.

2.Инициализировать ШИМ(широтно-импульсная модуляция) на контакте 15 и назначьте его переменному зуммеру.

3. Назначьте зуммеру свойство частоты. Вы должны выбрать число в диапазоне от 10 до 12 000. Чем выше число, тем выше тон звука. Давайте попробуем 500.

4.Установите свойство Duty_u16.объекта зуммерадо 1000 . Это делает зуммер настолько громким, насколько это возможно. Меньшее значение означает тише, а 0 — отсутствие звука вообще. Учитывая, насколько тихие эти зуммеры, максимальная громкость вообще не очень громкая.

5.Установите задержку в 1 секундуа потомустановить пошлину на 0 чтобы звук прекратился. Если вы этого не сделаете, шум продолжится даже после завершения выполнения программы.

Ваш окончательный код для этого простого теста должен выглядеть следующим образом.

Поскольку вы можете использовать разные частоты, вы можете создавать полный набор музыкальных нот. В Интернете есть несколько списков частот музыкальных нот, и многие из них восходят к библиотеке тонов Arduino Бретта Хэгмана на Github. Мы будем использовать эти значения для создания списка, который мы можем использовать для воспроизведения любой песни в начале нашего кода.

1.Импортируйте необходимые библиотекииинициализировать ШИМ на выводе 15.

2.Создайте словарь под названием «Заметки».со следующими значениями.

3.Создайте список (он же массив) примечаний для твоей песни. Используйте букву P для обозначения пауз в музыке. Каждое примечание должно быть в кавычках.

Совет всем участникам этой ветки за то, что они поделились нотами этого знаменитого риффа.

4.Создайте функцию под названием playtoneкоторый возьмет любую частоту и будет воспроизводить ее на полной громкости.

5.Создайте функцию под названием bequietэто приведет к отключению зуммера, изменив значение Duty_u16 на 0.

6.Создайте функцию под названием playsong.который вы будете использовать для перебора массива нот и воспроизведения каждой или паузы, когда она увидит P.

Вот что здесь происходит. Сначала мы создаем цикл for, который перебирает все значения в массиве mysong. Если значение равно P, включается режим be quiet, а если нет, то активируется playtone. Обратите внимание, что для воспроизведения звука требуется числовое значение частоты, поэтому нам нужно получить номер каждой ноты из списка тонов. Если мы просто воспроизведемtone(mysong[i]), произойдет ошибка, поскольку она попытается воспроизвести строку «E5» вместо частоты 659, которая является нужным ей целым числом.

Для каждого звукового сигнала или паузы система сохраняет состояние в течение 0,3 секунды сна. Если вам нужен более быстрый темп, вы можете уменьшить это время. Если вам нужен более медленный темп, увеличьте его.