Πίνακας περιεχομένων:
- Βήμα 1: Υλικά
- Βήμα 2: Εγκατάσταση του Λογισμικού
- Βήμα 3: Προσάρτηση του επιταχυνσιόμετρου
- Βήμα 4: Προσάρτηση αισθητήρων Flex
- Βήμα 5: Διασύνδεση με το Max
- Βήμα 6: Δημιουργία του υπόλοιπου Max Code
- Βήμα 7: Βάζοντας κυριολεκτικά όλα μαζί
Βίντεο: Φορετή τεχνολογία: Γάντι αλλαγής φωνής: 7 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Λοιπόν, φαίνεται ότι τα γάντια με απίστευτες δυνάμεις είναι όλη η οργή αυτές τις μέρες. Ενώ το Infinity Gauntlet του Thanos είναι ένα αρκετά δυνατό γάντι, θέλαμε να φτιάξουμε ένα γάντι που θα μπορούσε να κάνει κάτι ακόμα πιο αξιοσημείωτο: να αλλάξουμε τη φωνή του χρήστη σε πραγματικό χρόνο.
Αυτό το Instructable παρέχει μια περιγραφή του τρόπου με τον οποίο σχεδιάσαμε ένα γάντι που αλλάζει τη φωνή. Ο σχεδιασμός μας χρησιμοποίησε διάφορους αισθητήρες και έναν μικροελεγκτή στο γάντι για τον εντοπισμό κινήσεων, οι οποίες στάλθηκαν μέσω ενός κώδικα Arduino σε μια ενημερωμένη έκδοση κώδικα Max, όπου το ηχητικό μας σήμα άλλαξε και παραμορφώθηκε με διασκεδαστικούς τρόπους. Οι συγκεκριμένοι αισθητήρες, κινήσεις και αλλοιώσεις ήχου που χρησιμοποιήσαμε είναι όλα ευέλικτα για διαφορετικούς λόγους. αυτός είναι μόνο ένας τρόπος για να δημιουργήσετε ένα γάντι που αλλάζει τη φωνή!
Αυτό το έργο ήταν μέρος μιας κοινοτικής συνεργασίας μεταξύ φοιτητών του Pomona College και της Fremont Academy of Engineering Femineers. Είναι ένα πραγματικά διασκεδαστικό μείγμα στοιχείων ηλεκτρονικής μηχανικής και ηλεκτρονικής μουσικής!
Βήμα 1: Υλικά
Μέρη:
- Μικροελεγκτής HexWear (ATmega32U4) (https://hexwear.com/)
- Επιταχυνσιόμετρο MMA8451 (https://www.adafruit.com/product/2019)
- Short Flex Sensors (x4) (https://www.adafruit.com/product/1070)
- Ελαφρύ γάντι τρεξίματος
- #2 βίδες και ροδέλες (x8)
- Συνδέσεις ακροδεκτών πτύχωσης. 22-18 gauge (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
- Αντίσταση 50kΩ (x4)
- Σύρμα (μετρητής ~ 20)
- Αυτοκόλλητη καρφίτσα ασφαλείας
- Τσόχα ή άλλο ύφασμα (~ 10 τμ.)
- Κλωστή ραπτικής
- Zipties
- ΦΟΡΗΤΟΣ ΥΠΟΛΟΓΙΣΤΗΣ
- Μικρόφωνο USB
Εργαλεία
- Σετ συγκόλλησης
- Απογυμνωτές καλωδίων και κόπτες σύρματος
- Ηλεκτρική ταινία
- Όπλο θερμού αέρα
- Κατσαβίδι
- Ψαλίδι
- Βελόνα ραψίματος
Λογισμικό:
- Max by Cycling '74 (https://cycling74.com)
- Λογισμικό Arduino (https://www.arduino.cc/en/Main/Software)
Βήμα 2: Εγκατάσταση του Λογισμικού
Ξεκινάμε με αυτό που είναι πραγματικά το πιο συναρπαστικό μέρος οποιουδήποτε έργου: εγκατάσταση βιβλιοθηκών (και άλλων).
Arduino:
Κατεβάστε και εγκαταστήστε το λογισμικό Arduino (https://www.arduino.cc/en/Main/Software).
HexWear:
1) (Μόνο για Windows, οι χρήστες Mac μπορούν να παραλείψουν αυτό το βήμα) Εγκαταστήστε το πρόγραμμα οδήγησης μεταβαίνοντας στη διεύθυνση https://www.redgerbera.com/pages/hexwear-driver-installation. Κατεβάστε και εγκαταστήστε το πρόγραμμα οδήγησης (το αρχείο.exe που παρατίθεται στο βήμα 2 στο επάνω μέρος της συνδεδεμένης σελίδας RedGerbera).
2) Εγκαταστήστε την απαιτούμενη βιβλιοθήκη για το Hexware. Ανοίξτε το Arduino IDE. Στην ενότητα "Αρχείο" επιλέξτε "Προτιμήσεις". Στο χώρο που παρέχεται για διευθύνσεις διευθύνσεων πρόσθετων πινάκων, επικολλήστε
github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.
Στη συνέχεια, κάντε κλικ στο "OK".
Μεταβείτε στην επιλογή Εργαλεία -> Πίνακας: -> Διαχειριστής πίνακα. Από το μενού στην επάνω αριστερή γωνία, επιλέξτε "Συνεισφορά".
Αναζητήστε και, στη συνέχεια, κάντε κλικ στους πίνακες Gerbera και κάντε κλικ στην επιλογή Εγκατάσταση. Κλείστε και ανοίξτε ξανά το Arduino IDE.
Για να διασφαλίσετε ότι η βιβλιοθήκη έχει εγκατασταθεί σωστά, μεταβείτε στην επιλογή Εργαλεία -> Πίνακας και μεταβείτε στο κάτω μέρος του μενού. Θα πρέπει να δείτε μια ενότητα με τίτλο "Gerbera Boards", κάτω από την οποία θα πρέπει να εμφανίζεται τουλάχιστον το HexWear (αν όχι περισσότεροι πίνακες όπως το mini-HexWear).
Επιταχυνσιόμετρο:
Κατεβάστε και εγκαταστήστε τη βιβλιοθήκη του επιταχυνσιόμετρου (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)
Βήμα 3: Προσάρτηση του επιταχυνσιόμετρου
Χρειαζόμαστε δύο κύριους τύπους αισθητήρων για να αλληλεπιδράσουμε με αυτό το έργο: ένα επιταχυνσιόμετρο και εύκαμπτους αισθητήρες. Θα τα εξετάσουμε κάθε φορά, ξεκινώντας από το επιταχυνσιόμετρο. Πρώτον, χρειαζόμαστε τις συνδέσεις υλικού για να ταιριάζουν.
Προκειμένου να αποφύγετε την πρόκληση ζημιάς στο εξάγωνό σας, σας συνιστούμε να βάλετε μια βίδα #2 και να πλύνετε τις επιθυμητές θύρες και στη συνέχεια να συνδέσετε όλες τις συνδέσεις σε αυτήν τη βίδα. Για να αποφύγετε να χαλάσει οτιδήποτε κατά το παιχνίδι με το γάντι, οι συνδέσεις θα πρέπει να συγκολληθούν και/ή να πτυχωθούν. Χρησιμοποιώντας μερικά εκατοστά σύρμα για κάθε σύνδεση, πραγματοποιήστε τις ακόλουθες συνδέσεις από το εξάγωνο στο επιταχυνσιόμετρο (ανατρέξτε στα παραπάνω pinouts για αναφορά):
ΕΙΣΟΔΟΣ ΤΑΣΗ VINGROUND GNDSCL/D3 SCLSDA/D2 SDA
Με όλα εντοιχισμένα, είμαστε έτοιμοι να δοκιμάσουμε!
Ως δοκιμή, εκτελέστε το δείγμα κώδικα επιταχυνσιόμετρου στο Arduino (Αρχείο-> Παραδείγματα-> Adafruit_MMA8451-> MMA8451demo), βεβαιωθείτε ότι μπορεί να εξέλθει στη Σειριακή οθόνη. Θα πρέπει να εξάγει την επιτάχυνση λόγω βαρύτητας (~ 10m/s) στην κατεύθυνση z όταν διατηρείται στο επίπεδο. Με κλίση του επιταχυνσιόμετρου, αυτή η επιτάχυνση θα μετρηθεί στην κατεύθυνση x ή y. θα το χρησιμοποιήσουμε για να επιτρέψουμε στον χρήστη να αλλάξει τον ήχο περιστρέφοντας το χέρι του!
Τώρα, πρέπει να παρουσιάσουμε τα δεδομένα του επιταχυνσιόμετρου με τέτοιο τρόπο ώστε να μπορούν να διασυνδεθούν με το Max. Για να γίνει αυτό, πρέπει να εκτυπώσουμε τις τιμές των x και y, ίσως τροποποιημένων ώστε να ταιριάζουν με το επιθυμητό εύρος (βλ. Μέρος 6). Στον κωδικό μας που επισυνάπτεται εδώ, κάνουμε τα εξής:
// Μετρήστε την κατεύθυνση thex και την κατεύθυνση y. Διαιρούμε και πολλαπλασιάζουμε για να μπούμε στα σωστά εύρη για MAX (εύρος 1000 σε x και εύρος 40 σε y) xdir = event.acceleration.x/0.02; ydir = abs (event.acceleration.y)*2; // Εκτυπώστε τα πάντα σε αναγνώσιμη μορφή για Max - με κενά μεταξύ κάθε αριθμού Serial.print (xdir). Serial.print ("");
Αυτό θα πρέπει το Hex να εκτυπώνει τις τροποποιημένες τιμές των κατευθύνσεων x και y του επιταχυνσιόμετρου σε κάθε γραμμή. Τώρα είμαστε έτοιμοι να προσθέσουμε τους εύκαμπτους αισθητήρες!
Βήμα 4: Προσάρτηση αισθητήρων Flex
Ο χρήστης μπορεί να λάβει πολλά δυνατά χειριστήρια ήχου εάν μπορούμε να εντοπίσουμε τα δάχτυλα που λυγίζουν. Οι ευέλικτοι αισθητήρες θα κάνουν ακριβώς αυτό. Κάθε ευέλικτος αισθητήρας είναι ουσιαστικά ένα ποτενσιόμετρο, όπου το μη λυγισμένο έχει αντίσταση ~ 25KΩ, ενώ πλήρως λυγισμένο έχει αντίσταση ~ 100KΩ. Βάζουμε κάθε εύκαμπτο αισθητήρα σε ένα απλό διαχωριστή τάσης με αντίσταση 50Κ, όπως φαίνεται στην πρώτη εικόνα.
Χρησιμοποιώντας πάλι αρκετά μικρά μήκη σύρματος (λάβετε υπόψη ότι όλα αυτά θα ταιριάζουν στο πίσω μέρος ενός γαντιού), συγκολλήστε τέσσερις μονάδες διαίρεσης τάσης. Οι τέσσερις μονάδες θα μοιράζονται το ίδιο Vin και γείωση-στρίψαμε μαζί τα απογυμνωμένα άκρα των καλωδίων, ώστε να έχουμε μόνο ένα μόλυβδο για συγκόλληση. Τέλος, πάρτε τις τέσσερις ενότητες και κάντε τις συνδέσεις που εμφανίζονται στη δεύτερη εικόνα (αν κάποιος ξέρει πώς να το κάνει αυτό χωρίς να κάνει ένα φρικτά μπερδεμένο χάος, παρακαλώ αποκαλύψτε τα μυστικά σας).
Τώρα, χρειαζόμαστε τον κωδικό Arduino για να διαβάσουμε τις τάσεις από κάθε αισθητήρα. Για τους σκοπούς μας, αντιμετωπίζαμε τους αισθητήρες κάμψης ως διακόπτες. ήταν είτε ενεργοποιημένοι είτε απενεργοποιημένοι. Ως εκ τούτου, ο κώδικάς μας απλώς ορίζει ένα κατώφλι τάσης-πάνω από αυτό το όριο, βγάζουμε 1 στη σειριακή θύρα (που σημαίνει ότι ο αισθητήρας είναι λυγισμένος), αλλιώς βγάζουμε ένα 0:
// Πάρτε μια σειρά από
αναλογικά δείγματα και προσθέστε τα για κάθε αισθητήρα Flex
while (sample_count <NUM_SAMPLES) {
sum10 += analogRead (A10);
sum9 += analogRead (A9);
sum7 += analogRead (A7);
sum11 += analogRead (A11);
sample_count ++;
// Μικρή καθυστέρηση για να μην τα πάρετε πολύ γρήγορα
καθυστέρηση (5)?
}
// Υπολογίστε την τάση, κατά μέσο όρο στα γρήγορα δείγματα
// χρησιμοποιήστε 5,0 για 5,0V ADC
τάση αναφοράς
// 5.015V είναι το βαθμονομημένο
τάση αναφοράς
τάση10 = ((float) sum10 /
(float) NUM_SAMPLES * 5.015) / 1024.0;
τάση9 = ((float) sum9/
(float) NUM_SAMPLES * 5.015) / 1024.0;
tension7 = ((float) sum7 /
(float) NUM_SAMPLES * 5.015) / 1024.0;
τάση11 = ((float) sum11 /
(float) NUM_SAMPLES * 5.015) / 1024.0;
// Ελέγξτε εάν κάθε αισθητήρας κάμψης
είναι μεγαλύτερο από το κατώφλι (thresh) - αν ναι, ορίστε τον αριθμό
// Pinkie δάχτυλο
εάν (τάση10> κατώφλι)
{
//-5 να αυξήσω
ένταση φωνής κατά μία οκτάβα
flex10 = -10;
}
αλλιώς flex10 = 0;
//Παράμεσος
εάν (τάση9>
(ουρά-0,4)) {
// 5 προς τα κάτω
ένταση φωνής κατά μία οκτάβα
flex9 = 5;
}
αλλιώς flex9 = 0;
//Μεσαίο δάχτυλο
if (tension7> thresh) {
// 1 για ρύθμιση
εφέ αντήχησης
flex7 = 1;
}
αλλιώς flex7 = 0;
//ΔΕΙΚΤΗΣ
εάν (τάση11> κατώφλι)
{
// 50 για ρύθμιση
κύκλους στο 50
flex11 = 93;
}
αλλιώς flex11 = 0;
// Επαναφορά όλων των μετρήσεων
μεταβλητή στο 0 για τον επόμενο βρόχο
sample_count = 0;
sum10 = 0;
sum9 = 0;
sum7 = 0;
sum11 = 0;
Σε αυτό το σημείο, η σειριακή θύρα θα πρέπει να εμφανίζει τιμές για τον προσανατολισμό του επιταχυνσιόμετρου, καθώς και εάν κάθε καμπτήρας κάμψης είναι λυγισμένος. Είμαστε έτοιμοι να πάρουμε τον κωδικό Arduino μας με τον Max!
Βήμα 5: Διασύνδεση με το Max
Τώρα που ο κωδικός Hex φτύνει πολλούς αριθμούς μέσω της σειριακής θύρας, χρειαζόμαστε το λογισμικό Max για να διαβάσουμε αυτά τα σήματα. Το μπλοκ κώδικα που απεικονίζεται παραπάνω κάνει ακριβώς αυτό! Είστε ευπρόσδεκτοι.
Σημαντική σημείωση: αφού ανεβάσετε τον κωδικό στο Hex, κλείστε όλα τα παράθυρα σειριακής θύρας και, στη συνέχεια, αλλάξτε το κυκλωμένο γράμμα στον κώδικα Max για να ταιριάζει με τη θύρα Hex. Εάν δεν είστε βέβαιοι για το ποιο γράμμα πρέπει να ορίσετε, πατώντας το τμήμα "εκτύπωσης" του Max code θα εμφανιστούν όλες οι συνδεδεμένες θύρες.
Η τυπωμένη γραμμή από τη σειριακή θύρα του Hex διαβάζεται μέσω του μπλοκ κώδικα Max και στη συνέχεια διαχωρίζεται με βάση τους οριοθέτες χώρου. Η έξοδος στο τέλος του μπλοκ Max σας επιτρέπει να πιάσετε κάθε αριθμό ξεχωριστά, οπότε θα συνδέσουμε τον πρώτο χώρο εξόδου εκεί που θέλουμε να πάει η κατεύθυνση x του επιταχυνσιόμετρου, ο δεύτερος χώρος θα είναι η κατεύθυνση y κ.λπ. τώρα, απλώς συνδέστε τα με μπλοκ αριθμών για να βεβαιωθείτε ότι λειτουργούν. Θα πρέπει να μπορείτε να μετακινήσετε το επιταχυνσιόμετρο και τους ευέλικτους αισθητήρες και να δείτε τους αριθμούς να αλλάζουν στο λογισμικό Max.
Βήμα 6: Δημιουργία του υπόλοιπου Max Code
Δεδομένης της δύναμης της γλώσσας Max, μπορείτε πραγματικά να αφήσετε τη φαντασία σας ελεύθερη εδώ με όλους τους τρόπους με τους οποίους μπορείτε να αλλάξετε το εισερχόμενο ηχητικό σήμα με το μαγικό γάντι δύναμης. Ακόμα, αν εξαντλήσετε τις ιδέες σας, παραπάνω θα βρείτε μια περιγραφή του τι κάνει ο κώδικας Max και πώς λειτουργεί.
Για κάθε παράμετρο που προσπαθείτε να αλλάξετε, πιθανότατα θα θέλετε να μπλέξετε με το εύρος των τιμών που προέρχονται από τον κώδικα Arduino για να έχετε τη σωστή ευαισθησία.
Μερικές άλλες συμβουλές αντιμετώπισης προβλημάτων Max:
-
Αν δεν ακούς ήχο
- βεβαιωθείτε ότι ο Max έχει ρυθμιστεί να λαμβάνει ήχο από το μικρόφωνό σας (Επιλογές συσκευής εισόδου κατάστασης ήχου)
- βεβαιωθείτε ότι το ρυθμιστικό κύριας έντασης στο Max είναι ενεργοποιημένο και τυχόν άλλα στοιχεία έντασης που έχετε στον κώδικά σας
-
Εάν ο κώδικας δεν φαίνεται να κάνει τίποτα
- βεβαιωθείτε ότι το έμπλαστρο είναι κλειδωμένο (σύμβολο κλειδώματος στην κάτω αριστερή γωνία)
- Βεβαιωθείτε ότι μέσω της ανάγνωσης στην ενημερωμένη έκδοση κώδικα Max ότι η ενημερωμένη έκδοση κώδικα Max εξακολουθεί να λαμβάνει δεδομένα από τη σειριακή θύρα Arduino. Εάν όχι, δοκιμάστε να επαναφέρετε τη σειριακή θύρα (όπως περιγράφεται στο βήμα 5) και/ή να ελέγξετε τις φυσικές σας συνδέσεις καλωδίωσης.
-
Παράξενοι θόρυβοι αποκοπής κατά την αλλαγή παραμέτρων
αυτό έχει να κάνει με τον τρόπο λειτουργίας ~ tapin και ~ tapout. συγκεκριμένα ότι όταν αλλάζετε τις τιμές τους, επαναφέρονται, γεγονός που προκαλεί την αποκοπή. Δεδομένης της περιορισμένης γνώσης μας για το πρόγραμμα, είμαστε σχεδόν σίγουροι ότι υπάρχει καλύτερος τρόπος για να το κάνουμε αυτό στο Max και να εξαλείψουμε το πρόβλημα…
Βήμα 7: Βάζοντας κυριολεκτικά όλα μαζί
Το μόνο που απομένει τώρα είναι να συνδέσουμε το κύκλωμά μας στο γάντι μας. Πάρτε το επιπλέον ύφασμά σας και κόψτε λωρίδες ελαφρώς μεγαλύτερες από τους εύκαμπτους αισθητήρες. Ράψτε το πρόσθετο ύφασμα στο δάχτυλο του γαντιού, όπου λυγίζει η άρθρωση, αφήνοντας ένα είδος μανικιού για να κάτσει ο αισθητήρας κάμψης (δεν μπορούμε απλά να κολλήσουμε τους αισθητήρες κάμψης απευθείας στο γάντι, επειδή το ύφασμα γαντιών τεντώνεται καθώς τα δάχτυλα λυγίζουν). Μόλις το μανίκι είναι κυρίως ραμμένο, σύρετε τον αισθητήρα κάμψης προς τα μέσα και ράψτε προσεκτικά τα καλώδια στο γάντι, στερεώνοντας τον εύκαμπτο αισθητήρα στη θέση του. Επαναλάβετε αυτό για κάθε εύκαμπτο αισθητήρα.
Στη συνέχεια, χρησιμοποιήστε τον αυτοκόλλητο πείρο ασφαλείας για να στερεώσετε το εξάγωνο στο πίσω μέρος του γαντιού (ίσως θελήσετε να βάλετε λίγη ζεστή κόλλα στον πείρο για να βεβαιωθείτε ότι δεν θα αναιρεθεί κατά τη φθορά). Ράψτε το επιταχυνσιόμετρο στον καρπό του γαντιού. Τέλος, χρησιμοποιήστε τη μαγεία των φερμουάρ για να καθαρίσετε όμορφα τυχόν αντιαισθητικά καλώδια.
Είστε έτοιμοι να δοκιμάσετε το απόλυτο γάντι σας για να τραγουδήσετε! (Σας συνιστούμε ανεπιφύλακτα το "Harder Better Faster Stronger" του Daft Punk για να αναδείξετε πλήρως τις δυνατότητες αλλαγής φωνής σας)
Συνιστάται:
Φορετή τεχνολογία νόσου Πάρκινσον: 4 βήματα
Wearable Tech της νόσου του Πάρκινσον: Περισσότεροι από 10 εκατομμύρια άνθρωποι παγκοσμίως ζουν με τη νόσο του Πάρκινσον (ΠΔ). Μια προοδευτική διαταραχή του νευρικού συστήματος που προκαλεί δυσκαμψία και επηρεάζει την κίνηση του ασθενούς. Με πιο απλά λόγια, πολλοί άνθρωποι έπασχαν από τη νόσο του Πάρκινσον, αλλά
3d Printed Endgame Arc Reactor (ταινία ακριβής και φορετή): 7 βήματα (με εικόνες)
3D Printed Endgame Arc Reactor (Movie Accurate and Wearable): Πλήρες σεμινάριο στο Youtube: Δεν βρήκα κανένα 3d ακριβές αρχείο ταινιών για τον αντιδραστήρα τόξου Mark 50/περίβλημα για νανοσωματίδια, έτσι ο φίλος μου και εγώ μαγειρέψαμε μερικά γλυκά. Χρειάστηκε ένας πολύς ρυθμός για να φανεί το πράγμα ακριβές και φοβερό
DIY φορετή συσκευή TDCS: 4 βήματα
DIY Wearable TDCS Device: TDCS (Transcranial Direct Current Stimulation) Σε αυτό το Instructable, θα: 1. Περιηγηθείτε στη δημιουργία μιας απλής συσκευής TDCS. Διάταξη της θεωρίας πίσω από τα κυκλώματα.2. Παρουσιάστε κάποια έρευνα και εξηγήστε γιατί αξίζει να δημιουργηθεί μια τέτοια συσκευή
Φορετή συσκευή ATtiny - Συνδετήρας άκρων PCB: 4 βήματα
ATtiny Wearable Device - PCB Edge Connector: Γεια, αυτό είναι το δεύτερο μέρος της σειράς εργαλείων προγραμματισμού για φορετά, σε αυτό το σεμινάριο εξηγώ πώς να δημιουργήσετε μια φορητή συσκευή PCB, η οποία μπορεί να χρησιμοποιηθεί με την ασπίδα προγραμματισμού Arduino ATtiny. Σε αυτό Για παράδειγμα, χρησιμοποίησα ένα ATtiny85 uC σε
Φορετή τεχνολογία: Τύμπανα αέρα: 5 βήματα
Wearable Tech: Air Drums: Ο στόχος μας για αυτό το έργο ήταν να φτιάξουμε ένα φορετό κιτ τυμπάνου από επιταχυνσιόμετρα και πιεζο δίσκους. Η ιδέα ήταν ότι με ένα χτύπημα ενός χεριού, θα έπαιζε ένας θόρυβος παγίδας. ή, με ένα πάτημα ενός ποδιού, θα έπαιζε ένας ήχος από ένα hi-hat ή ένα μπάσο. Ελέγχω