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

Raspberry SPy Robot: 8 βήματα (με εικόνες)
Raspberry SPy Robot: 8 βήματα (με εικόνες)

Βίντεο: Raspberry SPy Robot: 8 βήματα (με εικόνες)

Βίντεο: Raspberry SPy Robot: 8 βήματα (με εικόνες)
Βίντεο: ΓΙΑΤΙ ΘΕΛΩ L4D3 2024, Ιούλιος
Anonim
Image
Image
Ρομπότ Raspberry SPy
Ρομπότ Raspberry SPy

Αυτό το έργο σας επιτρέπει να οδηγήσετε ένα ρομπότ μέσω μιας ιστοσελίδας και να δείτε μια ζωντανή ροή. Μπορεί να χρησιμοποιηθεί για κατασκοπεία κατοικίδιων ζώων, βεβαιωθείτε ότι δεν καίγεται τίποτα στο φούρνο σας, ακόμη και για ρολόι πουλιών! Το DFRobot παρείχε το Raspberry Pi 3 και τη μονάδα κάμερας Raspberry Pi.

Βήμα 1: Η ηλεκτρονική ρομπότ

Η ηλεκτρονική ρομπότ
Η ηλεκτρονική ρομπότ

Ξεκίνησα με τη συναρμολόγηση του κιτ πλαισίου 2WD MiniQ από το DFRobot. Γλίστρησα τους τροχούς στους άξονες του κινητήρα, μετά τους έβαλα σε αγκύλες και τους στερέωσα στο πλαίσιο. Τέλος, πρόσθεσα τα μεταλλικά στηρίγματα. Itρθε η ώρα να φτιάξουμε τον κύριο πίνακα. Ο οδηγός κινητήρα L293d συγκολλήθηκε στη θέση του, μαζί με καλώδια που τρέχουν στις καρφίτσες GPIO του Raspberry Pi. Στη συνέχεια, κόλλησα έναν σύνδεσμο για την μπαταρία, καθώς αυτός θα παρέχει την κύρια ισχύ. Μετά την προσθήκη της πηγής τροφοδοσίας, εγκατέστησα έναν ρυθμιστή 5V.

Βήμα 2: Ρύθμιση του Pi

Ρύθμιση του Pi
Ρύθμιση του Pi

Το DFRobot με πλησίασε και μου έστειλε το Raspberry Pi 3 και το Raspberry Pi Camera Module. Έτσι, αφού άνοιξα τα κουτιά, πήρα το δικαίωμα να δουλέψω με τη ρύθμιση της κάρτας SD. Πρώτα πήγα στη σελίδα Λήψεις Raspberry Pi και κατέβασα την πιο πρόσφατη έκδοση του Raspbian. Στη συνέχεια έβγαλα το αρχείο και το έβαλα σε έναν βολικό κατάλογο. Δεν μπορείτε απλώς να αντιγράψετε/επικολλήσετε ένα αρχείο.img σε μια κάρτα SD, πρέπει να το "κάψετε" στην κάρτα. Μπορείτε να κατεβάσετε ένα βοηθητικό πρόγραμμα όπως το Etcher.io για να μεταφέρετε εύκολα την εικόνα του λειτουργικού συστήματος. Αφού το αρχείο.img ήταν στην κάρτα SD μου, το έβαλα στο Raspberry Pi και του έδωσα ισχύ. Μετά από περίπου 50 δευτερόλεπτα, αποσύνδεσα το καλώδιο και αφαίρεσα την κάρτα SD. Στη συνέχεια, έβαλα ξανά την κάρτα SD στον υπολογιστή μου και πήγα στον κατάλογο "εκκίνησης". Άνοιξα το σημειωματάριο και το αποθήκευσα ως ένα κενό αρχείο με το όνομα "ssh" χωρίς επέκταση ΟΧΙ. Υπήρχε επίσης ένα αρχείο που πρόσθεσα με το όνομα "wpa_supplicant.conf" και έβαλα αυτό το κείμενο σε αυτό:

δίκτυο = {ssid = psk =}

Στη συνέχεια, αποθηκεύσα και έβγαλα την κάρτα και την έβαλα ξανά στο Raspberry Pi 3. Αυτό θα πρέπει τώρα να επιτρέπει τη χρήση SSH και τη σύνδεση με WiFi.

Βήμα 3: Προετοιμασία της κάμερας

Προετοιμασία της κάμερας
Προετοιμασία της κάμερας

Από προεπιλογή, η κάμερα είναι απενεργοποιημένη στο Pi, οπότε πρέπει να ανοίξετε τον τερματικό τύπο sudo raspi-config για να εμφανιστεί το μενού. Μεταβείτε στις "επιλογές διασύνδεσης" και, στη συνέχεια, ενεργοποιήστε την κάμερα. Τώρα απλώς επιλέξτε "Τέλος" και τοποθετήστε το καλώδιο κορδέλας της μονάδας κάμερας στη σωστή περιοχή του Pi.

Βήμα 4: Εγκατάσταση λογισμικού

Υπάρχουν πολλά διαφορετικά λογισμικά που μπορούν να μεταδώσουν βίντεο, όπως vlc και motion, αλλά αποφάσισα να χρησιμοποιήσω το mjpeg-streamer λόγω της χαμηλής καθυστέρησης και της εύκολης εγκατάστασής του. Σύμφωνα με τις οδηγίες στον ιστότοπο, κάντε έναν κλώνο git https://github.com/jacksonliam/mjpg-streamer.git σε ένα φάκελο και, στη συνέχεια, πληκτρολογήστε sudo apt-get install cmake libjpeg8-dev για να εγκαταστήσετε τις απαραίτητες βιβλιοθήκες. Αλλάξτε τον κατάλογό σας στο φάκελο που κατεβάσατε και, στη συνέχεια, πληκτρολογήστε make ακολουθούμενο από sudo make install για να μεταγλωττίσετε το λογισμικό. Τέλος εισάγετε εξαγωγή LD_LIBRARY_PATH =. και για την εκτέλεσή του πληκτρολογήστε.

Βήμα 5: Ελεγκτής

Ελεγκτής
Ελεγκτής
Ελεγκτής
Ελεγκτής

Στη συνέχεια ήρθε το μέρος του τρόπου ελέγχου ενός Raspberry Pi μέσω WiFi, επειδή το Bluetooth έχει πολύ μικρό εύρος. Αποφάσισα να χρησιμοποιήσω έναν διακομιστή Flask που εκτελείται στο Raspberry PI και μια μονάδα ESP8266 ESP12E για να στείλω δεδομένα σε αυτόν. Το ESP8266 έχει μόνο μία αναλογική είσοδο, πράγμα που σημαίνει ότι δεν μπορούσα να χρησιμοποιήσω το χειριστήριο απευθείας, καθώς χρειάζονται δύο αναλογικές εισόδους. Η καλύτερη επιλογή ήταν το ADS1115, το οποίο είναι μια συσκευή I2C που διαβάζει αναλογικά σήματα σε 16 bit ανάλυσης. Συνέδεσα απλά το SDA στο 4 και το SCL στο 5, μαζί με το VCC και το GND. Ο άξονας του joystick X συνδέεται με το A0 στο ADS1115 και ο άξονας Y συνδέεται με το A1. ΑΛΛΑ, έκαψα κατά λάθος το ADS1115, οπότε έπρεπε να καταφύγω στο επόμενο καλύτερο: τα κουμπιά! Έτσι, τώρα η ρύθμισή μου είναι ένας πίνακας ESP8266 Sparkfun Thing Dev με 3 κουμπιά- μπροστά, δεξιά και αριστερά. Τώρα κάθε φορά που πιέζεται κάποιος, στέλνει δεδομένα για να γυρίσει τους τροχούς προς αυτή την κατεύθυνση.

Βήμα 6: Ο κώδικας για το ρομπότ

Ο κώδικας για το ρομπότ
Ο κώδικας για το ρομπότ

Έκανα ένα προηγούμενο έργο που χρησιμοποιούσε τη βιβλιοθήκη του PiI GPIO PWM για τον έλεγχο των κινητήρων μέσω json, οπότε απλώς σκόπευα ξανά στον κώδικα να δεχτεί δεδομένα μέσω μιας εφαρμογής Flask. Το Flask είναι μια βιβλιοθήκη Python που μετατρέπει ουσιαστικά το Pi σας σε διακομιστή ιστού ικανό να στέλνει και να λαμβάνει δεδομένα. Χρησιμοποιώντας το PWM, οι κινητήρες μπορούν να ελεγχθούν με μεγαλύτερη ακρίβεια σε σύγκριση με την κίνηση του ρεζερβουάρ. Αυτό σημαίνει επίσης ότι το ρομπότ μπορεί να πηγαίνει με μεταβλητές ταχύτητες και όχι σταθερές. Η εφαρμογή φιάλης μου έχει διαμορφωθεί για να αλλάζει το PWM των κινητήρων μόλις λάβει δεδομένα από ένα αίτημα GET μέσω http από το ESP12e. Χρησιμοποιεί επίσης την υποεπεξεργασία. Ανοίξτε τη βιβλιοθήκη για να εκτελέσετε το σενάριο διαδικτυακής ροής στο παρασκήνιο. Έχω επισυνάψει κώδικα στη σελίδα του έργου, οπότε το μόνο που χρειάζεται είναι μια λήψη.

Βήμα 7: Κωδικός ελεγκτή

Ο κώδικας ήταν αρκετά απλός, απλώς λάβετε μετρήσεις από τις 3 ακίδες, εκτελέστε τις μέσω ορισμένων δηλώσεων if για να καθορίσετε την κατεύθυνση του τροχού και, τέλος, στείλτε αυτές τις τιμές στο Raspberry Pi. Η προσθήκη του πίνακα ESP8266 για το Arduino IDE συνοδεύεται από τη βιβλιοθήκη HTTPClient, η οποία χειρίζεται κεφαλίδες και στέλνει δεδομένα. Ο διακομιστής Flask πρέπει να λαμβάνει δεδομένα μέσω μιας κλήσης POST, οπότε ο κώδικας ξεκινά μια σύνδεση με τον διακομιστή ιστού Raspberry Pi, στη συνέχεια προσθέτει μια κεφαλίδα στα δεδομένα που υποδηλώνει ότι είναι κωδικοποιημένος JSON και, τέλος, στέλνει τα δεδομένα με τη μορφή αντικειμένου JSON Το Πρόσθεσα καθυστέρηση 40 ms για να αποτρέψω την υπερφόρτωση του Raspberry Pi με δεδομένα.

Βήμα 8: Εκτέλεση του Raspberry SPy

Εκτέλεση του Raspberry SPy
Εκτέλεση του Raspberry SPy
Εκτέλεση του Raspberry SPy
Εκτέλεση του Raspberry SPy

Το μόνο που απαιτείται είναι να πληκτρολογήσετε sudo python.py! Θα πρέπει να δείτε την κάμερα να ανάβει και πηγαίνοντας στη διεύθυνση ιστού του pi με τη θύρα 8080 η ροή θα πρέπει να είναι ορατή. Τώρα μπορείτε να χρησιμοποιήσετε το χειριστήριο οπουδήποτε στο σπίτι και να έχετε επίσης ζωντανή τροφοδοσία.

Συνιστάται: