Innholdsfortegnelse:

Autonom Line Follower Drone Med Raspberry Pi: 5 trinn
Autonom Line Follower Drone Med Raspberry Pi: 5 trinn

Video: Autonom Line Follower Drone Med Raspberry Pi: 5 trinn

Video: Autonom Line Follower Drone Med Raspberry Pi: 5 trinn
Video: The Choice is Ours (2016) Official Full Version 2024, November
Anonim
Autonom line -følger -drone med bringebær Pi
Autonom line -følger -drone med bringebær Pi

Denne opplæringen viser hvordan du etter hvert kan lage en line -follower drone.

Denne dronen vil ha en "autonom modus" -bryter som går inn i dronen til modus. Så du kan fortsatt fly dronen din som før.

Vær oppmerksom på at det kommer til å ta tid å bygge og enda mer tid til å justere. Men det siste … får deg til å tenke verdt det.

For å begynne å lage din egen autonom line tracker drone, sørg for at du har;

  • Rasberry Pi 3 eller Raspberry Pi Zero W med SSH -tilgang
  • Klar til å fly-drone med APM eller Pixhawk flykontroller
  • Arduino Leonardo eller en annen Arduino med rask klokkehastighet
  • Minst 6 CH sender
  • USB -webkamera som Raspberry Pi og OpenCV støtter
  • En PC
  • 6 transistorer for generelle formål
  • Kablingskabler

Trinn 1: Ideen og forbindelsene

Ideen og forbindelsene
Ideen og forbindelsene

APM, alias ArduPilot, er en flykontroller basert på Arduino Mega. Dette betyr at vi kan endre det for å være best for vår sak. Men siden jeg ikke har informasjonen til det, kommer jeg til å gå en annen måte.

Raspberry Pi er dessverre ikke tidssensitive, noe som betyr at de ikke kan håndtere PPM-signaler.

Derfor trenger vi det ekstra Arduino -kortet.

På denne måten vil Raspberry Pi behandle bildene og beregne flyinstruksjonene og sende dem til Arduino via Serial UART -grensesnitt. Arduino -kortet vil stå her som en PPM -koder/dekoder, som koder flyinstruksjonene til PPM -signaler som APM ønsker. For å få en ide, kan du undersøke det symbolske kretsdiagrammet.

Raspberry Pi vil oppføre seg som telemetrisender sammen med detekteringslinje.

Den essensielle kretsen er vist på bildene. Jeg vil fortsette å forklare i neste trinn.

Trinn 2: Raspberry Pi -tilkoblinger og konfigurasjon

Raspberry Pi -tilkoblinger og konfigurasjon
Raspberry Pi -tilkoblinger og konfigurasjon
Raspberry Pi -tilkoblinger og konfigurasjon
Raspberry Pi -tilkoblinger og konfigurasjon

Raspberry Pi blir koblet til Wi-Fi-adapter (valgfritt), USB-webkamera, Arduino Leonardo via USB, APM via innebygd serielt grensesnitt. APM - RPI -tilkobling vist med detaljer på bildene.

For å konfigurere har du to alternativer: ren Raspbian med nødvendige pakker eller spesialbilde for MAVLink -tilkobling kalt APSync. Hvis du skal bruke Raspbian, må du kontrollere at du har installert disse pakkene:

sudo apt-get oppdatering

sudo apt-get install -y skjerm 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 å bruke Raspberry Pi's innebygde serielle grensesnitt, må du be OS om ikke å bruke det. For å gjøre det, skriv

sudo raspi-config

og følg Grensesnittalternativer> Serielt grensesnitt

Du må deaktivere serielt grensesnitt, men aktivere seriell maskinvare.

På dette tidspunktet er resten egnet for både Raspbian og APSync.

I hjemmekatalogen oppretter du tre filer: reboot script og image processor scriptt. Andre linje gjør omstartskript kjørbart.

trykk på reboot.sh image_processor.py

chmod +x reboot.sh

Kopier alle linjene i filene nedenfor til hjemmekatalogen (/home/pi) i Raspberry Pi.

Omstartskriptet vil inneholde utløsere som skal utløse bildeprosessor og telemetri -skript. Også få innstillinger. Vær oppmerksom på at hvis du ikke vil ha telemetri -funksjonen, må du legge til # før den linjen.

nano reboot.sh

#!/bin/bash

python3 /home/pi/image_processor.py

Lagre den med CTRL+O og avslutt med CTRL+X. Siste trinn om det er å registrere den til OS -oppstartsfil, rc.local

sudo nano /etc/rc.local

Legg til denne linjen over avkjørsel 0:

/home/pi/reboot.sh

Omstartskriptet vårt blir utført på hver oppstart.

Vi vil at Raspberry Pi skal ta opp live video, behandle den i farten, beregne flyinstruksjoner, sende den til flykontrolleren og være telemetri. Men siden Raspberry Pi ikke er i stand til å generere PPM -signal som APM ønsker, trenger vi en annen måte å oppnå det på.

Raspberry Pi sender bildebehandlingsutgangen til Arduino (i mitt tilfelle Arduino Leonardo) via en seriell port. Arduino vil generere PPM -signal fra den inngangen og sende det til Flight Controller via jumper -ledninger. Dette er alt for Raspberry Pi.

La oss gå videre til neste trinn.

Trinn 3: APM -tilkoblinger og konfigurasjon

APM -tilkoblinger og konfigurasjon
APM -tilkoblinger og konfigurasjon

Tingene med APM er enkle siden det allerede er klart til å fly. Vi trenger å kjenne serielle porters baudrater, og sørge for at TELEM -porten er aktivert.

I bakkeprogramvaren din, i mitt tilfelle Mission Planner, sjekk flygelederens parameterliste og finn baudratene. For eksempel er SERIAL_BAUD USB baudrate og SERIAL_BAUD1 er TELEM port baudrate for APM. Vær oppmerksom på at verdier.

Den viktigste delen er INPUT -pinners tilkoblinger. Som vist på bildet, koble til Arduinos digitale pinner 4 grundig 9. Du vil kanskje bruke et brødbord til dette, siden vi skal legge til noen transistorer og mottakerutganger. (Se bilder) (Transistorer fungerer hvis du vil ta kontroll over dronen din)

ARD 4, APM -INNGANG 1

ARD 5, APM -INNGANG 2

ARD 6, APM -INNGANG 3

ARD 7, APM -INNGANG 4

ARD 8, APM -INNGANG 5

ARD 9, APM -INNGANG 6

Koble alle 5V -pinnene på APM -inngangen til Arduino Leonardo 5V -pinnen. Tilsvarende koble alle APM -inngang GND -pinner til Arduino Leonardo GND -pinne.

Trinn 4: Arduino Leonardo -konfigurasjon

Vi har koblet alle ledningene til Leonardo, så bare koden er igjen.

Last opp den oppgitte koden nedenfor til din Arduino Leonardo. Vær oppmerksom på baudrates.

Trinn 5: Første flytur

Når du er ferdig med alle tidligere trinn, betyr det at du er klar.

Slå på alle kortene og koble til SSH til Raspberry Pi. Skriv inn terminal:

sudo su

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

Standard Raspberry Pi innebygd serielt grensesnitt er ttyS0 (/dev/ttyS0)

Standard APM TELEM port baudrate er 57600

Standard APM USB -port baudrate er 115200

Du kan gi et hvilket som helst navn til flyet ditt, velge det klokt, slik at du kan gjenkjenne det senere.

Hvis alt er i orden, kan du nå koble til Raspberry Pi via VNC, slik at du kan se hva dronen ser i sanntid.

Nå kan du bevæpne dronen din. Spennende, ikke sant?

Ta dronen av og fly over linjesporet. Nå kan du aktivere linjesporingsmodus ved å bruke CH6 -bryteren.

Anbefalt: