Table des matières:
- Étape 1: Construisez une boîte…
- Étape 2: câblez les boutons
- Étape 3: Facultatif: fabrication d'une carte avec des résistances de tirage vers le haut et vers le bas
- Étape 4: Le code Python
- Étape 5: Configuration de votre Rapsi
Vidéo: Un juke-box pour les tout-petits Aka Raspi-Music-Box : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Inspiré par l'instructable « Raspberry-Pi-based-RFID-Music-Robot » décrivant un lecteur de musique ROALDH construit pour son enfant de 3 ans, j'ai décidé de construire un juke-box pour mes enfants encore plus jeunes. Il s'agit essentiellement d'une boîte avec 16 boutons et un Raspi 2 à l'intérieur qui joue des chansons via la chaîne stéréo attachée chaque fois que l'un des boutons est enfoncé.
De quoi as-tu besoin:
- Un Raspberry Pi avec alimentation
- 16 boutons - du genre qui sont temporairement fermés lorsqu'on les pousse (ou le nombre de boutons que vous souhaitez - conseil: pas plus que vous n'avez de pins d'entrée…;)) J'ai utilisé celui-ci: bouton pour 0,50 €
- du fil fin
- une résistance 10kOhm et une résistance 1kOhm par bouton (à moins que vous ne vouliez vous fier aux résistances pull-up/down internes du Raspi, vous pouvez ignorer cela)
- décapant
- en-tête femelle (2x20 broches)
- du bois fin pour construire la boîte (j'ai utilisé 2 feuilles de 5x400x400mm pour le recto et le verso plus une bande de 2000x50x5mm pour découper les côtés)
- 24 vis et un peu de colle pour assembler la boite
- un peu de peinture pour le rendre coloré
- câble audio pour connecter le Raspi à votre chaîne stéréo ou haut-parleurs actifs (prise vers tout ce dont vous avez besoin à l'autre extrémité)
- outils: un fer à souder, une pince à fil, une pince à dénuder idéalement, une scie, une perceuse, un tournevis, un pinceau…
- en option: carte son USB si vous voulez que la musique sonne bien
- en option: carte wifi si vous souhaitez vous connecter à un ancien Raspi sans ouvrir la box
Veuillez noter qu'il s'agit de mon premier instructable et que j'ai fait ce projet il y a un certain temps… Je le fais alors que je continue d'être interrogé sur la façon dont VLC joue les chansons dans la section commentaires de l'instructable mentionné ci-dessus (le mplayer utilisé là-bas n'est plus pris en charge à ma connaissance). Je sais que ces instructions ne sont pas très bonnes, mais j'espère qu'il vous sera possible de suivre… sinon, veuillez également regarder l'original instructable et s'il vous plaît laissez des commentaires ci-dessous pour me dire où vous êtes coincé… Je vais ensuite essayer de m'améliorer…
Étape 1: Construisez une boîte…
Donc la première chose que vous devez faire est de construire une boîte… J'ai fait la mienne assez grande parce que j'ai laissé un peu d'espace sous chaque bouton pour une étiquette… J'ai prévu d'imprimer des photos pour chaque chanson, de les plastifier peut-être et de les marquer en bleu sous le boutons… leçon apprise: au moment où vous imprimez les étiquettes, vos enfants connaissent toutes les chansons et vous demandent d'en changer certaines… Alors la prochaine fois, je construirais une boîte plus petite et rapprocherais les boutons…
Donc, retour à ma boîte… j'ai acheté deux feuilles de contreplaqué 400 x 400 x 5 mm et une bande de 2000 x 50 x 5 mm… puis la première étape, la plus importante: ma fille a été autorisée à peindre le panneau avant dans son choix de couleurs…:) Pendant qu'elle peignait, j'ai coupé le long morceau en 5 bandes - deux de 400 mm de long, deux de 390 mm de long et les restes…;) ceux-ci j'ai collé au dos de la feuille fraîchement peinte… puis j'ai percé 12 trous de l'extérieur et vissé 12 vis… J'ai ensuite soigneusement aligné l'autre feuille au dos, percé 12 autres trous pour 12 vis supplémentaires pour fermer la boîte une fois que j'avais terminé. (Je sais que 12 vis peuvent être un peu exagérées mais les enfants sont forts…:))
D'un côté, j'ai utilisé une lime (vous pouvez utiliser un dremel pour accélérer les choses) pour découper un peu de bois pour passer à travers les câbles. J'ai ensuite également percé les trous pour les 16 boutons et les ai installés.
Étape 2: câblez les boutons
Alors maintenant, vous avez une boîte avec 16 boutons… Ensuite, vous devez les câbler… J'ai connecté l'un de leurs pôles à la terre en guirlande. Idéalement, vous aurez des petits connecteurs pour le faire… Je les ai soudés, ce qui était un cauchemar majeur et posera encore plus de problèmes si jamais je devais retirer l'un des boutons. Ensuite, j'ai attaché leurs autres pôles à un fil rouge chacun… Ceux-ci ont ensuite été soudés à la carte de connexion que vous pouvez voir allongée au milieu…
Quel bouton à quelle broche ? Bouton 1-16 dans cet ordre: GPIO 18. 27, 17, 04, 23, 24, 22, 05, 16, 12, 06, 13, 21, 20, 19, 26. Veuillez également vérifier les événements de pression sur le bouton de capture section dans le code plus tard.
(S'il vous plaît ne me demandez pas à quoi servaient les fils enroulés… je ne me souviens pas)
Étape 3: Facultatif: fabrication d'une carte avec des résistances de tirage vers le haut et vers le bas
Si vous n'êtes pas sûr de ce que sont les résistances pull up et pull down, vous devriez facilement trouver de nombreuses informations en ligne. Le raspi en a des intégrés ou vous pouvez en faire des externes comme je l'ai fait ici. Cette étape est facultative car je ne pense pas que vous en ayez vraiment besoin.
Alors pourquoi je l'ai fait ? Parfois, la musique commençait à jouer lorsque j'allumais/éteignais les appareils électroménagers de l'appartement. J'ai d'abord pensé qu'il captait des ondes électromagnétiques ou quelque chose du genre. J'ai donc ajouté les résistances pull-up/down… Comme cela n'améliorait pas la situation, j'ai ajouté des condensateurs en plus. Cela n'a toujours pas aidé… la prochaine chose que je voulais essayer était de couvrir l'intérieur de la boîte avec du papier d'aluminium comme blindage. Comme le problème s'est arrêté quand nous avons déménagé, je n'ai jamais essayé ça… Alors quel était le problème ? Je ne sais pas… c'était peut-être des variations dans la ligne électrique ?
Conclusion: je vous conseillerais d'abord de simplement connecter les boutons directement (vous verrez dans le code plus tard quel bouton va sur quelle broche) et de ne faire cette étape que si vous rencontrez des problèmes. J'espère que vous pouvez voir sur les photos ci-dessus comment j'ai fait cela. En gros il y a une barre à putt sur le header au milieu puis de chaque côté j'ai connecté les deux résistances et les câbles des boutons en une rangée.
Étape 4: Le code Python
Ci-joint vous trouverez le code (en python) qui gère la musicbox. J'ai ajouté pas mal de commentaires donc j'espère que c'est explicite. Juste au cas où voici une explication rapide. Il est préférable de commencer à lire la section des variables en haut, puis de passer tout en bas.
En bas, vous trouverez une boucle qui s'exécute tout le temps. Il vérifie d'abord si une certaine séquence de boutons a été enfoncée - c'était ma façon d'utiliser un certain contrôle parental. Ensuite, il y a les fonctions qui jouent la musique.
Au-dessus de la boucle principale, vous trouverez des détections d'événements - celles-ci sont exécutées si l'un des boutons est enfoncé. Chaque bouton appelle la fonction ButtonPress en passant un identifiant.
Alors comment lui faire jouer la musique ? Pour faire simple, je viens de générer un dossier pour chaque bouton. Quels que soient les mp3 que vous mettez dans ces dossiers, la fonction s'ajoute à la liste de lecture.
Veuillez noter que si vous n'avez pas utilisé de résistances physiques de tirage, vous devrez modifier la section avec la numérotation BCM en ceci:
# configuration à l'aide de la numérotation BCMGPIO.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)
Étape 5: Configuration de votre Rapsi
Il faudra aussi bien sûr mettre en place le raspi… J'ai juste utilisé l'installation standard de Noop. Je suis sûr que vous trouverez des tonnes d'instructions sur la façon de le faire…
Pour utiliser python, vous devrez "sudo apt-get install python-dev"
Mon programme utilise VLC pour jouer la musique:
- J'ai obtenu la connexion Python d'ici (j'espère qu'elle est toujours à jour):
- Ensuite, je l'ai installé en utilisant "sudo python setup.py install"
- Puis installé VLC "sudo apt-get install vlc"
- Collez les fichiers vlc.py et vlc.pyc dans le même répertoire que votre programme
- Plus d'informations sur
Mes notes indiquent que vous devez également installer les éléments suivants pour accéder aux broches GPIO à partir de python (mais cela peut être obsolète):
- wget https://www.airspayce.com/mikem/bcm2835/bcm2835-1…. zxvf bcm2835-1.xx.tar.gz
- cd bcm2835-1.xx
- ./configurer
- Fabriquer
- sudo faire vérifier
- sudo faire installer
Pour faire fonctionner votre programme, vous devrez appeler "sudo python yourfilename.py".
Conseillé:
Station d'accueil pour smartphone pour ordinateur portable à partir d'un Macbook cassé ou de tout autre ordinateur portable… : 6 étapes
Station d'accueil pour smartphone pour ordinateur portable à partir d'un Macbook cassé ou de tout autre ordinateur portable…: Ce projet a été réalisé car il peut être pratique d'utiliser toute la puissance des smartphones réels comme un ordinateur ordinaire
Gérez 100 appareils dans les applications, les organisations, les rôles et les utilisateurs Ubidots : 11 étapes
Gérer 100 appareils dans les applications, les organisations, les rôles et les utilisateurs d'Ubidots : à cette occasion, j'ai décidé de tester la fonctionnalité de la plate-forme IoT Ubidots pour la gestion des utilisateurs dans le cas où elle aurait de nombreux appareils pour plusieurs organisations ou entreprises sous la même Plateforme Ubidots. Information du maire : vous
Meilleures LED RVB pour tout projet (WS2812, Aka NeoPixels): 6 étapes (avec images)
Meilleures LED RVB pour tout projet (WS2812, Aka NeoPixels) : Lorsque nous travaillons avec des LED, nous aimons souvent contrôler leur état (marche/arrêt), leur luminosité et leur couleur. Il existe de nombreuses façons de procéder, mais aucune n'est une solution aussi compacte que la LED RVB WS2812. Dans son petit emballage de 5 mm x 5 mm
Bandeaux lumineux de couronne de fleurs pour les festivals de musique d'été, les mariages, les occasions spéciales : 8 étapes (avec photos)
Bandeaux lumineux à couronne de fleurs pour les festivals de musique d'été, les mariages et les occasions spéciales : illuminez la nuit avec un magnifique bandeau à fleurs LED ! Parfait pour tous les mariages, festivals de musique, bals de finissants, costumes et occasions spéciales ! Kits avec tout ce dont vous avez besoin pour créer le vôtre bandeau lumineux sont maintenant disponibles dans le magasin Wearables Workshop
Convainquez-vous d'utiliser simplement un onduleur 12 V vers ligne CA pour les guirlandes lumineuses à LED au lieu de les recâbler pour 12 V. : 3 étapes
Convainquez-vous de simplement utiliser un onduleur 12V vers ligne CA pour les guirlandes lumineuses à LED au lieu de les recâbler pour 12V. : Mon plan était simple. Je voulais couper une guirlande lumineuse à LED murale en morceaux, puis la recâbler pour qu'elle fonctionne en 12 volts. L'alternative était d'utiliser un onduleur, mais nous savons tous qu'ils sont terriblement inefficaces, n'est-ce pas ? Droit? Ou sont-ils?