Spisu treści:

Kamera cofania do elektrycznego wózka inwalidzkiego: 10 kroków (ze zdjęciami)
Kamera cofania do elektrycznego wózka inwalidzkiego: 10 kroków (ze zdjęciami)

Wideo: Kamera cofania do elektrycznego wózka inwalidzkiego: 10 kroków (ze zdjęciami)

Wideo: Kamera cofania do elektrycznego wózka inwalidzkiego: 10 kroków (ze zdjęciami)
Wideo: Nowość! Skuter elektryczny 3-kołowy Trio Electroride - kamera cofania - prezentacja #salon2kolka 2024, Listopad
Anonim
Image
Image
Potrzebne części
Potrzebne części

Mój brat korzysta z elektrycznego wózka inwalidzkiego Invacare TDX, którym łatwo manewrować we wszystkich kierunkach, ale ze względu na ograniczoną widoczność do tyłu trudno jest jechać tyłem w ograniczonej przestrzeni. Celem projektu jest zbudowanie kamery cofania wykorzystującej transmisję IP do telefonu komórkowego, która jest zamontowana blisko joysticka sterującego.

Potrzebne komponenty:

  • zasilanie i dystrybucja za pomocą wózków inwalidzkich
  • kamera cofania i streamer wideo
  • uchwyt na telefon komórkowy do konsoli sterującej.

Zasilanie zapewnia sam wózek inwalidzki, który wykorzystuje akumulatory ołowiowe 24 V. Port ładowania jest niewłaściwie używany do podłączenia konwertera zasilania do USB, który zasila Raspberry odpowiedzialne za przesyłanie strumieniowe, a także w razie potrzeby zasila telefon komórkowy.

Streaming jest realizowany przez Raspberry Pi Zero W, który służy jako bezprzewodowy punkt dostępowy i przesyła wideo do dowolnego urządzenia podłączonego do sieci bezprzewodowej.

Telefon komórkowy do wyświetlania obrazu jest montowany z wydrukowanym w 3D adapterem do jednostki sterującej wózka inwalidzkiego.

Aby śledzić ten projekt, będziesz potrzebować podstawowej wiedzy o Debianie/Linuksie, ponieważ konfiguracja wymaga trochę pracy ręcznej. Nie jest to jednak zbyt trudne, więc spróbuj - jeśli nie masz pewności, istnieją setki samouczków na temat Linuksa, które mogą ci pomóc.

Krok 1: Potrzebne części

Raspberry Pi Zero W: Główny komponent do strumieniowego przesyłania wideo

Obiektywy szerokokątne SainSmart Fish-Eye dla Raspberry Pi: kamera szerokokątna kompatybilna z Arduino (170° FOV)

2 × Plastikowe obudowy: jedna mniejsza obudowa dla maliny i kamery, jedna większa obudowa do dystrybucji zasilania

Wtyczka XLR: do podłączenia do portu ładowania wózka inwalidzkiego

Samochodowy port USB (np. TurnRaise 12-24V 3.1A): Konwerter 24V na USB w małej obudowie do użytku samochodowego i motocyklowego. Może to być wszystko, co korzysta z wejścia 24 V i zapewnia wyjście USB.

Różne kable:

  • Kabel zasilający do prowadzenia z portu XLR do tyłu wózka inwalidzkiego,
  • Kabel USB do zasilania Raspberry

Drukowany w 3D adapter do telefonu Drukowany w 3D adapter do jednostki sterującej wózka inwalidzkiego, który służy jako podstawa do standardowego samochodowego uchwytu na telefon komórkowy:

Samochodowy uchwyt na telefon komórkowy: uchwyt na telefon komórkowy, który można przymocować do płaskiej powierzchni (np. uchwyt na telefon w desce rozdzielczej). Użyłem jednego z Hama, niemieckiego producenta.

Krok 2: Konfiguracja kamery Raspberry

Konfiguracja kamery Raspberry
Konfiguracja kamery Raspberry

Zainstaluj Raspbian z https://www.raspberrypi.org/downloads/raspbian/ postępując zgodnie z instrukcjami z

Zainstaluj wszystkie aktualizacje, uruchamiając następujące dwa polecenia z terminala:

aktualizacja sudo apt-get

sudo apt-get dist-upgrade

Wyłącz, podłącz kamerę. Ponownie uruchom malinę.

W panelu Raspberry Setup włącz kamerę i włącz dostęp SSH do maliny. Kamera sainsmart działa jako oficjalna kamera Pi, możesz postępować zgodnie z instrukcjami znajdującymi się tutaj: https://www.raspberrypi.org/learning/addons-guide… Niestety jeszcze nie skończyłeś. Potrzebujemy sterownika v4l dla raspi-cam, który nie jest włączony po wyjęciu z pudełka. Najpierw powinieneś zaktualizować oprogramowanie układowe swojej maliny, aby uzyskać najnowsze oprogramowanie układowe i sterownik jądra - uruchom następujące polecenie w terminalu:

sudo raspi-aktualizacja

Musisz teraz załadować sterownik jądra v4l, wpisując w terminalu:

sudo modprobe bcm2835-v4l2

Jeśli to zadziałało bez komunikatów o błędach, powinieneś mieć teraz urządzenie /dev/video0, sprawdź za pomocą

ls - l /dev/vid*

Jeśli to zadziałało, dodaj bcm2835-v4l2 do /etc/modules, aby włączyć moduł przy każdym uruchomieniu.

Możesz sprawdzić, czy kamera działa za pomocą polecenia:

raspistill -o cam.jpg

Krok 3: Zainstaluj V4l2rtspserver

Zainstaluj serwer V4l2rtsp
Zainstaluj serwer V4l2rtsp

Najpierw musisz zainstalować cmake, ponieważ sami skompilujemy program do strumieniowego przesyłania wideo:

sudo apt-get install cmake

Do przesyłania strumieniowego używamy v4l2rtspserver, ponieważ w naszych próbach wykazał najmniejsze opóźnienie. Możesz pobrać kod z

Zainstaluj go za pomocą:

klon git

cd h264v4l2rtspserver

cmake.

zainstaluj

Wszystko powinno zakończyć się bez błędów i możesz to teraz przetestować, uruchamiając serwer strumieniowy z terminala:

v4l2rtspserver -W 352 -H 288 -F 10 /dev/video0

Połącz się z VLC na komputerze w tej samej sieci z raspberry: rtsp://:8554/unicast, aby sprawdzić, czy transmisja działa.

Utwórz skrypt o nazwie launcher.sh w swoim katalogu domowym za pomocą ulubionego edytora (którym powinien być vi):

!#/bin/bashsleep 20 v4l2rtspserver -W 352 -H 288 -F 10 /dev/video0

Polecenie uśpienia jest potrzebne, aby sterownik wideo był gotowy. Prawdopodobnie można go ustawić na mniej niż 20 sekund….

Dodaj ten skrypt do swojego crontab za pomocą "crontab -e" i dodając:

@reboot sh /home/pi/bbt/launcher.sh >/home/pi/logs/cronlog 2>&1

Powinno to automatycznie uruchamiać transmisję strumieniową przy każdym starcie.

Alternatywy dla przesyłania strumieniowego:

Istnieje kilka alternatyw do przesyłania strumieniowego wideo, próbowałem ruchu i vlc. Motion to narzędzie kamery internetowej, które wykrywa ruch, więc wykonuje dodatkową analizę obrazu na obrazach i prawdopodobnie jest nieco wolniejsze niż zwykłe przesyłanie strumieniowe.

VLC działa po wyjęciu z pudełka bez żadnych dodatkowych kompilacji:

cvlc v4l2:///dev/video0 --v4l2-width 320 --v4l2-height 200 --v4l2-chroma h264 --sout '#standard{access=http, mux=ts, dst=0.0.0.0:12345} '

To polecenie przesyła strumieniowo wideo zakodowane w h264 przez http na porcie 12345. W naszej konfiguracji testowej opóźnienie wynosi około 2 sekund.

Krok 4: Skonfiguruj Raspberry jako punkt dostępu WiFi: część 1 - Hostapd

Skonfiguruj Raspberry jako punkt dostępu WiFi: część 1 - Hostapd
Skonfiguruj Raspberry jako punkt dostępu WiFi: część 1 - Hostapd

Ten krok ustawia Raspberry jako punkt dostępowy. Po tym nie jesteś już połączony z siecią, ale Raspberry otwiera własną sieć Wi-Fi. W razie pomyłek musisz mieć dostęp do Raspberry z klawiaturą i wyświetlaczem, więc zrób to zanim zakopiesz malinę gdzieś w obudowie…

Postępuję zgodnie z metodą opisaną tutaj:

Zainstaluj hostapd i dnsmasq:

sudo apt-get zainstaluj dnsmasq hostapd

Wyłącz dhcp na interfejsie wlan0, dodając następujący wiersz do /etc/dhcpd.conf (najlepiej u góry)

denyinterfaces wlan0

Skonfiguruj statyczny adres IP dla interfejsu wlan0, edytując /etc/network/interfaces tak, aby zawierał następujące elementy:

allow-hotplug wlan0 iface wlan0 inet adres statyczny 172.24.1.1 maska sieci 255.255.255.0 sieć 172.24.1.0 rozgłaszanie 172.24.1.255

Uruchom ponownie demona dhcp za pomocą usługi sudo dhcpcd restart, a następnie ponownie załaduj konfigurację wlan0 za pomocą

sudo ifdown wlan0; sudo ifup wlan0

Zapisz załączony plik hostapd.conf w /etc/hostapd/hostapd.conf (po sprawdzeniu zawartości i dostosowaniu do własnych upodobań - powinieneś przynajmniej zmienić SSID i hasło na coś bardziej bezpiecznego).

Możesz teraz sprawdzić, czy to działa, uruchamiając:

sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf

Powinieneś być w stanie połączyć się z nową siecią, ale nie otrzymasz jeszcze adresu IP. Zatrzymaj hostapd, naciskając CTRL-C. Włącz automatyczne uruchamianie hostapd, edytując /etc/default/hostapd i dodając lokalizację pliku konfiguracyjnego, zmieniając odpowiednią linię na

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Krok 5: Skonfiguruj Raspberry jako punkt dostępu WiFi: część 2 - Dnsmasq

Skonfiguruj Raspberry jako punkt dostępu WiFi: część 2 - Dnsmasq
Skonfiguruj Raspberry jako punkt dostępu WiFi: część 2 - Dnsmasq

Przenieś dostarczoną konfigurację dnsmasq do pliku kopii zapasowej (ponieważ zawiera wiele komentarzy, nadal możesz jej użyć w celach informacyjnych):

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

Następnie utwórz nowy /etc/dnsmasq.conf z następującą zawartością:

server=8.8.8.8 # Prześlij żądania DNS do domeny DNS Google-needed # Nie przesyłaj krótkich nazw bogus-priv # Nigdy nie przesyłaj adresów z nieroutowanych przestrzeni adresowych. dhcp-range=172.24.1.150, 172.24.1.150, 12h # Przypisz adresy IP z zakresu od 172.24.1.150 do 172.24.1.150 z 12-godzinnym czasem dzierżawy

Powiązanie usługi dnsmasq z określonym adresem prowadzi do pewnych problemów w naszej instalacji, więc po prostu pozwalamy jej działać na wszystkich interfejsach. Ponieważ raspberry Pi Zero W ma tylko WiFi, nie stanowi to problemu, chyba że podłączysz interfejs USB Ethernet… (w tym przypadku miałbyś również serwer dhcp na tym interfejsie, więc może to zepsuć sieć, z którą łączysz się za pomocą kabla).

Nie musisz wykonywać żadnych dodatkowych kroków, aby uruchomić dnsmasq podczas uruchamiania, uruchamia się automatycznie. Jednak powinieneś przetestować wszystko przed ponownym uruchomieniem, uruchamiając obie usługi ręcznie i sprawdź, czy możesz połączyć się z Wi-Fi i uzyskać adres IP (możesz również powiedzieć swojemu telefonowi komórkowemu, że to Wi-Fi nie ma internetu i że to jest w porządku):

usługa sudo hostapd start usługa sudo dnsmasq start

Krok 6: Sprawdź oprogramowanie

Sprawdź oprogramowanie
Sprawdź oprogramowanie

Teraz, gdy już wszystko skonfigurowałeś, nadszedł czas na krótką kontrolę (zanim wszystko będzie trudniej dostępne). Zrestartuj malinę.

Połącz się z Wi-Fi, jeśli malina z telefonem komórkowym. Połącz klienta strumieniowego przesyłania wideo (np. VLC, który istnieje dla wszystkich systemów operacyjnych) do strumienia maliny, wybierając „Strumień sieciowy” i łącząc się z rtsp://:8554/unicast (jest to adres IP twojego urządzenia, jeśli nie zmień to jest 172.24.1.1).

Powinieneś teraz zobaczyć jakiś obraz na żywo z kamery… (Miałem pewne problemy z VLC dla Androida, ale VLC dla iOS działał bezproblemowo - nie badałem dalej wersji Androida, ponieważ mój brat używa iOS).

Krok 7: Dokonywanie zasilania

Dokonywanie zasilania
Dokonywanie zasilania
Dokonywanie zasilania
Dokonywanie zasilania
Dokonywanie zasilania
Dokonywanie zasilania

Sterowanie invacare wykorzystuje to, co wydaje się być standardem dla wózków z napędem. Złącze to standardowe złącze XLR używane do mikrofonów. Pin 1 jest dodatni, Pin 2 ujemny. Invacare ma dwa dodatkowe piny do komunikacji, ale nie będziemy się z nimi bawić…

Podłącz złącze XLR do zasilacza USB i zmieść wszystko w pudełku. Aby doprowadzić kabel do skrzynki, dobrym pomysłem jest przepust. Upewnij się, że kabel jest wystarczająco długi, aby można go było poprowadzić z modułu sterującego wózka inwalidzkiego do oparcia, gdzie przymocujesz skrzynkę zasilającą. Kable można poprowadzić wzdłuż kabli modułu sterującego, aby nie zaplątały się w części ruchomej.

Krok 8: Budowanie pudełka na kamerę

Budowanie pudełka na kamerę
Budowanie pudełka na kamerę
Budowanie pudełka na kamerę
Budowanie pudełka na kamerę
Budowanie pudełka na kamerę
Budowanie pudełka na kamerę
Budowanie pudełka na kamerę
Budowanie pudełka na kamerę

Zbuduj pudełko pasujące do Raspberry Pi i aparatu. Pudełko wymaga otworu z boku, aby poprowadzić kabel zasilający USB oraz otworu na kamerę, który jest wystarczająco duży, aby nie zasłaniał widoku. Zamontowałem kamerę pod kątem około 45° tak, aby była skierowana w dół, aby móc widzieć tylne koła wózka inwalidzkiego. Użyłem standardowego plastikowego pudełka, w którym wyciąłem kilka otworów, ale można też wydrukować 3D bardziej wymyślną wersję (może do wersji 2)

Krok 9: Zrób uchwyt telefonu

Zrób uchwyt na telefon
Zrób uchwyt na telefon
Zrób uchwyt na telefon
Zrób uchwyt na telefon
Zrób uchwyt na telefon
Zrób uchwyt na telefon

Aby przymocować telefon komórkowy do wózka, wydrukowałem w 3D płytkę adaptera, którą można znaleźć tutaj: https://www.thingiverse.com/thing:2742683 (plik STL jest również załączony). Jest przymocowany do jednostki sterującej wózka inwalidzkiego. Na tej tabliczce możesz przykleić dowolny uchwyt samochodowy, który możesz dostać tanio gdziekolwiek.

Krok 10: Złóż wszystko i wypróbuj

Złóż wszystko i wypróbuj
Złóż wszystko i wypróbuj
Złóż wszystko i wypróbuj
Złóż wszystko i wypróbuj
Złóż wszystko i wypróbuj
Złóż wszystko i wypróbuj

Teraz nadszedł czas, aby wszystko złożyć:

Przymocuj skrzynkę z kamerą gdzieś z tyłu wózka inwalidzkiego, gdzie widok nie jest zasłonięty, a kamera jest skierowana do tyłu. Przymocuj skrzynkę zasilacza gdzieś z tyłu, gdzie nie przeszkadza. Podłącz kabel USB z Raspberry do skrzynki zasilającej. Podłącz skrzynkę zasilającą z wtyczką XLR do portu ładowania w jednostce sterującej wózka inwalidzkiego. Wszystko powinno zacząć się teraz.

Zainstaluj VLC na swoim telefonie komórkowym (jeśli jeszcze tego nie zrobiłeś…) i połącz się z Raspberry przez rtsp://:8554/unicast

Powinieneś teraz zobaczyć obraz z kamery w telefonie komórkowym:-)

Umieść uchwyt na telefon komórkowy na sterowniku wózka inwalidzkiego i przymocuj do niego telefon. I to wszystko, gotowe!

Konkurs Raspberry Pi 2017
Konkurs Raspberry Pi 2017
Konkurs Raspberry Pi 2017
Konkurs Raspberry Pi 2017

II nagroda w konkursie Raspberry Pi 2017

Zalecana: