8.2 KiB
Ανίχνευση εγγύτητας - Raspberry Pi
Σε αυτό το μέρος του μαθήματος, θα προσθέσετε έναν αισθητήρα εγγύτητας στο Raspberry Pi σας και θα διαβάσετε αποστάσεις από αυτόν.
Υλικό
Το Raspberry Pi χρειάζεται έναν αισθητήρα εγγύτητας.
Ο αισθητήρας που θα χρησιμοποιήσετε είναι ένας Grove Time of Flight distance sensor. Αυτός ο αισθητήρας χρησιμοποιεί ένα λέιζερ για να ανιχνεύσει αποστάσεις. Έχει εύρος από 10mm έως 2000mm (1cm - 2m) και αναφέρει τιμές σε αυτό το εύρος με αρκετή ακρίβεια, ενώ αποστάσεις πάνω από 1000mm αναφέρονται ως 8109mm.
Ο ανιχνευτής λέιζερ βρίσκεται στο πίσω μέρος του αισθητήρα, στην αντίθετη πλευρά από την υποδοχή Grove.
Αυτός είναι ένας αισθητήρας I²C.
Σύνδεση του αισθητήρα Time of Flight
Ο αισθητήρας Grove Time of Flight μπορεί να συνδεθεί στο Raspberry Pi.
Εργασία - σύνδεση του αισθητήρα Time of Flight
Συνδέστε τον αισθητήρα Time of Flight.
-
Εισάγετε το ένα άκρο ενός καλωδίου Grove στην υποδοχή του αισθητήρα Time of Flight. Θα μπει μόνο με έναν συγκεκριμένο τρόπο.
-
Με το Raspberry Pi απενεργοποιημένο, συνδέστε το άλλο άκρο του καλωδίου Grove σε μία από τις υποδοχές I²C που είναι σημειωμένες ως I²C στο Grove Base hat που είναι συνδεδεμένο στο Pi. Αυτές οι υποδοχές βρίσκονται στην κάτω σειρά, στην αντίθετη πλευρά από τις ακίδες GPIO και δίπλα στην υποδοχή του καλωδίου της κάμερας.
Προγραμματισμός του αισθητήρα Time of Flight
Το Raspberry Pi μπορεί τώρα να προγραμματιστεί για να χρησιμοποιεί τον συνδεδεμένο αισθητήρα Time of Flight.
Εργασία - προγραμματισμός του αισθητήρα Time of Flight
Προγραμματίστε τη συσκευή.
-
Ενεργοποιήστε το Pi και περιμένετε να εκκινήσει.
-
Ανοίξτε τον κώδικα
fruit-quality-detector
στο VS Code, είτε απευθείας στο Pi είτε συνδεθείτε μέσω της επέκτασης Remote SSH. -
Εγκαταστήστε το πακέτο rpi-vl53l0x Pip, ένα πακέτο Python που αλληλεπιδρά με τον αισθητήρα απόστασης VL53L0X Time of Flight. Εγκαταστήστε το χρησιμοποιώντας την εντολή pip:
pip install rpi-vl53l0x
-
Δημιουργήστε ένα νέο αρχείο σε αυτό το έργο με όνομα
distance-sensor.py
.💁 Ένας εύκολος τρόπος να προσομοιώσετε πολλές IoT συσκευές είναι να τις υλοποιήσετε σε διαφορετικά αρχεία Python και να τις εκτελέσετε ταυτόχρονα.
-
Προσθέστε τον παρακάτω κώδικα σε αυτό το αρχείο:
import time from grove.i2c import Bus from rpi_vl53l0x.vl53l0x import VL53L0X
Αυτό εισάγει τη βιβλιοθήκη Grove I²C bus και μια βιβλιοθήκη αισθητήρα για το βασικό υλικό του αισθητήρα που είναι ενσωματωμένο στον Grove Time of Flight αισθητήρα.
-
Κάτω από αυτό, προσθέστε τον παρακάτω κώδικα για πρόσβαση στον αισθητήρα:
distance_sensor = VL53L0X(bus = Bus().bus) distance_sensor.begin()
Αυτός ο κώδικας δηλώνει έναν αισθητήρα απόστασης χρησιμοποιώντας το Grove I²C bus και στη συνέχεια ξεκινά τον αισθητήρα.
-
Τέλος, προσθέστε έναν ατέρμονο βρόχο για να διαβάζετε αποστάσεις:
while True: distance_sensor.wait_ready() print(f'Distance = {distance_sensor.get_distance()} mm') time.sleep(1)
Αυτός ο κώδικας περιμένει να είναι έτοιμη μια τιμή για ανάγνωση από τον αισθητήρα και στη συνέχεια την εκτυπώνει στην κονσόλα.
-
Εκτελέστε αυτόν τον κώδικα.
💁 Μην ξεχάσετε ότι αυτό το αρχείο ονομάζεται
distance-sensor.py
! Βεβαιωθείτε ότι το εκτελείτε μέσω Python, όχι μέσωapp.py
. -
Θα δείτε μετρήσεις αποστάσεων να εμφανίζονται στην κονσόλα. Τοποθετήστε αντικείμενα κοντά στον αισθητήρα και θα δείτε τη μέτρηση της απόστασης:
pi@raspberrypi:~/fruit-quality-detector $ python3 distance_sensor.py Distance = 29 mm Distance = 28 mm Distance = 30 mm Distance = 151 mm
Ο ανιχνευτής βρίσκεται στο πίσω μέρος του αισθητήρα, οπότε βεβαιωθείτε ότι χρησιμοποιείτε τη σωστή πλευρά όταν μετράτε αποστάσεις.
💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο code-proximity/pi.
😀 Το πρόγραμμα του αισθητήρα εγγύτητας σας ήταν επιτυχές!
Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία μετάφρασης AI Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.