Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 16 - Raspberry Pi - Připojení kamery

V předchozí lekci, Raspberry Pi - Vodní čerpadlo, jsme si k Raspberry Pi připojili vodní čerpadlo.

V dnešní lekci si ukážeme, jak k našemu Raspberry Pi připojit kameru a naprogramujeme si jednoduchý program, který pomocí kamery udělá fotku.

Potřebné součástky

K úspěšnému zapojení budeme potřebovat:

  • Raspberry Pi
  • Raspberry Pi Kamera

Typy kamer

Raspberry Pi kamerový modul může být použit k natáčení Full HD videa, stejně jako k pořizování fotografií. Rozlišení fotografie se může měnit, kvalita videa zůstává nezměněna. Kamery umí natáčet video v 1080p30, 720p60 a 640x480p60/90.

Raspberry Pi

Kamera v1

Kamera Raspbery Pi verze 1 je modul kamery Raspberry Pi první generace. Kamera funguje se všemi druhy Raspberry Pi, do kterých lze zapojit kameru pomocí SCI konektoru. Čočka kamery je od zbytku těla odnímatelná, a lze ji tedy vyměnit. K focení lepších snímků či zlepšení světelnosti však musíme koupit novější model. Senzor má rozlišení 5 megapixelů a pevné ohnisko. Dokáže pořizovat snímky v rozlišení až 2592x1944 px.

Kamera v2

Druhá verze kamerového modulu je pro Raspberry Pi s vyšším rozlišením. Většina věcí z první verze zůstala zachována, čočka je opět odnímatelná a kamera se stále dá připojit ke všem Raspberry Pi s SCI konektorem. Kamera je schopná pořizovat fotografie s rozlišením až 3280x2464 px. Kamerový čip se změnil, je nyní od značky Sony IMX219 a má 8 Megapixelů.

Kamera hq

Raspberry Pi High Quality Camera je profesionální kamera k Raspberry Pi. Nabízí rozlišení 12 Mpx a vyšší citlivost (pixel má přibližně o 50 % větší plochu, která výrazně zlepšuje kvalitu obrazu v šeru), než kamera druhé verze.

Kamera nově umožňuje výměnu objektivů. Podporuje objektivy typu C a CS. Další objektivy se dají nasadit přes různé redukce. Na rozdíl od předchozích verzí, kamera není kompatibilní se všemi Raspberry Pi. Lze ji sice, stejně jako předchozí modely, připojit přes konektor SCI, avšak kamera potřebuje větší výkon. Proto kamera funguje hůře se staršími modely nebo s modely zero.

Kamera má jako jediná filtr proti infračervenému záření a nastavitelné zaostření. Dokáže pořizovat fotografie o rozlišení až 4056x3040 pixelů.

Raspberry Pi
  Camera Module v1 Camera Module v2 HQ Camera
Rozměry 25mm × 20mm × 9mm 25 × 20 × 9 mm 38 × 38 × 18 mm
Rozlišení snímače 5Mpx 8Mpx 12Mpx
Rozlišení videa 1080p30, 720p60 a 640×480p60/90 1080p30, 720p60 a 640 × 480p60/90 1080p30, 720p60 a 640×480p60/90
Čip OmniVision OV5647 Sony IMX219 Sony IMX477
Rozlišení čipu 2592 × 1944 pixelů 3280 × 2464 pixelů 4056 x 3040 pixelů
Výměna objektivu ne ne ano
Kompatibilní se všemi Raspberry Pi se všemi Raspberry Pi s novějšími Raspberry Pi kromě řady Zero
Cena 349,00 Kč 669,00 Kč 1 499,00 Kč

Zapojení

Zapojení je tentokrát velmi jednoduché. Stačí kabel kamery zapojit do kamerového portu na Raspberry Pi. Na Raspberry Pi najdeme podlouhlý port pro kameru s plastovou krytkou. Plastovou krytku vysuneme nahoru a vložíme plochý kabel modulu kamery. Kabel vložíme tak, aby konektory na spodní straně kabelu směřovaly ke kontaktům portu. Nakonec zatlačíme krytku zpět do portu. Tím zajistíme, že bude kabel pevně držet v portu a nevypadne.

Raspberry Pi

Povolení kamery

Než začneme používat Raspberry Pi kameru, musíme ji nejprve povolit v našem Raspberry Pi:

sudo raspi-config

Příkaz v terminálu otevře okno s nastavením Raspberry Pi. V tomto okně se můžeme pohybovat pomocí šipek. Najedeme na položku interfaces options a poté na legacy camera. Potvrdíme, že chceme povolit port na kameru a restartujeme Raspberry Pi, aby se změny aplikovaly:

Raspberry Pi

OpenCV

K ovládání kamery budeme dnes používat obecnou knihovnu pro práci s kamerami, a to OpenCV. Pomocí OpenCV a pythonu se vytvářejí nejrůznější UI (Umělá inteligence) na rozpoznávání obličeje. OpenCV je opensource knihovna původně od společnosti intel. V dnešní době je veřejně dostupná a na jejím vývoji spolupracuje několik firem a programátorských nadšenců. Více si o této knihovně a jak funguje můžete přečíst zde.

Nainstalujme si knihovnu openCV:

sudo apt-get install python3-opencv

Snímek z kamery

Nyní si napíšeme jednoduchý program, který nám udělá snímek z naší kamery a uloží ho do Raspberry Pi:

import cv2
kameraPozice = cv2.VideoCapture(0)
vyhodnoceni = True
while(vyhodnoceni):
    rec , fotka = kameraPozice.read()
    cv2.imwrite("novaFotka.jpg",fotka)
    vyhodnoceni = False

Začneme tradičním importem knihoven. Importujeme si knihovnu cv2 (OpenCV). Na druhém řádku si uložíme do proměnné kameraPozice pozici, na které se naše kamera nachází. Standardně se integrovaná kamera v počítači nachází na pozici 0, na Raspberry Pi by to mělo být úplně stejné. Vezmeme tedy knihovnu cv2 a k ní přidáme příkaz VideoCapture, kterému nastavíme hodnotu 0.

Dále si do proměnné vyhodnoceni uložíme bool hodnotu True. Proměnnou vyhodnoceni budeme používat k ovládání smyčky while, aby nebyla nekonečná.

Poté vidíme smyčku while. Do smyčky vložíme dvě proměnné, rec a fotka. Použijeme proměnou kameraPozice pro zjištění pozice zařízení, a z této pozice začneme číst pomocí funkce read().

Tento příkaz nám vyhodí dvě hodnoty. První hodnotu uložíme do rec (hodnota bude ve tvaru bool). Bude to hodnota, která vyhodnocuje, zda se snímek pořídil (True), nebo ne (False). Druhou hodnotou bude samotná fotka ve formátu pole snímků. Tuto hodnotu budeme ukládat do proměnné fotka.

Pokračovat budeme tím, že vezmeme knihovnu cv2 s příkazem imwrite. Příkaz imwrite potřebuje dvě hodnoty, a to název nového souboru a pole snímků. Hodnotu, která má být název tedy zapíšeme jako text novaFotka.jpg (na konci jména musí být formát fotky). Jako druhou hodnotu pak použijeme proměnnou fotka. Nakonec nastavíme proměnnou vyhodnoceni na False.

Vysvětlení

Program se informuje o pozici kamery. Spustí se smyčka s hodnotou True. Bude se provádět neustále, dokud pozice kamery nedostane hodnotu True. Když pozice kamery dostane hodnotu True, do proměnné fotka se zapíše pořízený snímek jako pole snímků. Pomocí knihovny cv2 pak pole snímků uloží jako fotku. Když je fotka uložena, smyčka získá hodnotu False a program se ukončí.

Věřím, že se vám připojení a nakódování kamery podařilo. Své dojmy a případné dotazy můžete zanechat v diskusi pod článkem 🙂

V další lekci, Raspberry Pi - Gyroskop, si k Raspberry Pi připojíme gyroskop.


 

Předchozí článek
Raspberry Pi - Vodní čerpadlo
Všechny články v sekci
Raspberry Pi
Přeskočit článek
(nedoporučujeme)
Raspberry Pi - Gyroskop
Článek pro vás napsal Aleš Hlavín
Avatar
Uživatelské hodnocení:
6 hlasů
Raspberry
Aktivity