Sommario:
- Passaggio 1: l'idea e le connessioni
- Passaggio 2: connessioni e configurazione Raspberry Pi
- Passaggio 3: connessioni e configurazione APM
- Passaggio 4: configurazione Arduino Leonardo
- Passaggio 5: primo volo
Video: Drone con inseguitore di linea autonomo con Raspberry Pi: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
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
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
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
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:
Robot inseguitore di linea con PICO: 5 passaggi (con immagini)
Robot Line Follower con PICO: prima che tu sia in grado di creare un robot che possa porre fine alla civiltà come la conosciamo, ed è in grado di porre fine alla razza umana. Per prima cosa devi essere in grado di creare i robot semplici, quelli che possono seguire una linea tracciata a terra, ed ecco dove potrai
Robot inseguitore di linea mobile controllato con prevenzione degli ostacoli: 6 passaggi
Robot inseguitore di linea controllato da dispositivi mobili con prevenzione degli ostacoli: questa era solo un'idea in cui diverse funzionalità come evitare ostacoli, inseguitore di linee, controllo mobile, ecc. sono state mescolate insieme e realizzate in un unico pezzo. vestito per questa configurazione. In questo ho
Robot inseguitore di linea con PIC18F: 7 passaggi
Robot line follower con PIC18F: RACE LINK Ho realizzato questo robot line follower per il mio corso di microcontrollori all'università. Quindi ho realizzato questo robot line follower di base con l'utilizzo di Pic 18f2520 e ho utilizzato il compilatore di PIC CCS. Ci sono molti progetti di follower di linea su Internet con ardunio
Robot inseguitore di linea con WitBlox: 3 passaggi
Robot Line Follower Utilizzo di WitBlox: Costruire un robot ci ha sempre entusiasmato. Costruire un robot intelligente in grado di prendere le proprie decisioni è ancora più emozionante. Costruiamo oggi un robot Line Follower utilizzando WitBlox. Il seguace di linea è un robot autonomo che segue il nero
Come creare un inseguitore di linea usando Arduino: 8 passaggi (con immagini)
Come creare un seguace di linea usando Arduino: Se stai iniziando con la robotica, uno dei primi progetti che i principianti fanno include un seguace di linea. È una speciale macchinina con la proprietà di correre lungo una linea che normalmente è di colore nero e in contrasto con lo sfondo. Cominciamo con la stella