Elektroda.pl
Elektroda.pl
X
Mitronik
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Jak zbudować wideorejestrator oparty o Raspberry Pi

ghost666 29 Lip 2016 19:22 15357 10
  • Jak zbudować wideorejestrator oparty o Raspberry Pi


    Autor konstrukcji chciał skonstruować w oparciu o Raspberry Pi uniwersalny wideorejestrator, który można by umieszczać w różnych miejscach - w domu, ogrodzie, w aucie czy na rowerze. Oprogramowanie musi być proste do obsługi, aby dało się używać tego urządzenia 'od ręki' a dodatkowo na tyle proste, any każdy mógł skonstruować i oprogramować taki system we własnym zakresie.

    Projekt nie jest zbyt wyjątkowy, ale daje sporo zabawy podczas projektowania i pozwala stworzyć bardzo ciekawy rejestrator, pomimo tego, że takie układu są już na rynku i w sumie robienie tego to wymyślanie koła na nowo.

    Wymagania:

    * Prosta i szybka konfiguracja.
    * Oprogramowanie napisane w Pythonie.
    * Możliwość definiowania liczby i czasu trwania filmów, jakie zapisywane mają być w systemie.
    * Minimalizacja hardware.
    * Minimalna ilość lutowania i ogólnej pracy włożonej w montaż układu.
    * Możliwość przerwania nagrywania i zamknięcie systemu w RPi w dowolnym momencie.
    * Dołączanie trójnogu.
    * Szybki podgląd nagranych filmów na PV.

    W system wbudować można oczywiście dużo innych funkcji, jednakże jednym z założeń projektu jest prostota. Dlatego też w poniższym projekcie nie zobaczycie Wi-Fi, Bluetooth czy kontroli poprzez sieć web.

    Tak prezentuje się gotowe urządzenie:

    Jak zbudować wideorejestrator oparty o Raspberry Pi


    Hardware

    W projekcie wykorzystano następujące elementy:

    * Raspberry Pi (Model B).
    * Standardowa obudowa od Cyntech.
    * Karta SD o pojemności 8 GB firmy SanDisk.
    * Dysk Flash o pojemności 32 GB firmy Kingston.
    * Wykonany w technologii druku 3D uchwyt na trójnóg.
    * Powerbank RAVPower RP-PB13 o pojemności 14000mAh do zasilania układu.
    * Moduł BerryClip lub inny moduł z diodą LED i przyciskiem.

    Jako że układ potrzebuje jednego przycisku i jednej diody LED do ich kontroli autor wykorzystał moduł BerryClip, dołączany do 'Maliny'. To najprostszy sposób na podłączenie przycisku i diody do modułu, bez dodatkowych kabelków, jednakże do systemu można podłączyć dowolny przełącznik i diodę LED, nie zapominając o dodaniu odpowiednich opornikow. W tym celu wykorzystywane są piny GPIO. Aby zmieścić wszystkie elementy w obudowie i wyprowadzić na zewnątrz LEDa, przycisk i buzzer wywiercić w obudowie trzeba odpowiednie przyciski. Dodatkowo w obudowie wykonać też trzeba otwór na obiektyw kamery.





    Wszystkie elementy zostały zamocowane wewnątrz obudowy z pomocą kleju. Dodatkowo wewnątrz obudowy zamocowany metalową podkładkę wokół obiektywu, co umożliwiło przyłączanie magnetycznych obiektywów, jakie często dostępne są w handlu i sprzedawane są z myślą o telefonach komórkowych.

    Trójnóg

    Wykorzystana obudowa Cyntech ma wiele zalet - jest niedroga, łatwa do modyfikacja i ma ładne logo Raspberry Pi. Niestety nie da się do niej przyczepić trójnogu. Dlatego też autor projektu wykorzystał wydrukowany na drukarce 3D specjalny element, który pozwala na zamocowanie metalowej nakrętki w którą wkręca się standardowo trójnóg fotograficzny. Ta prosta modyfikacja pozwala na ustawienie wideorejestratora w dowolnym miejscu, bez potrzeby np. opierania go o coś. Umożliwia też wiele innych sposibów montażu.

    Jak zbudować wideorejestrator oparty o Raspberry Pi Jak zbudować wideorejestrator oparty o Raspberry Pi Jak zbudować wideorejestrator oparty o Raspberry Pi
    Jak zbudować wideorejestrator oparty o Raspberry Pi Jak zbudować wideorejestrator oparty o Raspberry Pi Jak zbudować wideorejestrator oparty o Raspberry Pi


    Działanie

    Gdy Raspberry Pi zostaje uruchomione uruchamia się zadanie crona, wyszukujące połączenia sieciowego. Jeśli takowego nie znajdzie, uruchamiany jest podstawowy skrypt, napisany w Pythonie. System działa w ten sposób, ponieważ autor zdecydował się na przesyłanie filmów po sieci, więc nie chce aby rejestrator cokolwiek nagrywał podczas zgrywania już nagranych materiałów.

    Główny skrypt systemu po uruchomieniu odczytuje plik konfiguracyjny i rozpoczyna nagrywanie filmu. Po dojściu do ustalonego czasu zamyka on film, zapisuje go - na karcie SD lub dysku USB - i rozpoczyna nagrywanie nowego. Gdy liczba nagranych i zapisanych filmów dojdzie do maksymalnej określonej liczby plików to najstarszy z nich jest kasowany, a urządzenie kontynuuje swoje działanie dalej.

    Plik konfiguracyjny zawiera ustawienia kamery - liczba klatek, rozdzielczość - a także czas trwania filmów i ich maksymalną liczbę na dysku.

    Po zakończeniu korzystania z urządzenia wystarczy nacisnąć i przytrzymać przycisk. Spowoduje to wyłączenie systemu, po którym bezpiecznie odpiąć można zasilanie od układu. W domu układ zasilany może być z zasilacza wtyczkowego. Poza domem - w aucie lub na rowerze - autor korzysta z powerbanku, ale możliwe są i inne sposoby zasilania naszego rejestratora, np. z zasilacza samochodowego do gniazda zapalniczek.

    Montaż w samochodzie

    Poz zamontowaniu kamery w samochodzie, z wykorzystaniem zakupionego na eBay uchwytu, rejestrator może bez problemu pracować w aucie i nagrywać naszą trasę.

    Jak zbudować wideorejestrator oparty o Raspberry Pi


    Aby zestawić podobny system potrzebujemy:

    * Raspberry Pi
    * Kartę SD z Raspbianem
    * Moduł z kamerą
    * Zasilacz 5 V
    * Diodę LED podpiętą do GPIO4 poprzez opornik
    * Przełącznik podpięty do GPIO7 z 10 kΩ opornikiem do masy.

    Dodatkowo przyda się pendrive o pojemności co najmniej 8 GB.

    Oprogramowanie

    Kod programu rejestratora pobrać można z repozytorium. Składa się on z następujących plików:

    * config.py
    * cron.py
    * instructions.txt
    * prepare_mp4.bat
    * prepare_mp4.sh
    * vcu.py
    * config.py


    Config.py zawiera w sobie zdefiniowane przez użytkownika ustawienia, jakie wykorzystywane są przez skrypt vcu.py, pozwala użytkownikowi na ich dostosowanie. Jeśli plik “/boot/vcu_config.py” istnieje to ten plik go zastąpi. Plik ten bez problemu edytować można spod Linuxa jak i Windowsa.

    Cron.py to skrypt, który uruchamiany jest wraz ze startem Raspberry Pi. Sprawdza on dostępność połączenia sieciowego i uruchamia vcu.py, jeśli takowego nie znajdzie. Pozwala to na uruchomienie i podłączenie do sieci rejestratora, aby zgrać pliki.

    Plik instructions.txt zawiera w sobie instrukcje do programu.

    Prepare_mp4.bat to skrypt, który pozwala na konwersję plików h264 na pliki MP4 pod Windowsem, wykorzystuje w tym celu MP4Box. Z kolei skrypt prepare_mp4.sh umożliwia realizację tego samego zadania pod Linuxem, w tym na samym Raspberry Pi.

    Vcu.py to główny skrypt urządzenia, który realizuje opisane powyżej zadania. To on jest uruchamiany przez cron.py po uruchomieniu się systemu na Raspberry Pi.

    Instalacja

    Po zainstalowaniu i aktualizacji systemu na naszej 'Malinie' możemy przystąpić do przygotowania miejsca dla działania rejestratora. W pierwszej kolejności tworzymy folder dla skryptów:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    A następnie pobieramy skrypty z sieci i je rozpakowujemy w tym folderze:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    możemy teraz usunąć spakowany plik:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Skrypt wykorzystuje moduł Picamera, który domyślnie zainstalowany jest w Raspbianie, więc jedyne co musimy doinstalować to MP4Box do konwersji plików na wygodniejsze w użyciu pliki MP4:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Aby zapisywać pliki automatycznie na dysku USB musimy automatycznie go montować po uruchomieniu się systemu. Jak to opisać napisano tutaj. Jeśli chcemy zapisywać pliki na karcie SD utwórzmy katalog:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    I pełną ścieżkę do niego (‘/home/pi/rpispy_vcu/videos/’) podajmy w config.py jako zmienną VIDEO_PATH

    Teraz musimy skonfigurować automatyczne uruchamianie naszego skryptu cron.py. korzystamy z komendy:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Na końcu edytowalnego pliku, jaki zobaczymy, dopisujemy:

    Code:
    @reboot python /home/pi/rpispy_vcu/cron.py &


    Zapisujemy zmiany naciskając CTRL-X, a następnie potwierdzając Y i enterem.

    Pierwsze uruchomienie

    Po odłączeniu kabla sieciowego i zasilania uruchamiamy ponownie Raspberry Pi. Po załadowaniu systemu układ powinien wydać jeden dźwięk z pomocą buzzera i już - gotowe - nasza kamera nagrywa. Aby zatrzymać nagrywanie wystarczy teraz wcisnąć przycisk i przytrzymać go aż usłyszymy dwa piknięcia z buzzera. To znaczy, że system się wyłącza - odczekajmy około 10 sekund, zanim odłączymy go od zasilania.



    Konwertowanie plików bezpośrednio na Raspberry Pi

    Aby skonwertować nagrane pliki do MP4 wykorzystujemy skrypt prepare_mp4.sh. Po podłączeniu 'Maliny' do sieci i podpięciu zasilania logujemy się do systemu i uruchamiamy terminal, gdzie uruchamiamy skrypt wpisując:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Przekonwertuje on wszystkie nagrane pliki do formatu MP4. Może to chwilę zająć, zależnie od objętości plików. Jako że skrypt nie kasuje nagranych plików h264 trzeba zapewnić wolne miejsce na dysku na filmy w obu formatach. Po konwersji można filmy przesłać z pomocą SSH lub FTP w dowolne miejsce.

    Konwertowanie plików na komputerze PC z Windowsem

    Jeśli zapisujemy pliki na dysku USB możemy go bez problemu wypiąć z urządzenia po skończeniu nagrywania i podłączyć do komputera PC. Wtedy uruchamiamy tylko skrypt prepare_mp4.bat, który skonwertuje filmy do plików MP4. Aby móc korzystać z tego skryptu musimy:

    * Zainstalować MP4Box ze strony http://gpac.wp.mines-telecom.fr/downloads/gpac-nightly-builds/..
    * Utworzyć folder D:\temp, gdzie zapisane będą pliki po konwersji.
    * Włożyć pendrive do komputera.
    * Uruchomić skrypt.

    Źródła: http://www.raspberrypi-spy.co.uk/2014/11/how-to-create-a-raspberry-pi-video-capture-unit-part-1/
    http://www.raspberrypi-spy.co.uk/2014/11/how-to-create-a-raspberry-pi-video-capture-unit-part-2/
    http://www.raspberrypi-spy.co.uk/2014/11/how-to-create-a-raspberry-pi-video-capture-unit-part-3/


    Fajne! Ranking DIY
  • Mitronik
  • #2 29 Lip 2016 20:47
    ka_3
    Poziom 16  

    Bardzo ciekawy projekt. Pytanie z ciekawości, pracujesz w Anglii?

  • #3 29 Lip 2016 21:33
    ghost666
    Tłumacz Redaktor

    ka_3 napisał:
    Bardzo ciekawy projekt. Pytanie z ciekawości, pracujesz w Anglii?


    Autor tego projektu chyba właśnie tam pracuje :)

  • #4 29 Lip 2016 21:39
    Samuraj
    Poziom 35  

    W Hardware brakuje opisu jaką zastosowano kamerę.

  • Mitronik
  • #5 29 Lip 2016 21:50
    ghost666
    Tłumacz Redaktor

    Samuraj napisał:
    W Hardware brakuje opisu jaką zastosowano kamerę.


    Myślałem, że to oczywiste, przepraszam - natywną kamerę Raspberry Pi

  • #6 02 Sie 2016 16:04
    trsr
    Poziom 16  

    Projekt sam z siebie bardzo ciekawy i chyba oszczędzi mi czasu oraz eksperymentów :)

    Mam jeszcze pytania co do dokładnej wersji hardware'u bo nie widzę tego na zdjęciach:
    1) Raspberry Pi (1? 2? 3?)
    2) Kamerki RPI (wiem, że dedykowana, tylko czy v1 czy v2?)

  • #7 04 Sie 2016 08:45
    Szyszkownik Kilkujadek
    Poziom 33  
  • #8 08 Sie 2016 09:09
    pawol
    Poziom 22  

    Przerost formy. Koszty niewspółmierne do jakości filmów. Gotowa chińska kamera samochodowa za 200 pln o nazwie G1-WC na łeb bije to rozwiązanie jakościowo

  • #9 08 Sie 2016 10:29
    Szyszkownik Kilkujadek
    Poziom 33  

    Potwierdzam, mam G1-WH i całkiem nieźle się sprawdza jak na taką cenę. Ja mam z nim tylko jeden problem. Jak go zamontować na stałe, żeby nie kusił złodzieja?

  • #10 09 Sie 2016 19:04
    Samuraj
    Poziom 35  

    Może nie dla każdego to istotne lecz budując system na Respberry możemy ingerować w obraz nakładając na niego niejako drugą warstwę OSD np. prędkość pobraną z komputera pokładowego. Kupując urządzenie z pudełka nie mamy takich możliwości.

  • #11 10 Sie 2016 10:44
    komatssu
    Poziom 29  

    Są też przecież fabryczne kamerki samochodowe z GPS-em, które nanoszą na nagranie aktualną pozycję i prędkość pojazdu, a także dokładny czas.