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

Φορετή τεχνολογία: Γάντι αλλαγής φωνής: 7 βήματα
Φορετή τεχνολογία: Γάντι αλλαγής φωνής: 7 βήματα

Βίντεο: Φορετή τεχνολογία: Γάντι αλλαγής φωνής: 7 βήματα

Βίντεο: Φορετή τεχνολογία: Γάντι αλλαγής φωνής: 7 βήματα
Βίντεο: IoT. Internet of Things 2024, Ιούλιος
Anonim
Wearable Tech: Voice-Changing Glove
Wearable Tech: Voice-Changing Glove
Wearable Tech: Voice-Changing Glove
Wearable Tech: Voice-Changing Glove

Λοιπόν, φαίνεται ότι τα γάντια με απίστευτες δυνάμεις είναι όλη η οργή αυτές τις μέρες. Ενώ το 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

Συνδέοντας τους Flex αισθητήρες
Συνδέοντας τους Flex αισθητήρες
Συνδέοντας τους Flex αισθητήρες
Συνδέοντας τους Flex αισθητήρες
Σύνδεση των Flex αισθητήρων
Σύνδεση των 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

Διασύνδεση με τον Max
Διασύνδεση με τον 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 για να αναδείξετε πλήρως τις δυνατότητες αλλαγής φωνής σας)

Συνιστάται: