Πίνακας περιεχομένων:

A Juke Box for the Very Young Aka Raspi-Music-Box: 5 Steps
A Juke Box for the Very Young Aka Raspi-Music-Box: 5 Steps

Βίντεο: A Juke Box for the Very Young Aka Raspi-Music-Box: 5 Steps

Βίντεο: A Juke Box for the Very Young Aka Raspi-Music-Box: 5 Steps
Βίντεο: Using a Raspberry Pi to upgrade a broken jukebox! 2024, Νοέμβριος
Anonim
Ένα Juke Box για τους πολύ μικρούς… Aka Raspi-Music-Box
Ένα Juke Box για τους πολύ μικρούς… Aka Raspi-Music-Box

Εμπνευσμένο από το διδακτικό "Raspberry-Pi-based-RFID-Music-Robot" που περιγράφει ένα μουσικό πρόγραμμα αναπαραγωγής ROALDH για το 3χρονο παιδί του, αποφάσισα να φτιάξω ένα juke box για ακόμη μικρότερα παιδιά μου. Είναι βασικά ένα κουτί με 16 κουμπιά και ένα Raspi 2 στο εσωτερικό του, το οποίο αναπαράγει τραγούδια μέσω του στερεοφωνικού που είναι προσαρτημένο κάθε φορά που πατάτε οποιοδήποτε από τα κουμπιά.

Ο, τι χρειάζεσαι:

  • Ένα Raspberry Pi με τροφοδοτικό
  • 16 κουμπιά - το είδος που κλείνουν προσωρινά όταν πιέζεστε (ή όσα κουμπιά θέλετε) - συμβουλεύουν: όχι περισσότερο από ό, τι έχετε καρφίτσες εισόδου…;)) Χρησιμοποίησα αυτό: κουμπί 0,50 €)
  • λίγο λεπτό σύρμα
  • μία αντίσταση 10kOhm και μία αντίσταση 1kOhm ανά κουμπί (εκτός αν θέλετε να βασιστείτε στις εσωτερικές αντιστάσεις έλξης/κάτω του Raspi, τότε μπορείτε να το παραλείψετε)
  • stripboard
  • γυναικεία κεφαλίδα (2x20 pin)
  • λίγο λεπτό ξύλο για να φτιάξω το κουτί (χρησιμοποίησα 2 φύλλα 5x400x400mm μπροστά και πίσω συν μια λωρίδα 2000x50x5mm για να κόψω τις πλευρές από)
  • 24 βίδες και λίγη κόλλα για να ενώσετε το κουτί
  • λίγο χρώμα για να γίνει πολύχρωμο
  • καλώδιο ήχου για σύνδεση του Raspi στα στερεοφωνικά ή ενεργά ηχεία σας (υποδοχή σε ό, τι χρειάζεστε στο άλλο άκρο)
  • εργαλεία: συγκολλητικό σίδερο, κοπτήρες σύρματος, ιδανικά απογυμνωτής σύρματος, πριόνι, τρυπάνι, κατσαβίδι, πινέλο…
  • προαιρετικό: Κάρτα ήχου USB εάν θέλετε η μουσική να ακούγεται καλή
  • προαιρετικό: κάρτα wifi εάν θέλετε να συνδεθείτε σε ένα παλιό Raspi χωρίς να ανοίξετε το κουτί

Παρακαλώ σημειώστε ότι αυτό είναι το πρώτο μου διδάξιμο και έκανα αυτό το έργο πριν από πολύ λίγο καιρό … το κάνω καθώς συνεχίζω να με ρωτάνε για τον τρόπο αναπαραγωγής των τραγουδιών VLC στην ενότητα σχολίων του διδακτέου που αναφέρθηκε παραπάνω (ο παίκτης χρησιμοποιούσε εκεί δεν υποστηρίζεται πλέον από όσο γνωρίζω). Ξέρω ότι αυτές οι οδηγίες δεν είναι πολύ καλές, αλλά ελπίζω ότι είναι δυνατόν να ακολουθήσετε … αν όχι, παρακαλούμε κοιτάξτε επίσης το αρχικό εκπαιδευτικό και αφήστε σχόλια παρακάτω που μου λένε πού κολλήσατε … Στη συνέχεια θα προσπαθήσω να βελτιωθώ…

Βήμα 1: Φτιάξτε ένα κουτί…

Φτιάξτε ένα κουτί…
Φτιάξτε ένα κουτί…
Φτιάξτε ένα κουτί…
Φτιάξτε ένα κουτί…

Έτσι, το πρώτο πράγμα που πρέπει να κάνετε είναι να φτιάξετε ένα κουτί … Έκανα το δικό μου αρκετά μεγάλο γιατί άφησα λίγο χώρο κάτω από κάθε κουμπί για μια ετικέτα … Σχεδίαζα να εκτυπώσω μερικές φωτογραφίες για κάθε τραγούδι, να τις πλαστικοποιήσω ίσως και να τις επισημάνω μπλε κάτω από το κουμπιά … μάθημα: από τη στιγμή που εκτυπώνετε τις ετικέτες, τα παιδιά σας γνωρίζουν καλά όλα τα τραγούδια και σας απαιτούν να αλλάξετε κάποια … Έτσι την επόμενη φορά θα έφτιαχνα ένα μικρότερο κουτί και θα έβαζα τα κουμπιά πιο κοντά…

Έτσι, πίσω στο κουτί μου … αγόρασα δύο φύλλα κόντρα πλακέ 400 x 400 x 5 mm και μια λωρίδα 2000 x 50 x 5 mm… τότε το πρώτο, πιο σημαντικό βήμα: η κόρη μου είχε τη δυνατότητα να ζωγραφίσει τον μπροστινό πίνακα με την επιλογή της χρώματα …:) Όσο ζωγράφιζε έκοψα το μακρύ κομμάτι σε 5 λωρίδες - δύο μήκους 400 mm, δύο μήκους 390 mm και τα αριστερά …;) αυτά τα κόλλησα στο πίσω μέρος του φρεσκοβαμμένου φύλλου … μετά άνοιξα 12 τρύπες από έξω και βιδώθηκε σε 12 βίδες … Στη συνέχεια ευθυγράμμισα προσεκτικά το άλλο φύλλο στο πίσω μέρος, άνοιξα άλλες 12 οπές για άλλες 12 βίδες για να κλείσω το κουτί μόλις τελειώσω. (Ξέρω ότι 12 βίδες μπορεί να είναι λίγο υπερβολικές, αλλά τα παιδιά είναι δυνατά …:))

Από τη μία πλευρά χρησιμοποίησα ένα αρχείο (μπορείτε να χρησιμοποιήσετε ένα dremel για να επιταχύνετε τα πράγματα) για να κόψετε λίγο ξύλο για να περάσετε από τα καλώδια. Στη συνέχεια άνοιξα επίσης τις οπές για τα 16 κουμπιά και τα εγκατέστησα.

Βήμα 2: Συνδέστε τα κουμπιά

Συρματώστε τα κουμπιά
Συρματώστε τα κουμπιά

Έτσι τώρα έχετε ένα κουτί με 16 κουμπιά … στη συνέχεια πρέπει να τα συνδέσετε … Συνδέω έναν από τους πόλους τους στη γείωση με τρόπο αλυσίδας μαργαρίτας. Στην ιδανική περίπτωση, θα έχετε λίγους συνδετήρες για να το κάνετε … Τα κόλλησα, κάτι που ήταν ένας μεγάλος εφιάλτης και θα προκαλέσει ακόμη περισσότερα προβλήματα αν χρειαστεί ποτέ να βγάλω κάποιο από τα κουμπιά. Στη συνέχεια, στερέωσα τους άλλους πόλους τους σε ένα κόκκινο σύρμα ο καθένας … Αυτά τα κόλλησα στη συνέχεια στην πλακέτα σύνδεσης που μπορείτε να δείτε να βρίσκεται στη μέση…

Ποιο κουμπί σε ποια καρφίτσα; Κουμπί 1-16 με αυτή τη σειρά: GPIO 18. 27, 17, 04, 23, 24, 22, 05, 16, 12, 06, 13, 21, 20, 19, 26. Παρακαλούμε ελέγξτε επίσης τα συμβάντα "catch button" ενότητα "στον κώδικα αργότερα.

(Παρακαλώ μην με ρωτήσετε για ποιο σκοπό ήταν τα τυλιγμένα καλώδια… δεν θυμάμαι)

Βήμα 3: Προαιρετικό: Κατασκευή σανίδας με αντιστάσεις Pull Up and Pull Down

Προαιρετικά: Δημιουργία σανίδας με αντιστάσεις Pull Up and Pull Down
Προαιρετικά: Δημιουργία σανίδας με αντιστάσεις Pull Up and Pull Down
Προαιρετικά: Δημιουργία σανίδας με αντιστάσεις Pull Up and Pull Down
Προαιρετικά: Δημιουργία σανίδας με αντιστάσεις Pull Up and Pull Down

Εάν δεν είστε σίγουροι τι είναι οι αντιστάσεις έλξης προς τα πάνω και προς τα κάτω, θα πρέπει εύκολα να βρείτε πολλές πληροφορίες στο διαδίκτυο. Το raspi έχει μερικά ενσωματωμένα ή μπορείτε να κάνετε εξωτερικά όπως έκανα εδώ. Αυτό το βήμα είναι προαιρετικό καθώς δεν νομίζω ότι το χρειάζεστε πραγματικά.

Γιατί λοιπόν το έκανα; Μερικές φορές η μουσική άρχισε να παίζει όταν ενεργοποιούσα/απενεργοποιούσα τις συσκευές στο διαμέρισμα. Πρώτα σκέφτηκα ότι έπαιρνε ηλεκτρομαγνητικά κύματα ή κάτι τέτοιο. Πρόσθεσα, λοιπόν, τις αντιστάσεις έλξης/κάμψης … Καθώς αυτό δεν βελτίωσε την κατάσταση, πρόσθεσα επιπλέον πυκνωτές. Αυτό ακόμα δεν βοήθησε … το επόμενο πράγμα που ήθελα να δοκιμάσω ήταν να καλύψω το εσωτερικό του κουτιού με αλουμινόχαρτο ως θωράκιση. Καθώς το πρόβλημα σταμάτησε όταν μετακομίσαμε σπίτι, ποτέ δεν κατέληξα να το δοκιμάσω … Ποιο ήταν το πρόβλημα; Δεν ξέρω… μπορεί να ήταν παραλλαγές στη γραμμή ρεύματος;

Συμπέρασμα: Θα σας συμβούλευα να συνδέσετε πρώτα απλώς τα κουμπιά (θα δείτε στον κώδικα αργότερα ποιο κουμπί πηγαίνει σε ποια καρφίτσα) και να κάνετε αυτό το βήμα μόνο εάν έχετε κάποια προβλήματα. Ελπίζω ότι μπορείτε να δείτε από τις παραπάνω εικόνες πώς το έκανα αυτό. Βασικά υπάρχει μια μπάρα για τοποθέτηση στην κεφαλίδα στη μέση και στη συνέχεια σε κάθε πλευρά ένωσα τις δύο αντιστάσεις και τα καλώδια από τα κουμπιά σε μια σειρά.

Βήμα 4: Ο κώδικας Python

Επισυνάπτεται εδώ θα βρείτε τον κωδικό (σε python) που διαχειρίζεται το musicbox. Πρόσθεσα αρκετά σχόλια, οπότε ελπίζω να είναι αυτονόητο. Για την περίπτωση εδώ μια γρήγορη εξήγηση. Είναι καλύτερο να ξεκινήσετε την ανάγνωση της ενότητας μεταβλητών στο επάνω μέρος και στη συνέχεια να παραλείψετε μέχρι το κάτω μέρος.

Στο κάτω μέρος θα βρείτε έναν βρόχο, ο οποίος λειτουργεί συνεχώς. Αρχικά ελέγχει αν πατήθηκε μια συγκεκριμένη σειρά κουμπιών - αυτός ήταν ο τρόπος με τον οποίο χρησιμοποιούσα κάποιο γονικό έλεγχο. Στη συνέχεια, υπάρχουν οι λειτουργίες που παίζουν τη μουσική.

Πάνω από τον κύριο βρόχο θα βρείτε κάποιους εντοπισμούς συμβάντων - αυτοί εκτελούνται αν πατήσετε ένα από τα κουμπιά. Κάθε κουμπί καλεί τη λειτουργία ButtonPress περνώντας ένα αναγνωριστικό.

Πώς να το κάνεις λοιπόν να παίζει μουσική; Για να είναι απλό, δημιούργησα έναν φάκελο για κάθε κουμπί. Όποια mp3 και αν βάλετε σε αυτούς τους φακέλους, η λειτουργία προσθέτει στη λίστα αναπαραγωγής.

Λάβετε υπόψη, εάν δεν χρησιμοποιήσατε φυσικές αντιστάσεις έλξης, θα πρέπει να αλλάξετε το τμήμα με την αρίθμηση BCM σε αυτό:

# setup χρησιμοποιώντας αρίθμηση 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, 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: Ρύθμιση του Rapsi σας

Θα χρειαστεί επίσης να ρυθμίσετε το 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
  • ./Διαμορφώστε
  • φτιαχνω, κανω
  • sudo κάνει έλεγχο
  • sudo make install

Για να εκτελέσετε το πρόγραμμά σας, θα πρέπει να καλέσετε "sudo python yourfilename.py".

Συνιστάται: