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 🙂

 

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

 

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.

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.

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.

  • 1 miesiąc później...
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ć?

@grinone64 nie, nie - nie ma potrzeby tworzenia niczego samodzielnie. To Twoje pierwsze uruchomienie kamery? Czy polecenie zwróciło jakiś błąd lub komunikat?

(edytowany)

@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
  • 4 tygodnie później...
  • 3 miesiące później...

Poszukaj w pliku /etc/motion/motion.conf

tak możesz go otworzyć:

sudo nano /etc/motion/motion.conf

 

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
  • 2 lat(a) później...
(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

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