Turinys:

Autonominis linijos sekimo dronas su „Raspberry Pi“: 5 žingsniai
Autonominis linijos sekimo dronas su „Raspberry Pi“: 5 žingsniai

Video: Autonominis linijos sekimo dronas su „Raspberry Pi“: 5 žingsniai

Video: Autonominis linijos sekimo dronas su „Raspberry Pi“: 5 žingsniai
Video: KAUKO roboklubas. Bandomieji važiavimai. 2010m. 2024, Liepa
Anonim
Autonominis linijos sekimo dronas su „Raspberry Pi“
Autonominis linijos sekimo dronas su „Raspberry Pi“

Ši pamoka parodo, kaip galų gale galite sukurti bepiločio orlaivio sekiklį.

Šis dronas turės „autonominio režimo“jungiklį, kuris įjungs droną į režimą. Taigi, jūs vis tiek galite skraidyti savo dronu kaip anksčiau.

Atminkite, kad statyti reikės dar daugiau laiko ir dar daugiau - prisitaikyti. Bet galutinis … verčia susimąstyti, ar verta.

Norėdami pradėti kurti savo autonominės linijos sekimo droną, įsitikinkite, kad turite;

  • Rasberry Pi 3 arba Raspberry Pi Zero W su SSH prieiga
  • „Ready to To Fly“dronas su APM arba „Pixhawk“skrydžio valdikliu
  • „Arduino Leonardo“ar kitas „Arduino“, turintis greitą laikrodžio greitį
  • Bent 6 kanalų siųstuvas
  • USB žiniatinklio kamera, kurią palaiko „Raspberry Pi“ir „OpenCV“
  • Kompiuteris
  • 6 bendrosios paskirties tranzistoriai
  • Laidų laidai

1 žingsnis: idėja ir ryšiai

Idėja ir ryšiai
Idėja ir ryšiai

APM, dar žinomas kaip „ArduPilot“, yra skrydžių valdytojas, pagrįstas „Arduino Mega“. Tai reiškia, kad galime jį pakeisti taip, kad geriausiai atitiktų mūsų atvejį. Bet kadangi neturiu tam reikalingos informacijos, ketinu eiti kitu keliu.

Deja, „Raspberry Pi“nėra jautrūs laikui, o tai reiškia, kad negali susidoroti su PPM signalais.

Štai kodėl mums reikia papildomos „Arduino“plokštės.

Tokiu būdu „Raspberry Pi“apdoros vaizdus ir apskaičiuos skrydžio instrukcijas bei išsiųs ją į „Arduino“per serijinę UART sąsają. „Arduino“kortelė čia stovės kaip PPM koduotojas/dekoderis, kuris koduoja skrydžio instrukcijas į PPM signalus, kurių nori APM. Jei norite turėti idėją, galite išnagrinėti simbolinę grandinės schemą.

„Raspberry Pi“veiks kaip telemetrijos siųstuvas šalia aptikimo linijos.

Esminė grandinė parodyta paveikslėliuose. Toliau paaiškinsiu tolesniuose žingsniuose.

2 veiksmas: „Raspberry Pi“ryšiai ir konfigūracija

„Raspberry Pi“jungtys ir konfigūracija
„Raspberry Pi“jungtys ir konfigūracija
„Raspberry Pi“jungtys ir konfigūracija
„Raspberry Pi“jungtys ir konfigūracija

„Raspberry Pi“bus prijungtas prie „Wi-Fi“adapterio (neprivaloma), USB žiniatinklio kameros, „Arduino Leonardo“per USB, APM per integruotą nuosekliąją sąsają. APM - RPI ryšys, rodomas su vaizdais.

Norėdami konfigūruoti, turite dvi parinktis: gryną „Raspbian“su reikalingais paketais arba specialų vaizdą, skirtą „MAVLink“ryšiui, vadinamą APSync. Jei ketinate naudoti „Raspbian“, įsitikinkite, kad įdiegėte šiuos paketus:

sudo apt-get atnaujinimas

sudo apt-get install -y ekranas 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 įdiegti būsimą pymavlink mavproxy pyserial

Norėdami naudoti „Raspberry Pi“integruotą nuosekliąją sąsają, turite pasakyti OS, kad jos nenaudotų. Norėdami tai padaryti, įveskite

sudo raspi-config

ir vykdykite sąsajos parinktis> Serijinė sąsaja

Turite išjungti serijinę sąsają, bet įjungti serijinę aparatinę įrangą.

Šiuo metu likusi dalis tinka tiek „Raspbian“, tiek „APSync“.

Pagrindiniame kataloge sukurkite tris failus: perkraukite scenarijų ir vaizdo procesoriaus scenarijų. Antroji eilutė leidžia vykdyti paleidimo scenarijų.

palieskite reboot.sh image_processor.py

chmod +x reboot.sh

Nukopijuokite visas žemiau pateiktų failų eilutes į „Raspberry Pi“namų katalogą (/home/pi).

Perkrovimo scenarijuje bus aktyvikliai, kurie suaktyvins vaizdo procesorių ir telemetrijos scenarijus. Taip pat keli nustatymai. Atminkite, kad jei nenorite telemetrijos funkcijos, prieš šią eilutę pridėkite #.

nano reboot.sh

#!/bin/bash

python3 /home/pi/image_processor.py

Išsaugokite jį naudodami CTRL+O ir išeikite naudodami CTRL+X. Paskutinis žingsnis yra užregistruoti jį OS paleisties faile rc.local

sudo nano /etc/rc.local

Pridėkite šią eilutę virš išėjimo 0:

/home/pi/reboot.sh

Mūsų perkrovimo scenarijus bus vykdomas kiekvieną kartą paleidžiant.

Mes norime, kad „Raspberry Pi“įrašytų tiesioginį vaizdo įrašą, apdorotų jį skrydžio metu, apskaičiuotų skrydžio instrukcijas, nusiųstų skrydžio valdytojui ir būtų telemetrija. Bet kadangi „Raspberry Pi“negali generuoti PPM signalo, kurio nori APM, mums reikia kito būdo tai pasiekti.

„Raspberry Pi“siunčia savo vaizdo apdorojimo išvestį į „Arduino“(mano atveju „Arduino Leonardo“) per nuoseklųjį prievadą. „Arduino“sugeneruos PPM signalą iš tos įvesties ir per trumpinius laidus nusiųs jį skrydžio valdikliui. Visa tai skirta „Raspberry Pi“.

Pereikime prie kito žingsnio.

3 žingsnis: APM ryšiai ir konfigūracija

APM ryšiai ir konfigūracija
APM ryšiai ir konfigūracija

Viskas apie APM yra paprasta, nes jis jau yra paruoštas skristi. Turime žinoti nuosekliųjų prievadų duomenų perdavimo spartą ir įsitikinti, kad įjungtas TELEM prievadas.

Savo programinėje įrangoje, mano atveju, „Mission Planner“, patikrinkite skrydžio valdiklio parametrų sąrašą ir raskite baudos spartą. Pavyzdžiui, SERIAL_BAUD yra USB duomenų perdavimo sparta, o SERIAL_BAUD1 - TELEM prievado duomenų perdavimo sparta. Atkreipkite dėmesį, kad vertės.

Svarbiausia yra INPUT kaiščių jungtys. Kaip parodyta paveikslėlyje, kruopščiai prijunkite „Arduino“skaitmeninius kaiščius 4. Galbūt norėsite tam panaudoti duonos laidą, nes ketiname pridėti keletą tranzistorių ir imtuvo išėjimų. (Žiūrėkite vaizdus) (Tranzistoriai veiks, jei norėsite valdyti savo droną)

4 ARD ↔ APM ĮVADAS 1

5 ARD ↔ APM ĮVADAS 2

6 ARD ↔ APM ĮVADAS 3

7 ARD ↔ APM ĮVADAS 4

8 ARD ↔ APM ĮVADAS 5

9 ARD ↔ APM ĮVADAS 6

Prijunkite visus 5 V kontaktus prie APM įvesties prie „Arduino Leonardo“5 V kaiščio. Taip pat prijunkite visus APM įvesties GND kaiščius prie „Arduino Leonardo GND“kaiščio.

4 žingsnis: „Arduino Leonardo“konfigūracija

Mes prijungėme visus Leonardo laidus, todėl liko tik kodas.

Įkelkite žemiau pateiktą kodą į „Arduino Leonardo“. Atkreipkite dėmesį į baudos spartą.

5 žingsnis: pirmasis skrydis

Kai baigsite visus ankstesnius veiksmus, tai reiškia, kad esate pasiruošę.

Įjunkite visas korteles ir prisijunkite prie SSH prie Raspberry Pi. Įveskite terminalą:

sudo su

mavproxy.py --master =/dev/[SERIALINĖ SĄSAJA] -išbandyti [TELEM PORT BAUDRATE] -orlaivis [CUSTOM NAME]

Numatytoji „Raspberry Pi“integruota nuosekli sąsaja yra ttyS0 (/dev/ttyS0)

Numatytasis APM TELEM prievado pralaidumas yra 57600

Numatytasis APM USB prievado pralaidumas yra 115200

Savo orlaiviui galite suteikti bet kokį pavadinimą, pasirinkite jį protingai, kad vėliau jį atpažintumėte.

Jei viskas gerai, dabar prisijunkite prie „Raspberry Pi“per VNC, kad galėtumėte stebėti, ką dronas mato realiu laiku.

Dabar galite įjungti savo droną. Jaudina, tiesa?

Nuimkite droną ir skriskite virš linijos. Dabar galite įjungti linijos sekimo režimą naudodami CH6 jungiklį.

Rekomenduojamas: