Innehållsförteckning:

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

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

Video: Autonom Line Follower Drone med Raspberry Pi: 5 steg
Video: The Choice is Ours (2016) Official Full Version 2024, Juli
Anonim
Autonom Line Follower Drone med Raspberry Pi
Autonom Line Follower Drone med Raspberry Pi

Den här självstudien visar hur du kan göra linjeföljare drönare så småningom.

Denna drönare kommer att ha en "autonom läge" -brytare som kommer att gå in i drönaren till läge. Så du kan fortfarande flyga din drönare som tidigare.

Var medveten om att det kommer att ta tid att bygga och ännu mer tid att justera. Men det sista … får dig att tänka dig värt det.

För att börja skapa din egen autonom line tracker drone, se till att du har;

  • Rasberry Pi 3 eller Raspberry Pi Zero W med SSH -åtkomst
  • Ready-To-Fly-drönare med APM- eller Pixhawk-flygkontroll
  • Arduino Leonardo eller en annan Arduino med snabb klockfart
  • Minst 6 CH sändare
  • USB -webbkamera som Raspberry Pi och OpenCV stöder
  • En dator
  • 6 transistorer för allmänna ändamål
  • Kablar

Steg 1: Idén och anslutningarna

Idén och anslutningarna
Idén och anslutningarna

APM, aka ArduPilot, är en flygkontroll baserad på Arduino Mega. Det betyder att vi kan ändra det för att vara bäst för vårt fall. Men eftersom jag inte har informationen att göra det, kommer jag att gå på ett annat sätt.

Raspberry Pi är tyvärr inte tidskänsliga vilket innebär att de inte kan hantera PPM-signaler.

Det är därför vi behöver det extra Arduino -kortet.

På detta sätt kommer Raspberry Pi att bearbeta bilderna och beräkna flyginstruktionerna och skicka dem till Arduino via Serial UART -gränssnitt. Arduino -kortet kommer att stå här som en PPM -kodare/avkodare, som kodar flyginstruktionerna till PPM -signaler som APM vill ha. För att få en idé kan du undersöka det symboliska kretsschemat.

Raspberry Pi kommer att bete sig som telemetrisändare vid sidan av detekteringslinjen.

Den väsentliga kretsen visas på bilderna. Jag kommer att fortsätta förklara i nästa steg.

Steg 2: Raspberry Pi -anslutningar och konfiguration

Raspberry Pi -anslutningar och konfiguration
Raspberry Pi -anslutningar och konfiguration
Raspberry Pi -anslutningar och konfiguration
Raspberry Pi -anslutningar och konfiguration

Raspberry Pi kommer att anslutas till Wi-Fi-adapter (tillval), USB-webbkamera, Arduino Leonardo via USB, APM via inbyggt seriellt gränssnitt. APM - RPI -anslutning visas med detaljer i bilderna.

För att konfigurera har du två alternativ: ren Raspbian med nödvändiga paket eller speciell bild för MAVLink -anslutning som kallas APSync. Om du ska använda Raspbian, se till att du har installerat dessa paket:

sudo apt-get uppdatering

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 installera framtida pymavlink mavproxy pyserial

För att kunna använda Raspberry Pi: s inbyggda seriella gränssnitt måste du berätta för OS att inte använda det. För att göra det, skriv

sudo raspi-config

och följ Gränssnittsalternativ> Seriellt gränssnitt

Du måste inaktivera seriellt gränssnitt men aktivera seriell hårdvara.

Vid denna tidpunkt är resten lämpligt för både Raspbian och APSync.

I hemkatalogen skapar du tre filer: omstartskript och bildprocessor scriptt. Andra raden gör omstartskript körbart.

tryck på reboot.sh image_processor.py

chmod +x reboot.sh

Kopiera alla rader i filerna nedan till din hemkatalog (/home/pi) i Raspberry Pi.

Omstartskriptet kommer att innehålla utlösare som kommer att utlösa bildprocessor och telemetri -skript. Även få inställningar. Observera att om du inte vill ha telemetri, lägg till # före den raden.

nano reboot.sh

#!/bin/bash

python3 /home/pi/image_processor.py

Spara den med CTRL+O och avsluta med CTRL+X. Sista steget om det är att registrera det i OS -startfilen, rc.local

sudo nano /etc/rc.local

Lägg till den här raden ovanför avfart 0:

/home/pi/reboot.sh

Vårt omstartskript körs på varje start.

Vi vill att Raspberry Pi ska spela in livevideo, bearbeta det direkt, beräkna flyginstruktioner, skicka det till flygkontrollen och vara telemetri. Men eftersom Raspberry Pi inte kan generera PPM -signal som APM vill ha, behöver vi ett annat sätt att uppnå det.

Raspberry Pi kommer att skicka sin bildbehandlingsutmatning till Arduino (i mitt fall Arduino Leonardo) via seriell port. Arduino kommer att generera PPM -signal från den ingången och skicka den till Flight Controller via bygelkablar. Detta är allt för Raspberry Pi.

Låt oss gå vidare till nästa steg.

Steg 3: APM -anslutningar och konfiguration

APM -anslutningar och konfiguration
APM -anslutningar och konfiguration

Sakerna med APM är enkla eftersom det redan är klart att flyga. Vi behöver känna till seriella portars baudrates och se till att TELEM -porten är aktiverad.

I din markprogramvara, i mitt fall Mission Planner, kontrollera flygkontrollantens parameterlista och ta reda på baudrates. Till exempel är SERIAL_BAUD USB baudrate och SERIAL_BAUD1 är TELEM port baudrate för APM. Observera att värden.

Den viktigaste delen är INPUT -stifters anslutningar. Som visas på bilden, anslut Arduinos digitala stift 4 grundligt 9. Du kanske vill använda ett brödbord för detta, eftersom vi ska lägga till några transistorer och mottagarutgångar. (Se bilder) (Transistorer fungerar om du vill ta kontroll över din drönare)

ARD 4, APM -INGÅNG 1

ARD 5, APM -INGÅNG 2

ARD 6 ↔ APM -INGÅNG 3

ARD 7 ↔ APM -INGÅNG 4

ARD 8 ↔ APM -INGÅNG 5

ARD 9 ↔ APM -INGÅNG 6

Anslut alla 5V -stift på APM -ingången till Arduino Leonardo 5V -stift. Anslut också alla APM -ingångs -GND -stift till Arduino Leonardo GND -stift.

Steg 4: Arduino Leonardo -konfiguration

Vi har anslutit alla ledningar för Leonardo så bara koden kvar.

Ladda upp den angivna koden nedan till din Arduino Leonardo. Var uppmärksam på baudrates.

Steg 5: Första flyget

När du är klar med alla tidigare steg betyder det att du är redo.

Starta alla kort och anslut med SSH till Raspberry Pi. Skriv in terminal:

sudo su

mavproxy.py --master =/dev/[SERIELL GRÄNSSNITT] -baudrate [TELEM PORT BAUDRATE] -luftfartyg [TILLÄMPNINGSNAMN

Standard Raspberry Pi inbyggt seriellt gränssnitt är ttyS0 (/dev/ttyS0)

Standard APM TELEM port baudrate är 57600

Standard APM USB -port baudrate är 115200

Du kan ge ditt flygplan valfritt namn, välja det klokt, så att du kan känna igen det senare.

Om allt är okej, anslut nu till din Raspberry Pi via VNC, så att du kan se vad drönaren ser i realtid.

Nu kan du beväpna din drönare. Spännande, eller hur?

Ta av din drönare och flyga över linjespåret. Nu kan du aktivera linjespårningsläge med CH6 -omkopplaren.

Rekommenderad: