Kazalo:

Dron avtonomnega sledilca linij z Raspberry Pi: 5 korakov
Dron avtonomnega sledilca linij z Raspberry Pi: 5 korakov

Video: Dron avtonomnega sledilca linij z Raspberry Pi: 5 korakov

Video: Dron avtonomnega sledilca linij z Raspberry Pi: 5 korakov
Video: Russia Attacking Ukraine With Assault Buggies! 2024, November
Anonim
Dron z avtomatskim sledilcem linij z Raspberry Pi
Dron z avtomatskim sledilcem linij z Raspberry Pi

Ta vadnica prikazuje, kako lahko sčasoma naredite brezpilotnega sledilca.

Ta dron bo imel stikalo za "avtonomni način", ki bo vstopilo v dron v način. Torej lahko še vedno upravljate z dronom kot prej.

Zavedajte se, da bo za izgradnjo potreben čas in še več časa za prilagoditev. Toda zadnja… vas prepriča, da se vam splača.

Če želite začeti ustvarjati lasten dron za avtonomno sledenje linijam, se prepričajte, da imate;

  • Rasberry Pi 3 ali Raspberry Pi Zero W z dostopom SSH
  • Dron pripravljen za letenje z APM ali krmilnikom leta Pixhawk
  • Arduino Leonardo ali drug Arduino s hitro uro
  • Najmanj 6 CH oddajnik
  • Spletna kamera USB, ki jo podpirata Raspberry Pi in OpenCV
  • PC
  • 6 tranzistorjev za splošno uporabo
  • Ožičenje kablov

1. korak: Ideja in povezave

Ideja in povezave
Ideja in povezave

APM, znan tudi kot ArduPilot, je kontrolor letenja, ki temelji na Arduino Mega. To pomeni, da ga lahko spremenimo, da bo najbolje za naš primer. Ker pa za to nimam informacij, bom šel po drugi poti.

Raspberry Pi na žalost niso časovno občutljivi, kar pomeni, da se ne morejo spoprijeti s signali PPM.

Zato potrebujemo dodatno ploščo Arduino.

Na ta način bo Raspberry Pi obdelal slike in izračunal navodila za letenje ter jih poslal v Arduino prek vmesnika Serial UART. Kartica Arduino bo tu stala kot kodirnik/dekodirnik PPM, ki kodira navodila za letenje do signalov PPM, ki jih želi APM. Za idejo si lahko ogledate simbolni diagram vezja.

Raspberry Pi se bo ob detekcijski liniji obnašal kot telemetrični oddajnik.

Bistveno vezje je prikazano na slikah. Razlago bom nadaljeval v naslednjih korakih.

2. korak: Povezave in konfiguracija Raspberry Pi

Povezave in konfiguracija Raspberry Pi
Povezave in konfiguracija Raspberry Pi
Povezave in konfiguracija Raspberry Pi
Povezave in konfiguracija Raspberry Pi

Raspberry Pi bo povezan z vmesnikom Wi-Fi (izbirno), spletno kamero USB, Arduino Leonardo prek USB-ja, APM prek vgrajenega serijskega vmesnika. APM - Povezava RPI je prikazana s podrobnostmi na slikah.

Za konfiguracijo imate dve možnosti: čisti Raspbian s potrebnimi paketi ali posebno sliko za povezavo MAVLink, imenovano APSync. Če boste uporabljali Raspbian, se prepričajte, da ste namestili te pakete:

sudo apt-get posodobitev

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 namestite bodoči pymavlink mavproxy pyserial

Če želite uporabljati vgrajen serijski vmesnik Raspberry Pi, morate operacijskemu sistemu povedati, da ga ne uporablja. Če želite to narediti, vnesite

sudo raspi-config

in sledite Možnosti vmesnika> Zaporedni vmesnik

Morate onemogočiti serijski vmesnik, vendar omogočiti serijsko strojno opremo.

Na tem mestu je ostalo primerno tako za Raspbian kot za APSync.

V domačem imeniku ustvarite tri datoteke: skript za ponovni zagon in slikovni procesor. Druga vrstica omogoča ponovni zagon skripta.

dotaknite se reboot.sh image_processor.py

chmod +x reboot.sh

Kopirajte vse vrstice spodaj navedenih datotek v domači imenik (/home/pi) v Raspberry Pi.

Skript za ponovni zagon bo vseboval sprožilce, ki bodo sprožili slikovni procesor in telemetrijske skripte. Tudi nekaj nastavitev. Upoštevajte, da če ne želite funkcije telemetrije, dodajte # pred to vrstico.

nano reboot.sh

#!/bin/bash

python3 /home/pi/image_processor.py

Shranite ga s CTRL+O in zapustite s CTRL+X. Zadnji korak pri tem je registracija v zagonsko datoteko OS, rc.local

sudo nano /etc/rc.local

To vrstico dodajte nad izhod 0:

/home/pi/reboot.sh

Naš skript za ponovni zagon se bo izvajal pri vsakem zagonu.

Želimo, da Raspberry Pi snema video v živo, ga obdeluje med letom, izračuna navodila za letenje, ga pošlje kontrolorju leta in telemetrizira. Ker pa Raspberry Pi ne more ustvariti PPM signala, ki ga želi APM, potrebujemo drug način za to.

Raspberry Pi bo svoj izhod za obdelavo slik poslal v Arduino (v mojem primeru Arduino Leonardo) prek serijskih vrat. Arduino bo iz tega vhoda ustvaril signal PPM in ga po žicah mostov poslal krmilniku letenja. To je vse za Raspberry Pi.

Preidimo na naslednji korak.

3. korak: Povezave in konfiguracija APM

Povezave in konfiguracija APM
Povezave in konfiguracija APM

Stvari pri APM so preproste, saj je že pripravljen za letenje. Moramo poznati baudrate serijskih vrat in se prepričati, da so vrata TELEM omogočena.

V moji prizemni programski opremi, v mojem primeru Načrtovalnik misij, preverite seznam parametrov kontrolorja leta in poiščite hitrost prenosa. Na primer, SERIAL_BAUD je hitrost prenosa USB in SERIAL_BAUD1 je hitrost prenosa vrat TELEM za APM. Upoštevajte, da so vrednosti.

Najpomembnejši del so povezave vhodov INPUT. Kot je prikazano na sliki, povežite digitalne zatiče Arduino 4 temeljito 9. Za to boste morda želeli uporabiti drobtino, saj bomo dodali nekaj tranzistorjev in sprejemnikov. (Glejte slike) (Tranzistorji bodo delovali, če želite prevzeti nadzor nad svojim brezpilotnim letalom)

ARD 4, APM Vhod 1

ARD 5, APM Vhod 2

ARD 6, Vhod APM 3

ARD 7, Vhod APM 4

ARD 8, APM Vhod 5

ARD 9, APM Vhod 6

Priključite vse 5V zatiče na vhodu APM na pin 5V Arduino Leonardo. Podobno priključite vse vhodne zatiče APM Input GND na pin Arduino Leonardo GND.

4. korak: Konfiguracija Arduino Leonardo

Za Leonarda smo povezali vse žice, tako da je ostala le koda.

Spodnjo kodo naložite v svoj Arduino Leonardo. Bodite pozorni na baudrate.

5. korak: Prvi let

Ko končate vse prejšnje korake, to pomeni, da ste pripravljeni.

Vklopite vse kartice in se povežite s SSH na Raspberry Pi. Vnesite terminal:

sudo su

mavproxy.py --master =/dev/[SERIAL INTERFACE] -hitrost prenosa [TELEM PORT BAUDRATE] -letalo [CUSTOM NAME

Privzeti vgrajen serijski vmesnik Raspberry Pi je ttyS0 (/dev/ttyS0)

Privzeta hitrost prenosa vrat APM TELEM je 57600

Privzeta hitrost prenosa USB APM je 115200

Svojemu letalu lahko daste katero koli ime, ga pametno izberite, da ga boste pozneje prepoznali.

Če je vse v redu, se zdaj povežite z Raspberry Pi prek VNC -ja, da boste lahko v realnem času gledali, kaj vidi dron.

Zdaj lahko oborožite svojega drona. Razburljivo, kajne?

Snemite svoj dron in letite nad progo. Zdaj lahko s stikalom CH6 aktivirate način sledenja liniji.

Priporočena: