Skocz do zawartości
Programista3

Robot na Raspberry Pi z kamerą sterowany przez sieć

Pomocna odpowiedź

Chciałbym przedstawić swój kolejny projekt. Jest nim 4-kołowy robot oparty na Raspberry Pi. Robot posiada kamerę i ultradźwiękowy czujnik odległości oraz jest zasilany z powerbanka. Jako wygodną metodę sterowania robotem wybrałem sterowanie przez przeglądarkę www. Raspberry Pi łączy się z wifi i każde urządzenie w tej sieci może sterować robotem.

Konstrukcja

Podstawowe części z których składa się robot to:

Raspberry Pi oraz powerbank umieszczone są na zrobionych własnoręcznie kartonowych podstawkach przykręconych do podwozia. Kamera również umieszczona jest na kartonowej konstrukcji.

IMG_20190119_154535.thumb.jpg.a201a4d3fba9572524836f61bc37b24b.jpg

Robot zasilany jest z dwóch gniazd USB (jedno dla Raspberry Pi, drugie dla pozostałej elektroniki). Powerbank 12500mAh jest w stanie zapewnić kilka godzin pracy robota na jednym ładowaniu.

IMG_20190119_154607.thumb.jpg.f0c9efba6cf1ad961a53ad5e1bb5aefd.jpg

Kamera oraz czujnik odległości umieszczony jest na przodzie robota.

IMG_20190119_154039.thumb.jpg.c935c838c7485d0e2e44f263aec04a66.jpg

Sterowanie przez przeglądarkę www

Sterowanie robotem odbywa się poprzez Node.js. Obraz z kamery streamowany jest za pomocą modułu raspivid-stream z wykorzystaniem WebSocketów na porcie 3000. Pozostała komunikacja odbywa się za pomocą socket.io na porcie 80. Serwer kontroluje klientów w taki sposób, że w danym momencie tylko jeden z nich może sterować robotem (według kolejności połączenia z serwerem). Pozostali klienci mogą tylko oglądać obraz transmitowany z kamery. Do sterowania wykorzystywana jest klawiatura (WSAD lub strzałki). Serwer przesyła do klientów również informację o odległości z czujnika ultradźwiękowego co sekundę.

Widok z poziomu operatora:

Nagrywaj_2019_01_19_15_33_49_928.mp4_snapshot_00_20_172.thumb.jpg.930c994b7f9cae1196897190c0e0f243.jpg

Widok z poziomu widza:

Capture_6.mp4_snapshot_00_19_333.thumb.jpg.0f1aad56d45dc22daebb6e274bff608e.jpg

Kod jest dość prosty. Po stronie serwera jest to podstawowe wykorzystanie modułu raspivid-stream i odczytu z czujnika odległości za pomocą modułu pigpio oraz trochę bardziej skomplikowane użycie socket.io do komunikacji i rpi-gpio do odpowiedniego sterowania silnikami. Po stronie klienta jest to głównie komunikacja za pomocą socket.io oraz obsługa zdarzeń klawiatury. Pliku projektu znajdują się w załączniku.

Prezentacja wideo

IMG_20190119_154032.jpg IMG_20190119_154128.jpg IMG_20190119_154556.jpg

RaspberryPi_robot.rar

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Właśnie zaakceptowałem Twój opis, możesz go teraz zgłosić do akcji rabatowej umieszczając link w temacie zbiorczym. Dziękuję za przedstawienie ciekawego projektu, zachęcam do prezentowania kolejnych DIY oraz aktywności na naszym forum 🙂

Udostępnij ten post


Link to post
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »

×