Skocz do zawartości

Problem z kamerą Raspberry Pi Camera HD v2 8MPx na Raspberry Pi 3B+


wszymulanski

Pomocna odpowiedź

Cześć,

kupiłem w Botland:

1) Raspberry Pi 3B+

oraz:

2) oryginalną kamerkę Raspberry Pi Camera HD v2 8MPx

mając nadzieje, że bezproblemowo uda mi się uruchomić kamerkę na malince, okazało się, że nic bardziej mylnego. Zainstalowałem najnowszego Raspbina, włączyłem kamerkę, a nagrywanie nie działa?!

Zarówno Komenda:

$ raspivid -o -

jak i komenda:

$ raspistill -o -

zwracają te same komunikaty o błędach:

mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn't be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates

Przeczytałem tuzin artykułów próbujących rozwiązać ten problem, ale żaden nie okazał się pomocny.

Na sam początek polecano sprawdzić czy system wykrywa kamerkę:

$ vcgencmd get_camera
supported=1 detected=1

więc wykrywa. Potem polecono zwiększyć pamięć GPU z 128 MB (domyślna) do 256 MB co zrobiłem, poniżej sprawdzenie:

$ vcgencmd get_mem gpu
gpu=256M

ale kamerka wciąż nie działa. W końcu zaktualizowałem system (czyli paczki):

$ uname -a
Linux raspberrypi 4.19.80-v7+ #1274 SMP Mon Oct 21 16:23:10 BST 2019 armv7l GNU/Linux

a potem firmware za pomocą komendy:

# sudo rpi-update

co również nie przyniosło żadnej poprawy.

Dlatego podejrzewam, że:

1) kamerka jest zepsuta, ale to jest nówka kupiona w Botland?

2) taśma łącząca kamerę z RPi jest zepsuta, ale to też nówka z Botland

3) jakiś nieznany proces cały czas korzysta z kamery

W niektórych artykułach pisano, że z kamery może korzystać w danej chwili tylko jeden proces. Zazwyczaj ludzie orientowali się, że mają włączonego jakiegoś demona co korzysta z kamery i po wyłączeniu tego demona, od razu mogli korzystać z kamerki (raspivid & raspistill). Wyświetliłem drzewko procesów pracujących w Raspbianie, ale nie byłem w stanie dostrzec ani jednego procesu, który z nawy wskazywałby, że może korzystać z kamerki. Przypomnę, że to jest świeża instalacja Raspbiana, więc nie instalowałem tam żadnych demonów do kamery.

Poniżej wrzucam listing procesów:

$ pstre -p

systemd(1)-+-alsactl(333)
           |-avahi-daemon(354)---avahi-daemon(388)
           |-bluealsa(721)-+-{bluealsa}(726)
           |               `-{bluealsa}(727)
           |-bluetoothd(711)
           |-cron(336)
           |-dbus-daemon(372)
           |-dhcpcd(400)
           |-hciattach(706)
           |-lightdm(453)-+-Xorg(480)-+-{Xorg}(494)
           |              |           |-{Xorg}(495)
           |              |           |-{Xorg}(496)
           |              |           |-{Xorg}(497)
           |              |           `-{Xorg}(500)
           |              |-lightdm(506)-+-lxsession(528)-+-lxpanel(594)-+-lxterminal(848)-+-bash(858)---sudo(863)---su(868)---bash+
           |              |              |                |              |                 |-bash(883)
           |              |              |                |              |                 |-{lxterminal}(849)
           |              |              |                |              |                 |-{lxterminal}(850)
           |              |              |                |              |                 |-{lxterminal}(851)
           |              |              |                |              |                 |-{lxterminal}(852)
           |              |              |                |              |                 |-{lxterminal}(856)
           |              |              |                |              |                 `-{lxterminal}(857)
           |              |              |                |              |-{lxpanel}(625)
           |              |              |                |              |-{lxpanel}(626)
           |              |              |                |              `-{lxpanel}(801)
           |              |              |                |-lxpolkit(591)-+-{lxpolkit}(606)
           |              |              |                |               `-{lxpolkit}(607)
           |              |              |                |-openbox(586)
           |              |              |                |-pcmanfm(596)-+-{pcmanfm}(622)
           |              |              |                |              `-{pcmanfm}(623)
           |              |              |                |-ssh-agent(561)
           |              |              |                |-{lxsession}(569)
           |              |              |                `-{lxsession}(570)
           |              |              |-{lightdm}(509)
           |              |              `-{lightdm}(510)
           |              |-{lightdm}(466)
           |              `-{lightdm}(469)
           |-login(481)---bash(646)
           |-menu-cached(715)-+-{menu-cached}(717)
           |                  `-{menu-cached}(718)
           |-mount.ntfs(829)
           |-mount.ntfs(843)
           |-polkitd(442)-+-{polkitd}(445)
           |              `-{polkitd}(448)
           |-rngd(346)-+-{rngd}(348)
           |           |-{rngd}(349)
           |           `-{rngd}(350)
           |-rsyslogd(362)-+-{rsyslogd}(404)
           |               |-{rsyslogd}(405)
           |               `-{rsyslogd}(406)
           |-ssh-agent(603)
           |-systemd(514)-+-(sd-pam)(517)
           |              |-dbus-daemon(537)
           |              |-gvfs-afc-volume(735)-+-{gvfs-afc-volume}(736)
           |              |                      |-{gvfs-afc-volume}(737)
           |              |                      `-{gvfs-afc-volume}(739)
           |              |-gvfs-goa-volume(750)-+-{gvfs-goa-volume}(751)
           |              |                      `-{gvfs-goa-volume}(752)
           |              |-gvfs-gphoto2-vo(740)-+-{gvfs-gphoto2-vo}(741)
           |              |                      `-{gvfs-gphoto2-vo}(743)
           |              |-gvfs-mtp-volume(744)-+-{gvfs-mtp-volume}(747)
           |              |                      `-{gvfs-mtp-volume}(749)
           |              |-gvfs-udisks2-vo(731)-+-{gvfs-udisks2-vo}(732)
           |              |                      `-{gvfs-udisks2-vo}(733)
           |              |-gvfsd(571)-+-gvfsd-trash(799)-+-{gvfsd-trash}(803)
           |              |            |                  `-{gvfsd-trash}(804)
           |              |            |-{gvfsd}(572)
           |              |            `-{gvfsd}(573)
           |              |-gvfsd-fuse(576)-+-{gvfsd-fuse}(587)
           |              |                 |-{gvfsd-fuse}(588)
           |              |                 |-{gvfsd-fuse}(589)
           |              |                 |-{gvfsd-fuse}(592)
           |              |                 `-{gvfsd-fuse}(598)
           |              `-gvfsd-metadata(835)-+-{gvfsd-metadata}(837)
           |                                    `-{gvfsd-metadata}(838)
           |-systemd-journal(125)
           |-systemd-logind(326)
           |-systemd-timesyn(288)---{systemd-timesyn}(325)
           |-systemd-udevd(146)
           |-thd(371)
           |-udisksd(343)-+-{udisksd}(407)
           |              |-{udisksd}(435)
           |              |-{udisksd}(482)
           |              `-{udisksd}(492)
           |-wpa_supplicant(377)
           `-wpa_supplicant(455)

Na sam koniec rzuciłem jeszcze okiem w logi kernela szukając informacji dotyczących kamery (szukałem ciągu znaków vid), znalazłem tylko takie wpisy świadczące raczej o tym, że kamera została wykryta:

dmesg | grep -i vid
[    5.213247] videodev: Linux video capture interface: v2.00
...
[    5.213247] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[    5.882880] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[    5.888860] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[    5.889013] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[    5.898020] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[    5.898082] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[    5.899817] bcm2835-v4l2: scene mode selected 0, was 0
[    5.900240] bcm2835-v4l2: V4L2 device registered as video0 - stills mode > 1280x720
[    5.905487] bcm2835-v4l2: Broadcom 2835 MMAL video capture ver 0.0.2 loaded.

Proszę bardziej doświadczonych kolegów o pomoc w uruchomieniu kamerki, bo jedyne co mi teraz przychodzi do głowy to zgłosić reklamacje kamerki do Botland.

Pozdrawiam,
Wojciech

Link do komentarza
Share on other sites

@wszymulanski czasami zdarzają się na forum tematy dotyczące problemów z tą kamerą. W 99% przypadków wina leży w złym podłączeniu (np. odwrotne wpięcie taśmy). Pamiętam dosłownie 1-2 przypadki, gdy faktycznie uszkodzony był moduł kamery. Jeśli masz pewność, że kamera jest podłączona poprawnie (taśma w dobrą stronę) to reklamuj kamerę, bo tam nie ma cudów - musi działać 😉 Możesz ewentualnie zapytać jeszcze sprzedawcę, może serwis coś na to zdalnie zaradzi, ale raczej wątpię, bo to powinno działać bez żadnych dodatkowych zabiegów.

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

(edytowany)

> W 99% przypadków wina leży w złym podłączeniu (np. odwrotne wpięcie taśmy).

Wpinając taśmę zwróciłem uwagę aby kontakty w złączu CSI i na taśmie stykały się, analogicznie podłączona jest taśma do złącza na kamerce - wiadomo kontakt misi być.

Na wszelki wypadek załączam zdjęcie.

 

Problem_kamera_RPi.jpg

Edytowano przez wszymulanski
Link do komentarza
Share on other sites

Dzisiaj udało mi się ostatecznie ustalić gdzie leży problem z kamerą.
Pożyczyłem od kolegi działające RPi, kamerę i taśmę. Sprawdziłem ich działanie w różnych konfiguracjach.
Okazało się, że tylko kamera sprawia problem, reszta elementów działa poprawnie.
Dlatego przyjrzałem się dokładnie wadliwej kamerze i działającej kamerze (pożyczonej od kolegi), zauważyłem różnice w elemencie SMD oznaczonym jako X1. W działające kamerze jest to srebrny element, a w wadliwej czarna kostka.
Podejrzewam, że maszyna składająca wadliwą kamerę miała założoną taśmę z niewłaściwymi elementami SMD i wlutowała mi jakiś badziew zamiast poprawnego elementu.
Szkoda tylko, że tak oczywistej wady nie wyłapał Chiński QA, na etapie inspekcji wizualnej, czy po podłączeniu jej do RPi i sprawdzeniu obrazu.
Do niniejszego posta dołączam zdjęcie, na którym oznaczyłem element X1.
 

RPi_camera_problem_good_vs_broken.jpg

Link do komentarza
Share on other sites

X1 to prawdopodobnie rezonator. Czarny i srebrny spokojnie mogą być swoimi odpowiednikami.

Nie doszukiwałbym się tutaj problemów, tzn, że Chińczyk pomylił taśmy. Prędzej kamera uległa uszkodzeniu z powodu elektrostatyki. Pewnie sprzętu ESD nie używałeś przy pracy (opaski uziemiające itp.) Powód uszkodzenia może być i tak zupełnie inny...

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

Cześć,

Natknąłem się na ten temat podczas gdy szukałem odpowiedzi na pytanie, dlaczego pojawia się wyżej wspomniany błąd. U mnie pojawił się dokładnie ten sam, ale sprawa wyglądała trochę inaczej - dało się robić zdjęcia, ale nie dało się nagrać filmiku. 

Jestem początkującym użytkownikiem RPi bez jakiegokolwiek doświadczenia z IT, więc nie wiem czy moja sugestia jakkolwiek pomoże. W moim przypadku funkcję nagrywania prawdopodobnie blokował daemon. Przed próbą nagrania bawiłem się zdjęciami, więc usługa Motion była włączona. Polecenie sudo systemctl stop motion.service rozwiązało problem i film się nagrał poprawnie.

image.thumb.png.971bddbb2ba70cc079a91a77df396171.png

Mam nadzieję, że to cokolwiek wniosło do tematu... 🙂

U mnie ten problem mógł się pojawić z tego powodu, że prawdpodobnie mogę mieć coś skopane z Motion, co było opisane w temacie: https://forbot.pl/forum/topic/10468-kurs-raspberry-pi-10-kamera-zdjecia-transmisja-obrazu/#comments

 

Edytowano przez bartek92
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.