Taula de continguts:

Drone seguidor de línia autònoma amb Raspberry Pi: 5 passos
Drone seguidor de línia autònoma amb Raspberry Pi: 5 passos

Vídeo: Drone seguidor de línia autònoma amb Raspberry Pi: 5 passos

Vídeo: Drone seguidor de línia autònoma amb Raspberry Pi: 5 passos
Vídeo: Hablando de DRONES con @PrudenGeek 2024, De novembre
Anonim
Drone seguidor de línia autònoma amb Raspberry Pi
Drone seguidor de línia autònoma amb Raspberry Pi

Aquest tutorial mostra com es pot fer que el seguidor de línia es pugui fer un drone eventualment.

Aquest dron tindrà un commutador de "mode autònom" que entrarà al mode de dron. Per tant, encara podeu volar el vostre dron com abans.

Tingueu en compte que trigarà temps a construir-se i encara més temps a ajustar-se. Però l'últim … fa pensar que val la pena.

Per començar a crear el vostre propi dron de seguiment de línia autonomus, assegureu-vos que teniu;

  • Rasberry Pi 3 o Raspberry Pi Zero W amb accés SSH
  • Drone llest per volar amb controlador de vol APM o Pixhawk
  • Arduino Leonardo o un altre Arduino amb velocitat de rellotge ràpida
  • Transmissor de 6 CH com a mínim
  • Càmera web USB que admet Raspberry Pi i OpenCV
  • Un PC
  • 6 transistors d'ús general
  • Cables de cablejat

Pas 1: la idea i les connexions

La idea i les connexions
La idea i les connexions

APM, també conegut com ArduPilot, és un controlador de vol basat en Arduino Mega. Això significa que podem modificar-lo perquè sigui el millor per al nostre cas. Però com que no tinc la informació necessària per fer-ho, vaig a seguir un altre camí.

Malauradament, els Raspberry Pi no són sensibles al temps, cosa que significa que no pot fer front als senyals PPM.

Per això necessitem la placa Arduino addicional.

D’aquesta manera, Raspberry Pi processarà les imatges i calcularà les instruccions de vol i les enviarà a Arduino mitjançant la interfície Serial UART. La targeta Arduino es mantindrà aquí com a codificador / descodificador PPM, que codifica les instruccions de vol als senyals PPM que vol APM. Per tenir una idea, podeu examinar el diagrama de circuits simbòlics.

Raspberry Pi es comportarà com a transmissor de telemetria al costat de la línia de detecció.

El circuit essencial es mostra a les imatges. Seguiré explicant en els passos següents.

Pas 2: connexions i configuració de Raspberry Pi

Connexions i configuració de Raspberry Pi
Connexions i configuració de Raspberry Pi
Connexions i configuració de Raspberry Pi
Connexions i configuració de Raspberry Pi

Raspberry Pi es connectarà a un adaptador Wi-Fi (opcional), càmera web USB, Arduino Leonardo mitjançant USB, APM mitjançant una interfície sèrie integrada. La connexió APM - RPI es mostra amb detalls a les imatges.

Per configurar-lo, teniu dues opcions: Raspbian pur amb els paquets necessaris o una imatge especial per a la connexió MAVLink anomenada APSync. Si utilitzeu Raspbian, assegureu-vos que heu instal·lat aquests paquets:

sudo apt-get update

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 instal·la el futur pymavlink mavproxy pyserial

Per utilitzar la interfície sèrie integrada de Raspberry Pi, heu de dir al sistema operatiu que no l'utilitzi. Per fer-ho, escriviu

sudo raspi-config

i seguiu Opcions d'interfície> Interfície sèrie

Heu de desactivar la interfície sèrie però habilitar el maquinari en sèrie.

En aquest moment, la resta és adequat tant per a Raspbian com per a APSync.

Al directori inicial, creeu tres fitxers: script de reinici i scriptt del processador d’imatges. La segona línia fa que el script de reinici sigui executable.

toqueu reboot.sh image_processor.py

chmod + x reboot.sh

Copieu totes les línies dels fitxers que es mostren a continuació al directori inicial (/ home / pi) de Raspberry Pi.

L'escript de reinici contindrà activadors que activaran scripts de processador d'imatges i telemetria. També pocs paràmetres. Tingueu en compte que si no voleu la funció de telemetria, afegiu # abans d’aquesta línia.

nano reboot.sh

#! / bin / bash

python3 /home/pi/image_processor.py

Deseu-lo amb CTRL + O i sortiu amb CTRL + X. L’últim pas al respecte és registrar-lo al fitxer d’inici del sistema operatiu, rc.local

sudo nano /etc/rc.local

Afegiu aquesta línia per sobre de la sortida 0:

/home/pi/reboot.sh

El nostre script de reinici s’executarà a cada arrencada.

Volem que Raspberry Pi enregistre vídeo en directe, el processi sobre la marxa, calculi les instruccions de vol, l’enviï al controlador de vol i sigui telemètric. Però com que Raspberry Pi no és capaç de generar senyals PPM que vol APM, necessitem una altra manera d’aconseguir-ho.

Raspberry Pi enviarà la seva sortida de processament d’imatges a Arduino (en el meu cas Arduino Leonardo) a través del port sèrie. Arduino generarà senyal PPM des d’aquesta entrada i l’enviarà al controlador de vol mitjançant cables de pont. Tot això per Raspberry Pi.

Passem al següent pas.

Pas 3: Configuració i connexions APM

Connexions i configuració APM
Connexions i configuració APM

Les coses sobre APM són senzilles, ja que ja estan a punt per volar. Hem de conèixer els nivells de transmissió dels ports sèrie i assegurar-nos que el port TELEM estigui habilitat.

Al meu programari terrestre, en el meu cas Mission Planner, comproveu la llista de paràmetres del controlador de vol i busqueu els baudrates. Per exemple, SERIAL_BAUD és una velocitat de transmissió USB i SERIAL_BAUD1 és una velocitat de transmissió de port TELEM per a APM. Tingueu en compte que els valors.

La part més important són les connexions dels pins INPUT. Com es mostra a la imatge, connecteu els pins digitals d'Arduino 4 a fons 9. És possible que vulgueu fer servir una placa de connexió, ja que afegirem alguns transistors i sortides del receptor. (Veure imatges) (Els transistors funcionaran en cas que vulgueu controlar el vostre dron)

ARD 4 ↔ APM INPUT 1

ARD 5 ↔ APM INPUT 2

ARD 6 ↔ APM INPUT 3

ARD 7 ↔ APM INPUT 4

ARD 8 ↔ APM INPUT 5

ARD 9 ↔ APM INPUT 6

Connecteu tots els pins de 5V de l'entrada APM al pin 5V d'Arduino Leonardo. Connecteu també tots els pins GND d’entrada APM al pin GND Arduino Leonardo.

Pas 4: Configuració d'Arduino Leonardo

Hem connectat tots els cables de Leonardo, de manera que només queda el codi.

Pengeu el codi indicat a continuació al vostre Arduino Leonardo. Presteu atenció a les baudrates.

Pas 5: primer vol

Quan hàgiu acabat amb tots els passos anteriors, vol dir que esteu a punt.

Enceneu totes les targetes i connecteu-vos amb SSH a Raspberry Pi. Escriviu el terminal:

sudo su

mavproxy.py --master = / dev / [INTERFACE SERIAL] --baudrate [TELEM PORT BAUDRATE] --aircraft [NOM PERSONALITZAT

La interfície sèrie integrada de Raspberry Pi per defecte és ttyS0 (/ dev / ttyS0)

La velocitat de transmissió del port APM TELEM és 57600

La velocitat de transmissió del port USB APM per defecte és 115200

Podeu posar qualsevol nom a la vostra aeronau, triar-la amb prudència perquè pugueu reconèixer-la més endavant.

Si tot està bé, ara connecteu-vos al vostre Raspberry Pi mitjançant VNC, de manera que pugueu veure què veu el dron en temps real.

Ara, podeu armar el vostre dron. Emocionant, oi?

Treu el dron i vola per sobre de la pista de línia. Ara podeu activar el mode de seguiment de línia mitjançant el commutador CH6.

Recomanat: