Оглавление:
- Запасы
- Шаг 1. Добавьте Arduino Nano на макетную плату
- Шаг 2: добавьте инфракрасный приемник и подключите его к Arduino
- Шаг 3. Создайте SD-карту Mico для файлов MP3
- Шаг 4. Подключите модуль DFPlayer, который воспроизводит файлы MP3
- Шаг 5: Внешний источник питания
- Шаг 6: устранение статического шума
Видео: MP3-плеер с инфракрасным управлением: 6 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Сделайте MP3-плеер с инфракрасным дистанционным управлением примерно за 10 долларов. Он имеет обычные функции: воспроизведение, пауза, воспроизведение следующей или предыдущей, воспроизведение одной песни или всех песен. Также есть вариации эквалайзера и регулятор громкости. Все управляется через пульт.
Программный функционал:
Дистанционный ключ: функция
+ 01: Уменьшение громкости + 02: Установить в каталог №2. + 03: Увеличение громкости + 4… 9: Выберите следующие настройки эквалайзера: ++ (4) DFPLAYER_EQ_POP (5) DFPLAYER_EQ_CLASSIC (6) DFPLAYER_EQ_NORMAL ++ (7) DFPLAYER_EQ_ROCK (8) DFPLAYER_EQ_JAZZER (9_E) DFPLAYER_EQ_JAZZER (9_E) OK: Воспроизвести + >>: Воспроизвести следующую + <<: Воспроизвести предыдущую + Вверх: Воспроизвести следующие песни из каталога + Dn: Воспроизвести песни из предыдущего каталога + * | Возврат: Зациклить одиночную песню: вкл. + # | Выход: Зациклить одиночную песню: выкл.
Первым шагом является тестирование Arduino и подключение его к макетной плате. Следующие шаги предназначены для независимой работы. На каждом этапе есть инструкции по подключению и тестированию. Когда я создаю проекты, я подключаю и тестирую каждый компонент, чтобы убедиться, что он работает. Это помогает интегрировать компоненты, потому что я знаю, что каждый работает, и могу сосредоточиться на требованиях интеграции.
Это руководство требует, чтобы у вас была установлена IDE Arduino. Вы также должны обладать базовыми навыками, чтобы загрузить программу эскиза Arduino по ссылкам в этом проекте, создать каталог для программы (имя каталога совпадает с именем программы). Следующие шаги - загрузить, просмотреть и отредактировать программу в среде IDE. Затем загрузите программу через USB-кабель на плату Arduino.
Запасы
- Плата микроконтроллера Nano V3 ATmega328P CH340G для Arduino. В качестве альтернативы вы можете использовать Uno.
- Инфракрасный приемник и пульт дистанционного управления. Я использовал комплекты модулей беспроводного ИК-пульта дистанционного управления, которые поставлялись с инфракрасным приемником и инфракрасным пультом дистанционного управления.
- Один участник, от 1К до 5К. Я использую резистор 5K, потому что у меня их куча. Резистор устраняет шум, который возникает, когда резистор не используется.
- Макетные кабели
- Сетевой адаптер на 5 вольт
Я покупал запчасти на eBay, в основном у дистрибьюторов в Гонконге или Китае. У американских дистрибьюторов иногда есть такие же или похожие детали по разумным ценам и более быстрой доставке. Доставка китайских запчастей занимает от 3 до 6 недель. Все дистрибьюторы, которых я использовал, были надежными.
Примерные затраты: Nano 3 доллара, инфракрасный комплект 1 доллар, макетная плата 2 доллара, упаковка из 40 проводных кабелей 1 доллар, 1 доллар за сетевой адаптер на 5 вольт. Итого, около 8 долларов. Обратите внимание: я купил Nano с уже припаянными контактами на макетной плате, так как у меня плохие навыки пайки.
Шаг 1. Добавьте Arduino Nano на макетную плату
Подключите Arduino Nano к макетной плате. Или, если хотите, вы можете использовать для этого проекта Arduino Uno; они оба используют одни и те же булавки для этого проекта. Подключите Nano (или Uno) к компьютеру через USB-кабель.
Подключите питание и заземление от Arduino к полосе питания макетной платы. Подключите вывод Arduino 5+ к плюсовой полосе на макетной плате. Подключите контакт GRN (заземление) Arduino к отрицательной (заземляющей) шине макетной платы. Это будет использоваться другими компонентами.
Загрузите и запустите базовую тестовую программу Arduino: arduinoTest.ino. При запуске программы встроенный светодиодный индикатор загорится на 1 секунду, а затем погаснет на 1 секунду. Кроме того, публикуются сообщения, которые можно просмотреть в Arduino IDE Tools / Serial Monitor.
+++ Настройка.
+ Инициализировал цифровой вывод встроенного светодиода для вывода. Светодиод не горит. ++ Перейти к циклу. + Счетчик циклов = 1 + Счетчик циклов = 2 + Счетчик циклов = 3…
В качестве упражнения измените время задержки на мигающем индикаторе, загрузите измененную программу и подтвердите изменение.
На приведенной выше фотографии показана коробка для набора перемычек для беспаечной макетной платы из 140 частей, которую вы можете купить за 3-5 долларов. Они делают платы более аккуратными, чем используют длинные кабели для коротких соединений.
Шаг 2: добавьте инфракрасный приемник и подключите его к Arduino
Подключите провода кабеля «мама-папа» к инфракрасному приемнику (концы «мама»). Подключите заземляющий контакт модуля часов к полосе заземления на макетной плате. Подключите вывод питания модуля часов к положительной полосе на макетной плате. Подключите выходной контакт инфракрасного приемника к контакту Arduino A1.
Подключите инфракрасный приемник, контакты сверху слева направо:
Крайний левый (рядом с X) - нано-контакт A1 В центре - 5В Правый - земля A1 + - - Соединения нано-пинов | | | - Контакты инфракрасного приемника --------- | S | | | | --- | | | | | | --- | | | ---------
В Arduino IDE установите инфракрасную библиотеку. Выберите Инструменты / Управление библиотеками. Отфильтруйте свой поиск, набрав «IRremote». Выберите IRremote by Shirriff (для справки ссылка на библиотеку GitHub). Информация о библиотеке Arduino Ссылка на библиотеку IRremote.
Загрузите и запустите базовую тестовую программу: infraredReceiverTest.ino. При запуске программы направьте пульт дистанционного управления на приемник и нажмите различные кнопки, например цифры от 0 до 9. Последовательные сообщения выводятся (распечатываются), которые можно просмотреть в инструментах Arduino IDE / Serial Monitor.
+++ Настройка.
+ Инициализировал инфракрасный приемник. ++ Перейти к циклу. + Клавиша OK - Toggle + Клавиша> - следующий + Клавиша <- предыдущий + Клавиша вверх + Клавиша вниз + Клавиша 1: + Клавиша 2: + Клавиша 3: + Клавиша 4: + Клавиша 6: + Клавиша 7: + Клавиша 8: + Клавиша 9: + Клавиша 0: + Клавиша * (возврат) + клавиша # (выход)
В качестве упражнения используйте пульт от телевизора, чтобы просмотреть напечатанные значения. Затем вы можете изменить программу, чтобы использовать значения в операторе switch функции infraredSwitch (). Например, нажмите клавишу «0» и получите значение для вашего пульта дистанционного управления, например, «0xE0E08877». Затем добавьте регистр в оператор switch, как показано в следующем фрагменте кода.
case 0xFF9867:
case 0xE0E08877: Serial.print ("+ ключ 0:"); Serial.println (""); перерыв;
Шаг 3. Создайте SD-карту Mico для файлов MP3
Поскольку DFPlayer - это небольшое недорогое оборудование, оно упрощает управление файлами и папками. У меня были смешанные результаты при воспроизведении файлов MP3, которые не соответствуют следующим рекомендуемым форматам, и поэтому я рекомендую следующее. Кроме того, я не тестировал другие варианты, такие как трехзначные имена файлов (пример: 003.mp3), однако я видел трехзначные имена файлов, используемые в других инструкциях и примерах.
Ниже приведены рекомендуемые мной форматы имен файлов и папок:
- Имя папки по умолчанию - MP3, она находится в корневом каталоге SD-карты: SD: / MP3. Эта папка не является обязательной при использовании нескольких папок.
- Плеер также будет воспроизводить файлы MP3 в корневом каталоге.
- При использовании нескольких папок используйте имена папок: 01, 02, 03,…, 99.
- Имя файла mp3 должно состоять из 4 цифр с расширением «0001.mp3», например «0001.mp3».
- Файлы могут быть помещены в папку MP3 или в одну из нескольких папок.
- Имена файлов: от 0001.mp3 до 0255.mp3. Обратите внимание, что плеер также будет воспроизводить файлы MP3 с другими именами.
- Вы можете добавлять символы после цифр, например, «0001hello.mp3».
Перед добавлением файлов рекомендуется отформатировать карту. Это гарантирует, что на карте нет системных файлов. Форматирование с использованием FAT32 MS-DOS.
На Mac используйте дисковую утилиту для форматирования диска: Приложения> Утилиты> откройте Дисковую утилиту.
Щелкните SD-карту, например: APPLE SD Card Reader Media / MUSICSD. Щелкните пункт меню, Erase. Установите имя, например: MUSICSD. Выберите: MS-DOS (Fat). Щелкните Erase.
Диск очищен и отформатирован.
Я написал программу на Java, которая скопирует каталог файлов MP3 в целевой каталог, используя имена каталогов и файлов, которые работают с модулем DFPlayer. Для запуска программы вам потребуется установленная Java JRE. Ниже приведен вывод справки программы.
$ java -jar mp3player.jar
+++ Start, программа копирования модуля DFPlayer. Синтаксис: java -jar mp3player.jar copy [(IN: каталог MP3) (OUT: каталог MP3)] ---------------------- Эта программа копирует каталог файлов MP3, чтобы создать другой каталог файлов MP3, используя имена каталогов и файлов, которые работают с модулем DFPlayer. Перед запуском этой программы + Создайте каталог для ваших файлов MP3. + Создать целевой каталог. + Каталог назначения - это место, куда будут скопированы файлы MP3, ++ с использованием каталога цифровых номеров и имен файлов. + Ваш целевой каталог должен быть пустым. + Если в нем есть файлы, удалите файлы и каталоги. ---------------------- + Запускаем эту программу. + Синтаксис: java -jar mp3player.jar copy [(IN: каталог MP3) (OUT: каталог MP3)] + Синтаксис по умолчанию: java -jar mp3player.jar copy + Имена каталогов по умолчанию: mp3player1 и mp3player2. + То же, что и: java -jar mp3player.jar copy mp3player1 mp3player2. ---------------------- + Вставьте SD-карту в компьютер. + Удалить каталоги и файлы с SD-карты. + Очистите корзину, потому что файлы все еще находятся на SD-карте и модуль DFPlayer может их воспроизвести. + Скопируйте новые каталоги и файлы на SD-карту. + Извлечь карту из компьютера. ---------------------- + Вставьте карту в модуль DFPlayer. + Карта готова к игре
Чтобы просмотреть исходный код, щелкните здесь. Щелкните здесь, чтобы загрузить файл программы JAR, который вы можете запустить.
Для справки
На Mac из командной строки вы можете запустить следующее.
Список, чтобы найти карту.
список $ diskutil
… / Dev / disk3 (внутренний, физический): #: ИМЯ ТИПА ИДЕНТИФИКАТОР РАЗМЕРА 0: FDisk_partition_scheme * 4,0 ГБ disk3 1: DOS_FAT_32 MUSICSD 4,0 ГБ disk3s1 $ ls / Volumes / MUSICSD
Скопируйте файлы по порядку на SD-карту. Поскольку DFPlayer может выполнять сортировку по метке времени, копируйте файлы в порядке именования файлов.
Очистите скрытые файлы, которые могут вызвать проблемы (ссылка:
$ dot_clean / Volumes / MUSICSD
Теперь ваша SD-карта готова к использованию. Вставьте его в свой модуль DFPlayer.
Шаг 4. Подключите модуль DFPlayer, который воспроизводит файлы MP3
Я разделил соединения на 3 части: последовательная связь, питание и динамик / звук.
1. Подключите контакты Arduino RX / TX к модулю DFPlayer. Подключите провод между контактом 10 Arduino и контактом 3 DFPlayer (TX). Подключите резистор, я использую резистор 5K от контакта 2 DFPlayer (RX), к пустой строке между Arduino и DFPlayer. Подключите провод от пина 11 Nano к резистору 5K. Резистор 5K устраняет шумы, которые возникают, когда резистор не используется.
2. Подключите контакт заземления (GND) модуля DFPlayer к полосе заземления макетной платы. Подключите вывод питания (VCC) модуля DFPlayer к положительной полосе на макетной плате.
3. Если у вас один маленький динамик, подключите его к контактам 6 (SPK-) и 8 (SPK +), как на фотографии выше, с Nano.
Мини-значки DFPlayer
В среде Arduino IDE установите библиотеку DFPlayer. Выберите Инструменты / Управление библиотеками. Отфильтруйте свой поиск, введя «DFRobotDFPlayerMini». Выберите DFRobotDFPlayerMini by DFRobot mini player library (для справки ссылка на библиотеку). Для своей реализации я загрузил версию 1.0.5.
Для справки ссылка на библиотеку. И ссылка на вики-страницу DFPlayer.
Загрузите файлы MP3 на карту micro SD. У вас могут быть песни в отдельных каталогах. Вставьте SD-карту в DFPlayer.
Загрузите и запустите программу MP3-плеера: mp3infrared.ino. При запуске программы направьте пульт дистанционного управления на приемник и нажмите кнопку ОК, чтобы начать воспроизведение первой песни. Когда начнется воспроизведение, синий индикатор DFPlayer загорится и останется включенным, пока воспроизводится файл.
Расширенная конфигурация
Я построил компьютер-эмулятор Altair 8800, который использует Arduino Mega. Когда я добавил DFPlayer, было много шума. Чтобы избавиться от шума, я использовал отдельный блок питания для DFPlayer. Mega имеет один источник питания и посылает последовательные управляющие сигналы на DFPlayer. DFPlayer имеет другой источник питания, он принимает и передает последовательные управляющие сигналы от Mega.
На фотографии выше белый мини-USB-концентратор эмулятора Altair питает Mega и подключен к черному мини-концентратору ноутбука. У DFPlayer есть USB-кабель, который подключает его напрямую к черному мини-концентратору ноутбука. Эта конфигурация устранила шум, который существовал при включении DFPlayer через белый мини-концентратор эмулятора.
Щелкните здесь, чтобы просмотреть код, настроенный для Mega. Эта версия кода использует контакты Mega RX / TX, где в качестве Nano или Uno используются программные контакты последовательного порта.
Следующее для справки
Подключения, используемые с Arduino, 1. Последовательный UART, RX для получения команд управления DFPlayer. RX: вход подключается к TX на Mega / Nano / Uno. TX для отправки информации о состоянии. TX: выход подключается к RX на Mega / Nano / Uno. Подключения для Nano или Uno: RX (2) для сопротивления последовательному программному выводу 11 (TX). TX (3) к последовательному выводу программного обеспечения 10 (RX). Подключения Mega: RX (2) к контакту 18 Serial1 (TX). TX (3) к контакту 19 Serial1 (RX). 2. Варианты питания. Подключите Arduino напрямую к DFPlayer: VCC к + 5V. Обратите внимание, также работает с + 3,3 В в случае NodeMCU. GND на землю (-). Используйте совершенно другой источник питания: от VCC до + 5В другого источника питания. GND на массу (-) другого источника питания. Я видел другой вариант питания: от Arduino + 5V используйте 7805 с конденсаторами и диодом на вывод DFPlayer VCC. GND на землю (-). 3. Выход на динамик. Для одного динамика менее 3Вт: SPK - на вывод динамика. SPK + к другому контакту динамика. Для вывода на стереофонический усилитель или наушники: DAC_R для вывода правого (+) DAC_L для вывода левого (+) GND для вывода земли.
После вызовов ключевых библиотечных функций. Ссылка на вики-страницу DFPlayer.
DFRobotDFPlayerMini myDFPlayer;
myDFPlayer.play (1); // Воспроизвести первый mp3 myDFPlayer.pause (); // приостановить mp3 myDFPlayer.start (); // запускаем mp3 с паузы ------------------------------ myDFPlayer.next (); // Воспроизвести следующий mp3 myDFPlayer.previous (); // Воспроизвести предыдущий mp3 ------------------------------ myDFPlayer.playMp3Folder (4); // проигрываем конкретный mp3 в SD: /MP3/0004.mp3; Имя файла (0 ~ 65535) myDFPlayer.playFolder (15, 4); // проигрываем конкретный mp3 в SD: /15/004.mp3; Имя папки (1 ~ 99); Имя файла (1 ~ 255) myDFPlayer.playLargeFolder (2, 999); // проигрываем конкретный mp3 из SD: /02/004.mp3; Имя папки (1 ~ 10); Имя файла (1 ~ 1000) ------------------------------ myDFPlayer.loop (1); // Зациклить первый mp3 myDFPlayer.enableLoop (); // включить цикл. myDFPlayer.disableLoop (); // отключаем цикл. myDFPlayer.loopFolder (5); // зациклить все mp3 файлы в папке SD: / 05. myDFPlayer.enableLoopAll (); // зациклить все файлы mp3. myDFPlayer.disableLoopAll (); // остановить цикл всех файлов mp3. ------------------------------ myDFPlayer.volume (10); // Устанавливаем значение громкости. От 0 до 30 myDFPlayer.volumeUp (); // Увеличение громкости myDFPlayer.volumeDown (); // Уменьшение громкости ------------------------------ myDFPlayer.setTimeOut (500); // Устанавливаем тайм-аут последовательной связи 500 мс myDFPlayer.reset (); // Сброс модуля ------------------------------ Serial.println (myDFPlayer.readState ()); // чтение состояния mp3 Serial.println (myDFPlayer.readVolume ()); // считываем текущий том Serial.println (myDFPlayer.readEQ ()); // чтение настроек эквалайзера Serial.println (myDFPlayer.readFileCounts ()); // считываем количество файлов на SD-карте Serial.println (myDFPlayer.readCurrentFileNumber ()); // чтение текущего номера файла воспроизведения Serial.println (myDFPlayer.readFileCountsInFolder (3)); // считываем счетчики заполнения в папке SD: / 03 ------------------------------ myDFPlayer.available ()
Шаг 5: Внешний источник питания
Теперь, когда ваш MP3-плеер протестирован и работает, вы можете отключить его от компьютера и использовать с независимым источником питания. Для простоты я использую сетевой адаптер на 5 В, который можно купить примерно за доллар, и USB-кабель за еще доллар. Кабель соединяет Arduino с настенным адаптером + 5V. Поскольку контакты питания и заземления Arduino подключены к макетной плате, они будут питать другие компоненты. Из-за его простоты и низкой стоимости я использую эту же комбинацию для поддержки других проектов.
Фотография справа и видео показывают, что плеер, подключенный к моему усилителю за 40 долларов, сидит на правом динамике Bose на моем столе. Это моя настольная музыкальная система: MP3-плеер Arduino, усилитель Douk Audio и 2 динамика Bose. Хорошее качество звука.
Я надеюсь, что вы добились успеха и получили удовольствие от создания собственного музыкального MP3-плеера.
Шаг 6: устранение статического шума
На малой громкости раздавался раздражающий фоновый статический шум. Шум был нормальным, когда громкость DFPlayer была выше и играла музыка. Но когда музыка была тихой, статика была.
Я нашел страницу StackExchage, на которой было много предложений. Для меня сработало следующее:
- Подключите короткий провод между контактами заземления DFPlayer: контактами с 7 по 10.
- Используйте отдельную розетку USB (5 В) для питания модуля DFPlayer.
- Подключите заземление сетевой розетки к заземлению Arduino. Это требовалось для последовательной работы управления между Arduino и плеером.
Вышеупомянутое было протестировано на моем эмуляторе Altair 8800, который я улучшил с помощью DFPlayer для воспроизведения музыки. Управление плеером осуществляется переключением переключателей на передней панели.
Рекомендуемые:
Ракетная установка с голосовым управлением на основе Alexa: 9 шагов (с изображениями)
Ракетная установка с голосовым управлением на базе Alexa: по мере приближения зимнего сезона; наступает то время года, когда отмечается фестиваль огней. Да, мы говорим о Дивали, настоящем индийском фестивале, отмечаемом во всем мире. В этом году Дивали уже закончился, и люди
Двигатель с транзисторным управлением и дистанционным управлением; обзор схемы: 9 шагов
Двигатель с транзисторным управлением и дистанционным управлением; Обзор схемы: Эта схема представляет собой двигатель с транзисторным управлением и дистанционным управлением. Дистанционное управление включает питание. Транзистор включает двигатель. Код программы увеличит скорость двигателя и затем уменьшите скорость двигателя до нуля
Инфракрасная тепловизионная камера M5Stack с инфракрасным датчиком изображения AMG8833: 3 шага
Инфракрасная тепловизионная камера M5Stack с использованием инфракрасного датчика изображения AMG8833: Как и многие, я увлекался тепловизионными камерами, но они всегда были вне моего ценового диапазона - до сих пор !! Просматривая веб-сайт Hackaday, я наткнулся на эту сборку камеры с использованием M5Stack Модуль ESP32 и относительно недорогой
Собака с инфракрасным отслеживанием: 3 шага
Собака-слежка в инфракрасном диапазоне: Однажды я нашел интересное видео по адресу: http://arduinotr.com/cisim/?fbclid=IwAR22rYmiRQQJ0nqAusOLhBj_778gROseej6TUonvbOnAd65A-sl_wnyqrJQ&tdsourcetagance_ai_s_pot В самом деле
ЖК-дисплей Nokia 5110 с инфракрасным датчиком: 4 шага
ЖК-дисплей Nokia 5110 с инфракрасным датчиком: ЖК-дисплей Nokia 5110 - это потрясающий ЖК-дисплей, совместимый с платой разработки Arduino. Давайте теперь управлять одним из этих ЖК-дисплеев и связывать его с Arduino и ИК-датчиком