Πίνακας περιεχομένων:
- Βήμα 1: Η λίστα μερών
- Βήμα 2: Σύνδεση ηλεκτρονικών ανταλλακτικών
- Βήμα 3: Arduino Mega Code
- Βήμα 4: Δοκιμή αυτόματης λαβής
- Βήμα 5: Αυτόματη λαβή με φωνητική ενεργοποίηση
Βίντεο: Αυτόματη λαβή χρησιμοποιώντας αισθητήρα λέιζερ και φωνητικές εντολές: 5 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Το να πιάσουμε αντικείμενα που μας φαίνεται απλό και φυσικό πράγμα είναι στην πραγματικότητα ένα πολύπλοκο έργο. Ο άνθρωπος χρησιμοποιεί την αίσθηση της όρασης για να καθορίσει την απόσταση από το αντικείμενο που θέλει να αρπάξει. Το χέρι ανοίγει αυτόματα όταν βρίσκεται πολύ κοντά στο αντικείμενο που πιάνεται και στη συνέχεια κλείνει γρήγορα για να πιάσει καλά το αντικείμενο. Έχω χρησιμοποιήσει αυτήν την τεχνική με έναν απλοποιημένο τρόπο σε αυτό το μίνι έργο, αλλά αντί για την κάμερα χρησιμοποίησα έναν αισθητήρα λέιζερ για να εκτιμήσω την απόσταση του αντικειμένου από τη λαβή και τις φωνητικές εντολές για έλεγχο.
Βήμα 1: Η λίστα μερών
Σε αυτό το μικρό έργο θα χρειαστείτε μόνο μερικά από τα μέρη που αναφέρονται παρακάτω. Ως χειριστήριο χρησιμοποίησα το Arduino mega 2560 αλλά μπορείτε επίσης να χρησιμοποιήσετε το UNO ή οποιοδήποτε άλλο Arduino. Ως αισθητήρας απόστασης χρησιμοποίησα έναν αισθητήρα λέιζερ VL53L0X ο οποίος έχει καλή ακρίβεια (περίπου μερικά χιλιοστά) και εμβέλεια έως 2 μέτρα. Σε αυτό το έργο μπορείτε να χρησιμοποιήσετε για τη δοκιμή οποιασδήποτε λαβής και σερβο, αλλά πρέπει να την τροφοδοτείτε από ξεχωριστή πηγή τροφοδοσίας, π.χ. έως 5V
Μέρη που απαιτούνται σε αυτό το έργο:
- VL53L0X Laser ToF Sensor x1
- Digitalηφιακό σερβο x1
- Arduino mega 2560 x1
- Ρομπότ μεταλλική λαβή x1
- Breadboard x1
- Κουμπί απλής ώθησης x1
- Bluetooth HC-06
- Αντίσταση 10k x1
- Τροφοδοσία 5V/2A
ΕΚΤΕΤΑΜΕΝΗ Εκδοση:
- CJMCU-219 Μονάδα αισθητήρα τρέχουσας οθόνης x1
-
Πίνακας ανάπτυξης οδηγού WS2812 RGB LED x1
Βήμα 2: Σύνδεση ηλεκτρονικών ανταλλακτικών
Το πρώτο σχήμα δείχνει όλες τις απαραίτητες συνδέσεις. Στις παρακάτω φωτογραφίες μπορείτε να δείτε τα επόμενα βήματα σύνδεσης μεμονωμένων μονάδων. Στην αρχή, το κουμπί σύνδεσης συνδέθηκε με τον ακροδέκτη 2 του Arduino, στη συνέχεια το σερβο στον ακροδέκτη 3 και τέλος τον αισθητήρα απόστασης λέιζερ VL53L0X μέσω διαύλου I2C (SDA, SCL).
Οι συνδέσεις των ηλεκτρονικών ενοτήτων είναι οι ακόλουθες:
VL53L0X Laser Sensor -> Arduino Mega 2560
- SDA - SDA
- SCL - SCL
- VCC - 5V
- GND - GND
Servo -> Arduino Mega 2560
Σήμα (πορτοκαλί σύρμα) - 3
Servo -> Τροφοδοτικό 5V/2A
- GND (καφέ σύρμα) - GND
- VCC (κόκκινο σύρμα) - 5V
Κουμπί -> Arduino Mega 2560
- Καρφίτσα 1 - 3,3 ή 5V
- Καρφίτσα 2 - 2 (και μέσω της αντίστασης 10k στη γείωση)
Bluetooth (HC -06) -> Arduino Mega 2560
- TXD - TX1 (19)
- RXD - RX1 (18)
- VCC - 5V
- GND - GND
Βήμα 3: Arduino Mega Code
Έχω προετοιμάσει τα ακόλουθα δείγματα προγραμμάτων Arduino που διατίθενται στο GitHub μου:
- VL53L0X_gripper_control
- Voice_VL53L0X_gripper_control
Το πρώτο πρόγραμμα που ονομάζεται "VL53L0X_gripper_control" επιτυγχάνει το έργο της αυτόματης σύλληψης ενός αντικειμένου που έχει εντοπιστεί από τον αισθητήρα λέιζερ VL53L0X. Πριν από τη σύνταξη και τη μεταφόρτωση του δείγματος προγράμματος, βεβαιωθείτε ότι έχετε επιλέξει το "Arduino Mega 2560" ως πλατφόρμα -στόχο όπως φαίνεται παραπάνω (Arduino IDE -> Εργαλεία -> Πίνακας -> Arduino Mega ή Mega 2560). Το πρόγραμμα Arduino ελέγχει στον κύριο βρόχο - "void loop ()" εάν έχει έρθει η νέα ανάγνωση από τον αισθητήρα λέιζερ (λειτουργία readRangeContinuousMillimeters ()). Εάν η απόσταση που διαβάζεται από τον αισθητήρα "distance_mm" είναι μεγαλύτερη από την τιμή "THRESHOLD_CLOSING_DISTANCE_FAR" ή μικρότερη από "THRESHOLD_CLOSING_DISTANCE_NEAR", τότε το σερβο αρχίζει να κλείνει. Σε άλλες περιπτώσεις, αρχίζει να ανοίγει. Στο επόμενο μέρος του προγράμματος, στη λειτουργία "digitalRead (gripperOpenButtonPin)", η κατάσταση του κουμπιού ελέγχεται συνεχώς και αν πατηθεί, η λαβή θα ανοίξει παρά το γεγονός ότι είναι κλειστή λόγω της εγγύτητας του αντικειμένου (η απόσταση_mm είναι μικρότερη από THRESHOLD_CLOSING_DISTANCE_NEAR).
Το δεύτερο πρόγραμμα "Voice_VL53L0X_gripper_control" σας επιτρέπει να ελέγχετε τη λαβή χρησιμοποιώντας φωνητικές εντολές. Οι φωνητικές εντολές υποβάλλονται σε επεξεργασία από την εφαρμογή BT Voice Control for Arduino από το Google Play και αποστέλλονται περαιτέρω μέσω bluetooth στο Arduino. Το πρόγραμμα Arduino ελέγχει στον κύριο βρόχο - "void loop ()" εάν η νέα εντολή (χαρακτήρας) έχει σταλεί από την εφαρμογή Android μέσω bluetooth. Εάν υπάρχει εισερχόμενος χαρακτήρας από το σειριακό bluetooth, το πρόγραμμα διαβάζει τα σειριακά δεδομένα έως ότου συναντήσει το τέλος της φωνητικής οδηγίας "#". Στη συνέχεια ξεκινά την εκτέλεση της λειτουργίας "void processInput ()" και ανάλογα με τη φωνητική εντολή καλείται μια συγκεκριμένη συνάρτηση ελέγχου.
Βήμα 4: Δοκιμή αυτόματης λαβής
Το βίντεο από το "Βήμα 1" δείχνει δοκιμές ρομπότ με βάση το πρόγραμμα από την προηγούμενη ενότητα "Arduino Mega Code". Αυτό το βίντεο δείχνει πώς ανοίγει αυτόματα όταν το αντικείμενο είναι κοντά του και, στη συνέχεια, πιάνει αυτό το αντικείμενο εάν βρίσκεται σε κοντινή απόσταση από τη λαβή. Η ανατροφοδότηση από τον αισθητήρα απόστασης λέιζερ που χρησιμοποιείται εδώ είναι σαφώς ορατή στο επόμενο μέρος του βίντεο όταν μετακινώ το μπουκάλι εμπρός και πίσω που προκαλεί γρήγορη αντίδραση και αλλαγή ελέγχου χειριστηρίου.
Βήμα 5: Αυτόματη λαβή με φωνητική ενεργοποίηση
Στο επόμενο βήμα στην ανάπτυξη αυτού του έργου, πρόσθεσα φωνητικό έλεγχο σε αυτό. Χάρη στη φωνητική εντολή, μπορώ να ελέγξω το κλείσιμο, το άνοιγμα και την ταχύτητα της λαβής. Ο φωνητικός έλεγχος σε αυτή την περίπτωση είναι πολύ χρήσιμος όταν ανοίγετε τη λαβή που κρατά το αντικείμενο. Αντικαθιστά το κουμπί και επιτρέπει τον εύκολο έλεγχο της λαβής που τοποθετείται στο κινητό ρομπότ.
Αν σας αρέσει αυτό το έργο, μην ξεχάσετε να ψηφίσετε και γράψτε στο σχόλιο τι θα θέλατε να δείτε στην επόμενη ανάρτηση ως περαιτέρω βελτίωση αυτού του έργου:) Δείτε τα άλλα μου έργα που σχετίζονται με τη ρομποτική, απλώς επισκεφθείτε:
- youtube
- η ιστοσελίδα μου
Συνιστάται:
Σεμινάριο: Πώς να φτιάξετε μια μονάδα αισθητήρα κλίμακας λέιζερ VL53L0X χρησιμοποιώντας το Arduino UNO: 3 βήματα
Φροντιστήριο: Πώς να φτιάξετε ένα VL53L0X Laser Ranging Sensor Module χρησιμοποιώντας Arduino UNO: Περιγραφές: Αυτό το σεμινάριο θα δείξει σε όλους εσάς λεπτομερώς πώς να φτιάξετε ανιχνευτή απόστασης χρησιμοποιώντας το VL53L0X Laser Ranging Sensor Module And Arduino UNO και θα λειτουργεί όπως εσείς θέλω. Ακολουθήστε τις οδηγίες και θα καταλάβετε αυτόν τον εκπαιδευτή
JavaStation (Πλήρως αυτόματη καφετιέρα IoT με αυτόματη επαναπλήρωση): 9 βήματα (με εικόνες)
JavaStation (Self-Refilling Fully Automatic IoT Coffee Maker): Ο στόχος αυτού του έργου ήταν να φτιάξουμε μια πλήρως αυτόματη καφετιέρα με φωνητικό έλεγχο, η οποία ξαναγεμίζει αυτόματα με νερό και το μόνο που χρειάζεται να κάνετε είναι να αντικαταστήσετε τους θαμώνες και να πιείτε τον καφέ σας. )
8 Έλεγχος ρελέ με NodeMCU και δέκτη IR χρησιμοποιώντας WiFi και IR Τηλεχειριστήριο και εφαρμογή Android: 5 βήματα (με εικόνες)
8 Έλεγχος ρελέ με δέκτη NodeMCU και IR χρησιμοποιώντας WiFi και IR Τηλεχειριστήριο και εφαρμογή Android: Έλεγχος 8 διακοπτών ρελέ χρησιμοποιώντας nodemcu και δέκτη ir μέσω wifi και ir απομακρυσμένης και εφαρμογής Android. Το ir remote λειτουργεί ανεξάρτητα από τη σύνδεση wifi. ΕΔΩ ΕΙΝΑΙ ΕΝΗΜΕΡΩΜΕΝΗ ΚΛΙΚ ΕΔΩ
Mini CNC λέιζερ χαράκτης ξύλου και κόπτης χαρτιού λέιζερ .: 18 βήματα (με εικόνες)
Mini CNC Laser Wood Engraver and Laser Paper Cutter: This is a Instructables on how I made a Arduino based Laser CNC χαρακτής ξύλου και Thin paper cutter χρησιμοποιώντας παλιές μονάδες DVD, λέιζερ 250mW. Ο χώρος παιχνιδιού είναι 40mm x 40mm max. Δεν είναι διασκεδαστικό να φτιάχνετε ένα δικό σας μηχάνημα από παλιά πράγματα;
Μέθοδοι ανίχνευσης επιπέδου νερού Arduino χρησιμοποιώντας υπερηχητικό αισθητήρα και αισθητήρα νερού Funduino: 4 βήματα
Μέθοδοι ανίχνευσης επιπέδου νερού Arduino χρησιμοποιώντας υπερηχητικό αισθητήρα και αισθητήρα νερού Funduino: Σε αυτό το έργο, θα σας δείξω πώς να δημιουργήσετε έναν φθηνό ανιχνευτή νερού χρησιμοποιώντας δύο μεθόδους: 1. Αισθητήρας υπερήχων (HC-SR04) .2. Αισθητήρας νερού Funduino