- Αισθητήρας εύρους εύρους χρόνου πτήσης (ToF) VL6180X
- Διάγραμμα κυκλώματος
- Προσθήκη απαιτούμενων βιβλιοθηκών για VL6180 ToF Sensor
- Προγραμματισμός και εξήγηση εργασίας
Το TOF ή το Time of flight είναι μια μέθοδος που χρησιμοποιείται συνήθως για τη μέτρηση της απόστασης των απομακρυσμένων αντικειμένων με διάφορους αισθητήρες μέτρησης απόστασης, όπως αισθητήρας υπερήχων. Η μέτρηση του χρόνου που απαιτείται από ένα σωματίδιο, ένα κύμα ή ένα αντικείμενο για να ταξιδέψει μια απόσταση μέσω ενός μέσου αναφέρεται ως Time-of-flight (TOF). Αυτή η μέτρηση μπορεί στη συνέχεια να χρησιμοποιηθεί για τον υπολογισμό της ταχύτητας ή του μήκους διαδρομής. Μπορεί επίσης να χρησιμοποιηθεί για να μάθει για το σωματίδιο ή τις ιδιότητες του μέσου όπως σύνθεση ή ρυθμό ροής. Το διακινούμενο αντικείμενο μπορεί να ανιχνευθεί άμεσα ή έμμεσα.
Οι συσκευές μέτρησης υπερήχων είναι μια από τις πρώτες συσκευές που χρησιμοποιούν την αρχή του χρόνου πτήσης. Αυτές οι συσκευές εκπέμπουν έναν υπερηχητικό παλμό και μετρούν την απόσταση από ένα στερεό υλικό με βάση το χρόνο που χρειάζεται το κύμα για να επιστρέψουν στον πομπό. Χρησιμοποιήσαμε αισθητήρα υπερήχων σε πολλές από τις εφαρμογές μας για να μετρήσουμε την απόσταση:
- Μέτρηση απόστασης με βάση αισθητήρες Arduino & υπερήχων
- Μετρήστε την απόσταση χρησιμοποιώντας αισθητήρα υπερήχων Raspberry Pi και HCSR04
- Πώς να μετρήσετε την απόσταση μεταξύ δύο αισθητήρων υπερήχων
Η μέθοδος του χρόνου πτήσης μπορεί επίσης να χρησιμοποιηθεί για την εκτίμηση της κινητικότητας των ηλεκτρονίων. Στην πραγματικότητα, σχεδιάστηκε για τη μέτρηση λεπτών αγωγών λεπτών μεμβρανών, αργότερα προσαρμόστηκε για κοινούς ημιαγωγούς. Αυτή η τεχνική χρησιμοποιείται για τρανζίστορ οργανικού πεδίου καθώς και μεταλλικές-διηλεκτρικές-μεταλλικές κατασκευές. Με την εφαρμογή του λέιζερ ή του παλμού τάσης, δημιουργούνται τα υπερβολικά φορτία.
Η αρχή TOF χρησιμοποιείται για τη μέτρηση της απόστασης μεταξύ ενός αισθητήρα και ενός αντικειμένου. Ο χρόνος που απαιτείται από το σήμα για να επιστρέψετε στον αισθητήρα μετά την ανάκλαση από ένα αντικείμενο μετριέται και χρησιμοποιείται για τον υπολογισμό της απόστασης. Μπορούν να χρησιμοποιηθούν διάφοροι τύποι σημάτων (φορείς) όπως ήχος, φως με την αρχή TOF. Όταν το TOF χρησιμοποιείται για εύρεση εύρους, είναι πολύ ισχυρό όταν εκπέμπει φως και όχι ήχο. Σε σύγκριση με τον υπέρηχο παρέχει ταχύτερη ανάγνωση, μεγαλύτερη ακρίβεια και μεγαλύτερη εμβέλεια διατηρώντας τα χαρακτηριστικά του χαμηλού βάρους, μικρού μεγέθους και χαμηλής κατανάλωσης ενέργειας.
Εδώ σε αυτό το σεμινάριο θα χρησιμοποιήσουμε έναν αισθητήρα VL6180X TOF Range Finder με το Arduino για να υπολογίσουμε την απόσταση μεταξύ του αισθητήρα και του αντικειμένου. Αυτός ο αισθητήρας λέει επίσης την τιμή έντασης φωτός σε LUX.
Αισθητήρας εύρους εύρους χρόνου πτήσης (ToF) VL6180X
Το VL6180 διαφέρει από άλλους αισθητήρες απόστασης καθώς χρησιμοποιεί ένα ακριβές ρολόι για τη μέτρηση του χρόνου που απαιτείται από το φως για ανάκλαση πίσω από οποιαδήποτε επιφάνεια. Αυτό δίνει στο VL6180 ένα πλεονέκτημα έναντι άλλων αισθητήρων, διότι είναι πιο ακριβές και είναι ανθεκτικό στον θόρυβο.
Το VL6180 είναι ένα πακέτο 3 σε 1 που περιλαμβάνει έναν πομπό IR, έναν αισθητήρα φωτισμού περιβάλλοντος και έναν αισθητήρα εύρους. Επικοινωνεί μέσω διασύνδεσης I 2 C. Διαθέτει ενσωματωμένο ρυθμιστή 2.8V. Έτσι, ακόμη και αν συνδέσουμε τάση μεγαλύτερη από 2,8V, θα μετατοπιστεί αυτόματα χωρίς να καταστρέψει την πλακέτα. Είναι μετρά μια σειρά μέχρι 25 cm. Δύο προγραμματιζόμενα GPIO παρέχονται σε αυτό.
Διάγραμμα κυκλώματος
Εδώ το Nokia 5110 LCD χρησιμοποιείται για την εμφάνιση του επιπέδου φωτός και της απόστασης. Το Nokia 5110 LCD λειτουργεί στα 3.3V, οπότε δεν μπορεί να συνδεθεί απευθείας με ψηφιακές καρφίτσες Arduino Nano. Προσθέστε λοιπόν 10 k αντιστάσεις σε σειρά με τα σήματα δεδομένων για να προστατεύσετε τις γραμμές 3.3V από τις ψηφιακές ακίδες 5V. Μάθετε περισσότερα σχετικά με τη χρήση του Nokia 5110 LCD με το Arduino.
Ο αισθητήρας VL6180 μπορεί να συνδεθεί απευθείας στο Arduino. Η επικοινωνία μεταξύ του VL6180 και του Arduino είναι I2C. Στην πραγματικότητα το πρωτόκολλο επικοινωνίας I2C συνδυάζει τις καλύτερες δυνατότητες των SPI και UART. Εδώ μπορούμε να συνδέσουμε πολλούς σκλάβους σε έναν κύριο και μπορούμε να έχουμε πολλούς κύριους ελέγχους ενός ή πολλών σκλάβων. Όπως η επικοινωνία UART, το I2C χρησιμοποιεί δύο καλώδια για επικοινωνία SDA (Serial Data) και SCL (Serial Clock), μια γραμμή δεδομένων και μια γραμμή ρολογιού.
Το διάγραμμα κυκλώματος για τη σύνδεση του αισθητήρα εύρους εύρους VL6180 ToF με το Arduino φαίνεται παρακάτω:
- Συνδέστε το RST Pin of LCD στον ακροδέκτη 6 του Arduino μέσω της αντίστασης 10K.
- Συνδέστε το CE Pin του LCD στον ακροδέκτη 7 του Arduino μέσω της αντίστασης 10K.
- Συνδέστε το DC Pin του LCD στον ακροδέκτη 5 του Arduino μέσω της αντίστασης 10K.
- Συνδέστε το DIN Pin of LCD στον ακροδέκτη 4 του Arduino μέσω της αντίστασης 10K.
- Συνδέστε το CLK Pin of LCD στον ακροδέκτη 3 του Arduino μέσω της αντίστασης 10K.
- Συνδέστε το VCC Pin of LCD στον 3.3V pin του Arduino.
- Συνδέστε το GND Pin of LCD στο GND του Arduino.
- Συνδέστε τον ακροδέκτη SCL του VL6180 στον ακροδέκτη A5 του Arduino
- Συνδέστε τον πείρο SDA του VL6180 με τον πείρο A4 του Arduino
- Συνδέστε τον πείρο VCC του VL6180 με τον πείρο 5V του Arduino
- Συνδέστε τον πείρο GND του VL6180 στον πείρο GND του Arduino
Προσθήκη απαιτούμενων βιβλιοθηκών για VL6180 ToF Sensor
Τρεις βιβλιοθήκες θα χρησιμοποιηθούν για τη διασύνδεση του αισθητήρα VL6180 με το Arduino.
1. Adafruit_PCD8544
Το Adafruit_PCD8544 είναι μια βιβλιοθήκη για τις οθόνες Monochrome Nokia 5110 LCD. Αυτές οι οθόνες χρησιμοποιούν SPI για επικοινωνία. Απαιτούνται τέσσερις ή πέντε ακίδες για διασύνδεση αυτής της οθόνης LCD. Ο σύνδεσμος για λήψη αυτής της βιβλιοθήκης δίνεται παρακάτω:
github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library/archive/master.zip
2. Adafruit_GFX
Η βιβλιοθήκη Adafruit_GFX για το Arduino είναι η βασική βιβλιοθήκη γραφικών για οθόνες LCD, παρέχοντας μια κοινή σύνταξη και ένα σύνολο πρωτόγονων γραφικών (σημεία, γραμμές, κύκλοι κ.λπ.). Πρέπει να συνδυαστεί με μια βιβλιοθήκη ειδικά για το υλικό για κάθε συσκευή προβολής που χρησιμοποιούμε (για να χειριστούμε τις λειτουργίες χαμηλότερου επιπέδου). Ο σύνδεσμος για λήψη αυτής της βιβλιοθήκης δίνεται παρακάτω:
github.com/adafruit/Adafruit-GFX-Library
3. SparkFun VL6180
Το SparkFun_VL6180 είναι η βιβλιοθήκη Arduino με βασικές λειτουργίες του αισθητήρα VL6180. Το VL6180 αποτελείται από έναν πομπό IR, έναν αισθητήρα εύρους και έναν αισθητήρα φωτισμού περιβάλλοντος που επικοινωνούν μέσω μιας διεπαφής I2C. Αυτή η βιβλιοθήκη σας επιτρέπει να διαβάσετε την απόσταση και τις εξόδους φωτός από τον αισθητήρα και εξάγει τα δεδομένα μέσω σειριακής σύνδεσης. Ο σύνδεσμος για λήψη αυτής της βιβλιοθήκης δίνεται παρακάτω:
downloads.arduino.cc/libraries/github.com/sparkfun/SparkFun_VL6180_Sensor-1.1.0.zip
Προσθέστε όλες τις βιβλιοθήκες μία προς μία πηγαίνοντας στο Σκίτσο >> Συμπερίληψη βιβλιοθήκης >> Προσθήκη βιβλιοθήκης.ZIP στο Arduino IDE. Στη συνέχεια, ανεβάστε τη βιβλιοθήκη που κατεβάσατε από τους παραπάνω συνδέσμους.
Μερικές φορές δεν θα χρειαστεί να προσθέσετε βιβλιοθήκες καλωδίων και SPI, αλλά εάν λαμβάνετε ένα σφάλμα, κατεβάστε και προσθέστε τις στο Arduino IDE σας.
github.com/PaulStoffregen/SPI
github.com/PaulStoffregen/Wire
Προγραμματισμός και εξήγηση εργασίας
Ο πλήρης κώδικας με ένα βίντεο εργασίας δίνεται στο τέλος αυτού του σεμιναρίου, εδώ εξηγούμε το πλήρες πρόγραμμα για να κατανοήσουμε τη λειτουργία του έργου.
Σε αυτό το πρόγραμμα η πλειονότητα των τμημάτων χειρίζεται οι βιβλιοθήκες που προσθέσαμε, οπότε δεν χρειάζεται να ανησυχείτε για αυτό.
Στο τμήμα ρύθμισης ορίστε το ρυθμό baud ως 115200 και αρχικοποιήστε τη βιβλιοθήκη Wire για I2C. Στη συνέχεια, ελέγξτε αν ο αισθητήρας VL6180 λειτουργεί σωστά ή όχι, εάν δεν λειτουργεί, εμφανίστε ένα μήνυμα σφάλματος.
Στο επόμενο μέρος ρυθμίζουμε την οθόνη, μπορείτε να αλλάξετε την αντίθεση με την επιθυμητή τιμή εδώ την ορίζω ως 50
άκυρη ρύθμιση () { Serial.begin (115200); // Ξεκινήστε το Serial στα 115200bps Wire.begin (); // Έναρξη καθυστέρησης βιβλιοθήκης I2C (100). // καθυστέρηση. if (sensor.VL6180xInit ()! = 0) { Serial.println ("ΑΠΕΝΕΡΓΟΠΟΙΗΘΗΚΕ"); // Αρχικοποιήστε τη συσκευή και ελέγξτε για σφάλματα }; sensor.VL6180xDefautSettings (); // Φορτώστε τις προεπιλεγμένες ρυθμίσεις για να ξεκινήσετε. καθυστέρηση (1000) // καθυστέρηση 1s display.begin (); // init done // μπορείτε να αλλάξετε την αντίθεση γύρω για να προσαρμόσετε την οθόνη // για την καλύτερη προβολή! display.setContrast (50); display.display (); // show splashscreen display.clearDisplay (); }
Στη ρύθμιση του μέρους του κενού βρόχου οι οδηγίες για την εμφάνιση των τιμών στην οθόνη LCD. Εδώ παρουσιάζουμε δύο τιμές, μία είναι η «στάθμη φωτισμού περιβάλλοντος σε Lux» (Ένα lux είναι στην πραγματικότητα ένας αυλός ανά τετραγωνικό μέτρο) και η δεύτερη είναι «Απόσταση μετρημένη σε mm». Για να εμφανίσετε διαφορετικές τιμές σε μια οθόνη LCD καθορίστε τη θέση κάθε κειμένου που θα πρέπει να εμφανίζεται στην οθόνη LCD χρησιμοποιώντας το "display.setCursor (0,0);".
void loop () { display.clearDisplay (); // Λάβετε επίπεδο φωτισμού περιβάλλοντος και αναφέρετε στο LUX Serial.print ("Ambient Light Level (Lux) ="); Serial.println (sensor.getAmbientLight (GAIN_1)); display.setTextSize (1); display.setTextColor (ΜΑΥΡΟ); display.setCursor (0,0); display.println ("Επίπεδο φωτός"); display.setCursor (0,12); display.println (sensor.getAmbientLight (GAIN_1)); // Λήψη απόστασης και αναφορά σε mm Serial.print ("Η απόσταση μετρήθηκε (mm) ="); Serial.println (sensor.getDistance ()); display.setTextSize (1); display.setTextColor (ΜΑΥΡΟ); display.setCursor (0, 24); display.println ("Απόσταση (mm) ="); display.setCursor (0, 36); b = sensor.getDistance (); display.println (b); display.display (); καθυστέρηση (500) }
Μετά τη μεταφόρτωση του προγράμματος, ανοίξτε τη σειριακή οθόνη και θα πρέπει να δείχνει την έξοδο όπως φαίνεται παρακάτω.
Οι συσκευές εύρεσης TOL VL6180 χρησιμοποιούνται σε smartphone, φορητές συσκευές αφής, tablet, φορητό υπολογιστή, συσκευές παιχνιδιών και οικιακές συσκευές / βιομηχανικές συσκευές.
Εδώ παρουσιάζουμε το επίπεδο φωτισμού περιβάλλοντος σε Lux και απόσταση σε mm.
Βρείτε το πλήρες πρόγραμμα και το βίντεο επίδειξης παρακάτω. Ελέγξτε επίσης πώς να μετρήσετε την απόσταση χρησιμοποιώντας τον αισθητήρα υπερήχων και το επίπεδο φωτός χρησιμοποιώντας τον αισθητήρα φωτισμού περιβάλλοντος BH1750.