INHOUDSOPGAWE:

Outonome lynvolgende drone met framboos Pi: 5 stappe
Outonome lynvolgende drone met framboos Pi: 5 stappe

Video: Outonome lynvolgende drone met framboos Pi: 5 stappe

Video: Outonome lynvolgende drone met framboos Pi: 5 stappe
Video: TECHTalk Industrie 4.0 2024, November
Anonim
Outonome lynvolgende hommeltuig met framboos Pi
Outonome lynvolgende hommeltuig met framboos Pi

Hierdie tutoriaal toon hoe u uiteindelik die lynvolgers kan hommel.

Hierdie hommeltuig sal 'n 'outonome modus' -skakelaar hê wat die hommeltuig na die modus gaan. U kan dus steeds met u hommeltuig vlieg soos voorheen.

Hou in gedagte dat dit tyd sal neem om te bou en nog meer tyd om aan te pas. Maar die laaste … laat jou die moeite werd dink.

Om te begin met die skep van u eie autonomus line tracker drone, maak seker dat u het;

  • Rasberry Pi 3 of Raspberry Pi Zero W met SSH -toegang
  • Klaar-om-te-vlieg-hommeltuig met APM- of Pixhawk-vlugbeheerder
  • Arduino Leonardo of 'n ander Arduino met 'n vinnige kloksnelheid
  • Minstens 6 CH sender
  • USB -webkamera wat Raspberry Pi en OpenCV ondersteun
  • 'N PC
  • 6 transistors vir algemene doeleindes
  • Bedradingskabels

Stap 1: Die idee en verbindings

Die idee en verbindings
Die idee en verbindings

APM, oftewel ArduPilot, is 'n vlugbeheerder gebaseer op Arduino Mega. Dit beteken dat ons dit kan aanpas om die beste vir ons saak te wees. Maar aangesien ek nie die inligting daarvoor het nie, gaan ek 'n ander pad volg.

Raspberry Pi's is ongelukkig nie tydsensitief nie, wat beteken dat hulle nie PPM-seine kan hanteer nie.

Daarom het ons die ekstra Arduino -bord nodig.

Op hierdie manier verwerk Raspberry Pi die beelde en bereken die vluginstruksies en stuur dit na Arduino via Serial UART -koppelvlak. Die Arduino -kaart staan hier as 'n PPM -encoder/decoder, wat die vluginstruksies na PPM -seine wat APM wil hê, kodeer. Om 'n idee te kry, kan u die simboliese kringdiagram ondersoek.

Framboos Pi sal optree as 'n telemetrie -sender langs die opsporingslyn.

Die noodsaaklike stroombaan word in die beelde getoon. Ek sal in die volgende stappe verder verduidelik.

Stap 2: Raspberry Pi -verbindings en konfigurasie

Raspberry Pi -verbindings en konfigurasie
Raspberry Pi -verbindings en konfigurasie
Raspberry Pi -verbindings en konfigurasie
Raspberry Pi -verbindings en konfigurasie

Raspberry Pi sal via 'n ingeboude seriële koppelvlak gekoppel wees aan die Wi-Fi-adapter (opsioneel), die USB-webkamera, die Arduino Leonardo. APM - RPI -verbinding getoon met besonderhede op die beelde.

Om te konfigureer, het u twee opsies: pure Raspbian met die nodige pakkette of spesiale beeld vir MAVLink -verbinding genaamd APSync. As u Raspbian gaan gebruik, maak seker dat u hierdie pakkette geïnstalleer het:

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 installeer toekomstige pymavlink mavproxy pyserial

Om die ingeboude seriële koppelvlak van Raspberry Pi te gebruik, moet u die bedryfstelsel sê om dit nie te gebruik nie. Om dit te doen, tik

sudo raspi-config

en volg Koppelvlakopsies> Seriële koppelvlak

U moet die seriële koppelvlak deaktiveer, maar die seriële hardeware aktiveer.

Op hierdie punt is die res geskik vir beide Raspbian en APSync.

Skep drie lêers in die tuisgids: herlaai script en beeldverwerker scriptt. Die tweede reël maak die herlaai -script uitvoerbaar.

raak reboot.sh image_processor.py aan

chmod +x herlaai.sh

Kopieer al die reëls in die lêers hieronder na u tuisgids (/home/pi) in Raspberry Pi.

Die herlaai -skrif bevat snellers wat beeldverwerker en telemetrie -skrifte sal veroorsaak. Ook min instellings. Let daarop dat as u nie die telemetrie -funksie wil hê nie, # byvoeg voor die reël.

nano herlaai.sh

#!/bin/bash

python3 /home/pi/image_processor.py

Stoor dit met CTRL+O en verlaat met CTRL+X. Die laaste stap daaroor is om dit te registreer in die opstartlêer van die bedryfstelsel, rc.local

sudo nano /etc/rc.local

Voeg hierdie reël by by afrit 0:

/home/pi/reboot.sh

Ons herlaai -script word op elke opstart uitgevoer.

Ons wil hê Raspberry Pi moet lewendige video opneem, onmiddellik verwerk, vluginstruksies bereken, dit na die vlugbeheerder stuur en telemetrie doen. Maar aangesien Raspberry Pi nie die PPM -sein kan genereer wat APM wil hê nie, het ons 'n ander manier nodig om dit te bereik.

Raspberry Pi stuur sy beeldverwerkingsuitset na Arduino (in my geval Arduino Leonardo) via die seriële poort. Arduino sal 'n PPM -sein genereer vanaf die invoer en dit via vlugdrade na die vlugbeheerder stuur. Dit is alles vir Raspberry Pi.

Kom ons gaan na die volgende stap.

Stap 3: APM -verbindings en konfigurasie

APM -verbindings en konfigurasie
APM -verbindings en konfigurasie

Die dinge oor APM is eenvoudig, aangesien dit reeds gereed is om te vlieg. Ons moet die baudrates van die seriële poorte ken en seker maak dat die TELEM -poort geaktiveer is.

In u grondprogrammatuur, in my geval, Mission Planner, kyk na die parameters van die vlugbeheerder en vind die baudrates. SERIAL_BAUD is byvoorbeeld USB -baudrate en SERIAL_BAUD1 is TELEM -poort baudrate vir APM. Let op dat waardes.

Die belangrikste deel is die aansluitings van die INPUT -penne. Soos in die prentjie, verbind Arduino se digitale penne 4 deeglik 9. U kan 'n broodbord hiervoor gebruik, aangesien ons 'n paar transistors en ontvangeruitsette gaan byvoeg. (Sien prente) (Transistors werk as u beheer oor u drone wil neem)

ARD 4, APM INVOER 1

ARD 5, APM INVOER 2

ARD 6, APM INVOER 3

ARD 7, APM INVOER 4

ARD 8, APM -INVOER 5

ARD 9, APM -INVOER 6

Koppel alle 5V -penne op die APM -ingang aan die Arduino Leonardo 5V -pen. Koppel ook alle APM -invoer GND -penne aan die Arduino Leonardo GND -pen.

Stap 4: Arduino Leonardo -opset

Ons het al die drade vir Leonardo gekoppel, sodat slegs die kode oor is.

Laai die onderstaande kode op na u Arduino Leonardo. Gee aandag aan baudrates.

Stap 5: Eerste vlug

As u klaar is met al die vorige stappe, beteken dit dat u gereed is.

Skakel alle kaarte aan en maak verbinding met SSH met Raspberry Pi. Tik terminale in:

sudo su

mavproxy.py --master =/dev/[SERIAL INTERFACE] --baudrate [TELEM PORT BAUDRATE] -vliegtuie [AANGEPASTE NAAM

Die standaard ingeboude seriële koppelvlak van Raspberry Pi is ttyS0 (/dev/ttyS0)

Die standaard APM TELEM -poort baudrate is 57600

Die standaard APM USB -poort baudrate is 115200

U kan u vliegtuig enige naam gee, dit verstandig kies, sodat u dit later kan herken.

As alles in orde is, sluit u nou aan op u Raspberry Pi via VNC, sodat u intyds kan kyk wat die drone sien.

Nou kan u u hommeltuig inskakel. Opwindend, reg?

Haal u hommeltuig af en vlieg bo die lyn. Nou kan u die lynopsporingsmodus aktiveer deur die CH6 -skakelaar te gebruik.

Aanbeveel: