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

Autonomous Line Follower Drone With Raspberry Pi: 5 Βήματα
Autonomous Line Follower Drone With Raspberry Pi: 5 Βήματα

Βίντεο: Autonomous Line Follower Drone With Raspberry Pi: 5 Βήματα

Βίντεο: Autonomous Line Follower Drone With Raspberry Pi: 5 Βήματα
Βίντεο: The Choice is Ours (2016) Official Full Version 2024, Ιούλιος
Anonim
Αυτόνομο Line Follower Drone With Raspberry Pi
Αυτόνομο Line Follower Drone With Raspberry Pi

Αυτό το σεμινάριο δείχνει πώς μπορείτε να φτιάξετε τελικά drone follower γραμμής.

Αυτό το drone θα έχει έναν διακόπτη "αυτόνομης λειτουργίας" που θα μπει στο drone σε κατάσταση λειτουργίας. Έτσι, μπορείτε ακόμα να πετάξετε το drone σας όπως πριν.

Λάβετε υπόψη ότι θα χρειαστεί χρόνος για την κατασκευή και ακόμη περισσότερο χρόνο για να προσαρμοστεί. Αλλά το τελικό… σε κάνει να πιστεύεις ότι αξίζει τον κόπο.

Για να ξεκινήσετε τη δημιουργία του δικού σας drone tracker γραμμής αυτόνομου, βεβαιωθείτε ότι έχετε

  • Rasberry Pi 3 ή Raspberry Pi Zero W με πρόσβαση SSH
  • Drone Ready-To-Fly με χειριστήριο πτήσης APM ή Pixhawk
  • Arduino Leonardo ή άλλο Arduino με γρήγορη ταχύτητα ρολογιού
  • Τουλάχιστον 6 πομπός CH
  • Κάμερα Web USB που υποστηρίζει το Raspberry Pi και το OpenCV
  • Έναν Η / Υ
  • 6 τρανζίστορ γενικής χρήσης
  • Καλώδια καλωδίωσης

Βήμα 1: Η ιδέα και οι συνδέσεις

Η ιδέα και οι συνδέσεις
Η ιδέα και οι συνδέσεις

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

Δυστυχώς, τα Raspberry Pi δεν είναι ευαίσθητα στο χρόνο, πράγμα που σημαίνει ότι δεν μπορούν να αντιμετωπίσουν σήματα PPM.

Γι 'αυτό χρειαζόμαστε τον επιπλέον πίνακα Arduino.

Με αυτόν τον τρόπο, το Raspberry Pi θα επεξεργαστεί τις εικόνες και θα υπολογίσει τις οδηγίες πτήσης και θα το στείλει στο Arduino μέσω Serial UART interface. Η κάρτα Arduino θα βρίσκεται εδώ ως κωδικοποιητής/αποκωδικοποιητής PPM, ο οποίος κωδικοποιεί τις οδηγίες πτήσης σε σήματα PPM που θέλει η APM. Για να έχετε μια ιδέα, μπορείτε να εξετάσετε το συμβολικό διάγραμμα κυκλώματος.

Το Raspberry Pi θα συμπεριφέρεται ως πομπός τηλεμετρίας παράλληλα με τη γραμμή ανίχνευσης.

Το βασικό κύκλωμα εμφανίζεται στις εικόνες. Θα συνεχίσω να εξηγώ στα επόμενα βήματα.

Βήμα 2: Συνδέσεις και διαμόρφωση Raspberry Pi

Συνδέσεις και διαμόρφωση Raspberry Pi
Συνδέσεις και διαμόρφωση Raspberry Pi
Συνδέσεις και διαμόρφωση Raspberry Pi
Συνδέσεις και διαμόρφωση Raspberry Pi

Το Raspberry Pi θα συνδεθεί με προσαρμογέα Wi-Fi (προαιρετικό), κάμερα USB, Arduino Leonardo μέσω USB, APM μέσω ενσωματωμένης σειριακής διεπαφής. APM - σύνδεση RPI εμφανίζεται με λεπτομέρειες στις εικόνες.

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

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

sudo apt-get install -y screen python-wxgtk3.0 python-matplotlib sudo apt-get install -y python-opencv python-pip python-numpy python-dev sudo apt-get install -y libxml2-dev libxslt-dev python- lxml sudo pip εγκατάσταση μελλοντικής pymavlink mavproxy pyserial

Για να χρησιμοποιήσετε την ενσωματωμένη σειριακή διεπαφή του Raspberry Pi, πρέπει να πείτε στο λειτουργικό σύστημα να μην το χρησιμοποιεί. Για να το κάνετε αυτό, πληκτρολογήστε

sudo raspi-config

και ακολουθήστε τις επιλογές διασύνδεσης> Σειριακή διεπαφή

Πρέπει να απενεργοποιήσετε τη σειριακή διεπαφή, αλλά να ενεργοποιήσετε το σειριακό υλικό.

Σε αυτό το σημείο, τα υπόλοιπα είναι κατάλληλα τόσο για Raspbian όσο και για APSync.

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

αγγίξτε το reboot.sh image_processor.py

chmod +x επανεκκίνηση.sh

Αντιγράψτε όλες τις γραμμές στα αρχεία που δίνονται παρακάτω στον αρχικό σας κατάλογο (/home/pi) στο Raspberry Pi.

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

nano επανεκκίνηση.σ

#!/bin/bash

python3 /home/pi/image_processor.py

Αποθηκεύστε το με CTRL+O και βγείτε με CTRL+X. Το τελευταίο βήμα για αυτό είναι η εγγραφή του στο αρχείο εκκίνησης του λειτουργικού συστήματος, rc.local

sudo nano /etc/rc.local

Προσθέστε αυτήν τη γραμμή πάνω από την έξοδο 0:

/home/pi/reboot.sh

Το σενάριο επανεκκίνησης θα εκτελείται σε κάθε εκκίνηση.

Θέλουμε το Raspberry Pi να καταγράφει ζωντανά βίντεο, να το επεξεργάζεται εν πτήσει, να υπολογίζει τις οδηγίες πτήσης, να το στέλνει στον ελεγκτή πτήσης και να είναι τηλεμετρία. Αλλά επειδή το Raspberry Pi δεν είναι σε θέση να παράγει σήμα PPM που θέλει η APM, χρειαζόμαστε έναν άλλο τρόπο για να το επιτύχουμε.

Το Raspberry Pi θα στείλει την έξοδο επεξεργασίας εικόνας στο Arduino (στην περίπτωσή μου Arduino Leonardo) μέσω Serial Port. Το Arduino θα δημιουργήσει σήμα PPM από αυτήν την είσοδο και θα το στείλει στον ελεγκτή πτήσης μέσω καλωδίων βραχυκυκλωτήρων. Όλα αυτά για το Raspberry Pi.

Ας περάσουμε στο επόμενο βήμα.

Βήμα 3: Συνδέσεις και διαμόρφωση APM

Συνδέσεις και διαμόρφωση APM
Συνδέσεις και διαμόρφωση APM

Τα πράγματα για το APM είναι απλά αφού είναι ήδη έτοιμο να πετάξει. Πρέπει να γνωρίζουμε τα baudrates σειριακών θυρών και να βεβαιωθούμε ότι η θύρα TELEM είναι ενεργοποιημένη.

Στο βασικό σας λογισμικό, στην περίπτωσή μου Mission Planner, ελέγξτε τη λίστα παραμέτρων του ελεγκτή πτήσης και εντοπίστε τα βαουδράτα. Για παράδειγμα, το SERIAL_BAUD είναι baudrate USB και το SERIAL_BAUD1 είναι baudrate θύρας TELEM για APM. Σημειώστε ότι οι τιμές.

Το πιο σημαντικό μέρος είναι οι συνδέσεις των ακίδων INPUT. Όπως φαίνεται στην εικόνα, συνδέστε τις ψηφιακές ακίδες του Arduino 4 σε βάθος 9. mayσως θελήσετε να χρησιμοποιήσετε ένα ψωμί για αυτό, αφού θα προσθέσουμε μερικά τρανζίστορ και εξόδους δέκτη. (Δείτε εικόνες) (Τα τρανζίστορ θα λειτουργούν σε περίπτωση που θέλετε να αναλάβετε τον έλεγχο του drone σας)

ΕΙΣΟΔΟΣ ARD 4 ↔ APM 1

ΕΙΣΟΔΟΣ ARD 5 ↔ APM 2

ΕΙΣΟΔΟΣ ARD 6 ↔ APM 3

ΕΙΣΟΔΟΣ ARD 7 ↔ APM 4

ΕΙΣΟΔΟΣ ARD 8 ↔ APM 5

ΕΙΣΟΔΟΣ ARD 9 ↔ APM 6

Συνδέστε όλους τους ακροδέκτες 5V στην είσοδο APM στην καρφίτσα Arduino Leonardo 5V. Ομοίως, συνδέστε όλες τις καρφίτσες GND εισόδου APM στην καρφίτσα Arduino Leonardo GND.

Βήμα 4: Διαμόρφωση Arduino Leonardo

Έχουμε συνδέσει όλα τα καλώδια για τον Λεονάρντο, οπότε έχει απομείνει μόνο ο κωδικός.

Ανεβάστε τον παρακάτω κωδικό στο Arduino Leonardo σας. Δώστε προσοχή στους baudrates.

Βήμα 5: Πρώτη πτήση

Όταν τελειώσετε με όλα τα προηγούμενα βήματα, σημαίνει ότι είστε έτοιμοι.

Ενεργοποιήστε όλες τις κάρτες και συνδεθείτε με το SSH στο Raspberry Pi. Πληκτρολογήστε τερματικό:

sudo su

mavproxy.py --master =/dev/[SERIAL INTERFACE] -baudrate [TELEM PORT BAUDRATE] -αεροσκάφος [ΠΡΟΣΑΡΜΟΓΗ ΟΝΟΜΑ

Η προεπιλεγμένη ενσωματωμένη σειριακή διεπαφή Raspberry Pi είναι ttyS0 (/dev/ttyS0)

Η προεπιλεγμένη baudrate θύρας APM TELEM είναι 57600

Η προεπιλεγμένη baudrate θύρα USB APM είναι 115200

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

Εάν όλα είναι εντάξει, τώρα συνδεθείτε στο Raspberry Pi σας μέσω VNC, ώστε να μπορείτε να παρακολουθείτε τι βλέπει το drone σε πραγματικό χρόνο.

Τώρα, μπορείτε να οπλίσετε το drone σας. Συναρπαστικό, σωστά;

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

Συνιστάται: