Përmbajtje:

HackerBox 0024: Kërkimi i Vizionit: 11 Hapa
HackerBox 0024: Kërkimi i Vizionit: 11 Hapa

Video: HackerBox 0024: Kërkimi i Vizionit: 11 Hapa

Video: HackerBox 0024: Kërkimi i Vizionit: 11 Hapa
Video: HackerBox #0024: Vision Quest 2024, Korrik
Anonim
HackerBox 0024: Kërkimi i Vizionit
HackerBox 0024: Kërkimi i Vizionit

Vision Quest - Këtë muaj, HackerBox Hackers po eksperimentojnë me Computer Vision dhe Servo Motion Tracking. Ky udhëzues përmban informacione për të punuar me HackerBox #0024, të cilat mund t'i merrni këtu derisa furnizimet të kenë mbaruar. Gjithashtu, nëse dëshironi të merrni një HackerBox si ky në kutinë tuaj postare çdo muaj, ju lutemi regjistrohuni në HackerBoxes.com dhe bashkohuni me revolucionin!

Temat dhe objektivat e të mësuarit për HackerBox 0024:

  • Eksperimentimi me vizionin kompjuterik
  • Vendosja e OpenCV (Vizioni kompjuterik)
  • Programimi i Arduino Nano nga Arduino IDE
  • Kontrollimi i Servo Motors me Arduino Nano
  • Montimi i një asambleje mekanike të paneleve dhe pjerrësisë
  • Kontrollimi i lëvizjes së paneleve dhe pjerrësisë me një mikrokontrollues
  • Kryerja e Ndjekjes së Fytyrës duke përdorur OpenCV

HackerBoxes është shërbimi mujor i kutisë së abonimit për elektronikë DIY dhe teknologji kompjuterike. Ne jemi hobiistë, krijues dhe eksperimentues. Ne jemi ëndërrimtarët e ëndrrave. HACK PLANETIN!

Hapi 1: HackerBox 0024: Përmbajtja e Kutisë

HackerBox 0024: Përmbajtja e Kutisë
HackerBox 0024: Përmbajtja e Kutisë
  • HackerBoxes #0024 Karta e Referueshme e Koleksionueshme
  • Kuvendi me tre kllapa dhe pjerrësi
  • Dy servo MG996R me pajisje shtesë
  • Dy bashkues servo alumini rrethor
  • Arduino Nano V3 - 5V, 16MHz, MicroUSB
  • Asambleja e kamerës dixhitale me kabllo USB
  • Tre Lente me Montim Kapës Universal
  • Inspektimi Mjekësor Pen Light
  • Kërcues meshkuj/femra Dupont
  • Kabllo MicroUSB
  • Decal ekskluziv i OpenCV
  • Decal Ekskluzive Dia de Muertos

Disa gjëra të tjera që do të jenë të dobishme:

  • Skrap druri i vogël prej druri për bazën e kamerës
  • Saldimi, saldimi dhe mjetet bazë të saldimit
  • Kompjuter për drejtimin e mjeteve softuerike

Më e rëndësishmja, do t'ju duhet një ndjenjë aventure, shpirti DIY dhe kurioziteti i hakerëve. Elektronika Hardcore DIY nuk është një kërkim i parëndësishëm dhe ne nuk po e zbutim atë për ju. Qëllimi është përparimi, jo përsosmëria. Kur këmbëngulni dhe kënaqeni me aventurën, një kënaqësi e madhe mund të nxirret nga mësimi i teknologjisë së re dhe shpresojmë që disa projekte të funksionojnë. Ne ju sugjerojmë të bëni çdo hap ngadalë, duke pasur parasysh detajet dhe pa hezituar të kërkoni ndihmë.

PYETJET E SHPESHTA: Na pëlqen të kërkojmë nga të gjithë anëtarët e HackerBox një favor vërtet të madh. Ju lutemi merrni disa minuta për të rishikuar FAQ në faqen e internetit të HackerBoxes para se të kontaktoni mbështetjen. Ndërsa ne padyshim duam të ndihmojmë të gjithë anëtarët aq sa është e nevojshme, shumica e e -maileve tanë mbështetës përfshijnë pyetje të thjeshta që adresohen shumë qartë në FAQ. Ju falënderoj për mirëkuptimin!

Hapi 2: Vizioni kompjuterik

Vizioni kompjuterik
Vizioni kompjuterik

Vizioni kompjuterik është një fushë ndërdisiplinore që merret me mënyrën se si kompjuterët marrin kuptim të nivelit të lartë nga imazhet ose videot dixhitale. Nga perspektiva e inxhinierisë, vizioni kompjuterik kërkon të automatizojë detyrat që sistemi vizual i njeriut mund të bëjë. Si një disiplinë shkencore, vizioni kompjuterik merret me teorinë e sistemeve artificiale që nxjerrin informacion nga imazhet. Të dhënat e imazhit mund të marrin shumë forma, të tilla si sekuenca video, pamje nga kamera të shumta ose të dhëna shumë-dimensionale nga një skaner mjekësor. Si një disiplinë teknologjike, vizioni kompjuterik kërkon të zbatojë teoritë dhe modelet e tij për ndërtimin e sistemeve të shikimit kompjuterik. Nën-fushat e vizionit kompjuterik përfshijnë rindërtimin e skenës, zbulimin e ngjarjeve, ndjekjen e videove, njohjen e objekteve, vlerësimin e pozës 3D, mësimin, indeksimin, vlerësimin e lëvizjes dhe restaurimin e imazhit.

Shtë interesante të theksohet se vizioni kompjuterik mund të konsiderohet e kundërta e grafikës kompjuterike.

Hapi 3: Përpunimi dhe OpenCV

Përpunimi dhe OpenCV
Përpunimi dhe OpenCV

Përpunimi është një skicë softueri fleksibël dhe një gjuhë për të mësuar se si të kodohet brenda kontekstit të arteve pamore. Përpunimi ka promovuar shkrim -leximin e softuerit brenda arteve pamore dhe shkrim -leximin vizual brenda teknologjisë. Ka dhjetëra mijëra studentë, artistë, stilistë, studiues dhe hobiistë që përdorin Përpunimin për të mësuar dhe prototipuar.

OpenCV (Biblioteka e Vizionit Kompjuterik me Burim të Hapur) është një bibliotekë e softuerit të vizionit kompjuterik dhe mësimit të makinerisë. OpenCV është ndërtuar për të siguruar një infrastrukturë të përbashkët për aplikimet e vizionit kompjuterik dhe për të përshpejtuar përdorimin e perceptimit të makinerisë në produktet komerciale. Biblioteka OpenCV ka më shumë se 2500 algoritme të optimizuara, të cilat përfshijnë një seri gjithëpërfshirëse të algoritmeve klasike dhe moderne të vizionit kompjuterik dhe të mësimit të makinerisë. Këto algoritme mund të përdoren për zbulimin dhe njohjen e fytyrave, identifikimin e objekteve, klasifikimin e veprimeve njerëzore në video, ndjekjen e lëvizjeve të kamerës, gjurmimin e objekteve në lëvizje, etj.

Instaloni OpenCV brenda Përpunimit nga menyja Skedar> Shembuj duke zgjedhur "Shto Shembuj" dhe më pas nën skedën Bibliotekat duke instaluar bibliotekat Video dhe OpenCV. Hapni shembullin LiveCamTest për gjurmimin bazë të fytyrës. Shikoni disa shembuj të tjerë OpenCV për Përpunimin këtu.

Më shumë burime:

Fillimi me Vizionin Kompjuterik është një projekt libri që siguron një pikë hyrje të lehtë për eksperimente krijuese me vizionin kompjuterik. Ai prezanton kodin dhe konceptet e nevojshme për ndërtimin e projekteve të vizionit kompjuterik.

Programimi i Vizionit Kompjuterik me Python është një libër O'Reilly në PCV, një modul Python me burim të hapur për vizionin kompjuterik.

Mësoni OpenCV

Vizioni kompjuterik: Algoritmet dhe Aplikimet

Zotërimi i OpenCV

Kursi Stanford CS231n Rrjetet Nevolucionare Konvolucionare për Njohjen Vizuale (16 Video)

Chris Urmson TED Talk Si e sheh rrugën një makinë pa shofer

Hapi 4: Platforma Arduino Nano Mikrokontrolluese

Platforma Arduino Nano Mikrokontrolluese
Platforma Arduino Nano Mikrokontrolluese

Ne mund të përdorim çdo platformë të zakonshme mikronrollorësh për kontrollin e servove në tavën tonë dhe montimin e kamerës. Arduino Nano është një bord Arduino i miniaturizuar, i montuar në sipërfaqe, i aftë për bukë, me USB të integruar. Amazingshtë çuditërisht me tipare të plota dhe e lehtë për tu hakuar.

Karakteristikat:

  • Mikrokontrolluesi: Atmel ATmega328P
  • Tensioni: 5V
  • Kunjat dixhital të daljes/daljes: 14 (6 PWM)
  • Kunjat Analog Anput: 8
  • Rryma DC për Pin/I/O: 40 mA
  • Memoria flash: 32 KB (2KB për ngarkuesin e ngarkimit)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Shpejtësia e orës: 16 MHz
  • Përmasat: 17mm x 43mm

Ky variant i veçantë i Arduino Nano është dizajni i zi Robotdyn. Ndërfaqja është nga një port MicroUSB në bord që është në përputhje me të njëjtat kabllo MicroUSB të përdorur me shumë telefona celularë dhe tableta.

Arduino Nanos kanë një çip të integruar USB/Serial urë. Në këtë variant të veçantë, çipi i urës është CH340G. Vini re se ka lloje të ndryshme të tjera të çipave USB/Serial urë që përdoren në llojet e ndryshme të bordeve Arduino. Këto patate të skuqura ju lejojnë portën USB të kompjuterit të komunikoni me ndërfaqen serike në çipin e procesorit Arduino.

Sistemi operativ i një kompjuteri kërkon që Drejtuesi i Pajisjes të komunikojë me çipin USB/Serial. Shoferi lejon IDE të komunikojë me bordin Arduino. Drejtuesi specifik i pajisjes që nevojitet varet nga versioni i OS dhe gjithashtu nga lloji i çipit USB/Serial. Për çipat CH340 USB/Serial, ka drejtues të disponueshëm për shumë sisteme operative (UNIX, Mac OS X, ose Windows). Prodhuesi i CH340 i furnizon ata drejtues këtu.

Kur lidhni për herë të parë Arduino Nano në një port USB të kompjuterit tuaj, drita e gjelbër e energjisë duhet të ndizet dhe menjëherë pasi LED blu të fillojë të pulsojë ngadalë. Kjo ndodh sepse Nano është para-ngarkuar me programin BLINK, i cili po funksionon në Arduino Nano të ri.

Hapi 5: Mjedisi i Zhvillimit të Integruar Arduino (IDE)

Mjedisi i Zhvillimit të Integruar Arduino (IDE)
Mjedisi i Zhvillimit të Integruar Arduino (IDE)

Nëse nuk e keni ende të instaluar Arduino IDE, mund ta shkarkoni nga Arduino.cc

Nëse dëshironi informacion shtesë hyrës për të punuar në ekosistemin Arduino, ju sugjerojmë të shikoni udhëzimet për Workshopin HackerBoxes Starter Workshop.

Lidheni Nano -n në kabllon MicroUSB dhe skajin tjetër të kabllit në një port USB në kompjuter, lëshoni softuerin Arduino IDE, zgjidhni portën e duhur USB në IDE nën mjetet> porti (ka të ngjarë një emër me "wchusb" në të) Gjithashtu zgjidhni "Arduino Nano" në IDE nën mjetet> tabelë.

Së fundi, ngarkoni një pjesë të kodit shembull:

Skedar-> Shembuj-> Bazat-> Blink

Ky është në të vërtetë kodi që u ngarkua paraprakisht në Nano dhe duhet të funksionojë tani për të ndezur ngadalë LED blu. Prandaj, nëse e ngarkojmë këtë kod shembull, asgjë nuk do të ndryshojë. Në vend të kësaj, le të modifikojmë pak kodin.

Duke parë nga afër, mund të shihni që programi ndez LED -në, pret 1000 milisekonda (një sekondë), fik LED -in, pret një sekondë tjetër dhe pastaj i bën të gjitha përsëri - përgjithmonë.

Ndryshoni kodin duke ndryshuar të dy deklaratat e "vonesës (1000)" në "vonesë (100)". Ky modifikim do të bëjë që LED të ndizet dhjetë herë më shpejt, apo jo?

Le ta ngarkojmë kodin e modifikuar në Nano duke klikuar butonin UPLOAD (ikona e shigjetës) pikërisht mbi kodin tuaj të modifikuar. Shikoni më poshtë kodin për informacionin e statusit: "përpilimi" dhe më pas "ngarkimi". Përfundimisht, IDE duhet të tregojë "Ngarkimi përfundoi" dhe LED juaj duhet të ndizet më shpejt.

Nëse po, urime! Ju sapo keni hakuar pjesën tuaj të parë të kodit të integruar.

Pasi të jetë ngarkuar dhe ekzekutuar versioni juaj i mbylljes së shpejtë, pse të mos shihni nëse mund ta ndryshoni përsëri kodin për të bërë që LED të ndizet shpejt dy herë dhe pastaj të prisni disa sekonda para se të përsërisni? Provojeni! Po në lidhje me disa modele të tjera? Sapo të keni sukses në vizualizimin e një rezultati të dëshiruar, kodimin e tij dhe vëzhgimin e tij për të punuar siç ishte planifikuar, keni bërë një hap të madh drejt bërjes së një hakeri kompetent të harduerit.

Hapi 6: Servo Motors

Servo Motors
Servo Motors

Servo motorët në përgjithësi kontrollohen nga një seri impulse elektrike të përsëritura ku gjerësia e impulseve tregon pozicionin e servo. Sinjali i kontrollit të moduluar të gjerësisë së impulsit (PWM) shpesh gjenerohet nga një mikrokontrollues i zakonshëm siç është një Arduino.

Shërbimet e vogla hobi, të tilla si MG996R, janë të lidhura përmes një lidhje standarde me tre tela: dy tela për një furnizim me rrymë DC dhe një tel për mbajtjen e impulseve të kontrollit. Servo MG996R kanë një tension të tensionit të funksionimit prej 4.8-7.2 VDC.

Hapi 7: Montimi i Mekanizmit të Pan dhe Tilt

Montimi i Mekanizmit të Pan dhe Tilt
Montimi i Mekanizmit të Pan dhe Tilt
  1. Tërhiqni të dy servos MG996R nga çantat e tyre dhe lini mënjanë aksesorët e përfshirë tani për tani.
  2. Bashkangjitni një bashkues servo alumini, rrethor në secilin servo. Vini re se bashkuesit vijnë në çanta të ndara nga servos. Çifti është një përshtatje shumë e ngushtë. Filloni duke shtypur bashkuesin në fund të daljes servo dhe pastaj futni një vidë në vrimën qendrore. Shtrëngoni fijen për të tërhequr bashkuesin në daljen servo.
  3. Vini re se ka tre kllapa për montimin e pjerrësisë-dy kllapa kuti dhe një kllapa U.
  4. Montoni njërën nga kllapat e kutisë në rrethin e aluminit për njërën nga servot. Ne do ta quajmë këtë servo pan servo. Orientoni kllapën e kutisë me murin e saj qendror kundër rrethit të aluminit në mënyrë që dy muret e tjera të kllapës së kutisë të shikojnë larg nga servo pan. Përdorni vrimat qendrore në murin e mesëm të kllapës së kutisë. Ky rregullim duhet të lejojë që servo pan të rrotullojë kllapën e bashkangjitur kur aktivizohet.
  5. Vendoseni servo-n tjetër (servo-tilt) në kllapën e kutisë që është ngjitur në rrethin e aluminit të servo-t. Përdorni të paktën dy arra dhe bulona për të ngjitur servonin e pjerrësisë - një në secilën anë.
  6. Duke mbajtur kllapën U, futni "mbajtësen" prej bronzi nga brenda U përmes një prej vrimave të mëdha të montimit të strumbullarit.
  7. Vendoseni kllapën U me mbajtësen mbi servo-n e pjerrësisë që është brenda kllapës së kutisë në mënyrë që vrima tjetër e madhe e montimit në bosht (ajo pa mbajtësen) të përafrohet me rrethin e aluminit në servo-n e pjerrësisë.
  8. Përdorni vida për të ngjitur kllapën U në rrethin e aluminit në njërën anë të kllapës U.
  9. Në anën tjetër të kllapës U, shtrëngoni një vidë të vetme përmes kushinetës dhe në vrimën e vogël në kllapën e kutisë brenda. Kjo duhet të lejojë që kllapa U të rrotullohet rreth kllapës së kutisë më vonë kur të aktivizohet servo e pjerrësisë.

Hapi 8: Montimi i Asamblesë së Pan dhe Tilt

Montimi i Asamblesë së Pan dhe Tilt
Montimi i Asamblesë së Pan dhe Tilt
Montimi i Asamblesë së Pan dhe Tilt
Montimi i Asamblesë së Pan dhe Tilt

Kllapa e mbetur e kutisë mund të vidhoset në një copëz të vogël të dërrasës prej druri për të shërbyer si bazë kamera siç tregohet në imazh. Së fundi, servo pan është montuar brenda atij kllapa të mbetur të kutisë duke përdorur të paktën dy arra dhe bulona për të ngjitur servo në kllapa - një në secilën anë.

Hapi 9: Lidhni dhe testoni Asamblenë e Pan dhe Tilt

Lidhni dhe testoni Asamblenë e Pan dhe Tilt
Lidhni dhe testoni Asamblenë e Pan dhe Tilt

Për të lidhur servot sipas skemës, është më e shpejtë që thjesht të ndërprisni lidhëset femra origjinale nga servos dhe më pas të përdorni disa skajet e bluzave DuPont femra për të marrë sinjalin dhe linjat e tokëzimit të bashkangjitura në kunjat Nano.

Nano nuk ka rrymë të mjaftueshme në furnizimin me 5V për të furnizuar servot nga USB, kështu që rekomandohet një furnizim shtesë. Kjo mund të jetë gjithçka në intervalin 4.8-7.2 Volt. Për shembull, katër bateri AA (në seri) do të funksionojnë mirë. Një furnizim me stol ose lyth muri është gjithashtu një zgjedhje e mirë.

Shembulli i thjeshtë kodi Arduino i bashkangjitur këtu si PanTiltTest.ino mund të përdoret për të testuar kontrollin e dy servove nga monitori serik në Arduino IDE. Vendosni shkallën e baudit të monitorit që të përputhet me 9600bps të vendosur në kodin shembull. Futja e vlerave të këndit midis 0 dhe 180 gradë do t'i pozicionojë servot në përputhje me rrethanat.

Së fundi, Moduli i Kameras USB (ose sensori tjetër) mund të montohet në U-Bracket të Asamblesë Pan-Tilt për përdorim në ndjekjen e aplikacioneve.

Hapi 10: Ndjekja e fytyrës me OpenCV

Image
Image
Hack Planet
Hack Planet

Një sistem i përcjelljes së fytyrës së shikimit të makinës mund të zbatohet duke kombinuar nënsistemet siç tregohet në bllok-diagram. Skica e SerialServoControl për Arduino mund të gjendet në tutorialin e mëposhtëm Sparkfun së bashku me një demonstrim të lidhur duke përdorur OpenCV, Processing, një Arduino, një Kamera USB dhe një Asamble Pan/Tilt për të gjurmuar një fytyrë njerëzore. Demo përdor dy servos për të ripozicionuar kamerën në mënyrë që të mbajë fytyrën të përqendruar në kornizën e videos edhe kur përdoruesi lëviz nëpër dhomë. Për shembull, kodi në C#, shikoni depon GitHub për videon CamBot.

Hapi 11: Hack Planet

Nëse e keni shijuar këtë Instrucable dhe dëshironi të keni një kuti të projekteve elektronike dhe të teknologjisë kompjuterike si kjo të dorëzuara në kutinë tuaj postare çdo muaj, ju lutemi bashkohuni me ne duke u ABONUAR KERTU.

Ndihmoni dhe ndani suksesin tuaj në komentet më poshtë ose në faqen e HackerBoxes në Facebook. Sigurisht na tregoni nëse keni ndonjë pyetje ose keni nevojë për ndihmë për ndonjë gjë. Faleminderit që jeni pjesë e HackerBoxes. Ju lutemi mbani sugjerimet dhe reagimet tuaja. HackerBoxes janë kutitë tuaja. Le të bëjmë diçka të mrekullueshme!

Recommended: