Оглавление:

Музыкальный автомат для самых маленьких Он же Raspi-Music-Box: 5 шагов
Музыкальный автомат для самых маленьких Он же Raspi-Music-Box: 5 шагов

Видео: Музыкальный автомат для самых маленьких Он же Raspi-Music-Box: 5 шагов

Видео: Музыкальный автомат для самых маленьких Он же Raspi-Music-Box: 5 шагов
Видео: Милана Некрасова на концерте blackpink 2024, Ноябрь
Anonim
Музыкальный автомат для самых маленьких… Он же Raspi-Music-Box
Музыкальный автомат для самых маленьких… Он же Raspi-Music-Box

Вдохновленный инструктируемым «Музыкальным роботом RFID на основе Raspberry Pi», описывающим музыкальный проигрыватель ROALDH, созданный для его 3-летнего ребенка, я решил построить музыкальный автомат для моих даже младших детей. По сути, это коробка с 16 кнопками и Raspi 2 внутри, который воспроизводит песни через подключенную стереосистему при нажатии любой из кнопок.

Что вам нужно:

  • Raspberry Pi с блоком питания
  • 16 кнопок - те, которые временно закрываются при нажатии (или сколько кнопок вы хотите - советую: не более, чем у вас есть входные контакты…;)) Я использовал эту: кнопку за 0,50 евро)
  • какая-то тонкая проволока
  • один резистор 10 кОм и один резистор 1 кОм на кнопку (если вы не хотите полагаться на внутренние подтягивающие / понижающие резисторы Raspi, вы можете пропустить это)
  • доска
  • гнездовой разъем (2x20 контактов)
  • немного тонкой древесины для сборки коробки (я использовал 2 листа 5x400x400 мм для передней и задней части, плюс полосу 2000x50x5 мм, чтобы отрезать стороны)
  • 24 винта и немного клея, чтобы собрать коробку
  • немного краски, чтобы сделать это красочным
  • аудиокабель для подключения Raspi к стереосистеме или активным динамикам (разъем для любого другого конца)
  • инструменты: паяльник, кусачки, в идеале инструмент для зачистки проводов, пила, дрель, отвертка, кисть…
  • дополнительно: звуковая карта USB, если вы хотите, чтобы музыка звучала хорошо
  • необязательно: карта Wi-Fi, если вы хотите подключиться к старому Raspi, не открывая коробку

Обратите внимание, что это моя первая инструкция, и я сделал этот проект довольно давно … Я делаю это, поскольку меня постоянно спрашивают о способе воспроизведения песен с помощью VLC в разделе комментариев инструкций, упомянутых выше (mplayer, используемый там больше не поддерживается, насколько я знаю). Я знаю, что эти инструкции не очень хороши, но надеюсь, что вы сможете им следовать … если нет, пожалуйста, также посмотрите исходные инструкции и, пожалуйста, оставьте комментарии ниже, рассказывая мне, где вы застряли … Затем я постараюсь улучшить …

Шаг 1. Создайте коробку…

Построить коробку…
Построить коробку…
Построить коробку…
Построить коробку…

Итак, первое, что вам нужно сделать, это построить коробку … Я сделал свою коробку довольно большой, потому что я оставил немного места под каждой кнопкой для ярлыка … Я планировал распечатать несколько фотографий для каждой песни, возможно, ламинировать их и пометить их синим цветом под кнопки… усвоенный урок: к тому моменту, когда вы распечатаете этикетки, ваши дети будут хорошо знать все песни и потребуют, чтобы вы изменили некоторые… Так что в следующий раз я построю коробку поменьше и сложу кнопки ближе друг к другу…

Итак, вернемся к своей коробке … Я купил два листа фанеры 400 x 400 x 5 мм и полосу 2000 x 50 x 5 мм … затем первый, самый важный шаг: моей дочери разрешили покрасить переднюю панель по своему выбору. цвета…:) Пока она красила, я разрезал длинную насадку на 5 полос - две длиной 400 мм, две длиной 390 мм и оставшиеся полосы…;) их я приклеил к обратной стороне свежеокрашенного листа… затем просверлил 12 отверстий снаружи и вкрутил 12 шурупов… Затем я аккуратно выровнял другой лист сзади, просверлил еще 12 отверстий для еще 12 шурупов, чтобы закрыть коробку, как только я закончил. (Я знаю, что 12 шурупов - это немного перебор, но дети сильные…:))

С одной стороны я использовал напильник (вы можете использовать дремель, чтобы ускорить процесс), чтобы вырезать кусок дерева, чтобы пропустить его через кабели. Затем я также просверлил отверстия для 16 кнопок и установил их.

Шаг 2: Подключите кнопки

Подключите кнопки
Подключите кнопки

Итак, теперь у вас есть коробка с 16 кнопками … затем вам нужно подключить их … Я подключил один из их полюсов к земле по схеме гирляндной цепи. В идеале у вас должны быть маленькие разъемы для этого … Я припаял их, что было большим кошмаром и вызовет еще больше проблем, если мне когда-нибудь придется вытаскивать какую-либо из кнопок. Затем я прикрепил их другие полюса к красному проводу каждый … Затем я припаял их к соединительной плате, которую вы видите, лежащей посередине …

Какая кнопка к какой булавке? Кнопки 1–16 в следующем порядке: GPIO 18. 27, 17, 04, 23, 24, 22, 05, 16, 12, 06, 13, 21, 20, 19, 26. Также проверьте "события нажатия кнопки". раздел »в коде позже.

(Пожалуйста, не спрашивайте, зачем были свернутые провода… не помню)

Шаг 3: Необязательно: изготовление платы с резисторами Pull Up и Pull Down

Необязательно: изготовление платы с резисторами Pull Up и Pull Down
Необязательно: изготовление платы с резисторами Pull Up и Pull Down
Необязательно: изготовление платы с резисторами Pull Up и Pull Down
Необязательно: изготовление платы с резисторами Pull Up и Pull Down

Если вы не знаете, что такое подтягивающие и понижающие резисторы, вы легко найдете множество информации в Интернете. В распи есть несколько встроенных или вы можете сделать внешние, как я здесь. Этот шаг не является обязательным, поскольку я не думаю, что он вам действительно нужен.

Так зачем я это сделал? Иногда музыка начинала играть, когда я включала / выключала бытовую технику в квартире. Сначала я подумал, что он улавливает электромагнитные волны или что-то в этом роде. Поэтому я добавил подтягивающие / понижающие резисторы … Поскольку это не улучшило ситуацию, я добавил еще несколько конденсаторов. Это все равно не помогло … Следующее, что я хотел попробовать, это закрыть внутреннюю часть коробки алюминиевой фольгой в качестве защиты. Поскольку проблема исчезла, когда мы переехали, я так и не попробовал… Так в чем же проблема? Не знаю … может быть, вариации в ЛЭП?

Заключение: я бы посоветовал вам сначала просто подключить кнопки напрямую (позже вы увидите в коде, какая кнопка идет на какой контакт) и делайте этот шаг только в том случае, если у вас есть какие-то проблемы. Надеюсь, вы видите на фотографиях выше, как я это сделал. В основном есть планка, которую нужно прикрепить к заголовку посередине, а затем с каждой стороны я подключил два резистора и кабели от кнопок в один ряд.

Шаг 4: Код Python

Здесь вы найдете код (на Python), который управляет музыкальной шкатулкой. Я добавил довольно много комментариев, так что, надеюсь, это говорит само за себя. На всякий случай вот краткое объяснение. Лучше всего начать читать раздел переменных вверху, а затем пропустить его до конца.

Внизу вы найдете цикл, который работает постоянно. Сначала он проверяет, была ли нажата определенная последовательность кнопок - это был мой способ использования родительского контроля. Затем есть функции, которые воспроизводят музыку.

Над основным циклом вы найдете несколько детекторов событий - они выполняются при нажатии одной из кнопок. Каждая кнопка вызывает функцию ButtonPress, передавая идентификатор.

Итак, как заставить его воспроизводить музыку? Для простоты я просто создал по одной папке для каждой кнопки. Независимо от того, какие mp3 вы помещаете в эти папки, функция добавляет в список воспроизведения.

Обратите внимание, если вы не использовали физические подтягивающие резисторы, вам нужно будет изменить раздел с нумерацией BCM на это:

# настройка с использованием нумерации BCM GPIO.setmode (GPIO. BCM) GPIO.setup (04, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (17, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (27, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (22, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (05, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (06, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (13, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (19, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (26, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (18, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (23, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (24, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (12, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (16, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (20, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (21, GPIO. IN, pull_up_down = GPIO. PUD_UP)

Шаг 5: Настройка вашего Рапси

Вам также, конечно же, потребуется настроить raspi… Я просто использовал стандартную установку Noop. Я уверен, что вы найдете множество инструкций, как это сделать …

Чтобы использовать python, вам нужно «sudo apt-get install python-dev»

Моя программа использует VLC для воспроизведения музыки:

  • Я получил соединение с Python отсюда (надеюсь, он все еще актуален):
  • Затем я установил его с помощью "sudo python setup.py install"
  • Затем установил VLC "sudo apt-get install vlc"
  • Поместите файлы vlc.py и vlc.pyc в тот же каталог, что и ваша программа.
  • Дополнительная информация на

В моих заметках говорится, что вам также необходимо установить следующее для доступа к контактам GPIO из python (но это может быть устаревшим):

  • wget https://www.airspayce.com/mikem/bcm2835/bcm2835-1…. zxvf bcm2835-1.xx.tar.gz
  • cd bcm2835-1.xx
  • ./configure
  • делать
  • sudo сделать проверку
  • sudo make install

Чтобы ваша программа работала, вам нужно будет вызвать sudo python yourfilename.py.

Рекомендуемые: