Turinys:

„HackerBox 0024“: „Vision Quest“: 11 žingsnių
„HackerBox 0024“: „Vision Quest“: 11 žingsnių

Video: „HackerBox 0024“: „Vision Quest“: 11 žingsnių

Video: „HackerBox 0024“: „Vision Quest“: 11 žingsnių
Video: Vlogmas 10: Hackerbox time 2024, Liepa
Anonim
„HackerBox 0024: Vision Quest“
„HackerBox 0024: Vision Quest“

„Vision Quest“- šį mėnesį „HackerBox“įsilaužėliai eksperimentuoja su „Computer Vision“ir „Servo Motion Tracking“. Šioje instrukcijoje yra informacijos apie darbą su „HackerBox #0024“, kurią galite pasiimti čia, kol pasibaigs atsargos. Be to, jei norėtumėte kiekvieną mėnesį gauti tokią „HackerBox“tiesiai į savo pašto dėžutę, užsiprenumeruokite „HackerBoxes.com“ir prisijunkite prie revoliucijos!

„HackerBox 0024“temos ir mokymosi tikslai:

  • Eksperimentuokite su kompiuterine vizija
  • „OpenCV“(„Computer Vision“) nustatymas
  • „Arduino Nano“programavimas iš „Arduino IDE“
  • Servo variklių valdymas naudojant „Arduino Nano“
  • Mechaninio keptuvės ir pakreipimo mazgo surinkimas
  • Panoramos ir pakreipimo judesių valdymas naudojant mikrovaldiklį
  • Veido stebėjimas naudojant „OpenCV“

„HackerBoxes“yra mėnesio prenumeratos dėžutės paslauga, skirta „pasidaryk pats“elektronikai ir kompiuterinėms technologijoms. Esame mėgėjai, kūrėjai ir eksperimentuotojai. Mes esame svajonių svajotojai. Įsilaužk į planetą!

1 veiksmas: „HackerBox 0024“: dėžutės turinys

„HackerBox 0024“: dėžutės turinys
„HackerBox 0024“: dėžutės turinys
  • „HackerBoxes“#0024 kolekcinė informacinė kortelė
  • Trijų kronšteinų ir pakreipimo mazgas
  • Du MG996R servo su priedais
  • Dvi apvalios aliuminio servo jungtys
  • „Arduino Nano V3“- 5 V, 16 MHz, „MicroUSB“
  • Skaitmeninis fotoaparatas su USB kabeliu
  • Trys objektyvai su universaliu spaustuku
  • Medicininės apžiūros rašiklio lemputė
  • Dupont vyriški/moteriški džemperiai
  • „MicroUSB“kabelis
  • Išskirtinis „OpenCV“lipdukas
  • Išskirtinis „Dia de Muertos“lipdukas

Kai kurie kiti dalykai, kurie bus naudingi:

  • Mažas medinės lentos laužas fotoaparato pagrindui
  • Lituoklis, lydmetalis ir pagrindiniai litavimo įrankiai
  • Kompiuteris programinės įrangos įrankiams paleisti

Svarbiausia, kad jums reikės nuotykių jausmo, „pasidaryk pats“dvasios ir įsilaužėlių smalsumo. „Hardcore DIY“elektronika nėra nereikšmingas užsiėmimas, ir mes jo nelaistome. Tikslas yra pažanga, o ne tobulumas. Kai atkakliai ir mėgaujatės nuotykiais, mokydamiesi naujų technologijų ir tikėdamiesi, kad kai kurie projektai pradės veikti, galite būti labai patenkinti. Siūlome kiekvieną žingsnį žengti lėtai, apgalvoti smulkmenas ir nedvejodami prašyti pagalbos.

Dažnai užduodami klausimai: norime paprašyti visų „HackerBox“narių tikrai didelės paslaugos. Prieš susisiekdami su palaikymo komanda, skirkite kelias minutes ir peržiūrėkite DUK „HackerBoxes“svetainėje. Nors akivaizdžiai norime padėti visiems nariams tiek, kiek reikia, dauguma palaikymo el. Laiškų yra susiję su paprastais klausimais, kurie yra labai aiškiai išspręsti DUK. Ačiū už supratimą!

2 žingsnis: kompiuterio vizija

Kompiuterinė vizija
Kompiuterinė vizija

Kompiuterinė vizija yra tarpdisciplininė sritis, nagrinėjanti, kaip kompiuteriai įgyja aukšto lygio supratimą iš skaitmeninių vaizdų ar vaizdo įrašų. Inžinerijos požiūriu kompiuterinė vizija siekia automatizuoti užduotis, kurias gali atlikti žmogaus regėjimo sistema. Kaip mokslinė disciplina, kompiuterinė vizija yra susijusi su dirbtinių sistemų, išgaunančių informaciją iš vaizdų, teorija. Vaizdo duomenys gali būti įvairių formų, pavyzdžiui, vaizdo įrašų sekos, peržiūros iš kelių kamerų arba daugialypiai duomenys iš medicininio skaitytuvo. Kaip technologinė disciplina, kompiuterinė vizija siekia pritaikyti savo teorijas ir modelius kurdama kompiuterinio matymo sistemas. Kompiuterinio regėjimo padomeniai apima scenos rekonstrukciją, įvykių aptikimą, vaizdo įrašų sekimą, objektų atpažinimą, 3D pozų įvertinimą, mokymąsi, indeksavimą, judesio įvertinimą ir vaizdo atkūrimą.

Įdomu pastebėti, kad kompiuterinė vizija gali būti laikoma atvirkštine kompiuterinės grafikos dalimi.

3 veiksmas: apdorojimas ir „OpenCV“

Apdorojimas ir „OpenCV“
Apdorojimas ir „OpenCV“

Apdorojimas yra lanksti programinės įrangos eskizų knyga ir kalba, skirta mokytis koduoti vaizduojamojo meno kontekste. Apdorojimas skatino programinį raštingumą vaizduojamojo meno srityje ir vizualinį raštingumą technologijų srityje. Yra dešimtys tūkstančių studentų, menininkų, dizainerių, tyrėjų ir mėgėjų, kurie naudoja „Processing“mokymuisi ir prototipų kūrimui.

„OpenCV“(atviro kodo kompiuterių matymo biblioteka) yra atvirojo kodo kompiuterio vizijos ir mašininio mokymosi programinės įrangos biblioteka. „OpenCV“buvo sukurta siekiant sukurti bendrą kompiuterinio matymo programų infrastruktūrą ir pagreitinti mašinų suvokimo naudojimą komerciniuose produktuose. „OpenCV“bibliotekoje yra daugiau nei 2500 optimizuotų algoritmų, apimančių išsamų klasikinių ir moderniausių kompiuterinės vizijos ir mašinų mokymosi algoritmų rinkinį. Šie algoritmai gali būti naudojami aptikti ir atpažinti veidus, identifikuoti objektus, klasifikuoti žmogaus veiksmus vaizdo įrašuose, sekti fotoaparato judesius, sekti judančius objektus ir pan.

Įdiekite „OpenCV“iš „Processing“meniu Failas> Pavyzdžiai, pasirinkę „Pridėti pavyzdžių“, tada skirtuke „Bibliotekos“įdiegdami vaizdo įrašų ir „OpenCV“bibliotekas. Norėdami atidžiai stebėti veidą, atidarykite „LiveCamTest“pavyzdį. Peržiūrėkite kitus „OpenCV“apdorojimo pavyzdžius čia.

Daugiau išteklių:

Darbo su kompiuteriu vizija pradžia yra knygų projektas, suteikiantis lengvą įėjimą kūrybiškiems eksperimentams su kompiuterio vizija. Ji supažindina su kodu ir sąvokomis, būtinomis kuriant kompiuterinės vizijos projektus.

Kompiuterio regėjimo programavimas naudojant „Python“yra „O'Reilly“knyga apie PCV, atviro kodo „Python“modulį, skirtą kompiuterio regėjimui.

„OpenCV“mokymasis

Kompiuterinė vizija: algoritmai ir programos

„OpenCV“įsisavinimas

„Stanford Course CS231n“konvoliuciniai neuroniniai tinklai vizualiam atpažinimui (16 vaizdo įrašų)

Chrisas Urmsonas „TED Talk“Kaip automobilis be vairuotojo mato kelią

4 žingsnis: „Arduino Nano“mikrovaldiklio platforma

„Arduino Nano“mikrovaldiklio platforma
„Arduino Nano“mikrovaldiklio platforma

Mes galime naudoti bet kokią įprastą mikrovaldiklio platformą, kad valdytume servo sistemas mūsų kameros ir pakreipimo kampe. „Arduino Nano“yra ant paviršiaus tvirtinama, prie duonos lentos pritaikyta, miniatiūrinė „Arduino“plokštė su integruotu USB. Jis yra nuostabiai pilnavertis ir lengvai nulaužiamas.

Funkcijos:

  • Mikrovaldiklis: Atmel ATmega328P
  • Įtampa: 5V
  • Skaitmeniniai įvesties/išvesties kaiščiai: 14 (6 PWM)
  • Analoginės įvesties kaiščiai: 8
  • DC srovė vienam įvesties/išvesties kaiščiui: 40 mA
  • „Flash“atmintis: 32 KB (2 KB įkrovos įkrovikliui)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Laikrodžio greitis: 16 MHz
  • Matmenys: 17 mm x 43 mm

Šis konkretus „Arduino Nano“variantas yra juodas „Robotdyn“dizainas. Sąsaja yra naudojant „MicroUSB“prievadą, suderinamą su tais pačiais „MicroUSB“kabeliais, naudojamais daugelyje mobiliųjų telefonų ir planšetinių kompiuterių.

„Arduino Nanos“turi įmontuotą USB/nuoseklaus tilto lustą. Šiame konkrečiame variante tilto lustas yra CH340G. Atminkite, kad įvairių tipų „Arduino“plokštėse naudojami įvairūs kitų tipų USB/nuosekliojo tilto lustai. Šios mikroschemos leidžia kompiuterio USB prievadui bendrauti su „Arduino“procesoriaus lusto serijine sąsaja.

Kompiuterio operacinei sistemai reikia įrenginio tvarkyklės, kad galėtų bendrauti su USB/serijos lustu. Vairuotojas leidžia IDE bendrauti su „Arduino“lenta. Reikalinga konkreti įrenginio tvarkyklė priklauso ir nuo OS versijos, ir nuo USB/serijinės mikroschemos tipo. „CH340“USB/nuosekliųjų lustų tvarkyklės yra prieinamos daugeliui operacinių sistemų (UNIX, „Mac OS X“arba „Windows“). CH340 gamintojas čia tiekia šias tvarkykles.

Kai pirmą kartą prijungiate „Arduino Nano“prie kompiuterio USB prievado, turi užsidegti žalia maitinimo lemputė ir netrukus po to, kai mėlynas šviesos diodas pradeda lėtai mirksėti. Taip atsitinka todėl, kad „Nano“yra iš anksto įkelta BLINK programa, kuri veikia visiškai naujame „Arduino Nano“.

5 veiksmas: „Arduino“integruotos plėtros aplinka (IDE)

„Arduino“integruotos plėtros aplinka (IDE)
„Arduino“integruotos plėtros aplinka (IDE)

Jei dar neįdiegėte „Arduino IDE“, galite jį atsisiųsti iš „Arduino.cc“

Jei norite papildomos įvadinės informacijos apie darbą „Arduino“ekosistemoje, siūlome susipažinti su „HackerBoxes Starter Workshop“instrukcijomis.

Prijunkite „Nano“prie „MicroUSB“kabelio, o kitą laido galą - prie kompiuterio USB prievado, paleiskite „Arduino IDE“programinę įrangą, pasirinkite tinkamą USB prievadą IDE skiltyje „Įrankiai“> prievadas (greičiausiai pavadinimas su „wchusb“)). Taip pat pasirinkite „Arduino Nano“IDE skiltyje įrankiai> lenta.

Galiausiai įkelkite kodo pavyzdį:

Failas-> Pavyzdžiai-> Pagrindai-> Mirksėti

Tai iš tikrųjų yra kodas, kuris buvo iš anksto įkeltas į „Nano“ir turėtų veikti dabar, kad lėtai mirksėtų mėlynas šviesos diodas. Atitinkamai, jei įkelsime šį pavyzdinį kodą, niekas nepasikeis. Vietoj to, šiek tiek pakeiskime kodą.

Atidžiai įsižiūrėję matote, kad programa įjungia šviesos diodą, laukia 1000 milisekundžių (vieną sekundę), išjungia šviesos diodą, laukia dar sekundės ir tada viską daro iš naujo - visam laikui.

Pakeiskite kodą, pakeisdami abu „uždelsimo (1000)“teiginius į „uždelsimas (100)“. Dėl šio pakeitimo šviesos diodas mirksės dešimt kartų greičiau, tiesa?

Įkelkime modifikuotą kodą į „Nano“spustelėdami mygtuką UPLOAD (rodyklės piktograma) tiesiai virš jūsų modifikuoto kodo. Žemiau žiūrėkite būsenos informacijos kodą: „kompiliavimas“, tada „įkėlimas“. Galiausiai IDE turėtų rodyti „Įkėlimas baigtas“, o jūsų šviesos diodas turėtų mirksėti greičiau.

Jei taip, sveikinu! Jūs ką tik nulaužėte savo pirmąjį įterptąjį kodą.

Kai jūsų greito mirksėjimo versija bus įkelta ir paleista, kodėl gi nepažiūrėjus, ar galite dar kartą pakeisti kodą, kad šviesos diodas greitai mirksėtų du kartus, tada palaukite porą sekundžių prieš kartodami? Pabandyk! O kaip kiti modeliai? Kai pavyks įsivaizduoti norimą rezultatą, jį užkoduoti ir stebėti, kaip jis veikia, kaip planuota, žengėte didžiulį žingsnį, kad taptumėte kompetentingu programinės įrangos įsilaužėliu.

6 žingsnis: Servo varikliai

Servo varikliai
Servo varikliai

Servo varikliai paprastai valdomi pasikartojančių elektros impulsų serija, kur impulsų plotis rodo servo padėtį. Impulsų pločio moduliuotą (PWM) valdymo signalą dažnai generuoja įprastas mikrovaldiklis, pvz., „Arduino“.

Mažos pomėgių servos, tokios kaip MG996R, yra prijungtos per standartinę trijų laidų jungtį: du laidai nuolatinės srovės maitinimo šaltiniui ir vienas laidas valdymo impulsams perduoti. „MG996R“servo darbinė įtampa yra 4,8–7,2 VDC.

7 žingsnis: surinkimo ir pakreipimo mechanizmo surinkimas

Kepimo ir pakreipimo mechanizmo surinkimas
Kepimo ir pakreipimo mechanizmo surinkimas
  1. Išimkite abu MG996R servoservisus iš maišų ir kol kas atidėkite pridėtus priedus.
  2. Prie kiekvienos servo pritvirtinkite apvalią, aliuminio formos servo jungtį. Atminkite, kad jungtys yra atskiruose servo maišuose. Jungtis yra labai sandari. Pradėkite spausdami movą ant servo išvesties galo, o tada įsukite varžtą į centrinę angą. Priveržkite sriegį, kad prijungtumėte movą prie servo išvesties.
  3. Atkreipkite dėmesį, kad yra trys laikikliai, skirti pakreipti įstumti-du dėžutės laikikliai ir vienas U formos laikiklis.
  4. Pritvirtinkite vieną iš dėžutės laikiklių prie aliuminio apskritimo vienam iš servo. Šią servo vadinsime pano servo. Dėžutės laikiklį su vidurine siena nukreipkite į aliuminio apskritimą taip, kad kitos dvi dėžutės laikiklio sienos būtų nukreiptos nuo keptuvės servo. Naudokite centrines skyles ant dėžutės laikiklio vidurinės sienos. Šis išdėstymas turėtų leisti keptuvės servo sistemai suktis pritvirtintą dėžutės laikiklį, kai tik jis bus įjungtas.
  5. Įdėkite kitą servo (pakreipimo servo) į dėžutės laikiklį, pritvirtintą prie aliuminio servo aliuminio apskritimo. Naudokite bent dvi veržles ir varžtus, kad pritvirtintumėte pakreipimo servo sistemą - po vieną kiekvienoje pusėje.
  6. Laikydami U formos laikiklį, įkiškite žalvarinį „guolį“iš U vidinės pusės per vieną iš didelių šarnyrinių tvirtinimo angų.
  7. Uždėkite U formos laikiklį su guoliu ant pakreipimo servo, esančio dėžutės laikiklio viduje, kad kita didelė šarnyrinė tvirtinimo anga (ta, kurioje nėra guolio) sutaptų su pakreipimo servo aliuminio apskritimu.
  8. Naudodami varžtus pritvirtinkite U laikiklį prie aliuminio apskritimo vienoje U laikiklio pusėje.
  9. Kitoje U formos laikiklio pusėje priveržkite vieną varžtą per guolį ir į mažą skylę dėžutės laikiklyje. Tai turėtų leisti U formos laikikliui pasukti aplink dėžutės laikiklį vėliau, kai įjungiamas pakreipiamasis servo mechanizmas.

8 žingsnis: keptuvės ir pakreipimo mazgo montavimas

Keptuvės ir pakreipimo mazgo montavimas
Keptuvės ir pakreipimo mazgo montavimas
Keptuvės ir pakreipimo mazgo montavimas
Keptuvės ir pakreipimo mazgo montavimas

Likęs dėžutės laikiklis gali būti prisukamas prie mažo medinės lentos laužo, kad būtų naudojamas kaip fotoaparato pagrindas, kaip parodyta paveikslėlyje. Galiausiai keptuvės servo sistema sumontuota likusiame dėžutės laikiklyje, naudojant mažiausiai dvi veržles ir varžtus, kad servo būtų pritvirtinta prie laikiklio - po vieną kiekvienoje pusėje.

9 veiksmas: prijunkite ir patikrinkite keptuvės ir pakreipimo mazgą

Prijunkite ir patikrinkite keptuvės ir pakreipimo mazgą
Prijunkite ir patikrinkite keptuvės ir pakreipimo mazgą

Norėdami prijungti servo grandines pagal schemą, greičiausiai tiesiog nupjaukite originalias jungtis iš servo ir tada naudokite kai kuriuos moteriškus „DuPont“trumpiklius, kad signalas ir įžeminimo linijos būtų prijungtos prie „Nano“kaiščių.

„Nano“neturi pakankamai srovės 5 V maitinimo šaltinyje, kad galėtų maitinti servoservisus iš USB, todėl rekomenduojama papildomai maitinti. Tai gali būti bet kas 4,8–7,2 voltų diapazone. Pavyzdžiui, keturios AA baterijos (nuosekliai) veiks puikiai. Taip pat geras pasirinkimas yra suoliukas ar sieninė karpa.

Paprastas „Arduino“kodo pavyzdys, pridėtas čia kaip „PanTiltTest.ino“, gali būti naudojamas dviejų servų valdymui patikrinti iš „Arduino IDE“serijinio monitoriaus. Nustatykite monitoriaus duomenų perdavimo spartą, kad ji atitiktų pavyzdiniame kode nustatytą 9600bps. Įvedus kampo vertes nuo 0 iki 180 laipsnių, servos bus atitinkamai išdėstytos.

Galiausiai USB kameros modulį (arba kitą jutiklį) galima pritvirtinti prie „Pan-Tilt“mazgo U formos laikiklio, kad būtų galima naudoti stebėjimo programose.

10 veiksmas: veido stebėjimas naudojant „OpenCV“

Image
Image
Nulaužkite planetą
Nulaužkite planetą

Mašinos regėjimo veido sekimo sistema gali būti įdiegta derinant posistemius, kaip parodyta blokinėje diagramoje. „SerialServoControl“eskizą, skirtą „Arduino“, galima rasti šioje „Sparkfun“pamokoje kartu su susijusia demonstracija naudojant „OpenCV“, „Processing“, „Arduino“, USB kamerą ir „Pan/Tilt“sąranką žmogaus veidui sekti. Demonstracinėje versijoje fotoaparatą pakeičia dvi servo dalys, kad veidas būtų vaizdo centre, net kai vartotojas juda kambaryje. Pavyzdžiui, kodą C#, peržiūrėkite „CamBot“vaizdo įrašo „GitHub“saugyklą.

11 žingsnis: nulaužkite planetą

Jei jums patiko ši instrukcija ir norėtumėte, kad kas mėnesį į jūsų pašto dėžutę būtų pristatyta tokia elektronikos ir kompiuterinių technologijų projektų dėžutė, prisijunkite prie mūsų Prenumeruodami ČIA.

Pasiekite ir pasidalykite savo sėkme komentaruose žemiau arba „HackerBoxes“„Facebook“puslapyje. Žinoma, praneškite mums, jei turite kokių nors klausimų ar jums reikia pagalbos. Dėkojame, kad esate „HackerBoxes“dalis. Tegul jūsų pasiūlymai ir atsiliepimai ateina. „HackerBoxes“yra JŪSŲ dėžutės. Sukurkime ką nors puikaus!

Rekomenduojamas: