Tartalomjegyzék:

HackerBox 0024: Vision Quest: 11 lépés
HackerBox 0024: Vision Quest: 11 lépés

Videó: HackerBox 0024: Vision Quest: 11 lépés

Videó: HackerBox 0024: Vision Quest: 11 lépés
Videó: HackerBox #0024: Vision Quest 2024, Július
Anonim
HackerBox 0024: Vision Quest
HackerBox 0024: Vision Quest

Vision Quest - Ebben a hónapban a HackerBox Hackerek a Computer Vision és a Servo Motion Tracking segítségével kísérleteznek. Ez az útmutató tartalmazza a HackerBox #0024 használatához szükséges információkat, amelyeket itt átvehet, amíg a készlet tart. Továbbá, ha szeretne minden hónapban egy ilyen HackerBox -ot kapni a postafiókjába, akkor iratkozzon fel a HackerBoxes.com webhelyen, és csatlakozzon a forradalomhoz!

A HackerBox 0024 témái és tanulási céljai:

  • Kísérletezés a Computer Vision segítségével
  • Az OpenCV (Computer Vision) beállítása
  • Az Arduino Nano programozása az Arduino IDE programból
  • Servo motorok vezérlése az Arduino Nano segítségével
  • Mechanikus serpenyő és billenő szerelvény összeszerelése
  • A pásztázás és a billenés mozgásának vezérlése mikrokontrollerrel
  • Arckövetés végrehajtása OpenCV használatával

A HackerBoxes a barkács elektronika és a számítástechnika havi előfizetési doboz szolgáltatása. Hobbisták, gyártók és kísérletezők vagyunk. Mi vagyunk az álmok álmodói. HACK a bolygó!

1. lépés: HackerBox 0024: Doboz tartalma

HackerBox 0024: Doboz tartalma
HackerBox 0024: Doboz tartalma
  • HackerBoxes #0024 gyűjthető referenciakártya
  • Három konzolos pan és dönthető szerelvény
  • Két MG996R szervó tartozékokkal
  • Két alumínium kör alakú szervocsatlakozó
  • Arduino Nano V3 - 5V, 16MHz, MicroUSB
  • Digitális fényképezőgép szerelvény USB kábellel
  • Három lencse univerzális csíptetővel
  • Orvosi ellenőrző toll fénye
  • Dupont férfi/női jumperek
  • MicroUSB kábel
  • Exkluzív OpenCV matrica
  • Exkluzív Dia de Muertos matrica

Néhány más hasznos dolog:

  • Kis fából készült deszkadarab a fényképezőgép alapjához
  • Forrasztópáka, forrasztó és alapvető forrasztószerszámok
  • Számítógép szoftvereszközök futtatásához

A legfontosabb, hogy szüksége lesz a kalandra, a barkácsolás szellemére és a hacker kíváncsiságára. A hardcore barkács elektronika nem triviális tevékenység, és nem öntözjük le az Ön számára. A cél a haladás, nem a tökéletesség. Ha kitart és élvezi a kalandot, nagy elégedettség származhat az új technológia elsajátításából és remélhetőleg néhány projekt megvalósításából. Javasoljuk, hogy minden lépést lassan tegyen meg, figyelembe véve a részleteket, és ne habozzon segítséget kérni.

GYAKRAN FELTETT KÉRDÉSEK: Szeretnénk minden HackerBox -tagnak igazán nagy szívességet kérni. Kérjük, szánjon néhány percet a HackerBoxes weboldalán található GYIK áttekintésére, mielőtt felveszi a kapcsolatot az ügyfélszolgálattal. Bár nyilvánvalóan minden tagnak segíteni akarunk, amennyire szükséges, a támogató e -mailek többsége egyszerű kérdéseket tartalmaz, amelyekre a GYIK nagyon világosan válaszol. Köszönöm a megértésed!

2. lépés: Számítógépes látás

Számítógépes látás
Számítógépes látás

A számítógépes látás interdiszciplináris terület, amely azzal foglalkozik, hogy a számítógépek hogyan szereznek magas szintű megértést a digitális képekből vagy videókból. A mérnöki szemszögből a számítógépes látás célja az emberi vizuális rendszer által elvégezhető feladatok automatizálása. Tudományos diszciplínaként a számítógépes látás a mesterséges rendszerek mögött álló elmélettel foglalkozik, amelyek információt nyernek ki a képekből. A képadatok sokféle formát ölthetnek, például videósorozatokat, több kamerából származó nézeteket vagy többdimenziós adatokat egy orvosi szkennerből. Technológiai tudományágként a számítógépes látás elméleteit és modelljeit igyekszik alkalmazni a számítógépes látórendszerek építésére. A számítógépes látás alterületei közé tartozik a jelenet rekonstrukciója, esemény észlelése, videó követés, objektumfelismerés, 3D pózbecslés, tanulás, indexelés, mozgásbecslés és kép helyreállítás.

Érdekes megjegyezni, hogy a számítógépes látás a számítógépes grafika inverzének tekinthető.

3. lépés: Feldolgozás és OpenCV

Feldolgozás és OpenCV
Feldolgozás és OpenCV

A Processing egy rugalmas szoftver vázlatfüzet, és egy nyelv a vizuális művészetek összefüggésében a kódolás elsajátításához. A feldolgozás elősegítette a szoftver -írástudást a vizuális művészeteken belül és a vizuális műveltséget a technológián belül. Több tízezer diák, művész, tervező, kutató és hobbista van, akik a Processing -et tanulásra és prototípus -készítésre használják.

Az OpenCV (Open Source Computer Vision Library) egy nyílt forráskódú számítógépes látás- és gépi tanulási szoftverkönyvtár. Az OpenCV -t azért hozták létre, hogy közös infrastruktúrát biztosítson a számítógépes látástechnikai alkalmazások számára, és felgyorsítsa a gépi észlelés használatát a kereskedelmi termékekben. Az OpenCV könyvtár több mint 2500 optimalizált algoritmust tartalmaz, amelyek a klasszikus és a legmodernebb számítógépes látás és gépi tanulási algoritmusok átfogó készletét tartalmazzák. Ezek az algoritmusok használhatók arcok észlelésére és felismerésére, tárgyak azonosítására, emberi cselekvések videókba való osztályozására, kamera mozgásának nyomon követésére, mozgó tárgyak nyomon követésére stb.

Telepítse az OpenCV -t a Feldolgozás menüpontban a Fájl> Példák menüből, válassza a „Példák hozzáadása” lehetőséget, majd a Könyvtárak lapon a Video és az OpenCV könyvtárak telepítését. Nyissa meg a LiveCamTest példát az alapvető arckövetéshez. Nézzen meg néhány más OpenCV feldolgozási példát itt.

További források:

A Computer Vision első lépései egy könyvprojekt, amely egyszerű belépési pontot kínál a számítógépes látással való kreatív kísérletezéshez. Bemutatja a számítógépes látásprojektek létrehozásához szükséges kódot és fogalmakat.

A Computer Vision programozása Python segítségével egy O'Reilly könyv PCV -ről, egy nyílt forráskódú Python modul a számítógépes látáshoz.

Az OpenCV tanulása

Számítógépes látás: algoritmusok és alkalmazások

Az OpenCV elsajátítása

Stanford Course CS231n Convolutional Neural Networks for Visual Recognition (16 videó)

Chris Urmson TED Talk Hogyan lát egy vezető nélküli autó az utat

4. lépés: Arduino Nano mikrokontroller platform

Arduino Nano mikrokontroller platform
Arduino Nano mikrokontroller platform

Bármelyik közös mikrovezérlő platformot használhatjuk a szervó vezérléséhez serpenyőbe és dönthető kamerába. Az Arduino Nano egy felületre szerelhető, kenyérsütőlap-barát, miniatürizált Arduino-kártya beépített USB-vel. Elképesztően teljes értékű és könnyen feltörhető.

Jellemzők:

  • Mikrokontroller: Atmel ATmega328P
  • Feszültség: 5V
  • Digitális I/O érintkezők: 14 (6 PWM)
  • Analóg bemeneti csapok: 8
  • DC áram I/O tűnként: 40 mA
  • Flash memória: 32 KB (2 KB a rendszerbetöltő számára)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Óra sebesség: 16 MHz
  • Méretek: 17mm x 43mm

Az Arduino Nano ezen különleges változata a fekete Robotdyn kivitel. Az interfész egy beépített MicroUSB porton keresztül történik, amely kompatibilis a sok mobiltelefonnal és táblagéppel használt MicroUSB kábelekkel.

Az Arduino Nanos beépített USB/soros híd chipet tartalmaz. Ezen a változaton a hídchip a CH340G. Ne feledje, hogy különféle típusú USB/soros híd chipeket használnak a különböző típusú Arduino táblákon. Ezek a chipek lehetővé teszik, hogy a számítógép USB -portja kommunikáljon az Arduino processzor chipjének soros interfészével.

A számítógép operációs rendszeréhez eszközillesztő szükséges, hogy kommunikáljon az USB/soros lapkával. A meghajtó lehetővé teszi az IDE számára, hogy kommunikáljon az Arduino táblával. A szükséges eszközillesztő az operációs rendszer verziójától és az USB/soros chip típusától is függ. A CH340 USB/soros chipekhez számos operációs rendszerhez (UNIX, Mac OS X vagy Windows) állnak rendelkezésre illesztőprogramok. A CH340 gyártója itt látja el az illesztőprogramokat.

Amikor először csatlakoztatja az Arduino Nano -t a számítógép USB -portjához, a zöld tápellátás jelzőfénynek ki kell gyulladnia, és röviddel azután, hogy a kék LED lassan villogni kezd. Ez azért van így, mert a Nano előre telepítve van a BLINK programmal, amely a vadonatúj Arduino Nano készüléken fut.

5. lépés: Arduino integrált fejlesztői környezet (IDE)

Arduino integrált fejlesztési környezet (IDE)
Arduino integrált fejlesztési környezet (IDE)

Ha még nincs telepítve az Arduino IDE, akkor letöltheti az Arduino.cc webhelyről

Ha további bevezető információkat szeretne az Arduino ökoszisztémában való munkavégzéshez, javasoljuk, hogy nézze meg a HackerBoxes Starter Workshop utasításait.

Csatlakoztassa a Nano -t a MicroUSB -kábelhez, a kábel másik végét pedig a számítógép USB -portjához, indítsa el az Arduino IDE szoftvert, válassza ki a megfelelő USB -portot az IDE -ben az Eszközök> port alatt (valószínűleg egy "wchusb" névvel). Válassza ki az "Arduino Nano" lehetőséget is az IDE -ben az eszközök> tábla alatt.

Végül töltsön fel egy példakódot:

Fájl-> Példák-> Alapok-> Blink

Ez valójában az a kód, amelyet előre betöltöttek a Nano -ra, és most futnia kell, hogy lassan villogjon a kék LED. Ennek megfelelően, ha betöltjük ezt a példakódot, semmi sem változik. Ehelyett módosítsuk egy kicsit a kódot.

Ha alaposan szemügyre veszi, láthatja, hogy a program bekapcsolja a LED -et, vár 1000 ezredmásodpercet (egy másodperc), kikapcsolja a LED -et, vár még egy másodpercet, majd mindent újra - örökké.

Módosítsa a kódot úgy, hogy mindkét "delay (1000)" utasítást "delay (100)" értékre változtatja. Ez a módosítás azt eredményezi, hogy a LED tízszer gyorsabban villog, nem?

Töltsük be a módosított kódot a Nano -ba, kattintson a FELTÖLTÉS gombra (a nyíl ikon) közvetlenül a módosított kód felett. Az állapotinformációkért nézze meg a kód alatt: "fordítás", majd "feltöltés". Végül az IDE -nek a „Feltöltés kész” feliratot kell jeleznie, és a LED -nek gyorsabban kell villognia.

Ha igen, gratulálok! Most törte fel az első beágyazott kódrészletet.

Ha a gyors villogás verziója betöltődött és fut, miért nem nézi meg, hogy megváltoztathatja-e a kódot, hogy a LED kétszer gyorsan villogjon, majd várjon néhány másodpercet, mielőtt megismétli? Megpróbál! Mit szólnál más mintákhoz? Miután sikerült elképzelni a kívánt eredményt, kódolni és megfigyelni, hogy a tervek szerint működik -e, hatalmas lépést tett annak érdekében, hogy kompetens hardverhackerré váljon.

6. lépés: Szervomotorok

Szervomotorok
Szervomotorok

A szervomotorokat általában ismétlődő elektromos impulzusok vezérlik, ahol az impulzusok szélessége jelzi a szervó helyzetét. Az impulzusszélesség modulált (PWM) vezérlőjelet gyakran egy közös mikrokontroller, például egy Arduino generálja.

A kis hobbi szervók, mint például az MG996R, szabványos háromvezetékes csatlakozón keresztül csatlakoznak: két vezeték az egyenáramú tápegységhez és egy vezeték a vezérlőimpulzusok szállításához. Az MG996R szervók üzemi feszültségtartománya 4,8-7,2 VDC.

7. lépés: A serpenyő és billenő mechanizmus összeszerelése

A serpenyő és billenő mechanizmus összeszerelése
A serpenyő és billenő mechanizmus összeszerelése
  1. Húzza ki mindkét MG996R szervót a táskájából, és egyelőre tegye félre a mellékelt tartozékokat.
  2. Csatlakoztasson egy alumínium, kör alakú szervocsatlakozót minden szervóhoz. Ne feledje, hogy a csatlakozók külön zsákokban érkeznek a szervókból. A csatoló nagyon szorosan illeszkedik. Kezdje azzal, hogy a csatlakozót a szervokimenet végére nyomja, majd csavarjon be egy csavart a középső lyukba. Húzza meg a menetet, hogy a csatlakozót a szervokimenetre húzza.
  3. Vegye figyelembe, hogy a pan-dönthető szerelvényhez három konzol van-két dobozkonzol és egy U-tartó.
  4. Szerelje fel az egyik dobozkonzolt az egyik szervó alumínium körére. Ezt a szervót pan servo -nak fogjuk nevezni. Fordítsa a doboztartót középső falával az alumínium körhöz úgy, hogy a doboz konzoljának másik két fala a serpenyő szervójától elfelé nézzen. Használja a középső lyukakat a doboz konzoljának középső falán. Ennek az elrendezésnek lehetővé kell tennie, hogy a serpenyőszervó működtetése után forgassa körül a doboz konzolját.
  5. Helyezze a másik szervót (dönthető szervo) a dobozba, amely a serpenyő szervo alumínium köréhez van rögzítve. Használjon legalább két anyát és csavart a billenő szervó rögzítéséhez - egyet mindkét oldalon.
  6. Az U-tartót fogva helyezze be a sárgaréz "csapágyat" az U belsejéből az egyik nagy forgó rögzítőfuraton keresztül.
  7. Helyezze az U-tartót a csapágyakkal a doboz konzoljában található billentő szervóra úgy, hogy a másik nagy forgó rögzítőnyílás (a csapágy nélküli) illeszkedjen a dönthető szervó alumínium köréhez.
  8. Csavarokkal rögzítse az U-konzolt az U-tartó egyik oldalán található alumínium körhöz.
  9. Az U-konzol másik oldalán húzzon meg egyetlen csavart a csapágyon és a dobozkonzol kis lyukán belül. Ennek lehetővé kell tennie, hogy az U-tartó később forogjon a dobozkonzol körül, amikor a dönthető szervót működtetik.

8. lépés: Az edény- és billenőegység felszerelése

Az edény- és billenőegység felszerelése
Az edény- és billenőegység felszerelése
Az edény- és billenőegység felszerelése
Az edény- és billenőegység felszerelése

A fennmaradó doboztartó csavarozható egy kisméretű fatábladarabra, amely a képen látható módon fényképezőgép alapjául szolgál. Végül a serpenyőszervót a hátralévő dobozkonzolba kell felszerelni, legalább két anya és csavar segítségével, hogy rögzítse a szervót a konzolhoz - egyet mindkét oldalon.

9. lépés: Huzalozza fel és tesztelje a serpenyő és billenő szerelvényt

Csatlakoztassa és tesztelje a serpenyő és billenő szerelvényt
Csatlakoztassa és tesztelje a serpenyő és billenő szerelvényt

A szervók huzalozása a vázlat szerint a leggyorsabb, ha csak levágja az eredeti csatlakozóelemeket a szervókról, majd néhány női DuPont áthidaló végét használva rögzíti a jelet és a földelő vezetékeket a Nano csapokhoz.

A Nano nem rendelkezik elegendő árammal az 5 V -os tápegységről a szervók USB -ről történő táplálásához, ezért kiegészítő tápellátás ajánlott. Ez bármi lehet a 4,8-7,2 voltos tartományban. Például négy AA elem (sorban) szépen fog működni. A padkellátás vagy a szemölcs is jó választás.

Az itt található PanTiltTest.ino néven csatolt egyszerű Arduino -kód használható a két szervó vezérlésének tesztelésére az Arduino IDE soros monitoráról. Állítsa be a monitor átviteli sebességét, hogy megfeleljen a példakódban beállított 9600 bps sebességnek. A 0 és 180 fok közötti szögértékek megadása ennek megfelelően pozícionálja a szervókat.

Végül az USB kamera modult (vagy más érzékelőt) fel lehet szerelni a Pan-Tilt szerelvény U-konzoljára követési alkalmazásokban való használatra.

10. lépés: Arckövetés az OpenCV használatával

Image
Image
Hack the Planet
Hack the Planet

A gépi látás arckövető rendszer az alrendszerek kombinálásával valósítható meg, ahogyan azt a tömbvázlat mutatja. A SerialServoControl vázlata az Arduino számára megtalálható a következő Sparkfun oktatóanyagban, az OpenCV, Processing, Arduino, USB kamera és Pan/Tilt szerelvényt használó kapcsolódó bemutatóval az emberi arc követésére. A bemutató két szervót használ a kamera áthelyezésére annak érdekében, hogy az arc középen maradjon a videókeretben, még akkor is, ha a felhasználó mozog a szobában. Például a C#kódban, nézze meg a CamBot videó GitHub tárházát.

11. lépés: Hack the Planet

Ha élvezte ezt az utasítást, és szeretné, ha minden hónapban egy doboz elektronikai és számítástechnikai projektet szállítanának közvetlenül a postafiókjába, kérjük, csatlakozzon hozzánk, ha FELIRATKOZIK ITT.

Vegye fel a kapcsolatot és ossza meg sikerét az alábbi megjegyzésekben vagy a HackerBoxes Facebook -oldalán. Mindenképpen tudassa velünk, ha kérdése van, vagy segítségre van szüksége. Köszönjük, hogy a HackerBoxes tagja lehetsz. Kérjük, továbbra is fogadja javaslatait és visszajelzéseit. A HackerBoxok a TE dobozaid. Készítsünk valami nagyszerűt!

Ajánlott: