Πίνακας περιεχομένων:
- Βήμα 1: Τα στοιχεία του υπολογιστή
- Βήμα 2: Το πιάνο
- Βήμα 3: Συναρμολόγηση
- Βήμα 4: Τεχνικές προκλήσεις και μελλοντικές σκέψεις
Βίντεο: Synesthesia Player Piano: 4 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Αυτό το πιάνο παίζει μουσική χρησιμοποιώντας έναν έγχρωμο τροχό και μια κάμερα! Οι εικόνες καταγράφονται από την κάμερα, επεξεργάζονται και ερμηνεύονται ως μουσικές νότες. Αυτή τη στιγμή έχει προγραμματιστεί να παίζει ομοιοκαταληξίες που μπορούν να αλλάξουν ανεβάζοντας ένα νέο σκίτσο arduino που καθορίζει ποιες νότες πρέπει να παίζονται (Ποια χρώματα πρέπει να εμφανίζονται στην κάμερα).
Ο ενσωματωμένος υπολογιστής Linux ξεκινά μια υπηρεσία κατά την εκκίνηση που λαμβάνει μια φωτογραφία με μια κάμερα, υπολογίζει μια συνάρτηση των τιμών RGB στην εικόνα και εξάγει έναν ήχο με βάση την τιμή επιστροφής της συνάρτησης. Πριν από την αναπαραγωγή του ήχου, στέλνει ένα σήμα που λέει σε ένα Arduino να περιστρέψει ένα σερβο, παρουσιάζοντας το χρώμα που αντιστοιχεί στην επόμενη νότα που θα παιχτεί. Στη συνέχεια, ο βρόχος ξεκινά ξανά, λαμβάνεται μια φωτογραφία, ο χρωματικός τροχός περιστρέφεται και ένας ήχος αναπαράγεται άπειρα.
Αυτό το έργο είναι ένας διασκεδαστικός τρόπος για την ενσωμάτωση της μουσικής, του σύγχρονου προγραμματισμού συστημάτων Linux, του προγραμματισμού μικροελεγκτών, του doodling inkscape, της κοπής με λέιζερ και του επαναπροσδιορισμού ορισμένων άχρηστων κουτιών από χαρτόνι.
Όλοι οι κωδικοί και τα inkscape SVG είναι διαθέσιμα στο github στη διεύθυνση:
github.com/melvyniandrag/pyMusic
Υλικά που χρησιμοποιούνται:
- Κενές άσπρες ετικέτες
- Κουτί από χαρτόνι
- Κάμερα Web
- Κραγιόνια
- Arduino
- Beagleboard-xM
- Καλώδια
- Σειριακό καλώδιο
- Βασικές γνώσεις επεξεργασίας εικόνας και μουσικής
Βήμα 1: Τα στοιχεία του υπολογιστή
Στο πλοίο θα χρειαστείτε έναν μικρό υπολογιστή με δυνατότητα Linux, όπως ένα Raspberry Pi. Χρησιμοποίησα ένα παλιό BeagleBoard-xM επειδή έτυχε να το βάλω και είχα ήδη ένα λειτουργικό σύστημα στην κάρτα SD. Μπορείτε να χρησιμοποιήσετε οτιδήποτε, εφόσον μπορεί να χειριστεί μια κάμερα web, μπορεί να εκτελέσει το OpenCV (τη βιβλιοθήκη όρασης του υπολογιστή που χρησιμοποιείται για τη λήψη και την επεξεργασία εικόνων του έγχρωμου τροχού) και διαθέτει υποδοχή εξόδου ήχου.
Ρύθμιση του λειτουργικού συστήματος για την εκτέλεση του κώδικα python που καταγράφει εικόνες κατά την εκκίνηση μετά από ένα εκπαιδευμένο σύστημα. Για να εκτελεστεί το σενάριο, θα πρέπει να sudo apt-get install python-pyaudio python-opencv για να λάβετε τις υποδεικνυόμενες βιβλιοθήκες. Θα χρειαστεί επίσης να εγκαταστήσετε pip numpy pyserial για να αποκτήσετε αυτές τις βιβλιοθήκες. Το pyaudio χρησιμοποιείται για την αναπαραγωγή ήχων, το opencv χρησιμοποιείται για τη λήψη και επεξεργασία εικόνας, το numpy χρησιμοποιείται επίσης για την επεξεργασία εικόνας και το pyserial χρειάζεται για την επικοινωνία με το Arduino.
Το Arduino χρησιμοποιείται για την περιστροφή του σερβοκινητήρα στον οποίο είναι τοποθετημένος ο έγχρωμος τροχός. Εάν είχατε ένα Raspberry Pi, θα μπορούσατε να χρησιμοποιήσετε τις καρφίτσες GPIO εκεί και να αφήσετε έξω το Arduino, αλλά θα πρέπει να τροποποιήσετε τον κώδικα Python.
Στις εικόνες μπορείτε να δείτε τα τεχνολογικά κότσια της λειτουργίας και μερικά αποσπάσματα κώδικα.
Βήμα 2: Το πιάνο
Έφτιαξα το πιάνο από χαρτόνι από μερικά παλιά κουτιά που είχα. Έχω την τύχη να ζω κοντά σε έναν κατασκευαστικό χώρο που διαθέτει κόφτη λέιζερ. Για έναν ολόκληρο χρόνο αναρωτιόμουν για ποιο σκοπό θα ήθελε ένας κόφτης λέιζερ, και αποδείχθηκε ότι τελικά βρήκα τη χρήση του.
Μέτρησα τον υπολογιστή, το arduino και το σερβο, οπότε ήξερα πόσο χώρο χρειάζομαι, σχεδίασα τα μέρη του πιάνου σε inkscape και τα έκοψα στον κόφτη λέιζερ. (Επεξεργασία: Έμεινα από χαρτόνι για να κάνω το περίβλημα να κρατά τον υπολογιστή και το arduino και έτσι δεν τα έβαλα. Βρίσκονται στο εξωτερικό της θήκης. Δεν πειράζει, θα μπορούσα να είχα πάρει άλλο κουτί από κάπου, αλλά δεν έγινε δεν έχει σημασία τελικά.)
Τα κομμάτια τοποθετήθηκαν μαζί με εποξειδικό.
Βήμα 3: Συναρμολόγηση
Ακολουθούν μερικές εικόνες από το πιάνο που συναρμολογείται και χρωματίζεται. Ο εκτυπωτής ήταν χωρίς μελάνι, οπότε δεν μπορούσα να εκτυπώσω τα χρώματα στις λευκές ετικέτες όπως είχα προγραμματίσει. Έτσι χρησιμοποίησα τα κραγιόνια της κόρης μου. Και δεν βρήκα ένα μαχαίρι xacto για να κόψω την ετικέτα στο σχήμα του χαρτονιού, οπότε χρησιμοποίησα ένα μαχαίρι μπριζόλας και έβαλα κάτι προστατευτικό στον πάγκο της κουζίνας. Χρησιμοποιήστε αυτό που έχετε!
Βήμα 4: Τεχνικές προκλήσεις και μελλοντικές σκέψεις
Ένα δύσκολο κομμάτι αυτού του έργου ήταν η ανάγνωση των κατάλληλων τιμών RGB από την κάμερα. Η κάμερα web που διαθέτω έχει απίστευτα φωτεινά LED που δεν ξέρω πώς να απενεργοποιήσω στο Linux. Νομίζω ότι υπάρχει ένα πρόγραμμα οδήγησης Windows που σας επιτρέπει να το ενεργοποιήσετε και να το απενεργοποιήσετε. Πειραματίστηκα να κολλήσω τα LED με ηλεκτρική ταινία και να τα αφήσω ανοιχτά. Δοκίμασα επίσης το λογισμικό για ανθεκτικότητα, όχι μόνο δείχνοντάς το έγχρωμο χαρτί, αλλά και γράφοντας έναν μικρό ιστότοπο που δείχνει χρώματα.
Οι ήχοι που παράγονται από τον υπολογιστή μερικές φορές έχουν σκάσει και τρίζουν, και αυτό προέρχεται από το γεγονός ότι έχω πολύ μικρή εμπειρία στον προγραμματισμό ήχου Linux. Η βιβλιοθήκη pyaudio εκπέμπει ένα σωρό παράπονα σχετικά με το ότι το JACK δεν είναι εγκατεστημένο στον υπολογιστή, αλλά από προεπιλογή το JACK δεν θέλει να τρέχει ακέφαλο (χωρίς επιτραπέζιο υπολογιστή gui και οθόνη). Αυτό είναι ένα έργο προγραμματισμού που νόμιζα ότι ήταν μια τελειοποίηση, αλλά δεν ήταν απαραίτητο για να εκφράσω την ουσία του πιάνου που είχα στο μυαλό μου.
Είχα σκεφτεί να χρησιμοποιήσω μια μανιβέλα για να αλλάξω τα χρώματα και ίσως να τα έχω σε έναν πλάστη, αλλά αυτό εισάγει τις δικές του επιπλοκές. Το σερβο είναι λίγο θορυβώδες, αλλά λειτουργεί καλά προς το παρόν.
Το πιάνο του παίκτη έχει προγραμματιστεί για να παίζει μόνο 4 νότες. Αυτό συμβαίνει επειδή το σερβί μετακινείται μόνο 180 μοίρες, οι περισσότερες ρίμες για παιδικούς σταθμούς μπορούν να παιχτούν με μόνο 3-4 νότες και δεν ήθελα ο χρωματικός τροχός να συσσωρεύεται με περιοχές χρωμάτων, προκαλώντας πιθανώς σύγχυση στην κάμερα. Έτσι, μέσω ενός συνδυασμού μουσικής τύχης και τεχνικών περιορισμών, 4 νότες είναι εντάξει.
Συνιστάται:
Arduino Piezo Buzzer Piano: 5 Βήματα
Arduino Piezo Buzzer Piano: Εδώ θα φτιάξουμε ένα πιάνο Arduino που χρησιμοποιεί έναν πιεζοφωνητή ως ηχείο. Αυτό το έργο είναι εύκολα επεκτάσιμο και μπορεί να λειτουργήσει με περισσότερες ή λιγότερες σημειώσεις, ανάλογα με εσάς! Θα το κατασκευάσουμε με τέσσερα μόνο κουμπιά/κλειδιά για απλότητα. Αυτό είναι ένα διασκεδαστικό και εύκολο έργο
Pi-aser a Laser Piano: 9 Βήματα
Pi-aser a Laser Piano: Γεια, είμαι φοιτητής Πολυμέσων & Δημιουργική τεχνολογία στο Howest Belgium. Θέλατε πάντα να παίζετε μουσική αλλά όχι όπως όλοι; Τότε αυτό μπορεί να είναι κάτι για εσάς! Έφτιαξα ένα πιάνο από λέιζερ. Απλά πρέπει να βάλεις τα δάχτυλά σου πάνω
Makey Makey Piano Player: 7 Βήματα
Makey Makey Piano Player: Ας ξεκινήσουμε λοιπόν. συνολικά αυτή η ιδέα θα διαρκέσει περίπου 30 λεπτά για να γίνει ολόκληρο το έργο, αλλά όταν πρόκειται για τη διαδικασία κατασκευής πρέπει να βεβαιωθείτε ότι διαβάζετε τα βήματα προσεκτικά, έτσι κι αλλιώς ας ξεκινήσουμε αυτό το πράγμα
Air Piano Using IR Proximity Sensor, Speaker and Arduino Uno (Upgraded/part-2): 6 βήματα
Air Piano Using IR Proximity Sensor, Speaker and Arduino Uno (Upgraded/part-2): Αυτή είναι μια αναβαθμισμένη έκδοση του προηγούμενου έργου air piano;. Εδώ χρησιμοποιώ ένα ηχείο JBL ως έξοδο. Έχω συμπεριλάβει επίσης ένα κουμπί ευαίσθητο στην αφή για να αλλάξετε τις λειτουργίες σύμφωνα με τις απαιτήσεις. Για παράδειγμα- Λειτουργία σκληρού μπάσου, Κανονική λειτουργία, Υψηλή θερμοκρασία
Συνδέστε ένα MP3 Player σε ένα Tape Player: 6 βήματα (με εικόνες)
Σύνδεση ενός MP3 Player σε ένα Tape Player: Πώς να συνδέσετε ένα mp3 player ή άλλη στερεοφωνική πηγή, σε ένα κασετόφωνο για να ακούσετε μουσική