Spisu treści:

Robot Raspberry SPy: 8 kroków (ze zdjęciami)
Robot Raspberry SPy: 8 kroków (ze zdjęciami)

Wideo: Robot Raspberry SPy: 8 kroków (ze zdjęciami)

Wideo: Robot Raspberry SPy: 8 kroków (ze zdjęciami)
Wideo: [A&RPi Day 2020 prelekcje] Budowa i oprogramowanie robota Sumo 2024, Listopad
Anonim
Image
Image
Malinowy robot szpiegowski
Malinowy robot szpiegowski

Ten projekt umożliwia kierowanie robotem przez stronę internetową i oglądanie transmisji na żywo. Może być używany do szpiegowania zwierząt domowych, upewniania się, że w piekarniku nic się nie pali, a nawet do obserwowania ptaków! DFRobot dostarczył Raspberry Pi 3 i moduł kamery Raspberry Pi.

Krok 1: Elektronika robota

Elektronika robota
Elektronika robota

Zacząłem od złożenia zestawu podwozia 2WD MiniQ firmy DFRobot. Wsunąłem koła na wały silnika, następnie włożyłem je do wsporników i przymocowałem do podwozia. Na koniec dodałem metalowe podpory. Teraz nadszedł czas na zbudowanie płyty głównej. Sterownik silnika L293d został przylutowany na miejscu wraz z przewodami biegnącymi do pinów GPIO Raspberry Pi. Następnie przylutowałem złącze do akumulatora, ponieważ zapewni główne zasilanie. Po dodaniu źródła zasilania zainstalowałem regulator 5V.

Krok 2: Konfiguracja Pi

Konfiguracja Pi
Konfiguracja Pi

DFRobot skontaktował się ze mną i wysłał swój moduł kamery Raspberry Pi 3 i Raspberry Pi. Więc po otwarciu pudełek od razu zabrałem się do pracy, konfigurując kartę SD. Najpierw poszedłem na stronę pobierania Raspberry Pi i pobrałem najnowszą wersję Raspbiana. Następnie wyodrębniłem plik i umieściłem go w wygodnym katalogu. Nie możesz po prostu skopiować/wkleić pliku.img na kartę SD, musisz go „wypalić” na karcie. Możesz pobrać narzędzie do nagrywania, takie jak Etcher.io, aby łatwo przenieść obraz systemu operacyjnego. Po tym, jak plik.img znalazł się na mojej karcie SD, włożyłem go do Raspberry Pi i podałem mu zasilanie. Po około 50 sekundach odłączyłem przewód i wyjąłem kartę SD. Następnie włożyłem kartę SD z powrotem do komputera i przeszedłem do katalogu „boot”. Otworzyłem notatnik i zapisałem go jako pusty plik o nazwie "ssh" bez rozszerzenia. Dodałem też plik o nazwie "wpa_supplicant.conf" i umieściłem w nim ten tekst:

sieć={ ssid= psk= }

Następnie zapisałem i wysunąłem kartę, a następnie włożyłem ją z powrotem do Raspberry Pi 3. Powinno to teraz pozwolić na korzystanie z SSH i łączenie się z Wi-Fi.

Krok 3: Przygotowanie aparatu

Przygotowanie aparatu
Przygotowanie aparatu

Domyślnie kamera jest wyłączona na Pi, więc musisz otworzyć typ terminala sudo raspi-config, aby wyświetlić menu. Przejdź do „opcji interfejsu”, a następnie włącz kamerę. Teraz wystarczy wybrać „Zakończ” i włożyć kabel taśmowy modułu kamery do odpowiedniego obszaru Pi.

Krok 4: Instalowanie oprogramowania

Istnieje kilka różnych programów, które mogą przesyłać strumieniowo wideo, takie jak vlc i motion, ale zdecydowałem się użyć mjpeg-streamer ze względu na jego małe opóźnienia i łatwą instalację. Zgodnie z instrukcjami na stronie wykonaj klon git https://github.com/jacksonliam/mjpg-streamer.git w folderze, a następnie wpisz sudo apt-get install cmake libjpeg8-dev, aby zainstalować potrzebne biblioteki. Zmień katalog na pobrany folder, a następnie wpisz make, a następnie sudo make install, aby skompilować oprogramowanie. Na koniec wpisz eksport LD_LIBRARY_PATH=. i aby go uruchomić, wpisz./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Możesz uzyskać dostęp do strumienia, przechodząc do https://:8080/stream.html, aby wyświetlić strumień.

Krok 5: Kontroler

Kontroler
Kontroler
Kontroler
Kontroler

Potem przyszła część, jak kontrolować Raspberry Pi przez Wi-Fi, ponieważ Bluetooth ma zbyt mały zasięg. Zdecydowałem się na wykorzystanie serwera Flask działającego na Raspberry PI oraz modułu ESP8266 ESP12E do przesyłania do niego danych. ESP8266 ma tylko jedno wejście analogowe, co oznacza, że nie mogłem bezpośrednio używać joysticka, ponieważ ma dwa wejścia analogowe. Najlepszą opcją był ADS1115, czyli urządzenie I2C, które odczytuje sygnały analogowe z 16-bitową rozdzielczością. Po prostu podłączyłem SDA do 4 i SCL do 5, wraz z VCC i GND. Oś X joysticka łączy się z A0 w ADS1115, a oś Y łączy się z A1. ALE, przypadkowo wypaliłem ADS1115, więc musiałem uciec się do następnej najlepszej rzeczy: przycisków! Więc teraz moja konfiguracja to tablica deweloperska ESP8266 Sparkfun Thing z 3 przyciskami - do przodu, w prawo i w lewo. Teraz za każdym razem, gdy zostanie naciśnięty, wysyła dane, aby obrócić koła w tym kierunku.

Krok 6: Kod dla robota

Kod dla robota
Kod dla robota

Zrobiłem poprzedni projekt, który wykorzystywał bibliotekę GPIO PWM Pi do sterowania silnikami za pośrednictwem json, więc po prostu zmieniłem kod, aby zamiast tego akceptował dane za pośrednictwem aplikacji Flask. Flask to biblioteka Pythona, która zasadniczo zmienia Twoje Pi w serwer WWW zdolny do wysyłania i odbierania danych. Dzięki zastosowaniu PWM można sterować silnikami z większą precyzją w porównaniu z napędem zbiornikowym. Oznacza to również, że robot może poruszać się z prędkością zmienną, a nie stałą. Moja aplikacja do kolby jest skonfigurowana do zmiany PWM silników po otrzymaniu danych z żądania GET przez http z ESP12e. Wykorzystuje również bibliotekę subprocess. Popen do uruchamiania skryptu przesyłania strumieniowego w tle. Załączyłem kod do strony projektu, więc wystarczy pobrać.

Krok 7: Kod kontrolera

Kod był dość prosty, po prostu weź odczyty z 3 pinów, przeprowadź je przez kilka instrukcji if, aby określić kierunek koła, a na koniec wyślij te wartości do Raspberry Pi. Dodatkowa płytka ESP8266 dla Arduino IDE jest dostarczana z biblioteką HTTPClient, która obsługuje nagłówki i wysyłanie danych. Serwer Flask musi odebrać dane przez wywołanie POST, więc kod rozpoczyna połączenie z serwerem Raspberry Pi, następnie dodaje do danych nagłówek oznaczający, że są zakodowane w formacie JSON, a na końcu wysyła dane w postaci obiektu JSON. Dodałem opóźnienie 40 ms, aby zapobiec przeciążeniu Raspberry Pi danymi.

Krok 8: Uruchamianie Raspberry Spy

Uruchamianie Raspberry Spy
Uruchamianie Raspberry Spy
Uruchamianie Raspberry Spy
Uruchamianie Raspberry Spy

Wystarczy wpisać sudo python.py ! Powinieneś zobaczyć zapaloną kamerę, a przechodząc na adres internetowy pi z portem 8080 strumień powinien być widoczny. Teraz możesz używać kontrolera w dowolnym miejscu w domu i mieć również podgląd na żywo.

Zalecana: