Obsah:

HackerBox 0024: Vision Quest: 11 kroků
HackerBox 0024: Vision Quest: 11 kroků

Video: HackerBox 0024: Vision Quest: 11 kroků

Video: HackerBox 0024: Vision Quest: 11 kroků
Video: HackerBox #0024: Vision Quest 2024, Červenec
Anonim
HackerBox 0024: Vision Quest
HackerBox 0024: Vision Quest

Vision Quest - Tento měsíc hackeři HackerBox experimentují s počítačovým viděním a sledováním pohybu serva. Tento Instructable obsahuje informace pro práci s HackerBox #0024, které si můžete vyzvednout zde do vyprodání zásob. Pokud byste také chtěli každý měsíc dostávat HackerBox přímo do své poštovní schránky, přihlaste se k odběru na HackerBoxes.com a připojte se k revoluci!

Témata a vzdělávací cíle pro HackerBox 0024:

  • Experimentování s počítačovým viděním
  • Nastavení OpenCV (Computer Vision)
  • Programování Arduino Nano z Arduino IDE
  • Ovládání servomotorů pomocí Arduino Nano
  • Sestavení sestavy mechanického otáčení a naklápění
  • Ovládání pohybu Pan a Tilt pomocí mikrokontroléru
  • Provádění sledování obličeje pomocí OpenCV

HackerBoxes je služba měsíčního předplatného pro elektroniku a výpočetní techniku pro kutily. Jsme fandové, tvůrci a experimentátoři. Jsme snílci snů. ZRUŠTE PLANETU!

Krok 1: HackerBox 0024: Obsah krabice

HackerBox 0024: Obsah krabice
HackerBox 0024: Obsah krabice
  • Sběratelská referenční karta HackerBoxes #0024
  • Sestava otáčení a naklápění se třemi konzolami
  • Dvě serva MG996R s příslušenstvím
  • Dva hliníkové kruhové servospojky
  • Arduino Nano V3 - 5V, 16MHz, MicroUSB
  • Sestava digitálního fotoaparátu s kabelem USB
  • Tři objektivy s univerzálním klipem
  • Lékařské inspekční pero
  • Dupontní propojky pro muže/ženy
  • MicroUSB kabel
  • Exkluzivní obtisk OpenCV
  • Exkluzivní obtisk Dia de Muertos

Některé další věci, které budou užitečné:

  • Malý dřevěný deskový šrot pro základnu fotoaparátu
  • Páječka, pájka a základní pájecí nástroje
  • Počítač pro spouštění softwarových nástrojů

A co je nejdůležitější, budete potřebovat smysl pro dobrodružství, kutilského ducha a hackerskou zvědavost. Hardcore DIY elektronika není triviální pronásledování a my to pro vás nezlevňujeme. Cílem je pokrok, ne dokonalost. Když vytrváte a užíváte si dobrodružství, velkou spokojenost lze odvodit z učení se nové technologii a doufejme, že některé projekty budou fungovat. Doporučujeme provádět každý krok pomalu, dbát na detaily a nikdy neváhat požádat o pomoc.

ČASTO KLADENÉ OTÁZKY: Rádi bychom požádali všechny členy HackerBox o opravdu velkou laskavost. Před kontaktováním podpory si prosím najděte několik minut a přečtěte si FAQ na webu HackerBoxes. I když zjevně chceme všem členům pomáhat, jak je to nutné, většina našich e -mailů podpory zahrnuje jednoduché otázky, které jsou velmi často zodpovězeny ve FAQ. Děkuji za pochopení!

Krok 2: Počítačové vidění

Počítačové vidění
Počítačové vidění

Počítačové vidění je interdisciplinární obor, který se zabývá tím, jak počítače získávají porozumění na vysoké úrovni z digitálních obrázků nebo videí. Z hlediska inženýrství se počítačové vidění snaží automatizovat úkoly, které může lidský vizuální systém dělat. Počítačové vidění se jako vědecký obor zabývá teorií umělých systémů, které získávají informace z obrázků. Obrazová data mohou mít mnoho podob, například videosekvence, pohledy z více kamer nebo vícerozměrná data z lékařského skeneru. Jako technologická disciplína se počítačové vidění snaží aplikovat své teorie a modely na konstrukci systémů počítačového vidění. Subdomény počítačového vidění zahrnují rekonstrukci scény, detekci událostí, sledování videa, rozpoznávání objektů, odhad 3D pozice, učení, indexování, odhad pohybu a obnovu obrazu.

Je zajímavé poznamenat, že počítačové vidění může být považováno za inverzní počítačovou grafiku.

Krok 3: Zpracování a OpenCV

Zpracování a OpenCV
Zpracování a OpenCV

Processing je flexibilní softwarový skicák a jazyk pro učení se kódování v kontextu výtvarného umění. Zpracování podpořilo softwarovou gramotnost ve výtvarném umění a vizuální gramotnost v rámci technologií. Existují desítky tisíc studentů, umělců, designérů, výzkumníků a fandů, kteří používají Processing k učení a prototypování.

OpenCV (Open Source Computer Vision Library) je open source knihovna softwaru pro počítačové vidění a strojové učení. OpenCV byl vytvořen tak, aby poskytoval společnou infrastrukturu pro aplikace počítačového vidění a urychlil používání vnímání strojů v komerčních produktech. Knihovna OpenCV má více než 2500 optimalizovaných algoritmů, které zahrnují komplexní sadu klasických i nejmodernějších algoritmů počítačového vidění a strojového učení. Tyto algoritmy lze použít k detekci a rozpoznávání tváří, identifikaci objektů, klasifikaci lidských akcí ve videích, sledování pohybů kamery, sledování pohybujících se objektů atd.

Nainstalujte OpenCV do Zpracování z nabídky Soubor> Příklady výběrem „Přidat příklady“a poté na kartě Knihovny nainstalujte knihovny Video i OpenCV. Otevřete příklad LiveCamTest pro základní sledování obličeje. Podívejte se na další příklady OpenCV pro zpracování zde.

Další zdroje:

Getting Started with Computer Vision je knižní projekt, který poskytuje snadný vstupní bod pro kreativní experimentování s počítačovým viděním. Představuje kód a koncepty nezbytné k vytváření projektů počítačového vidění.

Programming Computer Vision with Python is a O'Reilly book on PCV, an open source Python module for computer vision.

Učení OpenCV

Počítačové vidění: Algoritmy a aplikace

Ovládání OpenCV

Kurz Stanford CS231n Konvoluční neurální sítě pro vizuální rozpoznávání (16 videí)

Chris Urmson TED Talk Jak auto bez řidiče vidí silnici

Krok 4: Platforma mikrokontroléru Arduino Nano

Platforma mikrokontroléru Arduino Nano
Platforma mikrokontroléru Arduino Nano

Můžeme použít jakoukoli běžnou platformu s mikrořadičem pro ovládání serv v našem držáku kamery pro otáčení a naklánění. Arduino Nano je miniaturizovaná deska Arduino s integrovaným USB pro povrchovou montáž, vhodná pro prkénko. Je úžasně plnohodnotný a snadno hacknutelný.

Funkce:

  • Mikrokontrolér: Atmel ATmega328P
  • Napětí: 5V
  • Digitální I/O piny: 14 (6 PWM)
  • Analogové vstupní piny: 8
  • Stejnosměrný proud na pin I/O: 40 mA
  • Flash paměť: 32 KB (2 kB pro bootloader)
  • SRAM: 2 kB
  • EEPROM: 1 kB
  • Taktovací frekvence: 16 MHz
  • Rozměry: 17 mm x 43 mm

Tato konkrétní varianta Arduino Nano je černá konstrukce Robotdyn. Rozhraní je zajištěno integrovaným portem MicroUSB, který je kompatibilní se stejnými kabely MicroUSB, jaké používají mnohé mobilní telefony a tablety.

Arduino Nanos má vestavěný USB/Serial Bridge čip. U této konkrétní varianty je můstkovým čipem CH340G. Všimněte si toho, že na různých typech desek Arduino jsou použity různé další typy USB/Serial bridge čipů. Tyto čipy umožňují USB portu vašeho počítače komunikovat se sériovým rozhraním na procesorovém čipu Arduina.

Operační systém počítače vyžaduje ke komunikaci s USB/sériovým čipem ovladač zařízení. Ovladač umožňuje IDE komunikovat s deskou Arduino. Potřebný konkrétní ovladač zařízení závisí na verzi operačního systému a také na typu USB/sériového čipu. Pro čipy CH340 USB/Serial jsou k dispozici ovladače pro mnoho operačních systémů (UNIX, Mac OS X nebo Windows). Výrobce ovladačů CH340 dodává tyto ovladače zde.

Když poprvé zapojíte Arduino Nano do USB portu vašeho počítače, měla by se rozsvítit zelená kontrolka napájení a krátce poté by měla pomalu pomalu blikat modrá LED. K tomu dochází, protože v Nano je předinstalován program BLINK, který běží na zbrusu novém Arduino Nano.

Krok 5: Integrované vývojové prostředí Arduino (IDE)

Integrované vývojové prostředí Arduino (IDE)
Integrované vývojové prostředí Arduino (IDE)

Pokud ještě nemáte nainstalované Arduino IDE, můžete si jej stáhnout z Arduino.cc

Pokud byste chtěli další úvodní informace pro práci v ekosystému Arduino, doporučujeme vám prostudovat si pokyny pro HackerBoxes Starter Workshop.

Zapojte Nano do kabelu MicroUSB a druhý konec kabelu do USB portu na počítači, spusťte software Arduino IDE, vyberte příslušný USB port v IDE pod nástrojem> port (pravděpodobně název s „wchusb“v něm)). V IDE v části tools> board také vyberte „Arduino Nano“.

Nakonec načtěte kousek ukázkového kódu:

Soubor-> Příklady-> Základy-> Blink

Toto je vlastně kód, který byl předem načten do Nano a měl by běžet právě teď, aby pomalu blikal modrý indikátor LED. Pokud tedy načteme tento ukázkový kód, nic se nezmění. Místo toho trochu upravme kód.

Když se podíváte pozorně, můžete vidět, že program zapne LED, čeká 1000 milisekund (jedna sekunda), vypne LED, čeká další sekundu a pak to udělá znovu - navždy.

Upravte kód změnou obou příkazů „zpoždění (1000)“na „zpoždění (100)“. Tato úprava způsobí, že LED bliká desetkrát rychleji, že?

Načtěte upravený kód do Nano kliknutím na tlačítko UPLOAD (ikona šipky) těsně nad upraveným kódem. Sledujte stavové informace pod kódem: „kompilace“a poté „nahrávání“. Nakonec by IDE mělo indikovat „Nahrávání dokončeno“a vaše LED by měla blikat rychleji.

Pokud ano, gratulujeme! Právě jste hackli svůj první kousek vloženého kódu.

Jakmile je verze rychlého blikání načtena a spuštěna, proč nezkusit, zda můžete kód znovu změnit, aby LED dvakrát rychle blikla, a poté počkat několik sekund, než to zopakujete? Pokusit se! A co nějaké další vzory? Jakmile uspějete ve vizualizaci požadovaného výsledku, jeho kódování a pozorování, aby fungovalo podle plánu, udělali jste obrovský krok k tomu, abyste se stali kompetentním hardwarovým hackerem.

Krok 6: Servomotory

Servomotory
Servomotory

Servomotory jsou obecně řízeny sérií opakujících se elektrických impulzů, kde šířka impulzů udává polohu serva. Řídicí signál s modulovanou šířkou pulsu (PWM) je často generován běžným mikrokontrolérem, jako je Arduino.

Malá hobby serva, jako je MG996R, jsou připojena standardním třívodičovým připojením: dva vodiče pro stejnosměrné napájení a jeden vodič pro přenos řídicích impulzů. Serva MG996R mají provozní napětí 4,8-7,2 VDC.

Krok 7: Sestavení mechanismu otáčení a naklánění

Sestavení mechanismu otáčení a naklápění
Sestavení mechanismu otáčení a naklápění
  1. Vytáhněte obě serva MG996R z brašny a prozatím odložte přiložené příslušenství.
  2. Ke každému servu připojte hliníkovou kruhovou spojku. Spojky se dodávají v oddělených pytlích od serva. Spojka je velmi těsná. Začněte zatlačením spojky na konec výstupu serva a poté zašroubujte šroub do středového otvoru. Utáhněte závit, aby se spojka natáhla na výstup serva.
  3. Všimněte si, že pro sestavu naklápění existují tři konzoly-dvě krabicové konzoly a jedna U-konzola.
  4. Namontujte jednu z krabicových konzol na hliníkový kruh pro jedno ze serv. Toto servo budeme nazývat pan servo. Orientujte držák boxu jeho středovou stěnou proti hliníkovému kruhu tak, aby další dvě stěny držáku boxu směřovaly pryč od panva. Použijte středové otvory na střední stěně držáku krabice. Toto uspořádání by mělo umožnit servopohonu otáčet připojený držák boxu, jakmile je aktivován.
  5. Umístěte druhé servo (naklápěcí servo) do držáku skříně, který je připevněn k hliníkovému kruhu servopohonu. Pomocí nejméně dvou matic a šroubů připevněte naklápěcí servo - po jedné na každé straně.
  6. Držte U-držák a zasuňte mosazné „ložisko“zevnitř U jedním z velkých montážních otvorů pro čep.
  7. Umístěte U-držák s ložiskem na naklápěcí servo, které je uvnitř držáku boxu, tak, aby se druhý velký montážní otvor pro otočný čep (ten bez ložiska) vyrovnal s hliníkovým kruhem na naklápěcím servu.
  8. Pomocí šroubů připevněte U-držák na hliníkový kruh na jedné straně U-držáku.
  9. Na druhé straně U-držáku utáhněte jeden šroub skrz ložisko a do malého otvoru v držáku boxu uvnitř. To by mělo umožnit otáčení U-držáku kolem boxového držáku později, když je aktivováno naklápěcí servo.

Krok 8: Montáž sestavy otáčení a naklánění

Montáž sestavy otáčení a naklápění
Montáž sestavy otáčení a naklápění
Montáž sestavy otáčení a naklápění
Montáž sestavy otáčení a naklápění

Zbývající krabicový držák lze přišroubovat k malému dřevěnému deskovému šrotu, který bude sloužit jako základna kamery, jak je znázorněno na obrázku. Nakonec je do této zbývající krabicové konzoly namontováno pan servo pomocí nejméně dvou matic a šroubů k připevnění serva k držáku - po jedné na každé straně.

Krok 9: Připojte a otestujte sestavu otáčení a naklánění

Připojte a vyzkoušejte sestavu otáčení a naklánění
Připojte a vyzkoušejte sestavu otáčení a naklánění

Chcete -li zapojit serva podle schématu, je nejrychlejší jednoduše odříznout původní zásuvkové konektory od serva a poté použít některé koncové propojky DuPont k získání signálu a uzemnění připojených k pinům Nano.

Nano nemá dostatečný proud na 5V napájení pro napájení serva z USB, proto se doporučuje další napájení. Může to být cokoli v rozsahu 4,8-7,2 voltů. Například čtyři AA baterie (v sérii) budou fungovat dobře. Dobrou volbou je také zásobování lavicí nebo bradavice.

Jednoduchý příklad kódu Arduino připojeného zde jako PanTiltTest.ino lze použít k testování ovládání dvou serv ze sériového monitoru na Arduino IDE. Nastavte přenosovou rychlost monitoru tak, aby odpovídala 9600bps nastavenému v ukázkovém kódu. Zadáním hodnot úhlu mezi 0 a 180 stupni se serva příslušně umístí.

Nakonec lze USB kamerový modul (nebo jiný senzor) namontovat na U-držák sestavy Pan-Tilt pro použití ve sledovacích aplikacích.

Krok 10: Sledování obličeje s OpenCV

Image
Image
Hackujte planetu
Hackujte planetu

Systém sledování obličeje se strojovým viděním lze implementovat kombinací subsystémů, jak je uvedeno v blokovém diagramu. Skici SerialServoControl pro Arduino najdete v následujícím tutoriálu Sparkfun spolu se související ukázkou pomocí OpenCV, Processing, Arduino, USB kamery a sestavy Pan/Tilt pro sledování lidské tváře. Demo používá dvě serva k přemístění kamery, aby tvář zůstala vystředěná ve video rámečku, i když se uživatel pohybuje po místnosti. Například kód v C#, podívejte se na úložiště GitHub pro video CamBot.

Krok 11: Hackujte planetu

Pokud vás tento Instrucable bavil a chtěli byste si nechat každý měsíc doručit krabici elektroniky a projektů počítačové techniky přímo do vaší poštovní schránky, připojte se k nám PŘIHLÁŠENÍM ZDE.

Oslovte a podělte se o svůj úspěch v níže uvedených komentářích nebo na facebookové stránce HackerBoxes. Určitě nám dejte vědět, pokud máte nějaké dotazy nebo potřebujete s čímkoli pomoci. Děkujeme, že jste součástí HackerBoxes. Nechte si prosím své návrhy a zpětnou vazbu. HackerBoxes jsou VAŠE boxy. Pojďme udělat něco skvělého!

Doporučuje: