Πίνακας περιεχομένων:
- Βήμα 1: Υλικά που χρησιμοποιούνται
- Βήμα 2: Συναρμολόγηση και χρήση της συσκευής
- Βήμα 3: Το σενάριο Python
Βίντεο: A Voice Controlled Jumping Jack- Έκδοση Google Voice AIY: 3 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Έχετε λοιπόν αυτό το κιτ φωνής AIY για τα Χριστούγεννα και παίζετε με αυτό, ακολουθώντας τις οδηγίες. Είναι αστείο, αλλά τώρα;
Το έργο που περιγράφεται παρακάτω παρουσιάζει μια απλή συσκευή που μπορεί να κατασκευαστεί χρησιμοποιώντας το AIY voice HAT για το Raspberry Pi. Χρησιμοποιεί το σύστημα φωνητικής αναγνώρισης Google για τον έλεγχο των LED και δύο σερβομηχανών, οδηγώντας τα χέρια και τα πόδια ενός γρύλου με πολύ απλή ταχύτητα.
Το λογισμικό που λειτουργεί στο παρασκήνιο είναι μια τροποποίηση του σεναρίου servo_demo.py, όπως έχει περιγραφεί στο εγχειρίδιο φωνητικού κιτ AIY. Απλώς ακολουθήστε τις οδηγίες που δίνονται εκεί για να ρυθμίσετε το σκληρό και το λογισμικό. Η ίδια η συσκευή είναι εύκολο να κατασκευαστεί και δεν απαιτεί πολλές δεξιότητες χειροτεχνίας. Επιπλέον, ένα μαχαίρι κοπής, ένα τρυπάνι και ένα συγκολλητικό σίδερο θα ήταν χρήσιμα.
Εάν ενεργοποιήσετε το σύστημα αναγνώρισης φωνής με το κλείσιμο του χεριού σας και πείτε «τα χέρια ψηλά», ο γρύλος με άλματα θα σηκώσει τα χέρια και τα πόδια, το «χέρια στο κέντρο» θα μετακινήσει και τα δύο servos στη μεσαία θέση και στα «χέρια κάτω» τα χέρια και τα πόδια να χαμηλώσει. Στο «αριστερά πάνω» το αριστερό χέρι και τα πόδια θα σηκωθούν και στο «δεξιά κάτω» θα κατεβάσουν το δεξί, στο «δεξιά πάνω» αντίστροφα. "Dance", θα το κάνει να χορεύει, τουλάχιστον τουλάχιστον. Μιλάει επίσης, ρίξτε μια ματιά στο συνημμένο βίντεο.
Έτσι, με λίγες προσπάθειες, μπορείτε να φτιάξετε το δικό σας ρομπότ χορού, κουβέντας και τραγουδιού.
Για να απλοποιηθεί η χρήση του ειδικά από μικρότερα παιδιά και να ενισχυθεί ο «μαγικός» παράγοντας, το κουμπί στο κουτί AIY αντικαταστάθηκε ως σκανδάλη από έναν αισθητήρα εγγύτητας. Για την απλότητά του, χρησιμοποίησα ένα ψηφιακό ξεκλείδωμα αισθητήρα απόστασης από το Pololu που αναγνωρίζει εάν ένα αντικείμενο είναι πιο κοντά από 5 cm και μπορεί να χρησιμοποιηθεί πολύ σαν ένα κουμπί. Οι λυχνίες LED δείχνουν πότε η συσκευή περιμένει παραγγελίες, ακούει ή "σκέφτεται". Τα σερβίς, ο αισθητήρας και τα LED ελέγχονται από τη βιβλιοθήκη λογισμικού GPIOZero.
Το πρωτότυπο κατασκευάστηκε από Forex, πλάκες αφρού PVC, που μπορούν να κοπούν πολύ εύκολα με ένα κοπτικό μαχαίρι και να κολληθούν, αλλά είναι επίσης αρκετά σταθερό. Μη διστάσετε να δημιουργήσετε μια μεγαλύτερη, ωραιότερη, βελτιωμένη ή πιο φανταχτερή έκδοση, αλλά θα ήταν καλό να τεκμηριώσετε και να παρουσιάσετε τις βελτιώσεις σας.
Μπορείτε να χρησιμοποιήσετε και τις δύο πλευρές του σώματος, ανάλογα με το αν θέλετε να παρουσιάσετε το κινούμενο εργαλείο ή να έχετε μια ωραία, φιλική προς τα παιδιά διάταξη. --------- Το "Hampelmann" είναι ο γερμανικός όρος για το "jumping jack", με ορισμένες χροιά.
Βήμα 1: Υλικά που χρησιμοποιούνται
Raspberry Pi 3; 32 £ στο Pimoroni, UK
Κιτ φωνής AIY. 25 £ στο Pimoroni, UK
Digitalηφιακός αισθητήρας απόστασης Pololu με αισθητήρα Sharp, 5 cm. 5,90 € στο Exp-tec.de
Δύο σερβο 9γρ
Δύο λευκές λυχνίες LED και μια αντίσταση
Μερικές κεφαλίδες και καλώδια άλματος
Μια πλάκα Forex 2 mm, 250 x 500 mm. 1,70 € στο Modulor, Βερολίνο, Γερμανία
Βίδες, παξιμάδια και ροδέλες M3, για τη σύνδεση όλων των κινούμενων μερών. Χρησιμοποίησα έξι βίδες Nylon 10 10 και τέσσερις 16 mm.
Έξι βίδες και παξιμάδια Μ2, για να στερεώσετε τα servos στις πλάκες και να συνδέσετε τους βραχίονες και τα γρανάζια των servos.
Λίγες σταγόνες πλαστική κόλλα
Βήμα 2: Συναρμολόγηση και χρήση της συσκευής
Όσον αφορά το ίδιο το κιτ φωνής AIY, απλώς ακολουθήστε τις οδηγίες στην περιγραφή που συνοδεύει το κιτ, συμπεριλαμβανομένης της ενότητας σχετικά με το σερβο. Θα συνιστούσα να κολλήσετε αρκετές κεφαλίδες τριών ακίδων στις σερβο θύρες στη φωνητική έξοδο AIY, ώστε να μπορείτε να συνδέσετε πολύ εύκολα servos, αισθητήρα και LED με το HAT.
Όσον αφορά το βύσμα άλματος, μπορείτε είτε να χρησιμοποιήσετε τα σχέδια που παρείχα εδώ ως αρχεία svg- και PDF ως πρότυπο, είτε απλά να τα τροποποιήσετε σύμφωνα με τις δικές σας ιδέες. Μπορεί να σας αρέσει να διατηρείτε τη βασική διάταξη του γραναζιού που οδηγεί τα πόδια και το χέρι του γρύλου άλματος, διασφαλίζοντας ότι η απόσταση μεταξύ του σημείου περιστροφής και του γραναζιού είναι η ίδια στο σερβο, το χέρι και το πόδι.
Εναλλακτικά, μπορείτε επίσης να κατασκευάσετε μια έκδοση όπου τα χέρια και τα πόδια οδηγούνται απευθείας από τέσσερα ξεχωριστά σερβομηχανήματα ή από ένα πιο προηγμένο εργαλείο.
Χρησιμοποιώντας το σχέδιο, κόψτε τα κομμάτια από μια πλάκα Forex, χαρτόνι ή κόντρα πλακέ και ανοίξτε τις τρύπες στις κατάλληλες θέσεις. Κολλήστε τα κομμάτια απόστασης στα σημεία περιστροφής των χεριών και των ποδιών, εξασφαλίζοντας καλή ευθυγράμμιση των οπών.
Στερεώστε τα servos και τα κινούμενα μέρη στην πλάκα βάσης. Προσθέστε τον αισθητήρα απόστασης και τη λυχνία LED όπως υποδεικνύεται. Τα σερβίς είναι στερεωμένα με βίδες Μ2, όλα τα κινούμενα μέρη με βίδες Μ3. Χρησιμοποίησα βίδες Nylon M3, αλλά μόνο για αισθητικούς λόγους.
Ελέγξτε εάν οι σερβοφόροι βραχίονες είναι τοποθετημένοι στη μεσαία θέση. Συνδέστε βραχίονες και γρανάζια σερβο, χρησιμοποίησα βίδες M2 για το σκοπό αυτό.
Συνδέστε σερβο, LED και τον αισθητήρα απόστασης στους συνδετήρες σερβο στην πλακέτα AIY. Μπορεί να χρειαστείτε καλώδια επιμήκυνσης/βραχυκυκλωτήρα. Επισυνάπτω το αριστερό σερβο στο "servo0" (GPIO 26) το δεξί σερβο σε "servo2" (GPIO 13), τα LED σε "servo5" (GPIO 24) και τον αισθητήρα στο "servo3" (GPIO 5) στο AIY φωνή ΚΑΠΕΛΟ.
Αντιγράψτε το παρεχόμενο αρχείο "Hampelmann.py" στον υποφάκελο AIY "src" και κάντε το άμεσα εκτελέσιμο για οποιονδήποτε. Για να το κάνετε αυτό, μπορείτε να επιλέξετε το αρχείο στον διαχειριστή αρχείων, στη συνέχεια κάντε δεξί κλικ και επιλέξτε Ιδιότητες, επιλέξτε Δικαιώματα, μεταβείτε στην επιλογή Εκτέλεση, επιλέξτε ~ οποιονδήποτε. Or γράψτε "chmod +x src/Hampelmann.py" στην κονσόλα dev.
Ελέγξτε αν όλα έχουν ρυθμιστεί στη θέση τους και είναι σταθερά ή είναι κινητά όταν απαιτείται. Ανοίξτε τη γραμμή εντολών Dev, πληκτρολογήστε "src/Hampelmann.py" και ξεκινήστε το πρόγραμμα. Εάν μετακινήσετε το χέρι ή τα δάχτυλά σας μπροστά από τον αισθητήρα απόστασης, η μονάδα AIY θα ζητήσει παραγγελίες και τα LED θα αναβοσβήνουν. Οι παραγγελίες που εφαρμόζονται είναι "δεξιά/αριστερά/χέρια πάνω/κάτω/κέντρο", "χορός", "ενεργοποίηση/απενεργοποίηση LED" και "αντίο".
Παίζω. Μετακινήστε το χέρι σας μπροστά από τον αισθητήρα, μιλήστε όταν σας ζητηθεί και δώστε στη συσκευή λίγο χρόνο για να αντιδράσει. Η καθυστέρηση είναι μάλλον υψηλή. Crtl+C ή "Αντίο" θα σταματήσει το πρόγραμμα.
Μπορείτε να τροποποιήσετε το αρχείο χρησιμοποιώντας το Nano ή άλλο απλό πρόγραμμα επεξεργασίας κειμένου.
Παρατηρήσεις: Λάβετε υπόψη ότι ορισμένες λέξεις και όροι αναγνωρίζονται ως λέξεις που ξεκινούν με κεφαλαίο γράμμα, ως «Κέντρο» ή «Δεξί Κέντρο», όπως άλλοι δεν είναι, π.χ. «Ακριβώς πάνω». Πρέπει να χρησιμοποιήσετε την ακριβή φόρμα που δίνεται από τη μονάδα αναγνώρισης φωνής για να ενεργοποιήσετε κάποια ενέργεια.
Βήμα 3: Το σενάριο Python
Όπως αναφέρθηκε προηγουμένως, το σενάριο βασίζεται στο σενάριο servo_demo.py από τις φωνητικές οδηγίες του AIY, με ορισμένες προσθήκες. Η πρώτη έκδοση είναι το αρχείο Hampelmann.py που θα βρείτε συνημμένο. Το AngularServo από το GPIOZero επιτρέπει να περιοριστεί το εύρος δράσης του σερβο και να καθοριστεί ακριβώς πόσο μακριά θα κινηθεί. Αλλά προτιμώ τη βρετανική φωνή από την αρχική. Και η συσκευή μπορεί επίσης να μιλά, αλλά να μην καταλαβαίνει (;), Αγγλικά, Γερμανικά, Ιταλικά, Γαλλικά και Ισπανικά. Παρακάτω μπορείτε να βρείτε το σενάριο Hampelmann2.py, με τη βρετανική φωνή και λίγο ιταλικά και γερμανικά. Λάβετε υπόψη ότι πρέπει να κάνετε τα σενάρια εκτελέσιμα για να τα εκτελέσετε.
#!/usr/bin/env python3 # Αυτό το σενάριο είναι μια προσαρμογή του servo_demo.py script για το AIY voice HAT, # βελτιστοποιημένο για το AIY jumping jack aiy.audio import aiy.cloudspeech import aiy.voicehat από gpiozero import LED από gpiozero εισαγωγή AngularServo από gpiozero εισαγωγή Κουμπί από ώρα εισαγωγής ύπνου def main (): αναγνωριστικό = aiy.cloudspeech.get_recognizer () αναγνωριστικό.expect_phrase ('δεξιά επάνω') αναγνωριστικό.expect_phrase ('δεξιά κάτω') αναγνωριστικό.expect_phrase ('Δεξιά Κέντρο ') # τα κεφαλαία γράμματα υπάρχουν εκ προθέσεως («κάτω χέρια»).audio.get_recorder (). έναρξη () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # 1η σύνδεση ή, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # 3ος σύνδεσμος, GPIO 13 led0 = LED (24) # LED συνδέονται στο servo5/GPIO 24 απόσταση = Κουμπί (5) # αισθητήρας απόστασης συνδεδεμένος στο servo3/GPIO 05 # άλλα: GPIO 6 στο servo1, 12 στο servo4 aiy.audio.say ("Hello!",) aiy.audio.say ("Για να ξεκινήσετε, μετακινήστε το χέρι σας κοντά στον αισθητήρα",) ενώ είναι True: led0.on () # LED σε εκτύπωση ("Για να ενεργοποιήσετε την αναγνώριση φωνής, μετακινήστε το χέρι σας κοντά στον αισθητήρα απόστασης και μετά μιλήστε") εκτύπωση ('Οι αναμενόμενες λέξεις -κλειδιά είναι: χέρια/αριστερά/δεξιά επάνω/κάτω/κέντρο,') εκτύπωση ('LED on/off, χορός και αντίο.') print () distance.wait_for_press () print ('Listening…') aiy.audio.say ("Παρακαλώ δώστε τις παραγγελίες σας",) led0.blink () # light κλείσιμο κειμένου = αναγνωριστικό.αναγνώριση () εάν το κείμενο δεν είναι: aiy.audio.say ('Συγγνώμη, δεν σας άκουσα.',) αλλιώς: εκτύπωση ('Είπατε' ', κείμενο,' "') # Σας επιτρέπει ελέγξτε την ερμηνεία των συστημάτων εάν "δεξιά" στο κείμενο: εκτύπωση ("Μετακίνηση servo0 στη μέγιστη θέση") servo0.angle = 35 elif "δεξιά προς τα κάτω" στο κείμενο: εκτύπωση ("Μετακίνηση servo0 στην ελάχιστη θέση ') servo0.angle = -35 elif' Δεξί Κέντρο 'σε κείμενο: #σωστά γράμματα είναι κρίσιμη εκτύπωση (' Μετακίνηση servo0 στη μεσαία θέση ') servo0.angle = 0 elif' αριστερά 'στο κείμενο: εκτύπωση (' Μετακίνηση servo2 στη μέγιστη θέση ') servo2.angle = -35 elif' αριστερά 'στο κείμενο: εκτύπωση (' Μετακίνηση servo2 στην ελάχιστη θέση ') servo2.angle = 35 elif' αριστερό κέντρο 'στο κείμενο: εκτύπωση (' Μετακίνηση servo2 σε μεσαία θέση ') servo2.angle = 0 elif' χέρια επάνω 'στο κείμενο: εκτύπωση (' Μετακίνηση servo2 στη μέγιστη θέση ') servo2.angle = -35 servo0.angle = 35 elif' χέρια κάτω 'σε κείμενο: εκτύπωση (' Μετακίνηση servo2 στην ελάχιστη θέση ») servo2.angle = 35 servo0.angle = -35 elif« hands Center »στο κείμενο: εκτύπωση (« Μετακίνηση servo2 στη μεσαία θέση ») servo2.angle = 0 servo0.angle = 0 elif« LED off » σε κείμενο: εκτύπωση («απενεργοποίηση εξωτερικού LED 0») led0.off () elif «LED on» σε κείμενο: εκτύπωση («ενεργοποίηση εξωτερικού LED 0») led0.on () # light elif «χορός» σε κείμενο: εκτύπωση ("τώρα εκτελεί χορό νούμερο ένα") aiy.audio.say ("Λοιπόν, θα προσπαθήσω για το καλύτερο!",) led0.on () # ανάβει για i στο εύρος (3): servo0.angle = 0 servo2.angle = 0 sleep (1) servo0.angle = 35 servo2.angle = -35 sleep (1) servo0.angle = 0 servo2.angle = -35 sleep (1) servo0.angle = -25 servo2.angle = 0 ύπνος (1) servo0.angle = 30 servo2.angle = 20 ύπνος (1) servo0.angle = 0 servo2.angle = 0 led0.off () # light off elif «αντίο» στο κείμενο: aiy.audio.say ("Αντίο",) aiy.audio.say ("Arrivederci",) aiy.audio.say ("Auf Wiedersehen",) servo0.angle = 0 servo2.angle = 0 led0.off () sleep (3) print ('bye!') break else: print ('no keyword αναγνωρίζεται!') aiy.audio.say ("Συγγνώμη, δεν σας κατάλαβα",) if _name_ == ' _main_ ': main ()
Συνιστάται:
Alexa Based Voice Controlled Rocket Launcher: 9 βήματα (με εικόνες)
Alexa Based Voice Controlled Rocket Launcher: Καθώς πλησιάζει η χειμερινή περίοδος. έρχεται εκείνη την εποχή του χρόνου που γιορτάζεται το φεστιβάλ των φώτων. Ναι, μιλάμε για το Diwali που είναι ένα πραγματικό ινδικό φεστιβάλ που γιορτάζεται σε όλο τον κόσμο. Φέτος, το Diwali έχει ήδη τελειώσει και βλέπει ανθρώπους
VOICE CONTROLLED ROBOT VIA BLUETOOTH: 3 Βήματα
VOICE CONTROLLED ROBOT VIA BLUETOOTH: Αυτό το ρομπότ ελέγχεται από το τηλέφωνό μας. Συνδέστε την εφαρμογή: https://play.google.com/store/apps/details?id=com….Αυτό το ρομπότ ελέγχεται από τη φωνή μας και επίσης μπορεί να ελεγχθεί και από τα κουμπιά. Αυτό το ρομπότ είναι μόνο για επίδειξη. Ακολουθήστε το
Jumping-Jack Counter: 3 Βήματα
Jumping-Jack Counter: wantedθελα έναν τρόπο να μετρήσω τα τζάκερ μου και να ενθαρρύνω τον εαυτό μου να συνεχίσει όταν προδιαμορφώθηκα άλματα, έτσι δημιούργησα έναν μετρητή με άλμα που ακούγεται κουδούνι από τους Super Mario Brothers κάθε φορά που ολοκληρώνω ένα γρύλο άλματος
Προσθήκη Trigger Start Sound στο Google AIY Voice Kit: 6 βήματα (με εικόνες)
Προσθήκη Trigger Start Sound στο Google AIY Voice Kit: Αυτό το σεμινάριο είναι αρκετά απλό. Πραγματικά απολαμβάνω το Google AIY Voice Kit, αλλά μου αρέσει πολύ στο κανονικό μου Google Home ο θόρυβος που κάνουν για να επιβεβαιώσουν ότι ακούνε ενεργά. Αυτό δεν έχει ρυθμιστεί από προεπιλογή σε κανένα από τα παραδείγματα που
A Talking Color Sensor, Βασισμένο στο AIY Voice Kit: 4 Βήματα
A Talking Color Sensor, Based on the AIY Voice Kit: Έχοντας μάθει λίγα πράγματα για τη γραφή Braille πρόσφατα, αναρωτιόμουν αν θα μπορούσα να φτιάξω κάτι χρησιμοποιώντας το κιτ φωνής AIY για το Raspberry Pi, το οποίο μπορεί να έχει ένα πραγματικό όφελος για άτομα με προβλήματα όρασης Το Έτσι περιγράφεται παρακάτω, θα βρείτε ένα πρωτότυπο