Indholdsfortegnelse:

Autonom Line Follower Drone med Raspberry Pi: 5 trin
Autonom Line Follower Drone med Raspberry Pi: 5 trin

Video: Autonom Line Follower Drone med Raspberry Pi: 5 trin

Video: Autonom Line Follower Drone med Raspberry Pi: 5 trin
Video: How Did I Use Python And Ai To Create A Fully Autonomous Drone? ArduCopter pixhawk and OpenCV. 2024, Juli
Anonim
Autonom Line Follower Drone med Raspberry Pi
Autonom Line Follower Drone med Raspberry Pi

Denne vejledning viser, hvordan du i sidste ende kan lave line follower drone.

Denne drone vil have en "autonom tilstand" -kontakt, der skifter dronen til tilstand. Så du kan stadig flyve med din drone som før.

Vær opmærksom på, at det tager tid at bygge og endnu mere tid til at justere. Men det sidste … får dig til at tænke det værd.

For at begynde at oprette din egen autonom line tracker drone, skal du sørge for at have;

  • Rasberry Pi 3 eller Raspberry Pi Zero W med SSH -adgang
  • Klar til at flyve drone med APM eller Pixhawk flyvekontroller
  • Arduino Leonardo eller en anden Arduino med hurtig clockhastighed
  • Mindst 6 CH sender
  • USB -webcam, som Raspberry Pi og OpenCV understøtter
  • En pc
  • 6 transistorer til generelle formål
  • Kabelføring

Trin 1: Ideen og forbindelserne

Ideen og forbindelserne
Ideen og forbindelserne

APM, alias ArduPilot, er en flyvekontroller baseret på Arduino Mega. Det betyder, at vi kan ændre det, så det er bedst for vores sag. Men da jeg ikke har oplysninger til at gøre det, vil jeg gå for at følge en anden vej.

Raspberry Pi'er er desværre ikke tidsfølsomme, hvilket betyder, at de ikke kan håndtere PPM-signaler.

Derfor har vi brug for det ekstra Arduino -bord.

På denne måde vil Raspberry Pi behandle billederne og beregne flyveinstruktionerne og sende det til Arduino via Serial UART -interface. Arduino -kort vil stå her som en PPM -encoder/dekoder, som koder flyveinstruktionerne til PPM -signaler, som APM ønsker. For at få en idé kan du undersøge det symbolske kredsløbsdiagram.

Raspberry Pi vil opføre sig som telemetri sender sammen med detekteringslinje.

Det væsentlige kredsløb er vist på billederne. Jeg vil fortsætte med at forklare i de næste trin.

Trin 2: Raspberry Pi -forbindelser og konfiguration

Raspberry Pi -forbindelser og konfiguration
Raspberry Pi -forbindelser og konfiguration
Raspberry Pi -forbindelser og konfiguration
Raspberry Pi -forbindelser og konfiguration

Raspberry Pi forbindes til Wi-Fi-adapter (ekstraudstyr), USB-webcam, Arduino Leonardo via USB, APM via indbygget serielt interface. APM - RPI -forbindelse vist med detaljer på billederne.

For at konfigurere har du to muligheder: ren Raspbian med nødvendige pakker eller specielt billede til MAVLink -forbindelse kaldet APSync. Hvis du vil bruge Raspbian, skal du sørge for at have installeret disse pakker:

sudo apt-get opdatering

sudo apt-get install -y skærm 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 installere fremtidig pymavlink mavproxy pyserial

For at bruge Raspberry Pi's indbyggede serielle interface skal du bede OS om ikke at bruge det. For at gøre det skal du skrive

sudo raspi-config

og følg grænsefladeindstillinger> Seriel grænseflade

Du skal deaktivere seriel grænseflade, men aktivere seriel hardware.

På dette tidspunkt er resten velegnet til både Raspbian og APSync.

Opret tre filer i hjemmebiblioteket: genstart script og billedprocessor scriptt. Anden linje gør genstart af script eksekverbart.

tryk på reboot.sh image_processor.py

chmod +x genstart.sh

Kopier alle linjerne i filerne nedenfor til din hjemmekatalog (/home/pi) i Raspberry Pi.

Genstart -scriptet indeholder triggere, der vil udløse billedprocessor og telemetri -scripts. Også få indstillinger. Bemærk, at hvis du ikke vil have telemetri -funktionen, skal du tilføje # før denne linje.

nano genstart.sh

#!/bin/bash

python3 /home/pi/image_processor.py

Gem det med CTRL+O, og afslut med CTRL+X. Sidste trin om det er at registrere det til OS -opstartsfil, rc.local

sudo nano /etc/rc.local

Tilføj denne linje over afkørsel 0:

/home/pi/reboot.sh

Vores genstart script vil blive udført på hver boot.

Vi vil have Raspberry Pi til at optage live-video, behandle den on-the-fly, beregne flyveinstruktioner, sende den til flight controller og være telemetri. Men da Raspberry Pi ikke er i stand til at generere PPM -signal, som APM ønsker, har vi brug for en anden måde at opnå det på.

Raspberry Pi sender sit billedbehandlingsoutput til Arduino (i mit tilfælde Arduino Leonardo) via Serial Port. Arduino vil generere PPM -signal fra denne input og sende det til Flight Controller via jumperwires. Dette er alt for Raspberry Pi.

Lad os gå videre til næste trin.

Trin 3: APM -forbindelser og konfiguration

APM -forbindelser og konfiguration
APM -forbindelser og konfiguration

Tingene ved APM er enkle, da det allerede er klar til at flyve. Vi skal kende serielle havnes baudrater og sikre, at TELEM -port er aktiveret.

I din jordsoftware, i mit tilfælde Mission Planner, skal du kontrollere flyvekontrollens parameterliste og finde baudraterne. For eksempel er SERIAL_BAUD USB baudrate og SERIAL_BAUD1 er TELEM port baudrate for APM. Bemærk, at værdier.

Den vigtigste del er INPUT pins 'forbindelser. Som vist på billedet skal du tilslutte Arduinos digitale ben 4 grundigt 9. Du kan eventuelt bruge et brødbord til dette, da vi vil tilføje nogle transistorer og modtagerudgange. (Se billeder) (Transistorer fungerer, hvis du vil tage kontrol over din drone)

ARD 4, APM INPUT 1

ARD 5, APM INPUT 2

ARD 6, APM INPUT 3

ARD 7, APM INPUT 4

ARD 8, APM INPUT 5

ARD 9 ↔ APM INPUT 6

Tilslut alle 5V ben på APM -input til Arduino Leonardo 5V pin. Tilslut ligeledes alle APM Input GND -ben til Arduino Leonardo GND -pin.

Trin 4: Arduino Leonardo -konfiguration

Vi har tilsluttet alle ledninger til Leonardo, så kun koden er tilbage.

Upload den givne kode herunder til din Arduino Leonardo. Vær opmærksom på baudrates.

Trin 5: Første flyvning

Når du er færdig med alle tidligere trin, betyder det, at du er klar.

Start alle kort, og opret forbindelse med SSH til Raspberry Pi. Indtast terminal:

sudo su

mavproxy.py --master =/dev/[SERIAL INTERFACE] --baudrate [TELEM PORT BAUDRATE] --aircraft [CUSTOM NAME

Standard Raspberry Pi indbygget serielt interface er ttyS0 (/dev/ttyS0)

Standard APM TELEM port baudrate er 57600

Standard APM USB -port baudrate er 115200

Du kan give ethvert navn til dit fly, vælge det med omhu, så du kan genkende det senere.

Hvis alt er i orden, skal du nu oprette forbindelse til din Raspberry Pi via VNC, så du kan se, hvad drone ser i realtid.

Nu kan du bevæbne din drone. Spændende, ikke?

Tag din drone af, og flyv over linjesporet. Nu kan du aktivere liniesporingstilstand ved hjælp af CH6 -switch.

Anbefalede: