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

16. diel - Raspberry Pi - Pripojenie kamery

V predchádzajúcej lekcii, Raspberry Pi - Vodné čerpadlo , sme si k Raspberry Pi pripojili vodné čerpadlo.

V dnešnej lekcii si ukážeme ako k nášmu Raspberry Pi pripojiť kameru a naprogramujeme si jednoduchý program, ktorý pomocou kamery urobí fotku.

Potrebné súčiastky

Na úspešné zapojenie budeme potrebovať:

  • Raspberry Pi
  • Raspberry Pi Kamera
Typy kamier

Raspberry Pi kamerový modul môže byť použitý na natáčanie Full HD videa, rovnako ako na fotografovanie. Rozlíšenie fotografie sa môže meniť, kvalita videa zostáva nezmenená. Kamery vedia natáčať video v 1080p30, 720p60 a 640x480p60/90.

Raspberry Pi

Kamera v1

Kamera Raspberry Pi verzia 1 je modul kamery Raspberry Pi prvej generácie. Kamera funguje so všetkými druhmi Raspberry Pi, do ktorých je možné zapojiť kameru pomocou SCI konektora. Šošovka kamery je od zvyšku tela odnímateľná, a je možné ju teda vymeniť. Na fotenie lepších snímok či zlepšenie svetelnosti však musíme kúpiť novší model. Senzor má rozlíšenie 5 megapixelov a pevné ohnisko. Dokáže zhotovovať snímky v rozlíšení až 2592x1944 px.

Kamera v2

Druhá verzia kamerového modulu pre Raspberry Pi s vyšším rozlíšením. Väčšina vecí z prvej verzie zostala zachovaná, šošovka je opäť odnímateľná a kamera sa stále dá pripojiť ku všetkým Raspberry Pi so SCI konektorom. Kamera je schopná zhotovovať fotografie s rozlíšením až 3280x2464 px. Kamerový čip sa zmenil, je teraz od značky Sony IMX219 a má 8 Megapixelov.

Kamera hq

Raspberry Pi High Quality Camera je profesionálna kamera k Raspberry Pi. Ponúka rozlíšenie 12 Mpx a vyššiu citlivosť (pixel má približne o 50% väčšiu plochu, ktorá výrazne zlepšuje kvalitu obrazu v šere), než kamera druhej verzie.

Kamera novo umožňuje výmenu objektívov. Podporuje objektívy typu C a CS. Ďalšie objektívy sa dajú nasadiť cez rôzne redukcie. Na rozdiel od predchádzajúcich verzií, kamera nie je kompatibilná so všetkými Raspberry Pi. Dajú sa síce rovnako ako predchádzajúce modely pripojiť cez konektor SCI, avšak kamera potrebuje väčší výkon. Preto kamera funguje horšie so staršími modelmi alebo s modelmi zero.

Kamera má ako jediná filter proti infračervenému žiareniu a nastaviteľné zaostrenie. Dokáže zhotovovať fotografie s rozlíšením až 4056x3040 pixelov.

Raspberry Pi
Camera Module v1 Camera Module v2 HQ Camera
Rozmery 25mm × 20mm × 9mm 25 × 20 × 9 mm 38 × 38 × 18 mm
Rozlíšenie snímača 5Mpx 8Mpx 12Mpx
Rozlíšenie 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
Rozlíšenie čipu 2592 × 1944 pikseli 3280 × 2464 pikseli 4056 x 3040 pixelov
Výmena objektívu nie nie áno
Kompatibilný so všetkými Raspberry Pi so všetkými Raspberry Pi s novšími Raspberry Pi okrem radu Zero
Cena 13,90 € 24,90 € 59,90 €
Zapojenie

Zapojenie je tentoraz veľmi jednoduché. Stačí kábel kamery zapojiť do kamerového portu na Raspberry Pi. Na Raspberry Pi nájdeme podlhovastý port pre kameru s plastovou krytkou. Plastovú krytku vysunieme nahor a vložíme plochý kábel modulu kamery. Kábel vložíme tak, aby konektory na spodnej strane kábla smerovali ku kontaktom portu. Nakoniec zatlačíme krytku späť do portu. Tým zaistíme, že bude kábel pevne držať v porte a nevypadne.

Raspberry Pi

Povolenie kamery

Než začneme používať Raspberry Pi kameru, musíme ju najskôr povoliť v našom Raspberry Pi:

sudo raspi-config

Príkaz v termináli otvorí okno s nastavením Raspberry Pi. V tomto okne sa môžeme pohybovať pomocou šípok. Nájdeme na položku interfaces options a potom na legacy camera. Potvrdíme, že chceme povoliť port na kameru a reštartujeme Raspberry Pi, aby sa zmeny aplikovali:

Raspberry Pi

OpenCV

Na ovládanie kamery budeme dnes používať všeobecnú knižnicu pre prácu s kamerami, a to OpenCV. Pomocou OpenCV a pythonu sa vytvárajú najrôznejšie UI (Umelá inteligencia) na rozpoznávanie tváre. OpenCV je opensource knižnica pôvodne od spoločnosti intel. V dnešnej dobe je verejne dostupná a na jej vývoji spolupracuje niekoľko firiem a programátorských nadšencov. Viac si o tejto knižnici a ako funguje môžete prečítať tu.

Nainštalujme si knižnicu openCV:

sudo apt-get install python3-opencv

Snímka z kamery

Teraz si napíšeme jednoduchý program, ktorý nám urobí snímku z našej kamery a uloží ju 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 importom knižníc. Importujeme si knižnicu cv2 (OpenCV). Na druhom riadku si uložíme do premennej kameraPozice pozíciu, na ktorej sa naša kamera nachádza. Štandardne sa integrovaná kamera v počítači nachádza na pozícii 0, na Raspberry Pi by to malo byť úplne rovnaké. Vezmeme teda knižnicu cv2 ak nej pridáme príkaz VideoCapture, ktorému nastavíme hodnotu 0.

Ďalej si do premennej vyhodnoceni uložíme bool hodnotu True. Premennú vyhodnoceni budeme používať na ovládanie slučky while, aby nebola nekonečná.

Potom vidíme slučku while. Do slučky vložíme dve premenné, rec a fotka. Použijeme premenou kameraPozice pre zistenie pozície zariadenia, az tejto pozície začneme čítať pomocou funkcie read().

Tento príkaz nám vyhodí dve hodnoty. Prvú hodnotu uložíme do rec (hodnota bude v tvare bool). Bude to hodnota ktorá vyhodnocuje či sa snímka vytvorila (True) alebo nie (False). Druhou hodnotou bude samotná fotka vo formáte poľa snímok. Túto hodnotu budeme ukladať do premennej fotka.

Pokračovať budeme tým, že vezmeme knižnicu cv2 s príkazom imwrite. Príkaz imwrite potrebuje dve hodnoty, a to názov nového súboru a poľa snímok. Hodnotu ktorá má byť názov teda zapíšeme ako text novaFotka.jpg (na konci mena musí byť formát fotky). Ako druhú hodnotu potom použijeme premennú fotka. Nakoniec nastavíme premennú vyhodnoceni na False.

Vysvetlenie

Program sa informuje o pozícii kamery. Spustí sa slučka s hodnotou True. Bude sa vykonávať neustále, kým pozícia kamery nedostane hodnotu True. Keď pozícia kamery dostane hodnotu True, do premennej fotka sa zapíše zhotovený snímok ako pole snímok. Pomocou knižnice cv2 potom pole snímok uloží ako fotku. Keď je fotka uložená, slučka získa hodnotu False a program sa ukončí.

Verím, že sa vám pripojenie a nakódovanie kamery podarilo. Svoje dojmy a prípadné otázky môžete zanechať v diskusii pod článkom 🙂

V ďalšej lekcii, Raspberry Pi - Zavlažovač rastlín , si k Raspberry Pi pripojíme vodné čerpadlo, senzor vlhkosti pôdy a reproduktor.


 

Predchádzajúci článok
Raspberry Pi - Vodné čerpadlo
Všetky články v sekcii
Raspberry Pi
Preskočiť článok
(neodporúčame)
Raspberry Pi - Zavlažovač rastlín
Článok pre vás napísal Aleš Hlavín
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Raspberry
Aktivity