Obsah:

HackerBox 0024: Vision Quest: 11 krokov
HackerBox 0024: Vision Quest: 11 krokov

Video: HackerBox 0024: Vision Quest: 11 krokov

Video: HackerBox 0024: Vision Quest: 11 krokov
Video: Vlogmas 10: Hackerbox time 2024, November
Anonim
HackerBox 0024: Vision Quest
HackerBox 0024: Vision Quest

Vision Quest - Tento mesiac hackeri HackerBox experimentujú so sledovaním pohybu v počítači a servom. Tento návod obsahuje informácie o práci s HackerBox #0024, ktoré si môžete vyzdvihnúť tu do vypredania zásob. Tiež, ak by ste chceli dostávať HackerBox takto priamo do vašej schránky každý mesiac, prihláste sa na odber HackerBoxes.com a zapojte sa do revolúcie!

Témy a vzdelávacie ciele pre HackerBox 0024:

  • Experimentovanie s počítačovým videním
  • Nastavenie OpenCV (Computer Vision)
  • Programovanie Arduino Nano z Arduino IDE
  • Ovládanie servomotorov pomocou Arduino Nano
  • Zostavenie mechanickej zostavy otáčania a nakláňania
  • Ovládanie pohybu Pan a Tilt pomocou mikrokontroléra
  • Vykonávanie sledovania tváre pomocou OpenCV

HackerBoxes je služba mesačného predplatného pre elektroniku a počítačovú technológiu pre domácich majstrov. Sme nadšenci, tvorcovia a experimentátori. Sme snílkami snov. Hacknite planétu!

Krok 1: HackerBox 0024: obsah balenia

HackerBox 0024: Obsah balenia
HackerBox 0024: Obsah balenia
  • Zberateľská referenčná karta HackerBoxes #0024
  • Zostava otáčania a nakláňania s tromi konzolami
  • Dve serva MG996R s príslušenstvom
  • Dva hliníkové kruhové servopohony
  • Arduino Nano V3 - 5V, 16MHz, MicroUSB
  • Zostava digitálneho fotoaparátu s káblom USB
  • Tri šošovky s univerzálnym klipovým držiakom
  • Lekárske inšpekčné pero
  • Dupontské prepojky muž/žena
  • MicroUSB kábel
  • Exkluzívny obtlačok OpenCV
  • Exkluzívna samolepka Dia de Muertos

Pomôžu aj ďalšie veci:

  • Malý šrot z drevenej dosky na základňu fotoaparátu
  • Spájkovačka, spájkovačka a základné spájkovacie nástroje
  • Počítač na spustenie softvérových nástrojov

A čo je najdôležitejšie, budete potrebovať zmysel pre dobrodružstvo, kutilského ducha a hackerskú zvedavosť. Hardcore DIY elektronika nie je triviálna záležitosť a my ju pre vás neznižujeme. Cieľom je pokrok, nie dokonalosť. Keď vytrváte a užívate si dobrodružstvo, veľká spokojnosť sa dá odvodiť z učenia sa novej technológie a dúfajme, že sa podarí realizovať niektoré projekty. Odporúčame urobiť každý krok pomaly, dbať na detaily a nikdy neváhať požiadať o pomoc.

ČASTO KLADENÉ OTÁZKY: Radi by sme všetkých členov HackerBox poprosili o skutočne veľkú láskavosť. Pred kontaktovaním podpory si nájdite pár minút na prečítanie častých otázok na webovej stránke HackerBoxes. Aj keď chceme očividne pomôcť všetkým členom tak často, ako je to potrebné, väčšina našich e -mailov s podporou obsahuje jednoduché otázky, ktoré sú veľmi často uvedené v častých otázkach. Ďakujem za pochopenie!

Krok 2: Počítačové videnie

Počítačové videnie
Počítačové videnie

Počítačové videnie je interdisciplinárny odbor, ktorý sa zaoberá tým, ako počítače získavajú porozumenie na vysokej úrovni z digitálnych obrázkov alebo videí. Z pohľadu inžinierstva sa počítačové videnie snaží automatizovať úlohy, ktoré môže ľudský vizuálny systém vykonávať. Počítačové videnie sa ako vedná disciplína zaoberá teóriou umelých systémov, ktoré získavajú informácie z obrázkov. Obrazové údaje môžu mať mnoho foriem, napríklad videosekvencie, pohľady z viacerých kamier alebo viacrozmerné údaje z lekárskeho skenera. Počítačové videnie sa ako technologická disciplína snaží uplatniť svoje teórie a modely na konštrukciu systémov počítačového videnia. Subdomény počítačového videnia zahŕňajú rekonštrukciu scény, detekciu udalostí, sledovanie videa, rozpoznávanie objektov, odhad 3D pózy, učenie, indexovanie, odhad pohybu a obnovu obrazu.

Je zaujímavé poznamenať, že počítačové videnie môže byť považované za inverzné k počítačovej grafike.

Krok 3: Spracovanie a OpenCV

Spracovanie a OpenCV
Spracovanie a OpenCV

Processing je flexibilný softvérový skicár a jazyk na naučenie sa kódovať v kontexte výtvarného umenia. Spracovanie podporilo softvérovú gramotnosť vo výtvarnom umení a vizuálnu gramotnosť v rámci technológie. Existujú desaťtisíce študentov, výtvarníkov, dizajnérov, výskumníkov a nadšencov, ktorí používajú Processing na učenie a prototypovanie.

OpenCV (Open Source Computer Vision Library) je open source knižnica softvéru pre počítačové videnie a strojové učenie. OpenCV bol vytvorený tak, aby poskytoval spoločnú infraštruktúru pre aplikácie počítačového videnia a aby urýchlil používanie strojového vnímania v komerčných produktoch. Knižnica OpenCV má viac ako 2500 optimalizovaných algoritmov, ktoré obsahujú komplexnú sadu klasických aj najmodernejších algoritmov počítačového videnia a strojového učenia. Tieto algoritmy je možné použiť na detekciu a rozpoznanie tvárí, identifikáciu objektov, klasifikáciu ľudských činov vo videách, sledovanie pohybov kamery, sledovanie pohybujúcich sa objektov a podobne.

Nainštalujte OpenCV do Processing z ponuky Súbor> Príklady výberom „Pridať príklady“a potom na karte Knižnice nainštalujte knižnice videa aj OpenCV. Otvorte si príklad LiveCamTest na základné sledovanie tváre. Pozrite sa na ďalšie príklady OpenCV na spracovanie tu.

Ďalšie zdroje:

Začíname s počítačovým videním je knižný projekt, ktorý poskytuje ľahký vstupný bod pre kreatívne experimentovanie s počítačovým videním. Predstavuje kód a koncepty potrebné na výstavbu projektov počítačového videnia.

Programming Computer Vision with Python je kniha O'Reilly o PCV, otvorenom zdrojovom module Pythonu pre počítačové videnie.

Učenie OpenCV

Počítačová vízia: Algoritmy a aplikácie

Ovládanie OpenCV

Kurz Stanford CS231n Konvolučné neurónové siete na vizuálne rozpoznávanie (16 videí)

Chris Urmson TED Talk Ako auto bez vodiča vidí cestu

Krok 4: Platforma mikrokontroléra Arduino Nano

Platforma mikrokontroléra Arduino Nano
Platforma mikrokontroléra Arduino Nano

Môžeme použiť akúkoľvek bežnú platformu mikroradičov na ovládanie serv v našom panvovom a výklopnom držiaku kamery. Arduino Nano je miniaturizovaná doska Arduino s povrchovou montážou, ktorá je vhodná na doštičky a má integrované USB. Je úžasne plnohodnotný a ľahko sa hackuje.

Vlastnosti:

  • Mikrokontrolér: Atmel ATmega328P
  • Napätie: 5V
  • Digitálne I/O piny: 14 (6 PWM)
  • Analógové vstupné piny: 8
  • Jednosmerný prúd na pin I/O: 40 mA
  • Flash pamäť: 32 KB (2 kB pre bootloader)
  • Pamäť SRAM: 2 kB
  • EEPROM: 1 kB
  • Taktovacia frekvencia: 16 MHz
  • Rozmery: 17 mm x 43 mm

Tento konkrétny variant Arduino Nano je čierny dizajn Robotdyn. Rozhranie je prostredníctvom integrovaného portu MicroUSB, ktorý je kompatibilný s rovnakými káblami MicroUSB, aké sa používajú s mnohými mobilnými telefónmi a tabletmi.

Arduino Nanos má vstavaný čip USB/sériový most. V tomto konkrétnom variante je mostíkovým čipom CH340G. Všimnite si toho, že na rôznych typoch dosiek Arduino existujú rôzne ďalšie typy mostíkových čipov USB/Serial. Tieto čipy umožňujú USB portu vášho počítača komunikovať so sériovým rozhraním na procesorovom čipe Arduino.

Operačný systém počítača vyžaduje na komunikáciu s USB/sériovým čipom ovládač zariadenia. Ovládač umožňuje IDE komunikovať s doskou Arduino. Potrebný konkrétny ovládač zariadenia závisí od verzie operačného systému a tiež od typu USB/sériového čipu. Pre USB/sériové čipy CH340 sú k dispozícii ovládače pre mnoho operačných systémov (UNIX, Mac OS X alebo Windows). Výrobca CH340 dodáva tieto ovládače tu.

Keď prvýkrát zapojíte Arduino Nano do USB portu počítača, mala by sa rozsvietiť zelená kontrolka napájania a krátko po tom, čo začne modrá LED pomaly blikať. Stáva sa to preto, že v Nano je vopred nainštalovaný program BLINK, ktorý beží na úplne novom Arduino Nano.

Krok 5: Integrované vývojové prostredie Arduino (IDE)

Integrované vývojové prostredie Arduino (IDE)
Integrované vývojové prostredie Arduino (IDE)

Ak ešte nemáte nainštalované Arduino IDE, môžete si ho stiahnuť z Arduino.cc

Ak by ste chceli ďalšie úvodné informácie o práci v ekosystéme Arduino, odporúčame vám prečítať si pokyny pre štartovací workshop HackerBoxes.

Zapojte Nano do kábla MicroUSB a druhý koniec kábla do USB portu na počítači, spustite softvér Arduino IDE, vyberte príslušný USB port v IDE pod portom tools> port (pravdepodobne názov, v ktorom je „wchusb“)). Tiež zvoľte "Arduino Nano" v IDE pod nástrojmi> doska.

Nakoniec načítajte ukážkový kód:

Súbor-> Príklady-> Základy-> Žmurknutie

Toto je vlastne kód, ktorý bol vopred načítaný do Nano a mal by práve bežať, aby pomaly blikal modrý indikátor LED. Ak teda načítame tento ukážkový kód, nič sa nezmení. Namiesto toho trochu upravme kód.

Pri pohľade zblízka môžete vidieť, že program zapne LED diódu, počká 1 000 milisekúnd (jednu sekundu), vypne LED diódu, počká ďalšiu sekundu a potom to urobí znova - navždy.

Upravte kód zmenou oboch príkazov „oneskorenie (1000)“na „oneskorenie (100)“. Táto úprava spôsobí, že LED dióda bliká desaťkrát rýchlejšie, však?

Načítajme upravený kód do Nano kliknutím na tlačidlo UPLOAD (ikona šípky) tesne nad upraveným kódom. Informácie o stave nájdete nižšie pod kódom: „kompilácia“a potom „nahrávanie“. Nakoniec by IDE malo indikovať „nahrávanie je dokončené“a kontrolka LED by mala blikať rýchlejšie.

Ak áno, gratulujeme! Práve ste hackli svoj prvý kus vloženého kódu.

Keď sa už verzia s rýchlym blikaním načíta a spustí, prečo sa nezobrazí, či môžete kód znova zmeniť, aby LED dvakrát rýchlo zablikala, a potom počkajte niekoľko sekúnd, kým to zopakujete? Pokúsiť sa! Čo hovoríte na ďalšie vzory? Keď sa vám podarí vizualizovať požadovaný výsledok, kódovať ho a pozorovať, aby fungoval podľa plánu, urobili ste obrovský krok k tomu, aby ste sa stali kompetentným hardvérovým hackerom.

Krok 6: Servomotory

Servomotory
Servomotory

Servomotory sú spravidla riadené sériou opakujúcich sa elektrických impulzov, kde šírka impulzov označuje polohu serva. Riadiaci signál s moduláciou šírky impulzov (PWM) je často generovaný bežným mikrokontrolérom, akým je Arduino.

Malé hobby serva, ako napríklad MG996R, sú pripojené prostredníctvom štandardného trojvodičového pripojenia: dva vodiče pre jednosmerný prúd a jeden vodič pre prenos riadiacich impulzov. Serva MG996R majú napätie v prevádzkovom napätí 4,8-7,2 VDC.

Krok 7: Zostavenie mechanizmu otáčania a nakláňania

Zostavenie mechanizmu otáčania a nakláňania
Zostavenie mechanizmu otáčania a nakláňania
  1. Vytiahnite obidve serva MG996R z tašky a odložte zatiaľ dodané príslušenstvo.
  2. Na každé servo pripevnite hliníkovú kruhovú spojku serva. Všimnite si toho, že spojky sa dodávajú v oddelených vreckách od serva. Spojka je veľmi tesná. Začnite zatlačením spojky na koniec výstupu serva a potom zaskrutkujte skrutku do stredového otvoru. Utiahnutím závitu natiahnite spojku na výstup serva.
  3. Všimnite si toho, že pre zostavu naklápania existujú tri konzoly-dve krabicové konzoly a jedna U-konzola.
  4. Namontujte jednu z krabicových konzol na hliníkový kruh pre jedno zo serv. Toto servo budeme nazývať panva. Orientujte konzolu boxu stredovou stenou na hliníkový kruh tak, aby ostatné dve steny konzoly boxu smerovali preč od serva. Použite stredové otvory na strednej stene konzoly boxu. Toto usporiadanie by malo umožniť panvovému servu otáčať priloženým držiakom boxu po jeho uvedení do činnosti.
  5. Umiestnite druhé servo (naklápacie servo) do konzoly boxu, ktorá je pripevnená k hliníkovému kruhu serva. Na upevnenie naklápacieho servopohonu použite najmenej dve matice a skrutky - jednu na každej strane.
  6. Držte U-držiak a vložte mosadzné „ložisko“zvnútra U cez jeden z veľkých montážnych otvorov pre čap.
  7. Umiestnite U-držiak s ložiskom na naklápacie servo, ktoré je vo vnútri držiaka boxu tak, aby sa druhý veľký montážny otvor pre čap (ten bez ložiska) vyrovnal s hliníkovým kruhom na naklápacom serve.
  8. Pomocou skrutiek pripevnite konzolu U na hliníkový kruh na jednej strane konzoly U.
  9. Na druhej strane U-držiaka utiahnite jednu skrutku cez ložisko a do malého otvoru v držiaku krabice, ktorý je vnútri. To by malo umožniť otáčanie U-držiaka okolo konzoly boxu neskôr, keď je aktivované naklápacie servo.

Krok 8: Inštalácia zostavy posúvania a nakláňania

Montáž zostavy naklápania a nakláňania
Montáž zostavy naklápania a nakláňania
Montáž zostavy naklápania a nakláňania
Montáž zostavy naklápania a nakláňania

Zostávajúcu škatuľu je možné priskrutkovať k malému šrotu z drevenej dosky a slúžiť ako základňa kamery, ako je znázornené na obrázku. Nakoniec sa panvové servo namontuje do zostávajúcej konzoly skrinky pomocou najmenej dvoch matíc a skrutiek, ktorými sa servo pripevní k držiaku - na každej strane jeden.

Krok 9: Pripojte a vyskúšajte zostavu otáčania a nakláňania

Pripojte a vyskúšajte zostavu otáčania a nakláňania
Pripojte a vyskúšajte zostavu otáčania a nakláňania

Na zapojenie serva podľa schémy je najrýchlejšie jednoducho odrezať pôvodné zásuvkové konektory zo serva a potom použiť niektoré koncové prepojky DuPont na získanie signálu a uzemňovacích línií pripojených k nano kolíkom.

Nano nemá na 5V zdroji dostatok prúdu na napájanie serv z USB, preto sa odporúča prídavné napájanie. Môže to byť čokoľvek v rozsahu 4,8-7,2 voltov. Napríklad štyri AA batérie (v sérii) budú fungovať dobre. Dobrou voľbou je tiež dodávka na lavicu alebo bradavica.

Jednoduchý príklad kódu Arduino, ktorý je tu priložený ako PanTiltTest.ino, je možné použiť na testovanie ovládania dvoch serv zo sériového monitora na Arduino IDE. Nastavte prenosovú rýchlosť monitora tak, aby sa zhodovala s 9600bps nastavenými v ukážkovom kóde. Zadaním hodnôt uhla medzi 0 a 180 stupňami sa príslušne umiestnia serva.

Nakoniec môže byť USB kamerový modul (alebo iný snímač) namontovaný na držiak U zostavy výklopného zariadenia na použitie v sledovacích aplikáciách.

Krok 10: Sledovanie tváre s OpenCV

Image
Image
Hacknite planétu
Hacknite planétu

Systém sledovania tváre pomocou strojového videnia je možné implementovať kombináciou subsystémov, ako je znázornené na blokovom diagrame. Skicu SerialServoControl pre Arduino nájdete v nasledujúcom návode na Sparkfun spolu so súvisiacou ukážkou pomocou OpenCV, Processing, Arduino, USB kamery a zostavy Pan/Tilt na sledovanie ľudskej tváre. Ukážka používa dve servá na zmenu polohy kamery, aby bola tvár v strede videa, aj keď sa používateľ pohybuje po miestnosti. Napríklad kód v C#, pozrite sa na úložisko GitHub pre video CamBot.

Krok 11: Hacknite planétu

Ak sa vám tento návod páčil a chceli by ste, aby sa nám každý mesiac doručovala krabica elektronických a počítačových projektov priamo do vašej schránky, pripojte sa k nám PRIHLÁSENÍM TU.

Oslovte a podeľte sa o svoj úspech v nižšie uvedených komentároch alebo na facebookovej stránke HackerBoxes. Ak máte akékoľvek otázky alebo potrebujete s čímkoľvek pomôcť, určite nám dajte vedieť. Ďakujeme, že ste súčasťou HackerBoxes. Nechajte si svoje návrhy a spätnú väzbu aj naďalej. HackerBoxes sú VAŠE škatule. Urobme niečo skvelé!

Odporúča: