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

Banana/Raspberry Pi + Arduino Rover με κάμερα Web: 9 βήματα
Banana/Raspberry Pi + Arduino Rover με κάμερα Web: 9 βήματα

Βίντεο: Banana/Raspberry Pi + Arduino Rover με κάμερα Web: 9 βήματα

Βίντεο: Banana/Raspberry Pi + Arduino Rover με κάμερα Web: 9 βήματα
Βίντεο: 01 - Introduction to Drone Engage a Linux-Based Companion Computer System over Multiple Boards 2024, Ιούλιος
Anonim
Μπανάνα/Raspberry Pi + Arduino Rover με κάμερα Web
Μπανάνα/Raspberry Pi + Arduino Rover με κάμερα Web

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

Ξεκινάμε;

Βήμα 1: Στοιχεία που χρειάζεστε

Συστατικά που χρειάζεστε
Συστατικά που χρειάζεστε
Συστατικά που χρειάζεστε
Συστατικά που χρειάζεστε
Συστατικά που χρειάζεστε
Συστατικά που χρειάζεστε

Ακολουθεί η λίστα των στοιχείων που χρησιμοποίησα με τους συνδέσμους και τις εναλλακτικές λύσεις. Ζω στο Shenzhen της Κίνας και αγόρασα τα ανταλλακτικά απευθείας στο Taobao.

Εναλλακτικό πλαίσιο ρομπότ 4 κινητήρων: Οποιοδήποτε αρκετά μεγάλο πλαίσιο θα κάνει. Αυτό έχει 4 κινητήρες για επιπλέον ροπή. Οι κινητήρες είναι κανονικοί φθηνοί κίτρινοι κινητήρες, βαθμολογούνται

L293D Arduino Motor Shield rev.1 κλώνος Εναλλακτική: Καλύτερη ασπίδα κινητήρα βαθμολογημένη για περισσότερο ρεύμα

Εναλλακτικός κλώνος Arduino Uno: Μπορείτε να χρησιμοποιήσετε οποιαδήποτε άλλη πλακέτα Arduino χωρίς σημαντικές αλλαγές στον κώδικα.

Μπαταρία 6V 4.5Ah Pb Εναλλακτική: Είναι δυνατόν να πειραματιστείτε με μικρότερες μπαταρίες LiPo εάν θέλετε ελαφρύτερο ρομπότ/χρησιμοποιήστε μόνο δύο κινητήρες.

Εναλλακτική Banana Pi: Μπορεί να ανταλλαχθεί με Raspberry Pi 1/2/3 ή Orange Pi χωρίς σημαντικές αλλαγές κώδικα. Χρησιμοποίησα το Banana Pi μόνο επειδή είχα ένα ξαπλωμένο.

Εναλλακτική κάμερα Ιστού: Χρησιμοποιήστε κάμερα CSI για Raspberry Pi/Banana Pi/Orange Pi

Βάση κάμερας/κλίσης κάμερας με servos sg60 Εναλλακτική λύση: Για παράδειγμα, η εκτύπωση με κλίση 3D/βάση στήριξης μπορεί να χρησιμοποιηθεί.

Τρισδιάστατα τυπωμένα μέρη Εναλλακτικά: Αφήστε τη φαντασία και τα ταλέντα του σχεδιασμού 3D να σας καθοδηγήσουν! Επίσης Thingverse:)

Βήμα 2: Συνδέστε τους κινητήρες με την ασπίδα κινητήρα L293D

Συνδέστε τα μοτέρ με την ασπίδα κινητήρα L293D
Συνδέστε τα μοτέρ με την ασπίδα κινητήρα L293D
Συνδέστε τα μοτέρ με την ασπίδα κινητήρα L293D
Συνδέστε τα μοτέρ με την ασπίδα κινητήρα L293D

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

ΣΗΜΕΙΩΣΗ: Για όσους χρησιμοποιούν διαφορετικούς κινητήρες με υψηλότερη βαθμολογία ρεύματος, μπορεί να χρειαστείτε άλλο πρόγραμμα οδήγησης κινητήρα. Εναλλακτικά, ένα ωραίο μικρό hack που έμαθα πρόσφατα είναι ότι μπορείτε να βάλετε πίσω δύο ακόμη προγράμματα οδήγησης L293D πάνω από το υπάρχον (είναι το μεσαίο τσιπ στον πίνακα)!

Βήμα 3: Arduino Uno, Συναρμολόγηση Motor Shield

Arduino Uno, Συνέλευση Motor Shield
Arduino Uno, Συνέλευση Motor Shield

Βάλτε το Arduino Uno στη θήκη και τοποθετήστε το Motor Shield πάνω του. Υπάρχει μόνο ένας τρόπος για να το κάνετε αυτό, αν δεν ταιριάζει, κάνετε κάτι wing!

Θήκη Arduino Uno Snug

Εδώ είναι η περίπτωση που χρησιμοποίησα, μοντέλο που δημιουργήθηκε από τον Esquilo.

Βήμα 4: Συνδέστε το Power με το Banana Pi και το Arduino

Συνδέστε το Power με το Banana Pi και το Arduino
Συνδέστε το Power με το Banana Pi και το Arduino

Χρησιμοποίησα διεπαφή SATA για να παρέχω ισχύ στο Banana Pi (6v). Εάν έχετε τον ίδιο πίνακα, μπορείτε επίσης να το κάνετε αυτό, απλά βεβαιωθείτε ότι η τάση είναι 5v-6v. Είναι ανεξέλεγκτο τροφοδοτικό, οπότε υποθέτω ότι υπάρχει ένα κύκλωμα προστασίας για την τροφοδοσία SATA στο Banana Pi M1.

ΠΡΟΣΟΧΗ: Για το Raspberry Pi έχετε μερικές επιλογές: μια ασφαλή (χρησιμοποιώντας σύνδεση USB για παροχή 5v) και όχι τόσο ασφαλή (χρησιμοποιώντας καρφίτσες GPIO). Ακολουθεί ο σύνδεσμος για να διαβάσετε σχετικά με τη σύνδεση ισχύος στις ακίδες GPIO Raspberry Pi. Βεβαιωθείτε ότι είστε

1) Χρησιμοποιήστε ρυθμιζόμενο τροφοδοτικό

2) Ρυθμίστε την τάση στα 5v

Δεν υπάρχει κύκλωμα προστασίας για καρφίτσες GPIO! Εάν κάνετε κάτι λάθος, υπάρχει σοβαρή πιθανότητα να καταστρέψετε τα ηλεκτρονικά του πίνακα.

Για το Arduino απλώς συνδέστε την τροφοδοσία στους ακροδέκτες των βιδών εισόδου στο προστατευτικό του κινητήρα. Μπορεί να πάρει έως και 12V.

Βήμα 5: Βάλτε το Banana Pi στην τρισδιάστατη θήκη, συναρμολογήστε το υπόλοιπο του Rover

Βάλτε το Banana Pi στην τρισδιάστατη θήκη, συναρμολογήστε το υπόλοιπο του Rover
Βάλτε το Banana Pi στην τρισδιάστατη θήκη, συναρμολογήστε το υπόλοιπο του Rover
Βάλτε το Banana Pi στην τρισδιάστατη θήκη, συναρμολογήστε το υπόλοιπο του Rover
Βάλτε το Banana Pi στην τρισδιάστατη θήκη, συναρμολογήστε το υπόλοιπο του Rover

Χρησιμοποίησα αυτήν την θήκη για το Banana Pi από το thingverse, που δημιουργήθηκε από την GermanRobotics. Το εξώφυλλο για αυτό το έφτιαξα μόνος μου.

Βάλτε το Banana Pi στη θήκη, καλύψτε το με το καπάκι, χρησιμοποιήστε πιστόλι κόλλας για να στερεώσετε το Arduino Uno πάνω από τη θήκη Banana Pi.

Καλύψτε την μπαταρία με αυτό το κάλυμμα και στερεώστε την κάμερα web/mount tilt στην κορυφή.

Εάν χρησιμοποιείτε το Banana Pi θα χρειαστείτε ένα διανομέα USB, καθώς έχει μόνο δύο υποδοχές USB (το Raspberry 2, 3 έχει τέσσερα). Καθαρά από αισθητικές ανησυχίες αποφάσισα να χρησιμοποιήσω έναν διανομέα USB OTG 1-2 και να κρύψω τα καλώδια μέσα στη θήκη Banana Pi.

Βήμα 6: Η συναρμολόγηση υλικού ολοκληρώθηκε

Η συναρμολόγηση υλικού ολοκληρώθηκε!
Η συναρμολόγηση υλικού ολοκληρώθηκε!

Ας συνοψίσουμε γρήγορα τι έχουμε κάνει μέχρι τώρα.

Συγκεντρώσαμε την πλατφόρμα ρομπότ, συνδέσαμε την τροφοδοσία με το Banana Pi, το Arduino Uno, συνδέσαμε κινητήρες και σερβομηχανισμούς στο πρόγραμμα οδήγησης κινητήρα και χρησιμοποιήσαμε διανομέα USB για να συνδέσουμε την κάμερα USB και το Arduino Uno με το Banana Pi. Τώρα μπορείτε να δοκιμάσετε και να αντιμετωπίσετε προβλήματα υλικού. Το διάγραμμα καλωδίωσης που δείχνει όλες τις συνδέσεις είναι στην εικόνα για αυτό το βήμα.

Βήμα 7: Διαμόρφωση συστήματος

Διαμόρφωση συστήματος
Διαμόρφωση συστήματος

Χρησιμοποίησα την εικόνα Raspbian Lite για σύστημα στο pi μου. Η έκδοση Lite δεν διαθέτει GUI και συνοδεύεται από βασικά πακέτα ανά εγκατάσταση. Χρειάζεται όμως πολύ λιγότερος χώρος, πράγμα που σημαίνει ότι μπορούμε να χρησιμοποιήσουμε μικρότερη κάρτα SD. Εάν δεν αισθάνεστε άνετα χωρίς GUI, μπορείτε επίσης να εγκαταστήσετε πλήρη εικόνα.

Συνδέστε το pi σας στο Internet με το καλώδιο Ethernet. Αφού ξεκινήσει, το πρώτο βήμα θα ήταν να το συνδέσετε σε Wi-Fi.

Εκτελέστε την ακόλουθη εντολή στο τερματικό

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Επεξεργαστείτε το αρχείο διαμόρφωσης με τα διαπιστευτήριά σας WiFi

network = {ssid = "testing" psk = "testingPassword"}

Επανεκκινήστε το pi. Βοϊλα! Είστε πλέον συνδεδεμένοι σε Wi-Fi.

Στη συνέχεια θα πρέπει να εγκαταστήσουμε το pip (Python Package Manager)

sudo apt-get install python-setuptools

sudo easy_install pip

Τώρα χρησιμοποιούμε το pip για να εγκαταστήσουμε το Flask για την εκτέλεση διακομιστή ιστού και το pyserial για το pi για επικοινωνία με το Arduino μέσω σειριακής σύνδεσης.

φιάλη εγκατάστασης sudo pip

sudo pip εγκατάσταση pyserial

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

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

Τώρα είμαστε έτοιμοι να βροντοφωνήσουμε!

Βήμα 8: Εκκίνηση του Λογισμικού

Εκκίνηση του Λογισμικού
Εκκίνηση του Λογισμικού
Εκκίνηση του Λογισμικού
Εκκίνηση του Λογισμικού

Θυμάστε πώς είπα ότι είμαστε έτοιμοι να βροντήξουμε;

Εντάξει, λίγο περισσότερο άλεση και μετά μπορούμε να αρχίσουμε να βροντοφωνάζουμε:)

Ας κατεβάσουμε όλα τα απαραίτητα αρχεία από το αποθετήριο github μου.

git clone

Ανεβάστε το rover.ino στο Arduino Uno. Εάν κάνατε αλλαγές υλικού (χρησιμοποιώντας διαφορετική ασπίδα κινητήρα, για παράδειγμα) πρέπει να αλλάξετε το σκίτσο.

Εάν χρησιμοποιείτε κάμερα ιστού, τροποποιήστε τη γραμμή κοντά στο κάτω μέρος του αρχείου index.html στο φάκελο προτύπου. Αλλάξτε τη διεύθυνση URL στη γραμμή IFRAME για να ταιριάζει με τη διεύθυνση URL src για τη ροή βίντεο.

Τώρα μπορείτε να ξεκινήσετε τον διακομιστή ιστού. Εκτελέστε την ακόλουθη εντολή

sudo python pi_rover.py

Εάν ακολουθήσατε την κατασκευή μου πολύ κοντά και έχετε συνδέσει το Arduino, θα δείτε την ακόλουθη (πρώτη εικόνα) στο τερματικό.

Πληκτρολογήστε τη διεύθυνση IP του ρομπότ σας στο πρόγραμμα περιήγησης ιστού (για παράδειγμα στην περίπτωσή μου ήταν 192.168.1.104), μπορείτε να ελέγξετε τη διεύθυνση IP με την εντολή $ ifconfig στο Linux.

/κάνε τον εορταστικό χορό εδώ!/

Εάν έχετε οποιεσδήποτε ερωτήσεις, μη διστάσετε να με ρωτήσετε στα σχόλια. Αυτό το σεμινάριο απευθύνεται σε αρχάριους, αλλά όχι μηδενικούς, γι 'αυτό ήμουν αρκετά σύντομος για τα πράγματα για τα οποία μπορείτε απλά να κάνετε google (π.χ. εγγραφή εικόνας συστήματος σε κάρτα SD, μεταφόρτωση σκίτσου Arduino κ.λπ.).

Βήμα 9: Μονάδες

Η ιδέα και ο κώδικας διακομιστή ιστού προέρχονται από αυτό το υπέροχο εκπαιδευτικό από το jscottb. Το τροποποίησα για να χρησιμοποιήσω πιο συνηθισμένο υλικό, όπως το Arduino Uno.

Τα τρισδιάστατα τυπωμένα μέρη από το Thingverse.

www.thingiverse.com/thing:994827

www.thingiverse.com/thing:2816536/files

www.thingiverse.com/thing:661220

Συνιστάται: