Jeden z mých přátel mě požádal, jestli bych mu na 3D tiskárně nevytiskl krabičku pro jeho Raspberry Pi 3, které chtěl použít jako multimediální centrum (Linux KODI). Samozřejmě, že jsem neotálel a krabičku vytiskl, protože jsem už dlouho nic netiskl a potřeboval jsem uspokojit svoje 3D tiskařské libido 🙂
A když jsem sledoval, jak jde tiskárně práce hezky od ruky…nebo vlastně od trysky, uvědomil jsem si, že jsem trochu zaspal dobu. S Arduinem si pohrávám už docela dlouho, ale Raspberry Pi jsem zatím držel v ruce jen jednou první verzi a to ještě sotva na pár minut.
Konstrukce
Začal jsem přemýšlet, kde bych pro něj našel uplatnění. První myšlenka padla na distribuci linuxu RetroPie, která Raspítko s gamepadem promění v herní konzoli, na které jdou mimo jiné hrát i staré herní pecky, které jsme jako děti hráli na pouti na automatech. Při objednávání Rasberry jsem ale narazil na příslušenství, kde mě zaujal modul kamery (Camera V2.1). Vzhledem k tomu, že v síti používáme dvě IP kamery Axis 211M jako veřejné webkamery, které pamatují ještě Šemíka jako hříbě, rozhodl jsem se, že postavím IP kameru, která by tyto staré webky mohla nahradit.
Původně jsem uvažoval, že koupím nějaký hotový kryt pro CCTV kameru a Raspítko i s modulem umístím dovnitř, ale nakonec jsem se rozhodl, že pro případ nezdaru nebudu projekt zbytečně prodražovat 🙂 a kryt kamery vyrobím z běžně dostupného materiálu. Jako základ mi posloužil kousek plastové odpadní trubky o vnějším průměru 75mm, který jsem seřízl pod úhlem tak, abych docílil tvaru “kšiltu”, který bude stínit a chránit sklo kamery před nepřízní počasí. Pro zaslepení druhého konce trubky jsem použil víčko na tento rozměr. Bohužel už nejdou koupit klasické PVC trubky, které se daly teplem velice snadno tvarovat a vyrobit si tak hrdlo na míru. Dnes jsou trubky z jiného materiálu a na jednom konci opatřeny už z výroby hrdlem a gumovým těsněním. Toto hrdlo se mi ale moc nelíbilo, kamera by nevypadala moc dobře, takže jsem ho uřízl a po delším zápasu s horkovzdušnou pistolí se mi podařilo konec nahřát tak, aby šlo víčko vsunout.
Ještě jsem si uvědomil, že budu potřebovat sklíčko, které ochrání kameru před nepřízní počasí. Napadlo mě použít náhradní čiré sklo do svařečských brýlí k autogenu (cena cca 13Kč/kus), ale u nás v obchodě zrovna neměli, takže jsem si sklíčko s o něco větším průměrem vykousal doma sám, z nějakého střepu, pomocí diamantu na řezání skla a kleští 🙂
Pro uložení elektroniky v trubce jsem si vymodeloval a na 3D tiskárně vytiskl speciální držák, který zároveň plní funkci předního krytu, do kterého jsem silikonem přilepil zmiňované sklíčko. Celá tato konstrukce tvoří jakousi kartuš, která se vsune do trubky a zespodu zajistí jedním samořezným šroubem skrz stěnu. Trubku jsem na této straně na opačném konci provrtal a opatřil průchodkou na kabel.
Další věcí, kterou jsem řešil, bylo napájení. Raspberry Pi umí jen 5V a já chci kameru napájet přes UTP kabel pasivním PoE. Pro případ, že bych použil delší kabel, tak alespoň 15V, abych měl nějakou rezervu na ztráty v kabelu. Toto jsem nakonec vyřešil pomocí pasivního PoE adaptéru, kterému jsem ustřihl DC Jack a vodiče připájel na vstup miniaturního DC-DC měniče MINI360 (ebay cca 25Kč/kus). Na měniči jsem trimrem nastavil výstup na 5,1V a trimr zakápnul tavným lepidlem. K výstupu jsem připájel dva vodiče s konektorem, kterým kameru napájím přes napájecí piny na GPIO portu Raspítka. Celý měnič jsem pak zafouknul do smrštitelné bužírky.
Poslední co zbývalo, bylo potřeba vymyslet nějaké vhodné uchycení kamery, aby bylo možné kameru nasměrovat do libovolné polohy. Dva dny jsem přemýšlel a přehraboval třmeny, které mám v práci ze starých wifi antén, že bych některé z nich použil k uchycení. Nakonec jsem se rozhodl, že když budu mít hezkou kameru, musím k ní mít i hezký držák 🙂
Takže jsem opět sednul k blenderu (opensource program, ve kterém modeluju pro 3D), držák si vymodeloval a vytisknul na 3D tiskárně. Držák jsem vytvořil jako konzolu stavitelnou ve dvou osách se zajišťovacími šrouby, uchycení samotné kamery a celkové uchycení jsem vyřešil drážkami pro nerezové objímky (zkušebně jsem použil plastové stahovací pásky). Celý kryt kamery i držák jsem nakonec nastříkal bílou matnou barvou, abych sjednotil vzhled, protože držák jsem tisknul z červeného PLA.
Software
Jako softwarovou výbavu jsem původně chtěl použít distribuci linuxu Raspbian, kterou si přizpůsobím pro své potřeby. Nakonec jsem ale narazil na zajímavý projekt MotionEye OS, který je vytvořený přímo jako firmware pro IP kameru. Má vlastní webové rozhraní, kde se dají snadno nastavit všechny důležité parametry – nastavení sítě, název kamery, rozlišení snímaného obrazu, počet snímků za sekundu, kvalita obrazu. Maximální rozlišení je 1600×1200, streamování je ve formátu MJPEG. Je možné zapnout ukládání snímků z kamery na kartu, buďto v určitém intervalu, nebo jen když kamera detekuje pohyb. Totéž je možné ukládat jako video. Staré záznamy je možné nechat automaticky mazat po určité době. Nechybí možnost ukládání na externí síťové úložiště, nebo při určité akci poslat oznámení zavoláním externího skriptu někde na webu. K pořízeným záznamům na kartě se pak dá dostat jednoduše přes FTP protokol nebo Sambu. Když se v expertním nastavení přepne do režimu “fast network camera” je maximální rozlišení 1920×1080, streamuje se opět v MJPEG. V tomto režimu nejde použít některé rozšířené funkce jako detekce pohybu a ukládání snímků a videa.
Samotný firmware mi fungoval na první dobrou, po stažení image a nahrání na paměťovku Raspi nabootovalo, z DHCP získalo ip adresu, přes kterou už se dalo přihlásit do webového rozhraní. Systém poznal připojený kamerový modul, takže už fungovalo snímání obrazu v nějakém základním rozlišení 320×240. Narazil jsem akorát na problém, že jsem měl obraz zrcadlově a nemohl jsem ho nijak obrátit. V nastavení je jen rotace po 90°, ale zrcadlení ne. Dal jsem se studovat systém a konfigurační soubory přes SSH, ale bylo už dost pozdě v noci, tak jsem to odložil na druhý den. No a na druhý den tvůrce vydal novou verzi přímo s podporou kamerového modulu V2.1, takže jsem udělal upgrade a obraz už byl v pořádku, problém vyřešen 🙂
Závěrečné hodnocení
Nečekal jsem zázraky, ale samotný výsledek mě docela překvapil. Kvalita obrazu z kamerového modulu, který má údajně osazený CCD 8Mpixel čip, je nad moje očekávání. V porovnání se zmiňovanou Axis 211M, která stála něco málo přes 20 tisíc, je to nebe a dudy. Samozřejmě, 211M je kamera stará 10 let, takže je trochu nefér s ní srovnávat, navíc je to profesionální IP kamera, která umí i MPEG4 stream a má několikazónovou detekci pohybu, ale srovnávám především kvalitu obrazu v poměru k ceně. S Raspberry Pi 3, modulem kamery a ikdybych koupil hotový kryt pro CCTV, jde o částku do 3.000 Kč s přehledem. Co jsem se jen tak zběžně díval na netu po ukázkách z IP kamer v podobné cenové relaci, je řešení s Raspberry Pi bezkonkurenční a výsledný obraz je srovnatelný s výstupem např. z kamer Vivotek v cenové relaci třikrát vyšší.
Někdy se ještě mrknu na to, jak by šlo Raspítko donutit streamovat v h.264 a jestli to bude stíhat, protože MJPEG mi není moc sympatický. No a chtěl bych se podívat na zoubek i “NOIR” verzi kamerového modulu (nemá IR filtr, pro snímání v noci s přísvitem).
/Doplněno 7.4.2017/ – kdo máte možnost tisknout 3D, zde jsou STL soubory “kartuše” pro vsunutí do PVC trubky o vnitřním průměru cca 72mm (vnější průměr 75mm, délka 260mm).
/Doplněno 11.6.2018/ – přidávám STL soubory, kdo by měl zájem si vytisknout i celý držák kamery.
No super. Mas nekde online zaber z te kamery. Rad bych se na to mrknul
Teď to mám doma chvilku na test, ale budeme ji dávat na nádraží a bude online.
Super aspon budu vedet jak jezdiju vlaky
Moc pěkné počtení a především inspirativní :-), uložení do PVC trubky je super nápad. Velice si vážím lidí co jsou ochotni podělit se a nenechají si své dovednosti jen pro sebe.
Už se těším na článek o NoIR a stream videu, tedy doufám že bude 😉
Dík za komentář, občas je fajn vědět, že si to i někdo se zájmem přečte 🙂
Výpadá jako zajímavý projekt! 🙂 Jen mě napadá, co třeba noční vidění?
Stačí jen vyměnit kamerový modul za verzi “NOIR” a přidat IR přísvit.
Zaujímavé riešenie a hlavne nápad s umiestnením do PVC trubky. Zatiaľ som vyskúšal len RPi s kamerou na stole ale plánujem to realizovať podľa Vášho riešenia. Má to malý problém k 3D tlačiarní (Zortrax) mám prístup ale nakresliť budúci výtlačok ešte neviem. Mám prosbu, súbor pre tlač držiaku dosky RPi mi môžete poskytnúť?
Ahoj, odkaz ke stažení STL souborů jsem přidal pod článek.
Pekny clanek, diky za nej.
Ahoj. Chci se zeptat, je někde k dispozici STL soubor na tisk toho držáku celé kamery?
Čau. Poslal jsem Ti to na mejl.
paradni navod 🙂
mohl bych take pozadat o STLko na tisk drzaku?
diky a krasny den
Ahoj, sorry že tak pozdě.. přidávám soubory ke stažení pod článek, aby už nikdo nemusel čekat až si vzpomenu, že mám nějaký blog 🙂
Díky za inspiraci. Už dlouho přemýšlím, nad tím, jak kamerou pokrýt vstupní dveře a tohle je perfektní. Vyzkouším.
Taky děkuji za inspiraci , právě jsem si říkal že jsem ještě nezkusil modul s kamerou pro RPI tak jsem hledal informace o kvalitě obrazu jestli to stojí za investici a vypadá to že ano. Za ty stl taky děkuji .
Je to o tom, jestli si chce člověk trochu hrát, nebo si připlatí a sáhne po hotovém řešení. Pokud jde o kvalitu obrazu, není špatná. Nevýhodou je, když je potřeba mít obraz i v noci, že musíš použít kamerový modul bez IR filtru, řešit navíc IR přísvit a obraz přes den je bez IR filtru barevně zkreslený. Další nevýhoda je, že (nevím jak v poslední verzi firmware) kamera neumí nastavit zóny, které má hlídat a v případě pohybu udělat záznam, prostě bere celý záběr.
Ahoj, pěkná kamera. Chtěl bych si taky podobnou vyrobit ale potřeboval bych poradit kde stáhnout image na SD kartu. Na githubu se fakt nevyznam a přímo img sem tam nenašel.
Poradíš?
Díky
Na githubu je to v záložce “releases” – v záhlaví tabulky s výpisem souborů
Tady je přímý odkaz na poslední vydanou verzi, dole jsou image pro všechny podporované platformy
https://github.com/ccrisan/motioneyeos/releases/tag/20190619