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

TinyLiDAR στο Pi ;: 9 βήματα (με εικόνες)
TinyLiDAR στο Pi ;: 9 βήματα (με εικόνες)

Βίντεο: TinyLiDAR στο Pi ;: 9 βήματα (με εικόνες)

Βίντεο: TinyLiDAR στο Pi ;: 9 βήματα (με εικόνες)
Βίντεο: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, Οκτώβριος
Anonim
TinyLiDAR σε Pi
TinyLiDAR σε Pi

Γεια σου και πάλι!

Λοιπόν, τώρα που περάσατε ποιοτικό χρόνο με το tinyLiDAR και το Arduino - το Raspberry Pi σας ίσως νιώθει λίγο μόνος;)

Το pi έχει θύρα I2C σωστά; Γιατί λοιπόν να μην το συνδέσετε και να το δοκιμάσετε εκεί;! Καλό σχέδιο, αλλά αν έχετε ήδη δοκιμάσει - ίσως έχετε παρατηρήσει ότι τα δεδομένα φαίνονται λίγο περίεργα.

Ναι, το pi έχει ήδη ενσωματώσει 1.8K pull-ups, οπότε θα πρέπει να κόψετε τα μαξιλάρια I2C στο tinyLiDAR για να βγείτε από το κύκλωμα των 4.7K pull-ups-ανατρέξτε στο εγχειρίδιο αναφοράς για λεπτομέρειες. Δεν είναι όμως αυτός ο λόγος για τα περίεργα δεδομένα.

Αυτό συμβαίνει επειδή ο δίαυλος I2C του pi δεν ανταποκρίνεται ακριβώς στις προδιαγραφές. Είναι έτσι από τότε που το pi παρουσιάστηκε για πρώτη φορά λόγω του σετ τσιπ Broadcom. Από την αρχή δεν υποστήριξαν σωστά μια λειτουργία I2C που ονομάζεται "ρολόι τέντωμα".

Μπορείτε να διαβάσετε περισσότερα για αυτό το σφάλμα h/w εδώ.

Βήμα 1: Τι είναι το τέντωμα ρολογιού;

Τι είναι το τέντωμα ρολογιού
Τι είναι το τέντωμα ρολογιού

Όπως ίσως γνωρίζετε, ο δίαυλος I2C αποτελείται από 3 καλώδια. Αυτά αφορούν ρολόι (SCL), δεδομένα (SDA) και κοινό έδαφος. Οι γραμμές ρολογιού και δεδομένων είναι τύπου ανοιχτού συλλέκτη/ανοιχτής αποστράγγισης, πράγμα που σημαίνει ότι χρειάζονται αντιστάσεις έλξης συνδεδεμένες με μια θετική ράγα τροφοδοσίας για να τους δώσουν μια λογική υψηλή τιμή. Για να μειωθεί η λογική, οποιαδήποτε συσκευή στο δίαυλο μπορεί να τραβήξει τη γραμμή προς το κοινό έδαφος.

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

Επισήμως, το τέντωμα ρολογιού αναφέρεται ως προαιρετικό χαρακτηριστικό στο πρότυπο I2C, αλλά είναι ένα πολύ συνηθισμένο χαρακτηριστικό που είναι απαραίτητο για τους περισσότερους «έξυπνους» σκλάβους που χρειάζονται περισσότερο χρόνο για την παροχή δεδομένων αισθητήρα κ.λπ.

Βήμα 2: Λίγη βοήθεια από γουρούνια που πετούν

Για να αντιμετωπίσουμε αυτό το σφάλμα I2C h/w, βρήκαμε μια ωραία μικρή δωρεάν βιβλιοθήκη που ονομάζεται "pigpio". Είναι μια πολύ δημοφιλής, γρήγορη και ελαφριά βιβλιοθήκη γραμμένη σε C. Λειτουργεί ως δαίμονας φόντου για το Raspberry Pi και μας επιτρέπει να ελέγχουμε το I2C καθώς και οποιοδήποτε GPIO εύκολα από τον python. Η βιβλιοθήκη αντιμετωπίζει τις θύρες I2C περισσότερο σαν GPIO και έτσι έχει παρακάμψει το σφάλμα τεντώματος ρολογιού I2C. Όπως όλα τα λογισμικά για το pi, η βιβλιοθήκη pigpio είναι μόνο μια απλή "συμπερίληψη", οπότε πάμε!

Βήμα 3: Έκδοση TL; DR

Ρύθμιση PiEnable SSH για σύνδεση με Putty Εγκατάσταση βιβλιοθήκης pigpio Λήψη μικροσκοπικού αρχείου zip LiDAR Αποσυμπίεση και εκτέλεση από το Putty

Προαιρετικός:

Εγκατάσταση SublimeText με WinSCP

Βήμα 4: Εγκατάσταση

Εγκατάσταση
Εγκατάσταση

Για το Raspberry Pi 3, χρησιμοποιήσαμε το τυπικό λειτουργικό σύστημα New Out Of the Box (NOOBS Lite v2.4). Περιέχει μια προεπιλεγμένη έκδοση του Python που είναι ήδη εγκατεστημένη για εμάς, έτοιμη για κωδικοποίηση. Μπορείτε να κατεβάσετε το λειτουργικό σύστημα από εδώ.

Μόλις εγκατασταθεί σε κάρτα micro SD πρέπει να συνδέσετε πληκτρολόγιο και οθόνη για να μπορέσετε να συνδεθείτε στο pi για πρώτη φορά:

Όνομα χρήστη: pi Κωδικός πρόσβασης: βατόμουρο

Στη συνέχεια, μπορείτε να ξεκινήσετε έναν ασφαλή διακομιστή κελύφους (SSH) με αυτές τις εντολές:

sudo systemctl ενεργοποίηση sshsudo systemctl εκκίνηση ssh

Στη συνέχεια θα χρειαστούμε τη διεύθυνση IP του pi στο δίκτυό σας για να μπορέσουμε να συνδεθούμε με το PuTTY. Για να το αποκτήσετε, πληκτρολογήστε:

όνομα κεντρικού υπολογιστή -I

Και αναζητήστε μια διεύθυνση μορφής IPv4 (Για τη ρύθμισή μας ήταν: 192.168.0.27)

Τα παραπάνω βήματα θα επιτρέψουν στο pi να τρέξει "χωρίς κεφάλι", πράγμα που σημαίνει ότι δεν θα χρειαστεί να πληκτρολογήσετε ξανά σε αυτό το πληκτρολόγιο και επίσης δεν υπάρχει πλέον ανάγκη για οθόνη βίντεο. Θα συνδεθούμε μέσω του δικτύου μέσω μιας ασφαλούς σύνδεσης SSH στο μέλλον. Η παραπάνω εντολή προκαλεί την εκκίνηση του διακομιστή SSH αυτόματα κάθε φορά που το pi ενεργοποιείται. Αυτό είναι βολικό για εμάς κατά την κωδικοποίηση, αλλά μπορεί να αποτελέσει κίνδυνο για την ασφάλεια αργότερα (το να είσαι παρανοϊκός είναι καλό), οπότε όταν είσαι έτοιμος, μπορείς να απενεργοποιήσεις αυτή τη λειτουργία αυτόματης εκκίνησης SSH χρησιμοποιώντας αυτήν την εντολή:

sudo systemctl απενεργοποίηση ssh

Αυτή η εντολή πρέπει να πληκτρολογηθεί στο πληκτρολόγιο που συνδέεται φυσικά με το pi.

Το PuTTY είναι ένα τερματικό πρόγραμμα που απαιτείται για την έκδοση εντολών από τον υπολογιστή στο pi, οπότε πρέπει να πάρετε το πιο πρόσφατο αντίγραφο από εδώ.

Εγκαταστήστε και ξεκινήστε το PuTTY. Θα χρειαστεί να πληκτρολογήσετε τη διεύθυνση IP από πάνω στην καταχώριση Όνομα κεντρικού υπολογιστή και να χρησιμοποιήσετε τις προεπιλεγμένες ρυθμίσεις SSH. Δώστε στη συνεδρία οποιοδήποτε όνομα θέλετε και πατήστε αποθήκευση. Στη συνέχεια, πατήστε φόρτωση και κάντε κλικ στο OPEN για να ξεκινήσετε μια συνεδρία.

Θα πρέπει να σας οδηγήσει στην οθόνη σύνδεσης για το pi. Χρησιμοποιήστε το ίδιο όνομα χρήστη και κωδικό πρόσβασης που χρησιμοποιήσατε νωρίτερα.

Βήμα 5: Εγκαταστήστε το Pigpio

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

Συμβουλή: Μπορείτε απλά να αντιγράψετε [ctrl+c] και να επικολλήσετε [δεξί κλικ του ποντικιού] αυτές και οποιεσδήποτε άλλες εντολές στο τερματικό PuTTY

sudo apt-get ενημέρωση

sudo apt-get install pigpio python-pigpio python3-pigpio

Βήμα 6: Προαιρετικό: Dev System Setup

Προαιρετικά: Dev System Setup
Προαιρετικά: Dev System Setup

Ορίστε λοιπόν μια συμβουλή που μπορεί να σας βοηθήσει να εξοικονομήσετε λίγο χρόνο στον κόσμο ανάπτυξης κώδικα. Μισούμε πραγματικά τους επεξεργαστές κειμένου που βασίζονται στο unix. Η διεπαφή χρήστη είναι συνήθως αδέξια και οι γραμματοσειρές είναι χάλια. Το GNU nano είναι σχεδόν υποφερτό, αλλά κανένα δεν είναι τόσο εκλεπτυσμένο όσο το SublimeText που μπορείτε να κατεβάσετε από εδώ

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

Πως? Χρησιμοποιώντας μια δωρεάν εφαρμογή που ονομάζεται WinSCP, την οποία μπορείτε να κατεβάσετε από εδώ

Βήμα 7: Ρύθμιση του WinSCP

Ρύθμιση WinSCP
Ρύθμιση WinSCP
Ρύθμιση WinSCP
Ρύθμιση WinSCP

Το WinSCP είναι ένα ασφαλές πρόγραμμα μεταφοράς αρχείων που δίνει μια γραφική αναπαράσταση των αρχείων που υπάρχουν στο rpi σας, όπως αυτό που βλέπετε στον διαχειριστή αρχείων στον υπολογιστή σας με Windows.

Προχωρήστε λοιπόν και εγκαταστήστε τα δύο παραπάνω προγράμματα επίσης τώρα.

Στη συνέχεια θα πρέπει να κάνετε μερικές προσαρμογές για να λειτουργήσουν όλες σωστά.

Για το WinSCP, μπορείτε να κάνετε κλικ στη ΝΕΑ τοποθεσία. Θα χρησιμοποιήσουμε τις προεπιλεγμένες ρυθμίσεις SFTP και χρειάζεται μόνο να εισαγάγετε τη διεύθυνση IP (για όνομα κεντρικού υπολογιστή) του pi σας και το όνομα σύνδεσης (για όνομα χρήστη). Μπορείτε να επιλέξετε να αφήσετε τον κωδικό πρόσβασης κενό αν θέλετε - θα σας ζητά τον κωδικό πρόσβασης κάθε φορά που συνδέεστε.

Στη συνέχεια, κάντε κλικ στο κουμπί για προχωρημένους και, στη συνέχεια, κάντε κλικ στην αριστερή πλευρά για τις ρυθμίσεις του περιβλήματος περιβάλλοντος. Στη δεξιά πλευρά αλλάξτε την επιλογή "Προεπιλογή" προς τα κάτω στην επιλογή "sudo su -". Αυτό θα επιτρέψει την εγγραφή αλλαγών στο pi σας χωρίς σφάλματα άδειας όταν πατήσετε αποθήκευση από το SublimeText.

Ορίστε το SublimeText ως προεπιλεγμένο πρόγραμμα επεξεργασίας στο WinSCP

Για να το κάνετε αυτό, κάντε κλικ στο κουμπί Εργαλεία στην οθόνη ρυθμίσεων σύνδεσης WinSCP όπου ξεκινήσατε το παράθυρο διαλόγου NewSite. Οι δύο λήψεις οθόνης δείχνουν πώς έχει ρυθμιστεί αυτό, αλλά βασικά θα κάνετε κλικ για να διαμορφώσετε την προτίμηση Editors και προσθέστε έναν επεξεργαστή που θα είναι εξωτερικός επεξεργαστής. Στη συνέχεια, μπορείτε να αναζητήσετε το αρχείο.exe όπου βρίσκεται αυτός ο επεξεργαστής στον υπολογιστή σας.

Βήμα 8: (w) λήψη του Κώδικα

(w) λήψη του Κώδικα
(w) λήψη του Κώδικα

Μόλις τελειώσετε, προχωρήστε και συνδεθείτε με το WinSCP και το PuTTY.

Τώρα είμαστε έτοιμοι να ξεκινήσουμε τον κωδικό μας tinyLiDAR.

Δημιουργήστε έναν κατάλογο που ονομάζεται tinyLiDAR κάτω από τον κατάλογο home/pi.

Μπορείτε να το κάνετε αυτό κάνοντας δεξί κλικ στη δεξιά πλευρά της οθόνης WinSCP και επιλέξτε New / Directory.

Τώρα στο τερματικό PuTTY μπορείτε να πληκτρολογήσετε

cd t

και πατήστε tab για να το αφήσετε να συμπληρώσει αυτόματα την εντολή σας για να μεταβείτε στον κατάλογο tinyLiDAR.

Μόλις εδώ πληκτρολογήσετε τα ακόλουθα:

wget

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

αποσυμπιέζω r

και πατήστε tab για να συμπληρώσετε ξανά αυτόματα το όνομα

Για να το εκτελέσετε, απλά πληκτρολογήστε

python tlgui.py

Και το tinyLiDAR σας θα ανταποκρίνεται σε κάθε εντολή σας στο pi:)

Βήμα 9: Σημείωση για τους μελλοντικούς χάκερ

Προχωρήστε και ρίξτε μια ματιά κάτω από το καπό κάνοντας διπλό κλικ σε οποιοδήποτε από τα αρχεία κώδικα από το WinSCP. Είναι αυτά με επέκταση.py. Τα αρχεία πρέπει να ανοίγουν στο SublimeText απευθείας στον υπολογιστή σας. Αλλάξτε ό, τι σας αρέσει και στη συνέχεια πατήστε αποθήκευση. Οι αλλαγές σας θα αποθηκευτούν απευθείας στο pi σας.

Όταν είναι έτοιμο, το εκτελείτε ξανά χρησιμοποιώντας το πλήκτρο επάνω βέλους για την τελευταία πληκτρολογημένη εντολή ή απλά πληκτρολογήστε το ξανά και πατήστε enter:

python tlgui.py

Μπορεί να έχετε παρατηρήσει ότι η διάταξη του Terminal GUI φαίνεται λίγο πιο ωραία από την έκδοση Arduino. Είναι επειδή το PuTTY υποστηρίζει χαρακτήρες unicode, οπότε μπορέσαμε να χρησιμοποιήσουμε μερικούς επιπλέον χαρακτήρες ελέγχου δρομέα για να φαίνεται πιο εκλεπτυσμένος.

Υπάρχει επίσης μια πρόσθετη εντολή εδώ (σε σύγκριση με την έκδοση Arduino) η οποία είναι "dc" για τη λειτουργία συνεχούς ανάγνωσης. Δοκιμάστε το και δείτε τι σκέφτεστε.

Αυτό είναι όλο!

Ευχαριστώ που διαβάσατε και απολαύστε το hacking στο pi:)

Συνιστάται: