Sadržaj:

Dron s autonomnim linijskim sljedbenikom s Raspberry Pi: 5 koraka
Dron s autonomnim linijskim sljedbenikom s Raspberry Pi: 5 koraka

Video: Dron s autonomnim linijskim sljedbenikom s Raspberry Pi: 5 koraka

Video: Dron s autonomnim linijskim sljedbenikom s Raspberry Pi: 5 koraka
Video: DRON za milion – VTOL Atmos Marlyn s multispektrální kamerou Micasense Altum [🐲 Drak_Alex] 2024, Juli
Anonim
Autonomni dron sljedbenik s Raspberry Pi
Autonomni dron sljedbenik s Raspberry Pi

Ovaj vodič pokazuje kako na kraju možete napraviti bespilotnu letjelicu koja prati sljedbenike.

Ovaj dron će imati prekidač za "autonomni način rada" koji će ući u dron u način rada. Dakle, i dalje možete upravljati svojim dronom kao i prije.

Imajte na umu da će za izgradnju biti potrebno više vremena, a još više za prilagođavanje. Ali posljednje … čini da razmislite da li se isplati.

Za početak stvaranja vlastitog drona za autonomnu liniju za praćenje, provjerite imate li;

  • Rasberry Pi 3 ili Raspberry Pi Zero W sa SSH pristupom
  • Bespilotna letjelica spremna za let s APM ili Pixhawk kontrolerom leta
  • Arduino Leonardo ili neki drugi Arduino sa velikom brzinom takta
  • Najmanje 6 CH odašiljača
  • USB web kamera koju podržavaju Raspberry Pi i OpenCV
  • PC
  • 6 tranzistora opće namjene
  • Ožičenje kablova

Korak 1: Ideja i veze

Ideja i veze
Ideja i veze

APM, zvani ArduPilot, je kontrolor leta zasnovan na Arduino Mega. To znači da ga možemo izmijeniti kako bi bilo najbolje za naš slučaj. No, budući da nemam informacije za to, ići ću drugim putem.

Raspberry Pi, nažalost, nisu osjetljivi na vrijeme, što znači da se ne mogu nositi s PPM signalima.

Zato nam je potrebna dodatna Arduino ploča.

Na ovaj način, Raspberry Pi će obraditi slike i izračunati upute za let te ih poslati na Arduino putem serijskog UART sučelja. Arduino kartica će ovdje stajati kao PPM koder/dekoder, koji kodira upute za let prema PPM signalima koje APM želi. Da biste imali ideju, možete pregledati simbolički dijagram kola.

Raspberry Pi će se ponašati kao odašiljač telemetrije uz liniju detekcije.

Osnovno kolo prikazano je na slikama. Objasniću u narednim koracima.

Korak 2: Raspberry Pi veze i konfiguracija

Raspberry Pi veze i konfiguracija
Raspberry Pi veze i konfiguracija
Raspberry Pi veze i konfiguracija
Raspberry Pi veze i konfiguracija

Raspberry Pi će biti spojen na Wi-Fi adapter (opcionalno), USB web kameru, Arduino Leonardo putem USB-a, APM putem ugrađenog serijskog sučelja. APM - RPI veza prikazana sa detaljima na slikama.

Za konfiguraciju imate dvije mogućnosti: čisti Raspbian sa potrebnim paketima ili posebnu sliku za MAVLink vezu koja se zove APSync. Ako ćete koristiti Raspbian, provjerite jeste li instalirali ove pakete:

sudo apt-get update

sudo apt-get install -y ekran 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 instalirajte budući pymavlink mavproxy pyserial

Da biste koristili ugrađeno serijsko sučelje Raspberry Pi-a, morate reći OS-u da ga ne koristi. Da biste to učinili, upišite

sudo raspi-config

i slijedite Opcije sučelja> Serijsko sučelje

Morate onemogućiti serijsko sučelje, ali omogućiti serijski hardver.

U ovom trenutku ostalo je prikladno i za Raspbian i za APSync.

U kućnom direktoriju stvorite tri datoteke: skriptu za ponovno pokretanje i skriptu procesora slike. Druga linija čini skriptu za ponovno pokretanje izvršnom.

dodirnite reboot.sh image_processor.py

chmod +x reboot.sh

