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

CircuitPython και TinyLiDAR: Απλό παράδειγμα: 3 βήματα
CircuitPython και TinyLiDAR: Απλό παράδειγμα: 3 βήματα

Βίντεο: CircuitPython και TinyLiDAR: Απλό παράδειγμα: 3 βήματα

Βίντεο: CircuitPython και TinyLiDAR: Απλό παράδειγμα: 3 βήματα
Βίντεο: Arduino VS CircuitPython Speed Comparison 2024, Νοέμβριος
Anonim
CircuitPython και TinyLiDAR: Απλό παράδειγμα
CircuitPython και TinyLiDAR: Απλό παράδειγμα

Το MicroElectronicDesign tinyLiDAR είναι ένα δομοστοιχείο χρονικής πτήσης (ToF) βασισμένο σε ST VL53L0X με σύνδεση διαύλου i2c. Οι πλακέτες μικροελεγκτών Adafruit συνδέονται εύκολα με αυτόν τον αισθητήρα καθώς μπορούν να μιλήσουν το πρωτόκολλο i2c μέσω των ακίδων δεδομένων τους.

Οι σειρές M0/M4 έχουν το πλεονέκτημα σε σχέση με άλλους πίνακες επειδή υποστηρίζουν ένα υποσύνολο Python που καθιστά τον προγραμματισμό πιο προσιτό σε ένα ευρύτερο κοινό από το C σε ένα Arduino. Αυτό είναι ένα απλό παράδειγμα χρησιμοποιώντας το CircuitPython σε έναν πίνακα Gemma M0 για να διαβάσετε τις τιμές απόστασης από ένα tinyLiDAR και να υποδείξετε την απόσταση μεταβάλλοντας τη φωτεινότητα του ενσωματωμένου LED RGB. Ο πίνακας πρέπει να είναι η έκδοση M0 για υποστήριξη python.

Σημείωση: Η Adafruit κατασκευάζει επίσης διάφορους πίνακες ανίχνευσης απόστασης, συμπεριλαμβανομένης μιας που βασίζεται στο VL53L0X.

Βήμα 1: Κωδικός CircuitPython

  1. Λήψη lib/adafruit_dotstar.mpy και lib/adafruit_bus_device/i2c_device.mpy εάν δεν τα έχετε ήδη. Αυτά είναι μέρος της προαιρετικής δέσμης βιβλιοθηκών, ανατρέξτε στην πρώτη ενότητα του CircuitPython I2C για σημειώσεις σχετικά με τον τρόπο εγκατάστασής τους. Αυτά τα αρχεία πρέπει να μπουν στους καταλόγους lib και lib/adafruit_bus_device στο Gemma M0.
  2. Κατεβάστε το gemma-m0-tinylidar-simple.py, μετονομάστε το σε main.py και αντιγράψτε στον ριζικό κατάλογο του Gemma M0.

Το πρόγραμμα γράφει έξοδο στη σειριακή κονσόλα καθώς και μεταβάλλει τη φωτεινότητα του Gemma MO RGB LED ανάλογα με την απόσταση που διαβάζεται. Το led Gemma M0 εναλλάσσεται μεταξύ ενεργοποίησης και απενεργοποίησης για ανάγνωση, οπότε θα αναβοσβήνει περίπου στα 5Hz και η προεπιλεγμένη συμπεριφορά της πλακέτας tinyLiDAR είναι να αναβοσβήνει το μπλε led ανά εντολή στα 10Hz.

Ο δίαυλος κινείται στα 100kHz που λειτουργεί καλά για αυτήν την περίπτωση. Όπως κάθε δίαυλος, η ταχύτητα επικοινωνίας της ταχύτητας επικοινωνίας περιορίζεται από τα χαρακτηριστικά της γραμμής μεταφοράς, οπότε πρέπει να δοθεί προσοχή στο μήκος, τη χωρητικότητα και άλλους παράγοντες.

Βήμα 2: Σύνδεση του TinyLiDAR σε Gemma M0

Σύνδεση του TinyLiDAR σε Gemma M0
Σύνδεση του TinyLiDAR σε Gemma M0

Η εικόνα δείχνει μια αποτελεσματική αλλά άκομψη προσωρινή ρύθμιση για τη σύνδεση του tinyLiDAR σε μια πλακέτα Gemma M0. Ο γενικός συνδετήρας 4pin "Grove" του tinyLiDAR χρησιμοποιείται μέσω καλωδίου μετατροπής Seeed Grove, εφεδρικής κεφαλίδας και κλιπ κροκοδείλων για σύνδεση με το Gemma M0. Κάποιος διαχωρισμός μεταξύ των ακίδων στην κεφαλίδα αφαιρεί τον κίνδυνο ακούσιας βραχυκυκλώματος. Οι συνδέσεις είναι:

  • Μαύρο: gnd σε gnd
  • Κόκκινο: +V έως 3Vo
  • Λευκό: SDA έως D0 (δεδομένα)
  • Κίτρινο: SCL έως D2 (ρολόι)

Οι πίνακες Adafruit διαθέτουν ορισμένες ακίδες που υποστηρίζουν αποτελεσματικά το πρωτόκολλο i2c στο υλικό. Στην περίπτωση του Gemma M0, αυτά πρέπει να χρησιμοποιούνται, D0 για δεδομένα και D2 για ρολόι.

Ένας δίαυλος i2c απαιτεί αντίσταση έλξης στις γραμμές δεδομένων και ρολογιού. Σε αυτή την περίπτωση, το tinyLiDAR παρέχει περίπου 4.7K αντιστάσεις επί του σκάφους. Εάν αυτά έχουν αφαιρεθεί από το κύκλωμα κόβοντας τις γραμμές, τότε πρέπει να προστεθούν ισοδύναμα στο κύκλωμα.

Βήμα 3: Σειριακή έξοδος

Σειριακή έξοδος
Σειριακή έξοδος

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

Συνιστάται: