Πίνακας περιεχομένων:
- Βήμα 1: Βιβλιοθήκες Arduino
- Βήμα 2: Επισυνάψτε οδηγούς στα πλήκτρα πιάνου
- Βήμα 3: Εγκατάσταση λογισμικού: Επιλογή A: Arduino και Hairless MIDI to Serial Bridge
- Βήμα 4: Εγκατάσταση λογισμικού: Επιλογή Β: Arduino και Python
- Βήμα 5: Εγκατάσταση λογισμικού: Επιλογή Γ: Λογισμικό συνθεσάιζερ STM32F103C και MIDI
- Βήμα 6: Παίξτε
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Αυτό είναι ένα πραγματικά απλό πιάνο χωρητικής αφής. Αγγίξτε φρούτα, κουτάκια σόδας, μπουκάλια νερό, λωρίδες αλουμινόχαρτου κ.λπ. και θα έχετε πολυφωνική μουσική πιάνου από τον υπολογιστή σας. Τώρα που γράφτηκε το λογισμικό, το έργο δεν θα χρειαστεί περισσότερο από 10 λεπτά για να συνδυαστεί με την έκδοση Arduino.
Χρειάζεσαι:
- ένα Arduino (Mega για 8 κλειδιά, Uno για 6 κλειδιά) ή ένα μαύρο χάπι STM32F103C8 (2 $ στο Aliexpress) συν έναν μετατροπέα UART-σε USB (π.χ. Arduino ή CH340)
- καλώδιο USB
- λίγο αλουμινόχαρτο
- δοκιμαστικά κλιπ ιδανικά, αλλά άλτες και συνδετήρες θα το κάνουν (ιδέα για αυτό από εδώ)
- φρούτα, ή ζαχαροπλαστική, ή κομμάτια χαρτιού με περιοχές χρωματισμένες με μολύβι
- υπολογιστή.
Δεν απαιτούνται πρόσθετα στοιχεία, καθώς αυτό χρησιμοποιεί κωδικό από τη λαμπρή βιβλιοθήκη ADCTouch του martin2250 και το Arduino στέλνει εντολές MIDI μέσω σειριακού στον υπολογιστή. Η αναπαραγωγή ήχου του Arduino γίνεται είτε μέσω ενός σεναρίου python που περιλαμβάνεται στον υπολογιστή, είτε χωρίς μαλλιά-μεσαία σειρά.
Εάν χρησιμοποιείτε τον πίνακα ανάπτυξης STM32F103C8, τότε είναι ακόμα πιο ωραίο: το πιάνο γίνεται ένας πραγματικός ελεγκτής USB MIDI, χωρίς την ανάγκη για ενδιάμεση σειρά χωρίς μαλλιά.
Σημείωση: Για να αποφύγετε ζημιά στο Arduino/STM32F1 από στατικό ηλεκτρισμό, ειδικά σε ξηρή μέρα ή σε χαλί, προτείνω να μην αγγίζετε αλουμινόχαρτο ή δοκιμαστικά κλιπ όταν η συσκευή λειτουργεί. Αντίθετα, αγγίξτε τα φρούτα, το ζαχαροπλαστείο κλπ., Των οποίων η αντίσταση θα πρέπει να παρέχει κάποια προστασία ESD
Βήμα 1: Βιβλιοθήκες Arduino
Στο Arduino IDE, επιλέξτε Sketch | Συμπεριλάβετε τη Βιβλιοθήκη | Διαχειριστής Βιβλιοθήκης. Αναζήτηση για το ADCTouchSensor μου. Εγκαταστήστε τη βιβλιοθήκη.
Στη συνέχεια, επιλέξτε Αρχείο | Παραδείγματα | ADCTouchSensor | CapacitivePiano.
Εάν διαθέτετε Arduino, συνδέστε το Arduino στη θύρα USB του υπολογιστή σας και ανεβάστε το σκίτσο CapacitivePiano στο Uno ή στο Mega. Το σκίτσο θα στείλει δεδομένα στον υπολογιστή μέσω σειριακού USB για το ποιος από τους 8 (Mega) ή 6 (Uno) χωρητικούς αισθητήρες ενεργοποιήθηκε.
Εάν διαθέτετε STM32F103C8, εγκαταστήστε πρώτα το πρόγραμμα εκκίνησης και ρυθμίστε το Arduino IDE για αυτό (με τον κλάδο μου του κλάδου addMidiHID) ακολουθώντας τα τρία πρώτα βήματα εδώ. Στη συνέχεια, επιστρέψτε στον Διαχειριστή βιβλιοθήκης και αναζητήστε τη βιβλιοθήκη USBHID_stm32f1. Εγκαταστήστε το.
Βήμα 2: Επισυνάψτε οδηγούς στα πλήκτρα πιάνου
Τρέξτε καλώδια από τις καρφίτσες A0-A7 (A0-A5 στο Uno) στο Arduino ή στο STM32F103C8 σε ό, τι θέλετε να λειτουργεί ως πλήκτρα πιάνου. Για παράδειγμα, χρησιμοποίησα βραχυκυκλωτήρες με κλιπ αλιγάτορα ή κλιπ δοκιμών που πήγαιναν σε κομμάτια αλουμινόχαρτου, καθένα από τα οποία έβαζα είτε ένα κουτάκι σόδα είτε ένα πορτοκάλι ως κλειδί. Το αλουμινόχαρτο μπορεί να χρησιμοποιηθεί ως κλειδί απευθείας. Or μπορεί κάποιος να κολλήσει ένα σύρμα σε ένα κομμάτι φρούτων ή λαχανικών ή ζαχαροπλαστικής.
Βήμα 3: Εγκατάσταση λογισμικού: Επιλογή A: Arduino και Hairless MIDI to Serial Bridge
Μπορείτε να κατεβάσετε και να εγκαταστήσετε το Hairless MIDI to Serial Bridge (Win/OSX/Linux) για να συνδέσετε την σειριακή έξοδο USB του Arduino με το λογισμικό συνθεσάιζερ του υπολογιστή σας.
Εάν έχετε Windows 7 ή νεότερα, μπορείτε να χρησιμοποιήσετε το ενσωματωμένο Microsoft Wavetable GS Synth, οπότε το μόνο που χρειάζεστε για να εγκαταστήσετε είναι το Hairless. Κάποιο άλλο λογισμικό αναπαραγωγής θα απαιτήσει loopMIDI.
Σε άλλα συστήματα, μπορεί να χρειαστείτε ένα συνθετικό MIDI όπως το VirtualMidiSynth ή το Garageband. Μπορείτε επίσης να χρησιμοποιήσετε το VirtualMidiSynth στα Windows αν θέλετε.
Βήμα 4: Εγκατάσταση λογισμικού: Επιλογή Β: Arduino και Python
Μπορείτε επίσης να χρησιμοποιήσετε ένα απλό σενάριο Python που περιλαμβάνεται και αναπαράγει σημειώσεις MIDI.
Βεβαιωθείτε ότι έχετε εγκαταστήσει την Python στον υπολογιστή σας. Είτε 2.7 είτε 3.x θα κάνει.
Βεβαιωθείτε ότι έχετε εγκαταστήσει το πακέτο pygame Python. Εάν όχι, εκτελέστε αυτό από τη γραμμή εντολών:
python -m pip εγκατάσταση pygame
Μάθετε ποια είναι η σειριακή θύρα του Arduino. Το Arduino IDE θα έχει τις σειριακές θύρες που αναφέρονται στην ενότητα Εργαλεία | Λιμάνι.
Στο πακέτο CapacitivePiano που κατεβάσατε, θα βρείτε το σενάριο music.py που είναι η πλευρά του υπολογιστή του έργου.
Βήμα 5: Εγκατάσταση λογισμικού: Επιλογή Γ: Λογισμικό συνθεσάιζερ STM32F103C και MIDI
Εάν διαθέτετε το STM32F103C, μπορείτε να χρησιμοποιήσετε οποιοδήποτε λογισμικό λειτουργεί με χειριστήριο πληκτρολογίου MIDI.
Σε υπολογιστή, χρησιμοποιώ το Virtual MIDI Piano Keyboard (VMPK). Με το STM32F103C συνδεδεμένο, επιλέξτε Επεξεργασία | Συνδέσεις MIDI | Εισαγάγετε τη σύνδεση MIDI και, στη συνέχεια, επιλέξτε Maple MIDI ή Diro Synth.
Σε συσκευή Android, έχω χρησιμοποιήσει με επιτυχία (με καλώδιο USB OTG) Common Analog Synthesizer και Synth DX7 Piano.
Βήμα 6: Παίξτε
Συνδέστε το Arduino με το σκίτσο CapacitivePiano στον υπολογιστή. Μην αγγίζετε κανένα από τα "κουμπιά" μέχρι να ενεργοποιηθεί μόνο η λυχνία LED τροφοδοσίας, για να επιτρέψετε τη βαθμονόμηση των χωρητικών κουμπιών.
Για την επιλογή Hairless, εκτελέστε τη γέφυρα MIDI χωρίς μαλλιά, επιλέξτε τη σειριακή θύρα από την αναπτυσσόμενη λίστα. Στη συνέχεια, επιλέξτε ένα συνθεσάιζερ. Στα Windows, αν επιλέξετε Microsoft Wavetable GS Synth, όλα θα πρέπει να λειτουργούν.
Αν θέλετε να χρησιμοποιήσετε το σενάριο Python, βεβαιωθείτε ότι βρίσκεστε στον κατάλογο όπου έχετε το piano.py και εκτελέστε:
python piano.py serialport
όπου serialport είναι η σειριακή θύρα από το Arduino IDE (π.χ., COMx στα Windows).
Εάν χρησιμοποιείτε το STM32F103C8, χρησιμοποιήστε το αγαπημένο σας λογισμικό συνθέτη MIDI σε υπολογιστή ή κινητή συσκευή.
Τώρα πατήστε τα «κουμπιά» σας και διασκεδάστε!
Εκπαιδευτικές ιδέες για να πειραματιστούν τα παιδιά:
- Πειραματιστείτε με διαφορετικά αντικείμενα στο αλουμινόχαρτο και δείτε ποια λειτουργούν και ποια όχι-και στη συνέχεια μιλήστε για το γιατί αυτά λειτουργούν και άλλα όχι.
- Το Playdough λειτουργεί πολύ καλά (και τότε δεν χρειάζεται καν φύλλο και κλιπ-μπορείτε απλά να κολλήσετε καλώδια στο playdough, αν και ομολογουμένως μοιάζει με βόμβα!).
- Μπορείτε ακόμη να πάρετε ένα κομμάτι χαρτί και να κάνετε σκιά σε περιοχές με ένα μολύβι (δεν χρειάζεται να είναι υπερβολικά σκοτεινό, αλλά η διασταύρωση είναι καλή) και να τα κολλήσετε.
- Μπορείτε να συνδέσετε ένα κλιπ αλιγάτορα σε ένα πραγματικά μεγάλο μεταλλικό αντικείμενο, όπως το χείλος του πίνακα, και να φτιάξετε γιγαντιαία κλειδιά.
- Ένα πείραμα είναι να πιέσετε ένα μικρότερο άτομο να κρατάει ένα κλιπ αλιγάτορα προσαρτημένο σε ένα από τα καλώδια και, στη συνέχεια, να ζητάει από ένα μεγαλύτερο άτομο να δώσει τα χέρια με ή πάνω από το μικρότερο άτομο και να δει αν αυτό καταγράφεται. Στη συνέχεια, προσπαθήστε ξανά με ένα μεγαλύτερο άτομο να το κρατά και ένα μικρότερο να το αγγίζει.
Απλώς βεβαιωθείτε ότι μετά από κάθε αλλαγή του προσαρτημένου στο Arduino, επαναφέρετε το Arduino, είτε πατώντας το κουμπί "επαναφορά" είτε επανασυνδέοντας τη σύνδεση USB (και στη συνέχεια εκτελέστε ξανά τον κώδικα python, καθώς πιθανότατα θα σπάσει), προκειμένου να επαναβαθμονομηθούν οι αισθητήρες.
Κάποιος μπορεί να συζητήσει την ηλεκτρική χωρητικότητα και την χωρητική ανίχνευση.