Kopirajte sve redove u dolje navedenim datotekama u svoj matični direktorij (/home/pi) u Raspberry Pi.

Skripta za ponovno pokretanje sadržavat će okidače koji će pokrenuti procesor slike i telemetrijske skripte. Takođe nekoliko postavki. Imajte na umu da ako ne želite funkciju telemetrije, dodajte # ispred tog retka.

nano reboot.sh

#!/bin/bash

python3 /home/pi/image_processor.py

Sačuvajte ga pomoću CTRL+O i izađite sa CTRL+X. Posljednji korak je registracija u datoteku za pokretanje OS -a, rc.local

sudo nano /etc/rc.local

Dodajte ovu liniju iznad izlaza 0:

/home/pi/reboot.sh

Naša skripta za ponovno pokretanje izvršavat će se pri svakom pokretanju.

Želimo da Raspberry Pi snima video uživo, obrađuje ga u hodu, izračunava upute za let, šalje ga kontroloru leta i telemetrizira. Ali budući da Raspberry Pi nije u stanju generirati PPM signal koji APM želi, potreban nam je drugi način da to postignemo.

Raspberry Pi će poslati izlaz za obradu slike na Arduino (u mom slučaju Arduino Leonardo) putem serijskog porta. Arduino će generirati PPM signal s tog ulaza i poslati ga kontroleru leta preko kratkospojnih žica. Ovo je sve za Raspberry Pi.

Prijeđimo na sljedeći korak.

Korak 3: APM veze i konfiguracija

APM veze i konfiguracija
APM veze i konfiguracija

APM je jednostavan jer je već spreman za let. Moramo znati brzinu prijenosa serijskih portova i provjeriti je li omogućen TELEM port.

U vašem zemaljskom softveru, u mom slučaju Planer misija, provjerite listu parametara kontrolora leta i saznajte brzinu prijenosa. Na primjer, SERIAL_BAUD je brzina prijenosa USB -a, a SERIAL_BAUD1 je brzina prijenosa TELEM porta za APM. Imajte na umu da vrijednosti.

Najvažniji dio su veze INPUT pinova. Kao što je prikazano na slici, povežite Arduinove digitalne pinove 4 temeljito 9. Za to ćete možda htjeti upotrijebiti kruh jer ćemo dodati neke tranzistore i prijemnike. (Pogledajte slike) (Tranzistori će raditi u slučaju da želite preuzeti kontrolu nad svojim dronom)

ARD 4, APM ULAZ 1

ARD 5, APM ULAZ 2

ARD 6, APM ULAZ 3

ARD 7, APM ULAZ 4

ARD 8, APM ULAZ 5

ARD 9, APM ULAZ 6

Spojite sve 5V pinove na APM ulazu s Arduino Leonardo 5V pinom. Isto tako spojite sve APM ulazne GND pinove na Arduino Leonardo GND pin.

Korak 4: Arduino Leonardo konfiguracija

Povezali smo sve žice za Leonarda tako da je ostao samo kôd.

Postavite donji kôd ispod na svoj Arduino Leonardo. Obratite pažnju na brzinu prijenosa.

Korak 5: Prvi let

Kada završite sa svim prethodnim koracima, to znači da ste spremni.

Uključite sve kartice i povežite se pomoću SSH na Raspberry Pi. Upišite terminal:

sudo su

mavproxy.py --master =/dev/[SERIJSKI INTERFEJS] -brzina prijenosa [TELEM PORT BAUDRATE] -zrakoplov [CUSTOM NAME

Zadano ugrađeno serijsko sučelje Raspberry Pi je ttyS0 (/dev/ttyS0)

Zadana brzina prijenosa APM TELEM porta je 57600

Zadana brzina prijenosa APM USB porta je 115200

Vašem zrakoplovu možete dati bilo koje ime, pametno ga odabrati kako biste ga kasnije prepoznali.

Ako je sve u redu, sada se povežite na svoj Raspberry Pi putem VNC -a, tako da možete gledati što bespilotna letjelica vidi u stvarnom vremenu.

Sada možete naoružati svoj dron. Uzbudljivo, zar ne?

Skinite dron i letite iznad linije. Sada možete aktivirati način praćenja linija pomoću prekidača CH6.

Preporučuje se: