Satura rādītājs:

HackerBox 0024: Vision Quest: 11 soļi
HackerBox 0024: Vision Quest: 11 soļi

Video: HackerBox 0024: Vision Quest: 11 soļi

Video: HackerBox 0024: Vision Quest: 11 soļi
Video: Vlogmas 10: Hackerbox time 2024, Jūlijs
Anonim
HackerBox 0024: Vision Quest
HackerBox 0024: Vision Quest

Vision Quest - Šomēnes HackerBox Hackers eksperimentē ar Computer Vision un Servo Motion Tracking. Šajā pamācībā ir ietverta informācija darbam ar HackerBox #0024, kuru varat iegūt šeit, kamēr beidzas krājumi. Turklāt, ja vēlaties katru mēnesi saņemt šādu HackerBox tieši savā pastkastē, lūdzu, abonējiet vietni HackerBoxes.com un pievienojieties revolūcijai!

HackerBox 0024 tēmas un mācību mērķi:

  • Eksperimentēšana ar datoru redzi
  • OpenCV (Computer Vision) iestatīšana
  • Arduino Nano programmēšana no Arduino IDE
  • Servo motoru vadīšana ar Arduino Nano
  • Mehāniskās pannas un slīpuma montāža
  • Panoramēšanas un noliekšanas kustības kontrole ar mikrokontrolleru
  • Sejas izsekošanas veikšana, izmantojot OpenCV

HackerBoxes ir ikmēneša abonēšanas kastes pakalpojums DIY elektronikai un datortehnoloģijai. Mēs esam hobiji, veidotāji un eksperimentētāji. Mēs esam sapņu sapņotāji. HACK PLANET!

1. darbība: HackerBox 0024: kastes saturs

HackerBox 0024: kastes saturs
HackerBox 0024: kastes saturs
  • HackerBoxes #0024 kolekcionējama atsauces karte
  • Trīs kronšteinu pannu un slīpuma komplekts
  • Divi MG996R servo ar piederumiem
  • Divi alumīnija apļveida servo uzmavas
  • Arduino Nano V3 - 5V, 16MHz, MicroUSB
  • Digitālās kameras komplekts ar USB kabeli
  • Trīs objektīvi ar universālu stiprinājumu
  • Medicīniskās pārbaudes pildspalvas gaisma
  • Dupont vīriešu/sieviešu džemperi
  • MicroUSB kabelis
  • Ekskluzīva OpenCV uzlīme
  • Ekskluzīva uzlīme Dia de Muertos

Dažas citas lietas, kas būs noderīgas:

  • Nelieli koka dēļu lūžņi kameras pamatnei
  • Lodāmurs, lodētava un pamata lodēšanas rīki
  • Dators programmatūras rīku palaišanai

Vissvarīgākais - jums būs nepieciešama piedzīvojumu sajūta, DIY gars un hakeru zinātkāre. Hardcore DIY elektronika nav mazsvarīga nodarbe, un mēs to nelaistām jūsu vietā. Mērķis ir progress, nevis pilnība. Kad jūs neatlaidīgi izbaudāt piedzīvojumus, lielu gandarījumu var gūt, apgūstot jaunas tehnoloģijas un cerams, ka daži projekti darbosies. Mēs iesakām spert katru soli lēnām, apdomājot detaļas un nevilcinoties lūgt palīdzību.

Bieži UZDOTIE JAUTĀJUMI: Mēs vēlētos lūgt visiem HackerBox dalībniekiem patiešām lielu labvēlību. Pirms sazināties ar atbalsta dienestu, lūdzu, veltiet dažas minūtes laika, lai izskatītu bieži uzdotos jautājumus HackerBoxes vietnē. Lai gan mēs acīmredzot vēlamies palīdzēt visiem biedriem tik daudz, cik nepieciešams, lielākā daļa mūsu atbalsta e -pasta ziņojumu ietver vienkāršus jautājumus, kas ir ļoti skaidri apskatīti bieži uzdotajos jautājumos. Paldies par sapratni!

2. darbība: datora redze

Datora redze
Datora redze

Datora redze ir starpdisciplināra joma, kas nodarbojas ar to, kā datori iegūst augsta līmeņa izpratni no digitālajiem attēliem vai video. No inženierijas viedokļa datora redze cenšas automatizēt uzdevumus, ko spēj veikt cilvēka redzes sistēma. Kā zinātniska disciplīna datora redze ir saistīta ar mākslīgo sistēmu teoriju, kas iegūst informāciju no attēliem. Attēlu datiem var būt dažādas formas, piemēram, video secības, skati no vairākām kamerām vai daudzdimensiju dati no medicīniskā skenera. Kā tehnoloģiskā disciplīna datora redze cenšas pielietot savas teorijas un modeļus datoru redzes sistēmu konstruēšanai. Datora redzes apakšdomēni ietver ainas rekonstrukciju, notikumu noteikšanu, video izsekošanu, objektu atpazīšanu, 3D pozu novērtēšanu, mācīšanos, indeksēšanu, kustības novērtēšanu un attēla atjaunošanu.

Interesanti atzīmēt, ka datora redzi var uzskatīt par datorgrafikas apgriezto.

3. darbība. Apstrāde un OpenCV

Apstrāde un OpenCV
Apstrāde un OpenCV

Apstrāde ir elastīga programmatūras skiču grāmata un valoda, lai iemācītos kodēt vizuālās mākslas kontekstā. Apstrāde ir veicinājusi programmatūras lietotprasmi vizuālās mākslas jomā un vizuālo lasītprasmi tehnoloģiju jomā. Ir desmitiem tūkstošu studentu, mākslinieku, dizaineru, pētnieku un hobiju, kas izmanto apstrādi mācībām un prototipu veidošanai.

OpenCV (Open Source Computer Vision Library) ir atvērtā pirmkoda datora redzes un mašīnmācīšanās programmatūras bibliotēka. OpenCV tika izveidots, lai nodrošinātu kopēju infrastruktūru datoru redzes lietojumiem un paātrinātu mašīnu uztveres izmantošanu komerciālajos produktos. OpenCV bibliotēkā ir vairāk nekā 2500 optimizētu algoritmu, kas ietver visaptverošu gan klasisko, gan vismodernāko datoru redzes un mašīnmācīšanās algoritmu komplektu. Šos algoritmus var izmantot, lai noteiktu un atpazītu sejas, identificētu objektus, klasificētu cilvēku darbības videoklipos, izsekotu kameru kustības, izsekotu kustīgos objektus utt.

Instalējiet OpenCV sadaļā Apstrāde no izvēlnes Fails> Piemēri, atlasot “Pievienot piemērus” un pēc tam cilnē Bibliotēkas instalējot gan video, gan OpenCV bibliotēkas. Atveriet LiveCamTest piemēru sejas pamata izsekošanai. Šeit skatiet citus OpenCV apstrādes piemērus.

Vairāk resursu:

Darba sākšana ar datoru redzi ir grāmatu projekts, kas nodrošina vieglu piekļuves punktu radošiem eksperimentiem ar datora redzi. Tas iepazīstina ar kodu un jēdzieniem, kas nepieciešami, lai izveidotu datoru redzes projektus.

Datora redzes programmēšana ar Python ir O'Reilly grāmata par PCV, atvērtā koda Python modulis datora redzei.

OpenCV mācīšanās

Datora redze: algoritmi un lietojumprogrammas

OpenCV apgūšana

Stenfordas kurss CS231n konvolucionālie neironu tīkli vizuālai atpazīšanai (16 video)

Chris Urmson TED Talk Kā automašīna bez vadītāja redz ceļu

4. solis: Arduino Nano mikrokontrolleru platforma

Arduino Nano mikrokontrolleru platforma
Arduino Nano mikrokontrolleru platforma

Mēs varam izmantot jebkuru parasto mikrokontrolleru platformu, lai kontrolētu servos mūsu pannas un noliekamās kameras stiprinājumā. Arduino Nano ir uz virsmas uzstādāms, uz maizes dēļa piemērots, miniatūrizēts Arduino dēlis ar integrētu USB. Tas ir pārsteidzoši pilnvērtīgs un viegli uzlaužams.

Iespējas:

  • Mikrokontrolleris: Atmel ATmega328P
  • Spriegums: 5V
  • Digitālās I/O tapas: 14 (6 PWM)
  • Analogās ieejas tapas: 8
  • DC strāva uz I/O tapu: 40 mA
  • Zibatmiņa: 32 KB (2 KB sāknēšanas ielādētājam)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Pulksteņa ātrums: 16 MHz
  • Izmēri: 17 mm x 43 mm

Šis konkrētais Arduino Nano variants ir melnais Robotdyn dizains. Interfeisu nodrošina iebūvēts MicroUSB ports, kas ir saderīgs ar tiem pašiem MicroUSB kabeļiem, ko izmanto ar daudziem mobilajiem tālruņiem un planšetdatoriem.

Arduino Nanos ir iebūvēta USB/seriālā tilta mikroshēma. Šajā konkrētajā variantā tilta mikroshēma ir CH340G. Ņemiet vērā, ka dažādu veidu Arduino dēļos tiek izmantoti dažādi cita veida USB/seriālā tilta mikroshēmas. Šīs mikroshēmas ļauj datora USB portam sazināties ar Arduino procesora mikroshēmas seriālo saskarni.

Datora operētājsistēmai ir nepieciešams ierīces draiveris, lai sazinātos ar USB/seriālo mikroshēmu. Vadītājs ļauj IDE sazināties ar Arduino plati. Nepieciešamais konkrētais ierīces draiveris ir atkarīgs gan no OS versijas, gan arī no USB/seriālās mikroshēmas veida. CH340 USB/sērijas mikroshēmām ir pieejami draiveri daudzām operētājsistēmām (UNIX, Mac OS X vai Windows). Šos draiverus šeit piegādā ražotājs CH340.

Kad pirmo reizi pievienojat Arduino Nano datora USB portam, iedegas zaļais strāvas indikators un neilgi pēc tam, kad zilai gaismas diodei jāsāk lēni mirgot. Tas notiek tāpēc, ka Nano ir iepriekš ielādēts ar BLINK programmu, kas darbojas ar pavisam jauno Arduino Nano.

5. solis: Arduino integrētā attīstības vide (IDE)

Arduino integrētā attīstības vide (IDE)
Arduino integrētā attīstības vide (IDE)

Ja jums vēl nav instalēts Arduino IDE, varat to lejupielādēt no vietnes Arduino.cc

Ja vēlaties papildu ievadinformāciju darbam Arduino ekosistēmā, iesakām iepazīties ar HackerBoxes sākuma semināra norādījumiem.

Pievienojiet Nano MicroUSB kabeli un otru kabeļa galu datora USB portam, palaidiet Arduino IDE programmatūru, izvēlieties atbilstošo USB portu IDE sadaļā Tools> port (iespējams, nosaukums ar “wchusb”)). IDE sadaļā rīki> tāfele izvēlieties arī "Arduino Nano".

Visbeidzot, ielādējiet koda parauga gabalu:

Fails-> Piemēri-> Pamati-> Mirgo

Tas faktiski ir kods, kas iepriekš tika ielādēts Nano, un tam vajadzētu darboties tieši tagad, lai lēnām mirgotu zilā gaismas diode. Attiecīgi, ja mēs ielādēsim šo piemēra kodu, nekas nemainīsies. Tā vietā nedaudz pārveidosim kodu.

Skatoties cieši, var redzēt, ka programma ieslēdz gaismas diodi, gaida 1000 milisekundes (vienu sekundi), izslēdz gaismas diodi, gaida vēl vienu sekundi un pēc tam to visu dara vēlreiz - uz visiem laikiem.

Mainiet kodu, mainot abus paziņojumus "kavēšanās (1000)" uz "aizkave (100)". Šīs modifikācijas dēļ gaismas diode mirgos desmit reizes ātrāk, vai ne?

Ielādēsim modificēto kodu Nano, noklikšķinot uz pogas UPLOAD (augšupielādēt) (bultiņas ikona) tieši virs modificētā koda. Skatiet statusa informāciju zem koda: “apkopošana” un pēc tam “augšupielāde”. Visbeidzot, IDE vajadzētu norādīt "Augšupielāde pabeigta", un jūsu gaismas diodei vajadzētu mirgot ātrāk.

Ja tā, apsveicu! Jūs tikko uzlauzāt savu pirmo iegulto kodu.

Kad jūsu ātrās mirgošanas versija ir ielādēta un darbojas, kāpēc nepārbaudīt, vai varat vēlreiz nomainīt kodu, lai gaismas diode divas reizes ātri mirgotu, un pēc tam pagaidiet dažas sekundes, pirms atkārtojat? Pamēģināt! Kā ar dažiem citiem modeļiem? Kad jums izdosies vizualizēt vēlamo rezultātu, kodēt to un novērot, kā tas darbojas, kā plānots, esat spēris milzīgu soli, lai kļūtu par kompetentu aparatūras hakeru.

6. solis: Servo motori

Servo Motors
Servo Motors

Servo motorus parasti kontrolē virkne atkārtotu elektrisko impulsu, kur impulsu platums norāda uz servo stāvokli. Pulsa platuma modulēto (PWM) vadības signālu bieži ģenerē parasts mikrokontrolleris, piemēram, Arduino.

Mazie hobiju servo, piemēram, MG996R, ir savienoti, izmantojot standarta trīs vadu savienojumu: divi vadi līdzstrāvas barošanai un viens vads vadības impulsu pārnēsāšanai. MG996R servos ir darba sprieguma diapazons 4,8-7,2 VDC.

7. solis: pannas un noliekšanas mehānisma salikšana

Pannas un slīpuma mehānisma montāža
Pannas un slīpuma mehānisma montāža
  1. Izvelciet abus MG996R servos no somām un pagaidām atlieciet komplektā iekļautos piederumus.
  2. Katram servo piestipriniet alumīnija apļveida servo savienotāju. Ņemiet vērā, ka savienotāji nāk no servo atsevišķos maisos. Savienotājs ir ļoti cieši pieguļošs. Sāciet, piespiežot uzmavu pie servo izvades gala, un pēc tam ieskrūvējiet skrūvi centrālajā caurumā. Pievelciet vītni, lai pievilktu savienotāju uz servo izejas.
  3. Ņemiet vērā, ka panorāmas noliekšanai ir trīs kronšteini-divi kronšteini un viens U veida kronšteins.
  4. Uzstādiet vienu no kārbas kronšteiniem uz alumīnija apļa vienam no serviem. Šo servo mēs sauksim par pano servo. Virziet kārbas kronšteinu ar tā centrālo sienu pret alumīnija apli tā, lai pārējās divas kastes kronšteina sienas būtu vērstas prom no pannas servo. Izmantojiet centrālos caurumus uz kārbas kronšteina vidējās sienas. Šim izkārtojumam vajadzētu ļaut pannas servo apgriezt pievienoto kārbas kronšteinu, kad tas ir iedarbināts.
  5. Novietojiet otru servo (noliekamo servo) kastes kronšteinā, kas ir piestiprināts pie pannas servo alumīnija apļa. Izmantojiet vismaz divus uzgriežņus un skrūves, lai piestiprinātu sasvēršanas servo - vienu katrā pusē.
  6. Turot U kronšteinu, ievietojiet misiņa "gultni" no U iekšpuses caur vienu no lielajiem šarnīra stiprinājuma caurumiem.
  7. Novietojiet U veida kronšteinu ar gultni uz slīpuma servo, kas atrodas kārbas kronšteina iekšpusē tā, lai otrs lielais šarnīra stiprinājuma caurums (tas, kuram nav gultņa) sakristu ar noliekšanas servo alumīnija apli.
  8. Izmantojiet skrūves, lai piestiprinātu U kronšteinu alumīnija aplim U kronšteina vienā pusē.
  9. U veida kronšteina otrā pusē pievelciet vienu skrūvi caur gultni un mazajā caurumā kastes kronšteinā. Tam vajadzētu ļaut U-kronšteinam vēlāk griezties ap kārbas kronšteinu, kad tiek iedarbināts slīpuma servo.

8. solis: Pannas un noliekšanas mezgla montāža

Pannas un noliekšanas mezgla montāža
Pannas un noliekšanas mezgla montāža
Pannas un noliekšanas mezgla montāža
Pannas un noliekšanas mezgla montāža

Atlikušo kārbas kronšteinu var pieskrūvēt pie neliela koka dēļa lūžņa, lai tas kalpotu kā kameras pamatne, kā parādīts attēlā. Visbeidzot, pannas servo ir uzstādīts atlikušajā kārbas kronšteinā, izmantojot vismaz divus uzgriežņus un skrūves, lai piestiprinātu servo pie kronšteina - pa vienam katrā pusē.

9. solis: pievienojiet un pārbaudiet pannas un noliekšanas mezglu

Pievienojiet vadu un pārbaudiet pannas un noliekšanas mezglu
Pievienojiet vadu un pārbaudiet pannas un noliekšanas mezglu

Lai pieslēgtu servos vadus saskaņā ar shēmu, visātrāk ir vienkārši izgriezt oriģinālos savienotājus no servos un pēc tam izmantot dažus DuPont džemperu galus, lai signāls un zemējuma līnijas tiktu piestiprinātas pie Nano tapām.

Nano nav pietiekami daudz strāvas 5V barotnē, lai darbinātu servos no USB, tāpēc ieteicams izmantot papildu barošanu. Tas var būt jebkas 4,8-7,2 voltu diapazonā. Piemēram, četras AA baterijas (sērijveidā) darbosies lieliski. Laba izvēle ir arī stenda piegāde vai sienas kārpu.

Vienkāršo Arduino koda piemēru, kas šeit pievienots kā PanTiltTest.ino, var izmantot, lai pārbaudītu divu servo vadību no Arduino IDE sērijas monitora. Iestatiet monitora pārraides ātrumu, lai tas atbilstu 9600 bps, kas norādīts parauga kodā. Ievadot leņķa vērtības no 0 līdz 180 grādiem, servos tiks novietots atbilstošs stāvoklis.

Visbeidzot, USB kameras moduli (vai citu sensoru) var uzstādīt Pan-Tilt mezgla U-kronšteinā, lai to izmantotu izsekošanas lietojumprogrammās.

10. darbība: sejas izsekošana, izmantojot OpenCV

Image
Image
Uzlauzt planētu
Uzlauzt planētu

Mašīnas redzes sejas izsekošanas sistēmu var ieviest, apvienojot apakšsistēmas, kā parādīts blokshēmā. Arduino SerialServoControl skice ir atrodama šajā Sparkfun apmācībā kopā ar saistītu demonstrāciju, izmantojot cilvēka sejas izsekošanu, izmantojot OpenCV, Processing, Arduino, USB kameru un Pan/Tilt mezglu. Demonstrācijā tiek izmantoti divi servoaparāti, lai pārvietotu kameru, lai seja būtu video rāmja centrā pat tad, kad lietotājs pārvietojas pa istabu. Piemēram, kods C#, skatiet CamBot video GitHub krātuvi.

11. solis: uzlauziet planētu

Ja jums patika šī pamācība un vēlaties, lai šāda elektronikas un datortehnikas projektu kaste katru mēnesi tiktu piegādāta tieši uz jūsu pastkasti, lūdzu, pievienojieties mums, abonējot ŠEIT.

Sazinieties un dalieties savos panākumos zemāk esošajos komentāros vai HackerBoxes Facebook lapā. Noteikti informējiet mūs, ja jums ir kādi jautājumi vai nepieciešama palīdzība ar kaut ko. Paldies, ka esat daļa no HackerBoxes. Lūdzu, turpiniet saņemt savus ieteikumus un atsauksmes. HackerBoxes ir JŪSU kastes. Izgatavosim kaut ko lielisku!

Ieteicams: