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

Synesthesia Player Piano: 4 Βήματα
Synesthesia Player Piano: 4 Βήματα

Βίντεο: Synesthesia Player Piano: 4 Βήματα

Βίντεο: Synesthesia Player Piano: 4 Βήματα
Βίντεο: Für Elise - Beethoven | EASY Piano Tutorial 2024, Ιούλιος
Anonim
Image
Image
Synesthesia Player Πιάνο
Synesthesia Player Πιάνο
Synesthesia Player Πιάνο
Synesthesia Player Πιάνο

Αυτό το πιάνο παίζει μουσική χρησιμοποιώντας έναν έγχρωμο τροχό και μια κάμερα! Οι εικόνες καταγράφονται από την κάμερα, επεξεργάζονται και ερμηνεύονται ως μουσικές νότες. Αυτή τη στιγμή έχει προγραμματιστεί να παίζει ομοιοκαταληξίες που μπορούν να αλλάξουν ανεβάζοντας ένα νέο σκίτσο arduino που καθορίζει ποιες νότες πρέπει να παίζονται (Ποια χρώματα πρέπει να εμφανίζονται στην κάμερα).

Ο ενσωματωμένος υπολογιστής Linux ξεκινά μια υπηρεσία κατά την εκκίνηση που λαμβάνει μια φωτογραφία με μια κάμερα, υπολογίζει μια συνάρτηση των τιμών RGB στην εικόνα και εξάγει έναν ήχο με βάση την τιμή επιστροφής της συνάρτησης. Πριν από την αναπαραγωγή του ήχου, στέλνει ένα σήμα που λέει σε ένα Arduino να περιστρέψει ένα σερβο, παρουσιάζοντας το χρώμα που αντιστοιχεί στην επόμενη νότα που θα παιχτεί. Στη συνέχεια, ο βρόχος ξεκινά ξανά, λαμβάνεται μια φωτογραφία, ο χρωματικός τροχός περιστρέφεται και ένας ήχος αναπαράγεται άπειρα.

Αυτό το έργο είναι ένας διασκεδαστικός τρόπος για την ενσωμάτωση της μουσικής, του σύγχρονου προγραμματισμού συστημάτων Linux, του προγραμματισμού μικροελεγκτών, του doodling inkscape, της κοπής με λέιζερ και του επαναπροσδιορισμού ορισμένων άχρηστων κουτιών από χαρτόνι.

Όλοι οι κωδικοί και τα inkscape SVG είναι διαθέσιμα στο github στη διεύθυνση:

github.com/melvyniandrag/pyMusic

Υλικά που χρησιμοποιούνται:

  1. Κενές άσπρες ετικέτες
  2. Κουτί από χαρτόνι
  3. Κάμερα Web
  4. Κραγιόνια
  5. Arduino
  6. Beagleboard-xM
  7. Καλώδια
  8. Σειριακό καλώδιο
  9. Βασικές γνώσεις επεξεργασίας εικόνας και μουσικής

Βήμα 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 νότες είναι εντάξει.

Συνιστάται: