Spisu treści:

Autonomiczny dron podążający za linią z Raspberry Pi: 5 kroków
Autonomiczny dron podążający za linią z Raspberry Pi: 5 kroków

Wideo: Autonomiczny dron podążający za linią z Raspberry Pi: 5 kroków

Wideo: Autonomiczny dron podążający za linią z Raspberry Pi: 5 kroków
Wideo: Webinar: Cyberbezpieczeństwo w elektromobilności 2024, Listopad
Anonim
Autonomiczny dron śledzący linię z Raspberry Pi
Autonomiczny dron śledzący linię z Raspberry Pi

Ten samouczek pokazuje, jak ostatecznie stworzyć drona śledzącego linię.

Ten dron będzie miał przełącznik „tryb autonomiczny”, który wejdzie w tryb drona. Możesz więc nadal latać dronem tak jak wcześniej.

Należy pamiętać, że budowanie zajmie trochę czasu, a jeszcze więcej czasu na dostosowanie. Ale ostatnie… sprawia, że myślisz, że warto.

Aby rozpocząć tworzenie własnego drona autonomicznego śledzenia linii, upewnij się, że masz;

  • Rasberry Pi 3 lub Raspberry Pi Zero W z dostępem przez SSH
  • Gotowy do lotu dron z kontrolerem lotu APM lub Pixhawk
  • Arduino Leonardo lub inny Arduino z szybkim taktowaniem
  • Co najmniej 6 nadajników CH
  • Kamera internetowa USB obsługiwana przez Raspberry Pi i OpenCV
  • Komputer PC
  • 6 tranzystorów ogólnego przeznaczenia
  • Kable okablowania

Krok 1: Pomysł i połączenia

Idea i powiązania
Idea i powiązania

APM, czyli ArduPilot, to kontroler lotu oparty na Arduino Mega. Oznacza to, że możemy go zmodyfikować, aby był najlepszy dla naszego przypadku. Ale ponieważ nie mam informacji, aby to zrobić, zamierzam pójść inną drogą.

Raspberry Pi nie jest niestety wrażliwe na czas, co oznacza, że nie radzi sobie z sygnałami PPM.

Dlatego potrzebujemy dodatkowej płytki Arduino.

W ten sposób Raspberry Pi przetworzy obrazy i obliczy instrukcje lotu i wyśle je do Arduino za pośrednictwem interfejsu szeregowego UART. Karta Arduino będzie tutaj występować jako koder/dekoder PPM, który koduje instrukcje lotu do sygnałów PPM, których chce APM. Aby mieć pomysł, możesz przejrzeć symboliczny schemat obwodu.

Raspberry Pi będzie zachowywać się jak nadajnik telemetryczny wraz z linią detekcyjną.

Podstawowy obwód pokazano na zdjęciach. Kontynuuję wyjaśnianie w kolejnych krokach.

Krok 2: Połączenia i konfiguracja Raspberry Pi

Połączenia i konfiguracja Raspberry Pi
Połączenia i konfiguracja Raspberry Pi
Połączenia i konfiguracja Raspberry Pi
Połączenia i konfiguracja Raspberry Pi

Raspberry Pi będzie połączone z adapterem Wi-Fi (opcjonalnie), kamerą internetową USB, Arduino Leonardo przez USB, APM przez wbudowany interfejs szeregowy. APM - połączenie RPI pokazane ze szczegółami na zdjęciach.

Do konfiguracji masz dwie opcje: czysty Raspbian z potrzebnymi pakietami lub specjalny obraz do połączenia MAVLink o nazwie APSync. Jeśli zamierzasz używać Raspbian, upewnij się, że zainstalowałeś te pakiety:

aktualizacja sudo apt-get

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 zainstaluj przyszły pymavlink mavproxy pyserial

Aby korzystać z wbudowanego interfejsu szeregowego Raspberry Pi, musisz powiedzieć systemowi operacyjnemu, aby go nie używał. Aby to zrobić, wpisz

sudo raspi-config

i postępuj zgodnie z opcjami interfejsu > Interfejs szeregowy

Musisz wyłączyć interfejs szeregowy, ale włączyć sprzęt szeregowy.

W tym momencie reszta jest odpowiednia zarówno dla Raspbian, jak i APSync.

W katalogu domowym utwórz trzy pliki: skrypt restartu i skrypt procesora obrazu. Druga linia sprawia, że skrypt restartu jest wykonywalny.

dotknij reboot.sh image_processor.py

chmod +x reboot.sh

Skopiuj wszystkie wiersze w plikach podanych poniżej do swojego katalogu domowego (/home/pi) w Raspberry Pi.

Skrypt ponownego uruchomienia będzie zawierał wyzwalacze, które będą wyzwalać procesor obrazu i skrypty telemetryczne. Również kilka ustawień. Pamiętaj, że jeśli nie chcesz korzystać z funkcji telemetrii, dodaj # przed tym wierszem.

nano reboot.sh

#!/kosz/bash

python3 /home/pi/image_processor.py

Zapisz go za pomocą CTRL+O i wyjdź za pomocą CTRL+X. Ostatnim krokiem jest zarejestrowanie go w pliku startowym systemu operacyjnego, rc.local

sudo nano /etc/rc.local

Dołącz ten wiersz nad wyjściem 0:

/home/pi/reboot.sh

Nasz skrypt restartu będzie wykonywany przy każdym uruchomieniu.

Chcemy, aby Raspberry Pi nagrywało wideo na żywo, przetwarzało je w locie, obliczało instrukcje lotu, wysyłało je do kontrolera lotu i było telemetrią. Ale ponieważ Raspberry Pi nie jest w stanie wygenerować sygnału PPM, którego chce APM, potrzebujemy innego sposobu, aby to osiągnąć.

Raspberry Pi wyśle swoje wyjście przetwarzania obrazu do Arduino (w moim przypadku Arduino Leonardo) przez port szeregowy. Arduino wygeneruje sygnał PPM z tego wejścia i wyśle go do kontrolera lotu za pomocą przewodów połączeniowych. To wszystko dla Raspberry Pi.

Przejdźmy do następnego kroku.

Krok 3: Połączenia i konfiguracja APM

Połączenia i konfiguracja APM
Połączenia i konfiguracja APM

Rzeczy o APM są proste, ponieważ jest już gotowe do lotu. Musimy znać szybkość transmisji portów szeregowych i upewnić się, że port TELEM jest włączony.

W swoim oprogramowaniu naziemnym, w moim przypadku Mission Planner, sprawdź listę parametrów kontrolera lotu i sprawdź szybkość transmisji. Na przykład SERIAL_BAUD to szybkość transmisji USB, a SERIAL_BAUD1 to szybkość transmisji portu TELEM dla APM. Zauważ, że wartości.

Najważniejszą częścią są połączenia pinów INPUT. Jak pokazano na obrazku, podłącz cyfrowe piny Arduino 4 do 9. Możesz do tego użyć płytki, ponieważ zamierzamy dodać tranzystory i wyjścia odbiornika. (Zobacz zdjęcia) (Tranzystory będą działać na wypadek, gdybyś chciał przejąć kontrolę nad swoim dronem)

ARD 4 ↔ WEJŚCIE APM 1

ARD 5 ↔ WEJŚCIE APM 2

ARD 6 ↔ WEJŚCIE APM 3

ARD 7 ↔ WEJŚCIE APM 4

ARD 8 ↔ WEJŚCIE APM 5

ARD 9 ↔ WEJŚCIE APM 6

Podłącz wszystkie piny 5V na wejściu APM do pinu Arduino Leonardo 5V. Podobnie podłącz wszystkie piny GND wejścia APM do pinu GND Arduino Leonardo.

Krok 4: Konfiguracja Arduino Leonardo

Połączyliśmy wszystkie przewody dla Leonarda więc pozostał tylko kod.

Prześlij poniższy kod do swojego Arduino Leonardo. Zwróć uwagę na szybkość transmisji.

Krok 5: Pierwszy lot

Kiedy skończysz wszystkie poprzednie kroki, oznacza to, że jesteś gotowy.

Włącz wszystkie karty i połącz się przez SSH z Raspberry Pi. Wpisz terminal:

sudo su

mavproxy.py --master=/dev/[INTERFEJS SZEREGOWY] --baudrate [SZYBKOŚĆ TRANSMISJI PORTU TELEM] --aircraft [NAZWA WŁASNA

Domyślny wbudowany interfejs szeregowy Raspberry Pi to ttyS0 (/dev/ttyS0)

Domyślna szybkość transmisji portu APM TELEM to 57600

Domyślna szybkość transmisji portu USB APM wynosi 115200

Możesz nadać swojemu samolotowi dowolną nazwę, wybierz ją mądrze, abyś mógł ją później rozpoznać.

Jeśli wszystko jest w porządku, teraz połącz się z Raspberry Pi przez VNC, abyś mógł oglądać to, co widzi dron w czasie rzeczywistym.

Teraz możesz uzbroić swojego drona. Ekscytujące, prawda?

Zdejmij drona i przeleć nad torami liniowymi. Teraz możesz aktywować tryb śledzenia linii za pomocą przełącznika CH6.

Zalecana: