Inhoudsopgave:

MP3-muziekdoos voor kinderen - Ajarnpa
MP3-muziekdoos voor kinderen - Ajarnpa

Video: MP3-muziekdoos voor kinderen - Ajarnpa

Video: MP3-muziekdoos voor kinderen - Ajarnpa
Video: Моцарт для стимуляции интеллекта младенцев ♫ Музыка для детского сна ♥ Колыбельная перед сном 2024, Juli-
Anonim
MP3-muziekdoos voor kinderen
MP3-muziekdoos voor kinderen
MP3-muziekdoos voor kinderen
MP3-muziekdoos voor kinderen

Toen ik op zoek was naar nieuwe doe-het-zelf-projecten rond Arduino, vond ik een aantal leuke ideeën over op RFID gebaseerde MP3-spelers voor kinderen. En er is één geweldige professionele speelgoeddoos op de markt - deze jongens heersen. Ze maakten een geweldig bedrijf van hun slimme idee. Check out - je vindt hun pagina!

Omdat mijn twee kinderen steeds meer naar audioboeken en muziek beginnen te luisteren, en nog steeds goede oude compact discs gebruiken met al het gedoe met het hanteren, heb ik besloten om zo'n MP3-spelerbox te bouwen met een aantal leuke functies om er een geweldig persoon van te maken speelgoed voor hen. Nadat ik onlangs mijn eerste 3D-printer kocht, leek dit project een goede speeltuin om ook in 3D-printen te duiken.

Dus begon ik in de conceptfase - welke functies zou ik willen implementeren - RFID, MP3-speler, WLAN (later geannuleerd), IMU-bediening, LCD-scherm, wekker, draadloos opladen … Ik moest wat onderzoek doen, welke componenten ik nodig zou hebben. Welke onderdelen kan ik hergebruiken? Ik had nog steeds een IMU, LCD-module, wat Arduino-nano's.

Met enige ervaring met solderen en meten is de montage binnen 1-2 na werksessies te doen.

Het printen van de Box, bestaande uit een basis, een afdekplaat en een laadstation, kost wat tijd (12+ uur afhankelijk van de printer en slicer instellingen), maar dat heb ik tijdens het solderen gedaan.

Stap 1: Componenten

Componenten
Componenten

De componenten zijn ondertussen echt mainstream. Hier is een lijst met componenten die ik voor dit project heb gebruikt.

1. LCD-scherm 1602 2x16 grote tekens 5 V 122*44 MM blauw

2. RFID-lezer- NFC RFID-RC522 RF IC

3. MP3-speler-DFPlayer Mini MP3-speler Module MP3 Voice Decode Board Voor Arduino Ondersteunende TF-kaart U-Disk IO/Seriële Poort/AD

4. Luidspreker - 4 ohm 3 watt 53 MM vierkante luidspreker 36 MM externe magnetische schuimrand zilverkleurige dop

5. Micro SD-kaart 8GB

6. MPU6050 3-assige analoge gyroscoopsensor

7. MINI USB NANO V3.0 CH340 5 V 16 Mt Atmega328 Micro Controller Board (bijna alle pinnen gebruikt!)

8. DS3231 Precision RTC - Alarmklokmodule

9. Powerbank JETech 3400 mAh

10. Universele DIY PCBA Qi draadloze oplader-ontvangermodule - blauw + zwart

11. Prototype printplaat Protoboard Vertind Universele Breadboard Prototyping Soldeerloze FR4 PCB Dubbelzijdig 5x7 cm 50x70mm FR4

12. 1x 2N 3904: Transistor NPN TO-92 40V 0, 2A 0, 5W

13. 1x1kOhm-weerstand om de basisstroom te beperken, 3x220Ohms 0, 5 w (parallel! om te voorzien in wattage - men kan een hogere spec-weerstand gebruiken, ik had deze) voor stroombelasting tussen emitter en collector. 2x1kOhms voor TX- en RX-lijn tussen Arduino en DFplayer om ruis te doden - ik had hier geen probleem.

14. Sommige standaard doe-het-zelf-elektronica-dingen - soldeerbout, soldeer, clipper, connectoren, kabels …

14. Veel energie en een paar uur om te monteren:)

Totale prijs voor bovenstaande componenten ~30-35€ - meestal van aliexpress.com en dx.com. Verzending duurt even, maar de prijs is prima.

Stap 2: Elektronische connectiviteit

Elektronische connectiviteit
Elektronische connectiviteit
Elektronische connectiviteit
Elektronische connectiviteit
Elektronische connectiviteit
Elektronische connectiviteit

Ik heb geen lay-out getekend en ook geen handige tool zoals Fritzing of iets dergelijks gebruikt. Waarschijnlijk op een later tijdstip. Beschrijving hieronder toont de connectiviteit. Alle niet genoemde pinnen zijn niet aangesloten.

Tijdens het solderen bleef ik de connectiviteit van de lijnen meten, eindcontrole met gemonteerde componenten werd ook gedaan. Niets vervelender dan te moeten zoeken naar één slechte verbinding nadat alles is gemonteerd. De meeste zorg op GND en spanning +.

De pinlay-out van elk onderdeel is beschikbaar via Google.

LC-display

LED ---- GND

LED+ --- Via 220Ohm naar 5V powerbank

DB7 --- Arduino D2

DB6 --- Arduino D3

DB5 --- Arduino D7

DB4---Arduino D8

E --- Arduino A1/Pin 15"

R/W --- GND

RS --- Arduino A0/Pin 14"

V0 --- 10 Kohm potentiometer Rx (om het contrast aan te passen)

VDD --- Powerbank + 5V

VSS --- GND

DFPlayer MP3-speler

VCC --- + 5V Powerbank

RX --- software seriële Arduino D5 (eventueel via 1kOhm weerstand in geval van geluidsproblemen)

TX --- software seriële Arduino D9 (eventueel via 1kOhm weerstand in geval van geluidsproblemen)

SPK1---Luidspreker +

GND --- Powerbank GND:

SPK2---Luidspreker -

Bezet --- Arduino A7

GND --- GND

NFC522 RFID-lezer

3.3V --- Arduino 3.3V

GND --- GND

MISO --- Arduino D12

MOSI --- Arduino D11

SCK --- Arduino D13

SDA --- Arduino D10

IMU 6050 gyrosensor

VCC --- Arduino 3.3V

GND --- GND Powerbank

SCL --- Arduino A5/SCL

SDA --- Arduino A4/SDA

ADO --- + 3.3V (Hoog signaal) voor I2C-adres 0x69

DS3231 Realtime klok

3, 3V --- Arduino 3.3V

SDA --- Arduino A4/SDA

SCL --- Arduino A5/SCL

GND --- GND

Huidige belasting Trigger

2N3904 zender -- GND

2N3904 basis -- via 1kOhm naar Arduino D6

2N3904 collector -- via 3x220Ohms (parallel! - men kan een hogere spec weerstand gebruiken, ik had deze) naar +5V

Powerbank

V+- en GND-lijnen van Powerbank aangesloten via een vrouwelijke USB-connector op de voedingsconnector aan boord en aansluiten op Vin/GND van Arduino). De powerbank wordt ingeschakeld via een microschakelaar in de afdekplaat. Ik heb een microschakelaar op V+ gesoldeerd via een belastingsweerstand op GND om een belastingstoestand te simuleren en aan te zetten. Daarna zorgt de huidige belasting ervoor dat deze niet wordt uitgeschakeld.

+5V -- Stroomaansluiting aan boord +5V

GND --Voedingsconnector aan boord van GND

+5V van powerbank -- belastingsweerstand -- microschakelaar Pin A

GND -- microschakelaarpen B

Stap 3: Elektronica-assemblage

Elektronica Montage
Elektronica Montage
Elektronica Montage
Elektronica Montage
Elektronica Montage
Elektronica Montage

De bordcomponenten - MP3-speler, RTC, IMU, Arduino zijn in sockets gemonteerd. Select- en omhoog/omlaag-toetsen, RFID, LCD en voeding zijn lang genoeg verbonden via zelfgesoldeerde 'bandkabels' om later in de doos te passen.

Microswitch om powerbank in te schakelen is vaste afdekplaat - niet afgebeeld op de foto's.

Ik heb een vaste voeding gebruikt om de opstelling te testen.

Tijdens het monteren heb ik elk onderdeel afzonderlijk getest -> voorbeeld Arduino-schetsen voor de componenten zijn hier erg handig.

Omdat de powerbank een automatische uitschakeling had met een lage stroomsterkte, heb ik elke 15 seconden een transistorgestuurde belastingpiek gedurende 100 ms toegevoegd via een 70 Ohm-weerstand (eigenlijk 3 parallelle 220 Ohm om te voorzien in voldoende wattage, het is slechts een korte piek, maar de drie weerstanden delen de stroom en werken daarom niet boven de specificaties).

Later bleek dat de Mini DFPlayer continu > 70mA trekt. Omdat ik de automatische uitschakeling van de powerbank ook heb gebruikt voor het uitschakelen van de doos (door de huidige belasting niet meer te activeren), moet ik dit nu opnieuw bedenken.

Nog steeds problemen met de slaapmodus van Arduino en DFplayer om de stroom te verlagen - de stroom zakt niet onder de drempel om het uitschakelen mogelijk te maken. Reactie welkom.

Opmerking: voor de tweede Box moest ik een andere powerbank opnieuw bestellen omdat ik de elektronica van mijn eerste had gedood. En kijk hier - deze powerbank schakelt 10 seconden uit nadat ik stop met het activeren van de laadstroom -> uitschakelen werkt nu.

De draadloze oplaadontvanger wordt aangesloten op de powerbank opladen usb. De oplader is ingebouwd in een opladerdoos, bedrukt met mijn 3D-printer.

Stap 4: Software

Software
Software

Software beschikbaar op github

Programmeren is leuk, ik begin graag met een snelle kern van voorbeelden en ontwikkel me graag verder. Omdat ik niet echt consequente specificaties, planning van functies en gestructureerde programmaplannen doe, krijg ik wat werkende maar niet echt elegante code. Dit is altijd een todo -> ga meer in op objecten, scheid in.h en.cpp …

Ik wil het ding echter snel werkend krijgen, dus in veel gevallen kom ik daar niet op de meest efficiënte manier.

Maar het mooie is - zodra de HW werkt kan men allerlei dingen gaan doen.

Ik gebruikte de arduino IDE, een paar bibliotheken vereist - gewoon gedaan met de arduino IDE-bibliotheekmanager.

Dus mijn huidige versie van de software ondersteunt:

Welkoms bericht

Volume (duh)

Links/rechts kantelen van de box om naar het vorige/volgende nummer te schakelen en indien RFID gedeactiveerd naar de volgende map heen en weer.

Pauzeren/afspelen (duh)

Initialiseer, leer nieuwe RFID - map wordt toegewezen op basis van volgende RFID volgende SD-kaartmap. Gegevens worden opgeslagen in Arduino EEPROM

Map afspelen toegewezen aan RFID - toewijzing RFID-naar-map via leerfunctie

Laad en sla parameters op om opgeslagen instellingen in te schakelen. Fabrieksinstellingen:)

Klok en datum instelling.

Alarm in-/uitschakelen, alarmuren en minuten instellen, een vast nummer afspelen als alarm.

Schakel RFID uit - speel mp3 af zonder.

Nog wat ideeën op mijn lijst - nog uit te voeren

Toon temperatuur (de RTC kan dat doen - het meet de temperatuur om de impact op het kwarts te compenseren)

Begin te lachen als je wordt geschud, Nummer instellen voor alarm

Kies welke map is toegewezen aan RFID in leermodus

Opslagmaptoewijzing en laatste nummer gespeeld op RFID-chip - herbruikbaarheid tussen dozen (ik bouw er nog een - twee kinderen herinneren zich …?)

schakel uitschakeling in - dit werkt vanaf nu niet zonder aangesloten te zijn op USB -> stroombelasting via Powerbank wordt verminderd in deze instelling.

Info over mapstructuur op SD-kaart

Ik had een aantal mp3-audioboeken en muziek voor mijn kinderen opgeslagen. Dus ik gebruikte wat linux-scripts om de nummers naar de juiste naam te transformeren. Mappen moeten worden benoemd in opeenvolgende nummers van twee cijfers (d.w.z. "00", "01", "02"…). Nummers daarin moeten achtereenvolgens worden genoemd in driecijferige nummers (d.w.z. "001.mp3", "002.mp3", …).

Mijn inschakel-welkomst-mp3 ("Hallo, ik ben je speelgoeddoos …") wordt opgeslagen in map "99" als "001.mp3".

Script is niet idiot proof en mag alleen in een 'copy' directory worden gebruikt en niet op originelen.

#!/bin/bashlet i=1 voor bestand in *.mp3 do if (($i < 10)); dan mv "$file" "00${i}.mp3" elif (($i < 100)); dan mv "$file" "0${i}.mp3" else mv "$file" "${i}.mp3" fi laat i++ klaar

Stap 5: De doos afdrukken en monteren

De doos afdrukken en monteren
De doos afdrukken en monteren
De doos afdrukken en monteren
De doos afdrukken en monteren
De doos afdrukken en monteren
De doos afdrukken en monteren

Dus nu werken de HW en SW - ik heb een BOX nodig!

Een geweldige plek om mee te beginnen is Tinkercad - I love it! Eenvoudig te gebruiken en je krijgt alles wat je wilt. Voortbouwend op een enorme community en veel geweldige voorbeelden van slimme "Tinkerers".

Je kunt hier gemakkelijk voor altijd instappen - hier één verandering, daar een nieuwe houder, gat, … nieuw ontwerp, ….

Maar uiteindelijk ben ik helemaal blij met het huidige ontwerp van de doos. Ik bouwde ook een basisdoos voor de oplader om de mp3-doos op te zetten voor … opladen. kijk hier

Afdrukken kost tijd (~ 8-12 uur en meer) en ik heb getest met verschillende lijndiktes. Uiteindelijk bleef ik bij de printernormen. Voor de huidige dozen gebruik ik het prototype (aanvankelijk gedrukt op basis van een ouder ontwerp) dozen, maar het nieuwste ontwerp heeft een aantal nieuwe functies, bevestigingen, gehelen die een ander item op mijn takenlijst maken.

En nog een heel belangrijk ding dat nog moet worden gedaan: mooie kleren voor de doos kopen - maar dit zal het domein van mijn vrouw zijn - ik kijk uit naar de nieuwe kleren van de doos - binnenkort …

Zodra de afdrukken zijn afgekoeld en een basistest van de elektronica buiten de doos is gedaan, moest de eindmontage plaatsvinden.

Ik gebruikte hete lijm om de onderdelen te bevestigen - Microschakelaar, LCD en RFID-ontvanger bevestigd aan de afdekplaat. Ik gebruikte wat dubbelzijdig plakband om componenten vooraf te bevestigen en gebruikte vervolgens de hete lijm om enkele laatste bevestigingspunten in te brengen.

Hetzelfde met de basisdoos. Bevestig eerst de plaat van de oplaadontvanger aan de grond van de doos - dubbelzijdige tape deed het hier goed - moet in het midden van de basis worden afgesteld om dicht genoeg bij de oplaadspoel te zijn wanneer de doos op de oplaadbasis wordt geplaatst.

Dan de powerbank, opnieuw pre-fix met dubbelzijdig, dan wat hete lijm op 'strategische' punten smeren. De luidspreker kon met een paar mooie lijmpunten op de voorbereide bevestigingen worden vastgemaakt - mooi strak.

Eindelijk het bord - ik heb wat mini-montagepads in het 3D-printontwerp opgenomen, zodat het bord daar netjes paste met - alweer - enkele strategische hete lijmpunten. Rammelen mag de boel niet uit elkaar drijven - daarom heb ik deze wat aandacht gegeven.

En gebruik tot slot enkele beschikbare mini-schroeven (mijn printontwerp bevatte enkele 3M-schroefbevestigingen, maar ze waren niet echt geweldig voor echte schroeven)

Stap 6: Afgewerkte doos - maar zonder kleren

Image
Image
Afgewerkte doos - maar zonder kleren
Afgewerkte doos - maar zonder kleren
Afgewerkte doos - maar zonder kleren
Afgewerkte doos - maar zonder kleren

En hier zijn de twee afgewerkte dozen voor mijn kinderen. Ze hebben al wat beta-tests gedaan en wat software bugs gevonden;-).

Ik kocht ook een 20-pack RFID M3-stickers.

Nu moet ik alle mogelijke figuurtjes verzamelen en ze tokens laten spelen voor de MP3-box. Leuk voor vader en kinderen:)

Aanbevolen: