Skocz do zawartości

Kurs Raspberry Pi - #10 - kamera, zdjęcia, transmisja obrazu


Pomocna odpowiedź

Cześć,

jestem osobą początkującą jeśli chodzi o temat RPi, więc i pytanie będzie z "niższej półki". Chodzi o punkt odnośnie uruchamiania transmisji w tle. Wykorzystałem wariant I, czyli włączyłem opcję daemon. I od tego momentu zaczęły mi się pojawiać w głowie pytania 🙂

1. Uruchomienie usługi: sudo systemctl start motion.service -> czy dobrze zrozumiałem, że dzięki temu poleceniu będę mieć możliwość korzystania z transmisji w tle? Nie wystarczy to, że włączyłem opcję daemon w konfiguracji programu? 

2. Kwestia wyłączenie transmisji w tle. Do włączenia transmisji w tle użyłem najpierw polecenia sudo systemctl start motion.service, a następnie sudo motion w celu włączenia programu. Sprawdziłem w przeglądarce, czy wszystko działa poprawnie - działało. No i teraz nasunęło mi się pytanie, jak wyłączyć transmisję w tle. Użyłem sudo systemctl stop motion.service. W htop proces motion zniknął. Tylko... rozumiem, że przez to wyłączyłem usługę transmisji w tle i przy chęci ponownego korzystania z tej usługi muszę ją włączyć. Czy jest jakaś opcja, żeby nie wyłączać całej usługi, tylko sam proces?

Mam nadzieję że pytania napisałem w sposób zrozumiały 🙂

 

Link do komentarza
Share on other sites

46 minut temu, bartek92 napisał:

Czy jest jakaś opcja, żeby nie wyłączać całej usługi, tylko sam proces?

Czekaj. Załóżmy że prowadzisz Salon Usług Szewskich. Czy jest możliwe, że salon będzie czynny ale nie będzie szewca?

48 minut temu, bartek92 napisał:

użyłem najpierw polecenia sudo systemctl start motion.service, a następnie sudo motion w celu włączenia programu

Coś jest nie tak - systemctl powinien sam wiedzieć że trzeba włączyć motion, od tego w końcu jest. A jeśli nie włącza to znaczy że coś jest nie tak.

Co się stanie, jeśli wydasz polecenie startu, nie będziesz ręcznie uruchamiał motion i zapytasz:

systemctl status motion.service

 

Link do komentarza
Share on other sites

Dnia 24.12.2020 o 15:43, ethanak napisał:

Czekaj. Załóżmy że prowadzisz Salon Usług Szewskich. Czy jest możliwe, że salon będzie czynny ale nie będzie szewca?

Coś jest nie tak - systemctl powinien sam wiedzieć że trzeba włączyć motion, od tego w końcu jest. A jeśli nie włącza to znaczy że coś jest nie tak.

Co się stanie, jeśli wydasz polecenie startu, nie będziesz ręcznie uruchamiał motion i zapytasz:

systemctl status motion.service

 

Uruchomiłem polecenie systemctl status motion.service zaraz po starcie RPi. Wyświetla się informacja, że usługa jest aktywna. Nie włączyłem aplikacji Motion ręcznie, więc nadal nie ma jej w procesach w htop. Skoro nie ma procesu, to streaming również nie działa w przeglądarce. 

W moim pytaniu chodziło mi przede wszystkim o to, żeby znaleźć różnicę między usługą a procesem. W jakim celu się włącza lub wyłącza usługę, skoro poprzez polecenie sudo motion i opcję daemon mogę używać transmisji w tle? Przecież przy wyłączonej usłudze (status inactive) również mogę włączyć Motion (przez sudo motion) i korzystać z transmisji w tle.

Link do komentarza
Share on other sites

1 minutę temu, bartek92 napisał:

Uruchomiłem polecenie systemctl status motion.service zaraz po starcie RPi. Wyświetla się informacja, że usługa jest aktywna. Nie włączyłem aplikacji Motion ręcznie, więc nadal nie ma jej w procesach w htop

To coś masz pokiełbaszone. Proces jest częścią usługi, więc usługa nie może być aktywna bez działającego procesu.

A po to się włącza usługę, żeby proces uruchomić samoczynnie z odpowiednimi parametrami np. przy starcie systemu (o ile to konieczne) i móc zapanować nad owym procesem.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

22 godziny temu, ethanak napisał:

To coś masz pokiełbaszone. Proces jest częścią usługi, więc usługa nie może być aktywna bez działającego procesu.

A po to się włącza usługę, żeby proces uruchomić samoczynnie z odpowiednimi parametrami np. przy starcie systemu (o ile to konieczne) i móc zapanować nad owym procesem.

W takim razie chyba pozostaje mi zainstalowanie Motion jeszcze raz, jeśli będzie to potrzebne w dalszej części kursu. Dziękuję za odpowiedzi.

Link do komentarza
Share on other sites

Cytat

1

sudo apt install motion

Domyślnie instalowana wersja pakietu Motion nie ma wbudowanego wsparcia dla naszej kamery, więc musimy teraz zainstalować odpowiedni sterownik: Video4Linux (V4L). W tym celu, wydajemy poniższe polecenie, zwracając uwagę, że przedostatnim znakiem jest mała litera "L", a nie cyfra "1":

Shell

1

sudo modprobe bcm2835-v4l2

Teraz w katalogu /dev pojawi się nowe urządzenie, które będzie odpowiadało kamerce: /dev/video0.

nie pojawił mi się w katalogu /dev  folder video0

czy mam go sam stworzyć?

Link do komentarza
Share on other sites

@Treker tak pierwsze, zrobiłem reboot i nic. Kamerka robi zdjecia, zapisuje normalnie.

ale mam inny problem, z wykrywanie ruchu. Transmisja działa normalnie ale jak wł locate_motion_mode on to strona na której się ma to wyświetlać ciągle się ładuje i nic nie pokazuje. Nawet jak wył. to dalej nic nie pokazuje. Dopiero po reboocie zaczyna działać (oczywiscie z ustawienie bez wykrywania) co jeszcze przy reboocie wyskakuje mi takie coś. Zwróć uwage na ostatnią linijkę kodu.

IMG_20210128_145528.thumb.jpg.595b322a55d7afdb5c9f41b72bf2d548.jpg

 

edit:
rozwiązałem problem. Po prostu po ustawianiu locate_motion_mode on nie będzię on działał od razu jak w przypadku innych edycji pliku motion.conf  trzeba zrebootować i zacznie działać. Niestety folderu dalej nie ma

Edytowano przez grinone64
rozwiązałem problem
  • Lubię! 1
Link do komentarza
Share on other sites

tak jak kolega wyżej napisał. Jest to do ustawienia w pliku konfiguracyjnym pozycja "rotate" musisz tam przypisać wartość obrotu obrazu w stopniach. W twoim przypadku 180. Jest jeden szczegół jeżeli mienisz ustawienia w pliku motion.conf to odwrócisz obraz we wszystkich kamerach obsługiwanych w Motion.

  • Lubię! 1
Link do komentarza
Share on other sites

(edytowany)

@Treker Już się zorientowałem w czym rzecz. Obecnie z tego co zrozumiałem po pobieżnym przeglądzie internetu, istnieje taka możliwość, że system automatycznie wykrywa dedykowane kamery RPi. Nie jest zatem dłużej potrzebna opcja jej włączania w interfejsie. Ponadto jeśli ktoś jeszcze wciąż korzysta z tego kursu: NIE DZIAŁAJĄ już(przynajmniej domyślnie) KOMENDY RASPISTILL. Zastąpiły je rpicam-apps. Dokumentacje można znaleźć na stronach RPi pod nazwą libcamera lub rpicam-apps. Natomiast polecam po prostu wpisać w terminal rpi jedną z komend np. rpicam-still --help (do zdjęć) lub rpicam-vid --help (do wideo) i wyświetlą się możliwe komendy do użycia. Jeśli chodzi o obrót obrazu kamery o 90 stopni to nie znalazłem takiej opcji, natomiast f-cja --rotation 180 (zamiast -rot 180), pozwala obrócić obraz o 180, ale nie pozwala o 90 stopni. Tyle się na razie dowiedziałem. Pozdrawiam

Edytowano przez Tymoteus
  • Lubię! 2
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.