Spisu treści:
- Krok 1: Pomysł i połączenia
- Krok 2: Połączenia i konfiguracja Raspberry Pi
- Krok 3: Połączenia i konfiguracja APM
- Krok 4: Konfiguracja Arduino Leonardo
- Krok 5: Pierwszy lot
Wideo: Autonomiczny dron podążający za linią z Raspberry Pi: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
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
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
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
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:
Robot podążający za linią Siebe Deetens: 4 kroki
Line Follower Robot Siebe Deetens: Bij de opleiding Elektromechanica Automatisering aan HOGENT (3e bachelor), hebben we vanuit het vak Syntheseproject de opdracht gekregen om een line follower robot te maken. sla
Zaawansowany robot podążający za linią: 22 kroki (ze zdjęciami)
Zaawansowany robot podążający za linią: Jest to zaawansowany robot podążający za linią oparty na Teensy 3.6 i czujniku linii QTRX, który zbudowałem i nad którym pracuję od dłuższego czasu. Jest kilka znaczących ulepszeń w projekcie i wydajności mojej wcześniejszej linii robota. T
Robot podążający za linią: 5 kroków
Robot podążający za linią: Cześć wszystkim, W tej instrukcji podzielę się, jak zrobić robota podążającego za linią za pomocą zestawu od Amazon. Użyłem tego zestawu, aby nauczyć moje dziecko lutowania. Zazwyczaj te zestawy są proste, z zestawem otrzymujesz wszystkie materiały, komponenty itp
Robot podążający za linią do uczenia algorytmów sterowania: 3 kroki
Robot Line Follower do nauczania algorytmów sterowania: Zaprojektowałem tego robota Line Follower kilka lat temu, kiedy byłem nauczycielem robotyki. Celem tego projektu było nauczenie moich uczniów, jak kodować robota podążającego za linią na zawody, a także porównanie między sterowaniem If/Else i PID. I nie
Mobilny sterowany robot podążający za linią z unikaniem przeszkód: 6 kroków
Mobilny sterowany robot podążający za linią z unikaniem przeszkód: był to po prostu pomysł, w którym kilka funkcji, takich jak omijanie przeszkód, śledzenie linii, sterowanie mobilne itp., zostało zmieszanych i połączonych w jeden element. Wszystko, czego potrzebujesz, to kontroler z kilkoma czujnikami i strój do tej konfiguracji. W tym mam