Оглавление:

Детская музыкальная шкатулка MP3: 6 шагов (с изображениями)
Детская музыкальная шкатулка MP3: 6 шагов (с изображениями)

Видео: Детская музыкальная шкатулка MP3: 6 шагов (с изображениями)

Видео: Детская музыкальная шкатулка MP3: 6 шагов (с изображениями)
Видео: Видеть музыку - Развивающий мультфильм для детей 2024, Ноябрь
Anonim
Детская музыкальная шкатулка MP3
Детская музыкальная шкатулка MP3
Детская музыкальная шкатулка MP3
Детская музыкальная шкатулка MP3

При поиске новых проектов DIY для Arduino я нашел несколько хороших идей о MP3-плеерах для детей на основе RFID. И на рынке есть одна отличная профессиональная коробка для игрушек - эти парни рулят. Они сделали отличный бизнес из своей умной идеи. Проверьте - вы найдете их страницу!

Поскольку двое моих детей все больше и больше начинают слушать аудиокниги и музыку и до сих пор используют старые добрые компакт-диски со всеми сложностями в обращении, я решил создать такую коробку для MP3-плеера с некоторыми приятными функциями, чтобы сделать его отличным человеком. игрушка для них. После того, как я недавно купил свой первый 3D-принтер, этот проект казался хорошей площадкой для погружения в 3D-печать.

Итак, я начал концептуальную фазу - какие функции я хотел бы реализовать - RFID, MP3-плеер, WLAN (отменен позже), управление IMU, ЖК-дисплей, будильник, беспроводная зарядка… Требовалось провести некоторое исследование, какие компоненты мне понадобятся. Какие компоненты я могу использовать повторно? У меня все еще был IMU, ЖК-модуль, несколько наноразмеров Arduino.

Имея некоторый опыт пайки и замеров, сборка выполнима в течение 1-2 рабочих сеансов.

Печать коробки, состоящей из основания, крышки и зарядной станции, занимает некоторое время (12+ часов в зависимости от настроек принтера и слайсера), но я сделал это во время пайки.

Шаг 1: Компоненты

Компоненты
Компоненты

Между тем, компоненты действительно мейнстримные. Вот список компонентов, которые я использовал для этого проекта.

1. ЖК-дисплей 1602 2x16 больших символов 5 В 122 * 44 мм синий

2. Считыватель RFID - NFC RFID-RC522 RF IC

3. MP3-плеер - DFPlayer Mini MP3-плеер Модуль MP3 Voice Decode Board для Arduino с поддержкой TF-карты U-Disk IO / Serial Port / AD

4. Громкоговоритель - 4 Ом, 3 Вт, 53 мм, квадратный динамик, 36 мм, внешний магнитный поролоновый край, серебристый колпачок.

5. Карта Micro SD 8 ГБ

6. Трехосевой аналоговый гироскопический датчик MPU6050.

7. Плата микроконтроллера MINI USB NANO V3.0 CH340 5 V 16 Mt Atmega328 (используются почти все контакты!)

8. DS3231 Precision RTC - модуль будильника.

9. Powerbank JETech 3400 мАч

10. Универсальный модуль приемника беспроводного зарядного устройства DIY PCBA Qi - синий + черный

11. Прототип печатной платы Залуженная универсальная макетная плата Прототипирование беспаечной платы FR4 Двусторонняя печатная плата 5x7 см 50x70 мм FR4

12. 1x 2N 3904: Транзистор NPN TO-92 40V 0, 2A 0, 5W

13. Резистор 1х1кОм для ограничения тока базы, 3х220Ом 0, 5 Вт (параллельно! Для обеспечения мощности - можно использовать резистор более высокой спецификации, он у меня был) для токовой нагрузки между эмиттером и коллектором. 2x1kOhms для линии TX и RX между Arduino и DFplayer, чтобы убить шум - у меня здесь не было проблемы.

14. Некоторая стандартная электроника своими руками - паяльник, припой, зажимы, разъемы, кабели…

14. Много энергии и пара часов на сборку:)

Общая стоимость вышеперечисленных компонентов ~ 30-35 € - в основном на aliexpress.com и dx.com. Доставка занимает некоторое время, но цена отличная.

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

Связь с электроникой
Связь с электроникой
Связь с электроникой
Связь с электроникой
Связь с электроникой
Связь с электроникой

Я не рисовал макет и не использовал какой-либо удобный инструмент, такой как Fritzing или аналогичный. Возможно, позже. Описание ниже показывает возможность подключения. Все не упомянутые контакты не подключены.

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

Расположение контактов любого компонента доступно в Google.

ЖК-дисплей

Светодиод ---- GND

LED + --- Через 220 Ом на блок питания 5 В

DB7 --- Ардуино D2

DB6 --- Ардуино D3

DB5 --- Ардуино D7

DB4 --- Ардуино D8

E --- Arduino A1 / контакт 15

R / W --- GND

RS --- Arduino A0 / контакт 14

V0 --- потенциометр Rx 10 кОм (для регулировки контраста)

VDD --- Powerbank + 5 В

VSS --- GND

DFPlayer MP3-плеер

VCC --- + 5V Powerbank

RX --- программный последовательный Arduino D5 (возможно через резистор 1 кОм в случае проблем с шумом)

TX --- программный последовательный Arduino D9 (возможно через резистор 1 кОм в случае проблем с шумом)

SPK1 --- Динамик +

GND --- Powerbank GND

SPK2 --- Динамик -

Занято --- Arduino A7

GND --- GND

Считыватель RFID NFC522

3,3 В --- Arduino 3,3 В

GND --- GND

MISO --- Arduino D12

MOSI --- Arduino D11

SCK --- Arduino D13

SDA --- Arduino D10

Гироскопический датчик IMU 6050

VCC --- Arduino 3,3 В

GND --- GND Powerbank

SCL --- Arduino A5 / SCL

SDA --- Arduino A4 / SDA

ADO --- + 3,3 В (высокий сигнал) для адреса I2C 0x69

DS3231 Часы реального времени

3, 3 В --- Ардуино 3,3 В

SDA --- Arduino A4 / SDA

SCL --- Arduino A5 / SCL

GND --- GND

Триггер текущей нагрузки

Излучатель 2N3904 - GND

База 2N3904 - через 1кОм на Arduino D6

Коллектор 2N3904 - через 3х220Ом (параллельно! - можно использовать резистор более высокого номинала, у меня такие были) на + 5В

Внешний аккумулятор

Линии V + и GND Powerbank подключены через гнездовой USB-разъем к разъему питания на плате и подключаются к Vin / GND Arduino). Powerbank включается микровыключателем на крышке. Я припаял микровыключатель к V + через нагрузочный резистор к GND, чтобы имитировать состояние нагрузки и включить его. После этого текущая нагрузка не дает ему отключиться.

+ 5V - разъем питания на плате + 5V

GND - разъем питания на плате GND

+ 5V powerbank - нагрузочный резистор - микровыключатель Pin A

GND - контакт микровыключателя B

Шаг 3: Сборка электроники

Сборка электроники
Сборка электроники
Сборка электроники
Сборка электроники
Сборка электроники
Сборка электроники

Компоненты платы - MP3-плеер, RTC, IMU, Arduino устанавливаются в гнезда. Клавиши выбора и вверх / вниз, RFID, ЖК-дисплей и питание подключаются через самопаянные «ленточные кабели», достаточно длинные, чтобы впоследствии поместиться в коробку.

Микровыключатель для включения павербанка находится на фиксированной крышке - на рисунках не показан.

Я использовал фиксированный источник питания для тестирования установки.

При сборке я тестировал каждый компонент по отдельности -> примеры эскизов Arduino для компонентов здесь очень полезны.

Поскольку блок питания имел автоматическое отключение, работающее с низким током, я включал контролируемый транзистором пик нагрузки каждые 15 секунд в течение 100 мс через резистор 70 Ом (на самом деле 3 параллельных 220 Ом для обеспечения достаточной мощности, это всего лишь короткий пик, но три резистора будут разделять ток и, следовательно, не будут работать сверх спецификаций).

Позже выяснилось, что Mini DFPlayer постоянно потребляет> 70 мА. Поскольку я использовал автоматическое отключение powerbank также для выключения коробки (больше не вызывая текущую нагрузку), мне теперь нужно это переосмыслить.

По-прежнему возникают проблемы со спящим режимом Arduino и DFplayer для снижения тока - ток не опускается ниже порогового значения для включения выключения. Обратная связь приветствуется.

Примечание: для второго бокса мне пришлось заказать еще один павербанк, потому что я убил электронику своего первого. И посмотрите сюда - этот павербанк выключается через 10 секунд после того, как я перестаю подавать ток нагрузки -> выключение теперь работает.

Приемник беспроводной зарядки подключается к зарядному устройству powerbank usb. База для зарядного устройства встроена в коробку для зарядного устройства, напечатанную на моем 3D-принтере.

Шаг 4: Программное обеспечение

Программное обеспечение
Программное обеспечение

Программное обеспечение доступно на github

Программирование - это весело, мне нравится начинать с небольшого количества примеров и развиваться дальше. Поскольку я на самом деле не занимаюсь последовательными спецификациями, планированием функций и структурированными планами программ, я получаю некоторый рабочий, но не очень элегантный код. Это всегда задача -> перейти к объектам, отдельно в.h и.cpp…

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

Но самое замечательное - как только HW заработает, можно начинать делать все что угодно.

Я использовал IDE arduino, требуется пара библиотек - это просто делается с помощью диспетчера библиотек Arduino IDE.

Итак, моя текущая версия программного обеспечения поддерживает:

Приветствие

Объем (да)

Наклон окна влево / вправо для перехода к предыдущей / следующей песне и, если RFID отключен, к следующей папке вперед и назад.

Пауза / воспроизведение (да)

Инициализировать, изучить новый RFID - папка назначается на основе следующей RFID папки следующей SD-карты. Данные хранятся в Arduino EEPROM.

Папка воспроизведения, назначенная RFID - назначение RFID папке с помощью функции обучения

Загрузите и сохраните параметры, чтобы разрешить сохранение настроек. Сброс к заводским настройкам:)

Установка часов и даты.

Включение / выключение будильника, установка часов и минут будильника, воспроизведение фиксированной песни для будильника.

Отключите RFID - проиграйте mp3 без него.

Еще несколько идей в моем списке - еще предстоит реализовать

Показать температуру (RTC может это сделать - он измеряет температуру, чтобы компенсировать воздействие на кварц)

Начни смеяться, когда встряхнешься, Установить песню для будильника

Выберите, какая папка назначена RFID в режиме обучения

Назначение папки в хранилище и последняя песня, проигранная на чипе RFID - возможность многократного использования между коробками (я создаю другую - двое детей помнят…?)

включить выключение - сейчас это не работает без подключения к USB -> текущая нагрузка через Powerbank снижена в этой настройке.

Информация о структуре папок на SD-карте

У меня хранились аудиокниги в формате mp3 и музыка для детей. Поэтому я использовал несколько сценариев Linux, чтобы преобразовать песни в правильное название. Папки должны быть названы последовательными двузначными числами (например, «00», «01», «02»…). Там песни должны быть названы в последовательности трехзначных чисел (например, «001.mp3», «002.mp3»,…).

Мой включенный-приветственный mp3 («Привет, я твоя игрушка…») хранится в папке «99» как «001.mp3».

Сценарий не является доказательством идиота и должен использоваться только в каталоге «копии», а не на оригиналах.

#! / bin / bashlet i = 1 для файла в *.mp3 do if (($ i <10)); затем mv "$ file" "00 $ {i}.mp3" elif (($ i <100)); затем mv "$ file" "0 $ {i}.mp3" else mv "$ file" "$ {i}.mp3" fi let i ++ done

Шаг 5: Печать и сборка коробки

Печать и сборка коробки
Печать и сборка коробки
Печать и сборка коробки
Печать и сборка коробки
Печать и сборка коробки
Печать и сборка коробки

Итак, теперь HW и SW работают - мне нужна КОРОБКА!

Отличное место для начала - Tinkercad - мне это нравится! Простой в использовании, и вы получаете все, что хотите. Основываясь на огромном сообществе и множестве отличных примеров от умных мастеров-мастеров.

В это легко можно попасть навсегда - здесь одно изменение, там новое крепление, отверстие,… новый дизайн,….

Но в итоге меня полностью устраивает нынешний дизайн коробки. Я также сделал базовую коробку для зарядного устройства, на которую можно было положить mp3-бокс для… зарядки. посмотреть здесь

Печать занимает свое время (~ 8-12 часов и более), и я тестировал с разной толщиной линий. В конце концов, я остался на стандартах принтеров. Для текущих ящиков я использую прототипы (изначально напечатанные на основе старого дизайна), однако последний дизайн имеет некоторые новые функции, крепления, целые, которые составляют еще один элемент в моем списке дел.

И еще одна очень важная вещь, которую еще предстоит сделать: получить красивую одежду для коробки - но это будет владение моей жены - с нетерпением жду новой одежды коробки - скоро появится …

Как только распечатки остыли и было проведено базовое тестирование электроники вне коробки, нужно было приступить к окончательной сборке.

Я использовал горячий клей, чтобы закрепить детали - микропереключатель, ЖК-дисплей и приемник RFID, прикрепленные к крышке. Я использовал двусторонний скотч для предварительной фиксации компонентов, а затем с помощью горячего клея добавил некоторые окончательные точки фиксации.

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

Затем powerbank, снова предварительно зафиксируйте двусторонним, затем нанесите горячий клей на «стратегические» точки. Громкоговоритель можно было закрепить красивыми точками на подготовленные крепления - красиво и плотно.

Наконец, плата - я включил несколько мини-крепежных площадок в дизайн 3D-печати, так что плата аккуратно уложена - опять же - с некоторыми стратегическими точками для горячего клея. Дребезжание не должно разбивать вещи - поэтому я уделил этому немного внимания.

И, наконец, используйте некоторые доступные мини-винты (в моем печатном дизайне было несколько креплений для винтов 3M, но они не очень хороши для настоящих винтов)

Шаг 6: Готовая коробка - еще без одежды

Image
Image
Готовая коробка - еще без одежды
Готовая коробка - еще без одежды
Готовая коробка - еще без одежды
Готовая коробка - еще без одежды

А вот и две готовые коробки для моих детей. Они уже провели бета-тестирование и обнаружили программные ошибки;-).

Еще я купил 20 упаковок наклеек RFID M3.

Теперь мне нужно собрать все возможные фигурки и заставить их проигрывать жетоны для коробки MP3. Развлечение для папы и малышей:)

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