Sisukord:

HackerBox 0024: Nägemisülesanne: 11 sammu
HackerBox 0024: Nägemisülesanne: 11 sammu

Video: HackerBox 0024: Nägemisülesanne: 11 sammu

Video: HackerBox 0024: Nägemisülesanne: 11 sammu
Video: Hackerbox 36: snake clone 2024, November
Anonim
HackerBox 0024: nägemisülesanne
HackerBox 0024: nägemisülesanne

Vision Quest - sel kuul katsetavad HackerBoxi häkkerid arvutivisiooni ja servoliigutuste jälgimist. See juhend sisaldab teavet HackerBox #0024 -ga töötamiseks, mille saate siit hankida, kuni tarneid jätkub. Samuti, kui soovite saada sellist hackerboksi iga kuu otse oma postkasti, tellige see aadressil HackerBoxes.com ja liituge revolutsiooniga!

HackerBox 0024 teemad ja õpieesmärgid:

  • Arvuti nägemisega katsetamine
  • OpenCV (Computer Vision) seadistamine
  • Arduino Nano programmeerimine Arduino IDE -st
  • Servomootorite juhtimine Arduino Nano abil
  • Mehaanilise panni ja kallutussõlme kokkupanek
  • Panoraami ja kallutamise juhtimine mikrokontrolleriga
  • Näo jälgimise teostamine OpenCV abil

HackerBoxes on igakuine tellimuste kasti teenus DIY elektroonika ja arvutitehnoloogia jaoks. Oleme harrastajad, tegijad ja eksperimenteerijad. Me oleme unistuste unistajad. HACK PLANET!

1. samm: häkkerkast 0024: kasti sisu

HackerBox 0024: karbi sisu
HackerBox 0024: karbi sisu
  • HackerBoxes #0024 kogutav viitekaart
  • Kolme kronsteini panni- ja kallutussõlm
  • Kaks MG996R servot koos tarvikutega
  • Kaks alumiiniumist ümmargust servoühendust
  • Arduino Nano V3 - 5V, 16MHz, MicroUSB
  • Digikaamera koos USB -kaabliga
  • Kolm objektiivi universaalse klambriga
  • Meditsiinilise kontrolli pliiatsi tuli
  • Dupont Meeste/Naiste džemprid
  • MicroUSB kaabel
  • Eksklusiivne OpenCV kleebis
  • Eksklusiivne Dia de Muertose kleebis

Mõned muud asjad, mis aitavad:

  • Väike puitplaadi jääk kaamera aluse jaoks
  • Jootekolb, joodis ja põhilised jootetööriistad
  • Arvuti tarkvara tööriistade käitamiseks

Kõige tähtsam on see, et vajate seiklustunnet, isetegemise vaimu ja häkkerite uudishimu. Hardcore DIY elektroonika pole tühine tegevus ja me ei tee seda teie jaoks. Eesmärk on progress, mitte täiuslikkus. Kui te jätkate ja naudite seiklust, võib uue tehnoloogia õppimisest ja loodetavasti mõne projekti toimimisest saada suurt rahulolu. Soovitame teha iga sammu aeglaselt, pidades silmas üksikasju ja ärge kõhelge abi küsimast.

KORDUMA KÜSITLEVAD KÜSIMUSED: Meile meeldib kõigile HackerBoxi liikmetele tõesti suurt teene paluda. Enne toega ühenduse võtmist leidke mõni minut, et vaadata üle HackerBoxesi veebisaidi KKK. Kuigi me tahame ilmselgelt aidata kõiki liikmeid nii palju kui vaja, hõlmab enamik meie tugimeile e -kirju lihtsatest küsimustest, mida on KKK -s väga selgelt käsitletud. Tänan mõistmise eest!

2. samm: arvuti nägemine

Arvuti nägemine
Arvuti nägemine

Arvutinägemine on interdistsiplinaarne valdkond, mis käsitleb seda, kuidas arvutid saavad digitaalsetest piltidest või videotest kõrgetasemelist arusaamist. Inseneri seisukohast püüab arvuti nägemine automatiseerida ülesandeid, mida inimese visuaalne süsteem suudab teha. Teadusliku distsipliinina käsitleb arvutinägemine teooriat, mis põhineb piltidelt teavet ammutavatel kunstlikel süsteemidel. Pildiandmed võivad olla mitmel kujul, näiteks videojärjestused, mitmest kaamerast pärinevad vaated või mitmemõõtmelised andmed meditsiinilisest skannerist. Tehnoloogilise distsipliinina püüab arvutinägemine rakendada oma teooriaid ja mudeleid arvutinägemissüsteemide ehitamiseks. Arvutinägemise alamdomeenid hõlmavad stseeni rekonstrueerimist, sündmuste tuvastamist, videojälgimist, objektide tuvastamist, 3D-poosi hindamist, õppimist, indekseerimist, liikumise hindamist ja kujutise taastamist.

Huvitav on märkida, et arvutinägemust võib pidada arvutigraafika vastupidiseks.

Samm: töötlemine ja OpenCV

Töötlemine ja OpenCV
Töötlemine ja OpenCV

Töötlemine on paindlik tarkvara visandiraamat ja keel visuaalse kunsti kontekstis kodeerimise õppimiseks. Töötlemine on edendanud tarkvaraoskust kujutavas kunstis ja visuaalset kirjaoskust tehnoloogias. Seal on kümneid tuhandeid õpilasi, kunstnikke, disainereid, teadlasi ja harrastajaid, kes kasutavad töötlemist õppimiseks ja prototüüpimiseks.

OpenCV (Open Source Computer Vision Library) on avatud lähtekoodiga arvutite nägemise ja masinõppe tarkvararaamatukogu. OpenCV ehitati selleks, et pakkuda arvutinägemise rakendustele ühist infrastruktuuri ja kiirendada masina tajumise kasutamist kaubanduslikes toodetes. OpenCV raamatukogus on üle 2500 optimeeritud algoritmi, mis sisaldavad põhjalikku komplekti nii klassikalisi kui ka tipptasemel arvutinägemuse ja masinõppe algoritme. Neid algoritme saab kasutada nägude tuvastamiseks ja äratundmiseks, objektide tuvastamiseks, inimtegevuse liigitamiseks videotes, kaamera liikumise jälgimiseks, liikuvate objektide jälgimiseks jne.

Installige OpenCV menüüsse Fail> Näited menüüsse Töötlemine, valides „Lisa näiteid” ja seejärel vahekaardi „Teegid” alt, installides nii video- kui ka OpenCV -teegid. Näo põhilise jälgimise jaoks avage LiveCamTesti näide. Vaadake mõnda muud OpenCV töötlemise näidet siit.

Veel ressursse:

Arvutinägemusega alustamine on raamatuprojekt, mis pakub lihtsat sisenemiskohta arvutinägemusega loominguliseks katsetamiseks. See tutvustab arvuti nägemisprojektide loomiseks vajalikke koode ja kontseptsioone.

Arvuti nägemise programmeerimine Pythoni abil on O'Reilly raamat PCV -st, avatud lähtekoodiga Pythoni moodul arvuti nägemiseks.

OpenCV õppimine

Arvuti nägemine: algoritmid ja rakendused

OpenCV haldamine

Stanfordi kursus CS231n Konvolutsioonilised närvivõrgud visuaalseks äratundmiseks (16 videot)

Chris Urmson TED Talk Kuidas juhita auto teed näeb

Samm: Arduino Nano mikrokontrolleri platvorm

Arduino Nano mikrokontrolleri platvorm
Arduino Nano mikrokontrolleri platvorm

Me võime kasutada mis tahes tavalist mikrokontrollerite platvormi servode juhtimiseks meie pannil ja kallutataval kaamera kinnitusel. Arduino Nano on pinnale paigaldatav leivaplaadisõbralik miniatuurselt ehitatud Arduino plaat, millel on integreeritud USB. See on hämmastavalt täisfunktsionaalne ja seda on lihtne häkkida.

Funktsioonid:

  • Mikrokontroller: Atmel ATmega328P
  • Pinge: 5V
  • Digitaalsed I/O kontaktid: 14 (6 PWM)
  • Analoogsisendi tihvtid: 8
  • Alalisvool I/O kontakti kohta: 40 mA
  • Välkmälu: 32 KB (2 KB alglaaduri jaoks)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Kella kiirus: 16 MHz
  • Mõõdud: 17 x 43 mm

See konkreetne Arduino Nano variant on must Robotdyn disain. Liides on sisseehitatud MicroUSB-pordi kaudu, mis ühildub samade MicroUSB-kaablitega, mida kasutatakse paljude mobiiltelefonide ja tahvelarvutitega.

Arduino Nanos on sisseehitatud USB/jadasilda kiip. Selle konkreetse variandi puhul on sillakiip CH340G. Pange tähele, et erinevat tüüpi Arduino tahvlitel kasutatakse mitut tüüpi USB-/jadasilla kiipe. Need kiibid võimaldavad arvuti USB -pordil suhelda Arduino protsessorikiibi jadaliidesega.

Arvuti operatsioonisüsteem nõuab USB/jadakiibiga suhtlemiseks seadme draiverit. Juht võimaldab IDE -l suhelda Arduino plaadiga. Vajalik konkreetne seadme draiver sõltub nii operatsioonisüsteemi versioonist kui ka USB/jadakiibi tüübist. CH340 USB/jadakiipide jaoks on draiverid saadaval paljude operatsioonisüsteemide jaoks (UNIX, Mac OS X või Windows). CH340 tootja varustab neid draivereid siin.

Kui ühendate Arduino Nano esmakordselt arvuti USB -porti, peaks roheline toitetuli süttima ja varsti pärast seda, kui sinine LED hakkab aeglaselt vilkuma. See juhtub seetõttu, et Nano on eellaaditud programmiga BLINK, mis töötab uhiuuel Arduino Nano peal.

Samm: Arduino integreeritud arenduskeskkond (IDE)

Arduino integreeritud arenduskeskkond (IDE)
Arduino integreeritud arenduskeskkond (IDE)

Kui teil pole veel Arduino IDE -d installitud, saate selle alla laadida saidilt Arduino.cc

Kui soovite lisateavet Arduino ökosüsteemis töötamise kohta, soovitame tutvuda HackerBoxes Starter Workshopi juhistega.

Ühendage Nano MicroUSB -kaabliga ja kaabli teine ots arvuti USB -porti, käivitage Arduino IDE tarkvara, valige tööriistade> pordi alt IDE -s sobiv USB -port (tõenäoliselt nimi, millel on "wchusb")). Valige ka IDE -s tööriistade> tahvli alt "Arduino Nano".

Lõpuks laadige üles näidiskoodi tükk:

Fail-> Näited-> Põhitõed-> Vilgub

See on tegelikult kood, mis laaditi nanole ja see peaks praegu töötama, et sinine LED aeglaselt vilkuda. Seega, kui laadime selle näidiskoodi, ei muutu midagi. Selle asemel muudame koodi veidi.

Vaadates tähelepanelikult, näete, et programm lülitab LED -i sisse, ootab 1000 millisekundit (üks sekund), lülitab LED -i välja, ootab veel sekundit ja teeb siis kõik uuesti - igavesti.

Muutke koodi, muutes mõlemad laused "delay (1000)" väärtuseks "delay (100)". See muudatus paneb LED -i vilkuma kümme korda kiiremini, eks?

Laadime muudetud koodi nanosse, klõpsates nuppu UPLOAD (nooleikoon) vahetult muudetud koodi kohal. Vaadake allpool olekuteabe koodi: "kompileerimine" ja seejärel "üleslaadimine". Lõpuks peaks IDE näitama "Üleslaadimine lõpetatud" ja teie LED peaks vilkuma kiiremini.

Kui jah, siis palju õnne! Häkkisite just oma esimese manustatud koodi.

Kui teie kiire vilkumise versioon on laaditud ja töötab, siis miks mitte vaadata, kas saate koodi uuesti muuta, nii et LED hakkab kaks korda kiiresti vilkuma ja seejärel oodake paar sekundit enne kordamist? Proovi! Kuidas oleks mõne muu mustriga? Kui teil on soovitud tulemuse visualiseerimine, selle kodeerimine ja plaanipärase toimimise jälgimine õnnestunud, olete astunud tohutu sammu pädeva riistvarahäkkeriks saamise suunas.

6. samm: servomootorid

Servomootorid
Servomootorid

Servomootoreid juhitakse tavaliselt korduvate elektriliste impulsside seeriaga, kus impulsside laius näitab servo asukohta. Impulsi laiuse moduleeritud (PWM) juhtsignaali genereerib sageli tavaline mikrokontroller, näiteks Arduino.

Väikesed hobi servod, näiteks MG996R, on ühendatud tavalise kolmejuhtmelise ühenduse kaudu: kaks juhtmest alalisvoolu toiteallika jaoks ja üks juhtimpulsside kandmiseks. MG996R servode tööpinge on 4,8-7,2 VDC.

7. samm: panni- ja kallutusmehhanismi kokkupanek

Panni- ja kallutusmehhanismi kokkupanek
Panni- ja kallutusmehhanismi kokkupanek
  1. Tõmmake mõlemad MG996R servod kottidest välja ja jätke kaasatud tarvikud praegu kõrvale.
  2. Kinnitage alumiiniumist ümmargune servoühendus igale servole. Pange tähele, et sidurid on servodest eraldi kottides. Sidur sobib väga tihedalt. Alustuseks vajutage haakeseadist servoväljundi otsa ja keerake seejärel kruvi keskmisesse auku. Pingutage keerme, et sidur servoväljundile tõmmata.
  3. Pange tähele, et pan-kallutussõlme jaoks on kolm sulgu-kaks kasti ja üks U-klamber.
  4. Paigaldage üks karbiklambritest ühe servo alumiiniumringile. Me nimetame seda servot panneservoks. Suunake karbiklamber nii, et selle kesksein oleks vastu alumiiniumringi nii, et karbi klambri ülejäänud kaks seina jääksid pannil servast eemale. Kasutage karbiklambri keskmise seina keskmisi auke. See paigutus peaks võimaldama panni servol pärast selle käivitamist kinnitatud karbiklambri ümber pöörata.
  5. Asetage teine servo (kallutatav servo) kastiklambrisse, mis on kinnitatud pannil oleva servo alumiiniumringi külge. Kaldservo kinnitamiseks kasutage vähemalt kahte mutrit ja polti - üks mõlemal küljel.
  6. Hoides kinni U-klambrist, sisestage messingist "laager" U seest ühe suure pöördetugi kinnitusava kaudu.
  7. Asetage U-kronstein koos laagriga kaldservole, mis asub karbi kronsteini sees nii, et teine suur pöördev kinnitusava (see, millel pole laagrit) joonduks kaldservo alumiiniumringiga.
  8. Kinnitage U-kronstein kruvidega U-klambri ühel küljel asuvale alumiiniumringile.
  9. Keerake U-klambri teisel küljel üks kruvi läbi laagri ja selle sees oleva karbiklambri väikesesse auku. See peaks võimaldama U-klambril hiljem kaldservo ümber pöörata, kui kaldservo käivitatakse.

8. samm: panni- ja kallutussõlme paigaldamine

Panni- ja kallutussõlme paigaldamine
Panni- ja kallutussõlme paigaldamine
Panni- ja kallutussõlme paigaldamine
Panni- ja kallutussõlme paigaldamine

Ülejäänud karbiklambri saab kruvida väikese puitplaadi jäägi külge, et see toimiks kaamera alusena, nagu pildil näidatud. Lõpuks paigaldatakse pannil olev servo allesolevasse karpkonsooli, kasutades servo kinnitamiseks kronsteinile vähemalt kahte mutrit ja polti - üks mõlemal küljel.

9. samm: panni ja kallutussõlme ühendamine ja katsetamine

Ühendage juhtmed ja katsetage panni- ja kallutussõlme
Ühendage juhtmed ja katsetage panni- ja kallutussõlme

Servode juhtimiseks vastavalt skeemile on kõige kiirem lihtsalt servodelt algsed pistikud välja lõigata ja seejärel kasutada mõnda naissoost DuPonti hüppajaotsat, et saada signaal ja maandusjuhtmed Nano tihvtide külge.

Nanol pole 5 V toiteallikas piisavalt voolu, et toita servosid USB -st, seega on soovitatav kasutada täiendavat toiteallikat. See võib olla mis tahes vahemikus 4,8-7,2 volti. Näiteks neli AA patareid (seerias) töötavad kenasti. Pingivarustus või seintüügas on samuti hea valik.

Lihtne näide Arduino koodist, mis on siia lisatud kui PanTiltTest.ino, saab kasutada kahe servo juhtimise testimiseks Arduino IDE jadamonitorilt. Seadistage monitori edastuskiirus näitekoodis määratud 9600bps. Nurga väärtuste sisestamine vahemikus 0 kuni 180 kraadi paigutab servod vastavalt.

Lõpuks saab USB-kaameramooduli (või muu anduri) paigaldada jälgimisrakendustes kasutamiseks Pan-Tilt Assamblee U-klambri külge.

Samm: näo jälgimine OpenCV abil

Image
Image
Häkkida planeeti
Häkkida planeeti

Masina nägemise näo jälgimissüsteemi saab rakendada, ühendades plokkskeemil näidatud alamsüsteemid. Arduino jaoks mõeldud SerialServoControli eskiisi leiate järgmisest Sparkfuni õpetusest koos sellega seotud tutvustusega, kasutades inimese näo jälgimiseks OpenCV, töötlemise, Arduino, USB -kaamera ja pan/kallutussõlme. Demo kasutab kaamera ümberpaigutamiseks kahte servot, et hoida nägu videokaadris keskel isegi siis, kui kasutaja ruumis ringi liigub. Näiteks kood C#, vaadake CamBoti video GitHubi hoidlat.

11. samm: hävitage planeet

Kui teile on see juhendamine meeldinud ja soovite, et selline elektroonika- ja arvutitehnoloogiaprojektide kast saadetaks teile iga kuu otse postkasti, siis liituge meiega, tellides SIIT.

Võtke ühendust ja jagage oma edu allolevates kommentaarides või HackerBoxesi Facebooki lehel. Kindlasti andke meile teada, kui teil on küsimusi või vajate abi. Täname, et olete osa HackerBoxesist. Palun jätke oma ettepanekud ja tagasiside tulemas. HackerBoxes on teie kastid. Teeme midagi suurepärast!

Soovitan: