Skocz do zawartości

Robot na Raspberry Pi z kamerą sterowany przez sieć


Programista3

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
Link do komentarza
Share on other sites

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

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 🙂

Link do komentarza
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ę »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.