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

Αυτόματη λαβή χρησιμοποιώντας αισθητήρα λέιζερ και φωνητικές εντολές: 5 βήματα (με εικόνες)
Αυτόματη λαβή χρησιμοποιώντας αισθητήρα λέιζερ και φωνητικές εντολές: 5 βήματα (με εικόνες)

Βίντεο: Αυτόματη λαβή χρησιμοποιώντας αισθητήρα λέιζερ και φωνητικές εντολές: 5 βήματα (με εικόνες)

Βίντεο: Αυτόματη λαβή χρησιμοποιώντας αισθητήρα λέιζερ και φωνητικές εντολές: 5 βήματα (με εικόνες)
Βίντεο: World's Largest FREE WILL Debate w/ Top Physicists & Philosophers 2024, Ιούλιος
Anonim
Image
Image
Η λίστα μερών
Η λίστα μερών

Το να πιάσουμε αντικείμενα που μας φαίνεται απλό και φυσικό πράγμα είναι στην πραγματικότητα ένα πολύπλοκο έργο. Ο άνθρωπος χρησιμοποιεί την αίσθηση της όρασης για να καθορίσει την απόσταση από το αντικείμενο που θέλει να αρπάξει. Το χέρι ανοίγει αυτόματα όταν βρίσκεται πολύ κοντά στο αντικείμενο που πιάνεται και στη συνέχεια κλείνει γρήγορα για να πιάσει καλά το αντικείμενο. Έχω χρησιμοποιήσει αυτήν την τεχνική με έναν απλοποιημένο τρόπο σε αυτό το μίνι έργο, αλλά αντί για την κάμερα χρησιμοποίησα έναν αισθητήρα λέιζερ για να εκτιμήσω την απόσταση του αντικειμένου από τη λαβή και τις φωνητικές εντολές για έλεγχο.

Βήμα 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

ΕΚΤΕΤΑΜΕΝΗ Εκδοση:

  1. CJMCU-219 Μονάδα αισθητήρα τρέχουσας οθόνης x1
  2. Πίνακας ανάπτυξης οδηγού 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 Mega Code
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: Αυτόματη λαβή με φωνητική ενεργοποίηση

Image
Image
Πρόκληση Epilog 9
Πρόκληση Epilog 9

Στο επόμενο βήμα στην ανάπτυξη αυτού του έργου, πρόσθεσα φωνητικό έλεγχο σε αυτό. Χάρη στη φωνητική εντολή, μπορώ να ελέγξω το κλείσιμο, το άνοιγμα και την ταχύτητα της λαβής. Ο φωνητικός έλεγχος σε αυτή την περίπτωση είναι πολύ χρήσιμος όταν ανοίγετε τη λαβή που κρατά το αντικείμενο. Αντικαθιστά το κουμπί και επιτρέπει τον εύκολο έλεγχο της λαβής που τοποθετείται στο κινητό ρομπότ.

Αν σας αρέσει αυτό το έργο, μην ξεχάσετε να ψηφίσετε και γράψτε στο σχόλιο τι θα θέλατε να δείτε στην επόμενη ανάρτηση ως περαιτέρω βελτίωση αυτού του έργου:) Δείτε τα άλλα μου έργα που σχετίζονται με τη ρομποτική, απλώς επισκεφθείτε:

  • youtube
  • η ιστοσελίδα μου

Συνιστάται: