Sommario:

Drone con inseguitore di linea autonomo con Raspberry Pi: 5 passaggi
Drone con inseguitore di linea autonomo con Raspberry Pi: 5 passaggi

Video: Drone con inseguitore di linea autonomo con Raspberry Pi: 5 passaggi

Video: Drone con inseguitore di linea autonomo con Raspberry Pi: 5 passaggi
Video: Come costruire un Robot - #000 - Premessa 2024, Dicembre
Anonim
Drone con inseguitore di linea autonomo con Raspberry Pi
Drone con inseguitore di linea autonomo con Raspberry Pi

Questo tutorial mostra come realizzare eventualmente un drone line follower.

Questo drone avrà un interruttore "modalità autonoma" che entrerà in modalità drone. Quindi, puoi ancora pilotare il tuo drone come prima.

Tieni presente che ci vorrà tempo per costruire e ancora più tempo per adattarsi. Ma il finale… ti fa pensare che ne valga la pena.

Per iniziare a creare il tuo drone tracker di linea autonomo, assicurati di avere;

  • Rasberry Pi 3 o Raspberry Pi Zero W con accesso SSH
  • Drone pronto al volo con controller di volo APM o Pixhawk
  • Arduino Leonardo o un altro Arduino con velocità di clock elevata
  • Trasmettitore almeno 6 CH
  • Webcam USB supportata da Raspberry Pi e OpenCV
  • un PC
  • 6 transistor per uso generale
  • Cavi di cablaggio

Passaggio 1: l'idea e le connessioni

L'idea e le connessioni
L'idea e le connessioni

APM, alias ArduPilot, è un controllore di volo basato su Arduino Mega. Ciò significa che possiamo modificarlo per essere il migliore per il nostro caso. Ma poiché non ho le informazioni per farlo, andrò a seguire un'altra strada.

Sfortunatamente, i Raspberry Pi non sono sensibili al tempo, il che significa che non possono gestire i segnali PPM.

Ecco perché abbiamo bisogno della scheda Arduino aggiuntiva.

In questo modo, Raspberry Pi elaborerà le immagini e calcolerà le istruzioni di volo e le invierà ad Arduino tramite l'interfaccia UART seriale. La scheda Arduino sarà qui come codificatore/decodificatore PPM, che codifica le istruzioni di volo in segnali PPM desiderati da APM. Per avere un'idea, puoi esaminare lo schema elettrico simbolico.

Raspberry Pi si comporterà come trasmettitore di telemetria insieme alla linea di rilevamento.

Il circuito essenziale è mostrato nelle immagini. Continuerò a spiegare nei prossimi passaggi.

Passaggio 2: connessioni e configurazione Raspberry Pi

Connessioni e configurazione Raspberry Pi
Connessioni e configurazione Raspberry Pi
Connessioni e configurazione Raspberry Pi
Connessioni e configurazione Raspberry Pi

Raspberry Pi sarà collegato all'adattatore Wi-Fi (opzionale), webcam USB, Arduino Leonardo tramite USB, APM tramite interfaccia seriale integrata. Connessione APM - RPI mostrata con dettagli nelle immagini.

Per configurare, hai due opzioni: Raspbian puro con i pacchetti necessari o un'immagine speciale per la connessione MAVLink chiamata APSync. Se hai intenzione di utilizzare Raspbian, assicurati di aver installato questi pacchetti:

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 install future pymavlink mavproxy pyserial

Per utilizzare l'interfaccia seriale integrata di Raspberry Pi, devi dire al sistema operativo di non utilizzarla. Per farlo, digita

sudo raspi-config

e segui Opzioni di interfaccia > Interfaccia seriale

È necessario disabilitare l'interfaccia seriale ma abilitare l'hardware seriale.

A questo punto, il resto è adatto sia per Raspbian che per APSync.

Nella home directory, crea tre file: script di riavvio e script del processore di immagini. La seconda riga rende eseguibile lo script di riavvio.

toccare reboot.sh image_processor.py

chmod +x reboot.sh

Copia tutte le righe nei file indicati di seguito nella tua directory home (/home/pi) in Raspberry Pi.

Lo script di riavvio conterrà i trigger che attiveranno il processore di immagini e gli script di telemetria. Anche poche impostazioni. Nota che se non vuoi la funzione di telemetria, aggiungi # prima di quella riga.

nano reboot.sh

#!/bin/bash

python3 /home/pi/image_processor.py

Salvalo con CTRL+O ed esci con CTRL+X. L'ultimo passaggio è registrarlo nel file di avvio del sistema operativo, rc.local

sudo nano /etc/rc.local

Aggiungi questa riga sopra l'uscita 0:

/home/pi/reboot.sh

Il nostro script di riavvio verrà eseguito ad ogni avvio.

Vogliamo che Raspberry Pi registri video dal vivo, li elabori al volo, calcoli le istruzioni di volo, li invii al controllore di volo e sia telemetria. Ma poiché Raspberry Pi non è in grado di generare il segnale PPM desiderato da APM, abbiamo bisogno di un altro modo per farlo.

Raspberry Pi invierà il suo output di elaborazione delle immagini ad Arduino (nel mio caso Arduino Leonardo) tramite la porta seriale. Arduino genererà un segnale PPM da quell'ingresso e lo invierà al controllore di volo tramite i ponticelli. Questo è tutto per Raspberry Pi.

Passiamo al passaggio successivo.

Passaggio 3: connessioni e configurazione APM

Connessioni e configurazione APM
Connessioni e configurazione APM

Le cose su APM sono semplici poiché è già pronto per volare. Dobbiamo conoscere i baudrate delle porte seriali e assicurarci che la porta TELEM sia abilitata.

Nel tuo software di terra, nel mio caso Mission Planner, controlla l'elenco dei parametri del controllore di volo e scopri i baudrate. Ad esempio, SERIAL_BAUD è la velocità di trasmissione USB e SERIAL_BAUD1 è la velocità di trasmissione della porta TELEM per APM. Nota che i valori.

La parte più importante sono le connessioni dei pin di INPUT. Come mostrato nell'immagine, collega i pin digitali 4 di Arduino fino a 9. Potresti voler usare una breadbord per questo, poiché aggiungeremo alcuni transistor e uscite del ricevitore. (Vedi immagini) (I transistor funzioneranno nel caso in cui tu voglia prendere il controllo del tuo drone)

ARD 4 APM INGRESSO 1

ARD 5 INGRESSO APM 2

ARD 6 ↔ INGRESSO APM 3

ARD 7 INGRESSO APM 4

ARD 8 INGRESSO APM 5

ARD 9 ↔ INGRESSO APM 6

Collegare tutti i pin 5V sull'ingresso APM al pin 5V Arduino Leonardo. Allo stesso modo, collega tutti i pin GND di ingresso APM al pin GND di Arduino Leonardo.

Passaggio 4: configurazione Arduino Leonardo

Abbiamo collegato tutti i fili per Leonardo, quindi è rimasto solo il codice.

Carica il codice indicato di seguito sul tuo Arduino Leonardo. Attenzione ai baudrate.

Passaggio 5: primo volo

Quando hai finito con tutti i passaggi precedenti, significa che sei pronto.

Accendi tutte le schede e connettiti con SSH a Raspberry Pi. Digita nel terminale:

sudo su

mavproxy.py --master=/dev/[INTERFACCIA SERIALE] --baudrate [BAUDRATE PORTA TELEM] --aircraft [NOME PERSONALIZZATO

L'interfaccia seriale predefinita di Raspberry Pi è ttyS0 (/dev/ttyS0)

La velocità di trasmissione predefinita della porta TELEM APM è 57600

La velocità di trasmissione predefinita della porta USB APM è 115200

Puoi dare qualsiasi nome al tuo aereo, sceglierlo con saggezza, in modo da poterlo riconoscere in seguito.

Se tutto è a posto, ora connettiti al tuo Raspberry Pi tramite VNC, così puoi guardare ciò che vede il drone in tempo reale.

Ora puoi armare il tuo drone. Emozionante, vero?

Togli il drone e vola sopra il binario. Ora puoi attivare la modalità di tracciamento della linea utilizzando l'interruttore CH6.

Consigliato: