Turinys:

Elgetaujantis robotas su veido stebėjimu ir valdymu, naudojant „Xbox“valdiklį - „Arduino“: 9 žingsniai (su nuotraukomis)
Elgetaujantis robotas su veido stebėjimu ir valdymu, naudojant „Xbox“valdiklį - „Arduino“: 9 žingsniai (su nuotraukomis)

Video: Elgetaujantis robotas su veido stebėjimu ir valdymu, naudojant „Xbox“valdiklį - „Arduino“: 9 žingsniai (su nuotraukomis)

Video: Elgetaujantis robotas su veido stebėjimu ir valdymu, naudojant „Xbox“valdiklį - „Arduino“: 9 žingsniai (su nuotraukomis)
Video: Vilnius video.Vilniuje uzdrausta elgetauti gatveje 2024, Liepa
Anonim
Image
Image
„OpenCV“ir „C ++“diegimas ir konfigūravimas
„OpenCV“ir „C ++“diegimas ir konfigūravimas

Mes padarysime elgetaujantį robotą. Šis robotas bandys erzinti ar atkreipti praeinančių žmonių dėmesį. Jis aptiks jų veidus ir bandys šaudyti į juos lazeriais. Jei padovanosite robotui monetą, jis dainuos ir šoks. Norint paleisti „openCV“, robotui reikės arduino, tiesioginio fotoaparato ir kompiuterio. Robotą taip pat galės valdyti „xBox“valdiklis, jei jis bus prijungtas prie kompiuterio.

1 žingsnis: medžiagos

Elektroninė aparatinė įranga

  • „Arduino NANO“arba „UNO“
  • USB 2.0 kamera
  • Trumpieji kabeliai (vyriškos ir moteriškos)
  • 2 x servo - bendras (sub -micro dydis)
  • 2 x LED - RGB KATODAS 5 mm
  • 2 x 5 mW lazeriai
  • 1 x raudonas šviesos diodas 5 mm
  • 1 x duonos lenta
  • 4 x 220Ω rezistorius
  • 1 x 1KΩ rezistorius
  • 1 x protoboard
  • 1 x sonaro jutiklis 4 kaiščiai
  • „Xbox“valdiklis

Techninės įrangos analogas

  • Medinė dėžutė (15 x 15 x 7 cm)
  • Klijai
  • Izoliacinė juosta

Programinė įranga

  • „Arduino IDE“
  • Vizualinė studija 2017 m
  • „3Ds Max“(arba bet kuri kita 3D modeliavimo programinė įranga)
  • Ruošinys 2.14.0 arba naujesnis
  • „OpenCV 3.4.0“arba naujesnė versija

Įrankiai

  • Litavimo įranga
  • Pjūklas ir gręžtuvas
  • Vielos pjaustytuvas

2 veiksmas: „OpenCV“ir „C ++“diegimas ir konfigūravimas

„OpenCV“ir „C ++“diegimas ir konfigūravimas
„OpenCV“ir „C ++“diegimas ir konfigūravimas

2.1 žingsnis: Gaukite programinę įrangą

„Visual studio 2017“: atsisiųskite „Visual studio Comunity 2017openCV 3.4.0“laimėjimo paketą: eikite į oficialų atsisiuntimo puslapį

2.2 veiksmas: „OpenCV2.2.1“diegimas: išskleiskite ZIP failą į „Windows“(: C) diską. 2.2.2: eikite į išplėstinius sistemos nustatymus. Tai galima rasti jūsų „win10“paieškos funkcijoje. 2.2.3: Turime nustatyti naujus aplinkos kintamuosius. Suraskite aplinkos „Path“aplinką ir paspauskite redaguoti.2.2.4: Dabar „bin map“vietą turime pridėti prie naujo „Path enviromental“kintamojo. Jei C diske įdiegėte „openCV“, kelias gali būti toks: C: / opencv / build / x64 / vc14 / bin Įklijuokite kelią ir paspauskite „Gerai“visuose languose, kuriuos galbūt atidarėte šio proceso metu.

2.3 veiksmas: vizualinės studijos C ++ konfigūravimas 2.3.1: sukurkite naują vaizdinį C ++ projektą. Padarykite tai tuščiu „Win32 Console“programos projektu. 2.3.2: Skirtuke „Šaltinio failai“dešiniuoju pelės mygtuku spustelėkite ir pridėkite naują C ++ failą (.cpp) ir pavadinkite jį „main.cpp“.2.3.3: Dešiniuoju pelės mygtuku spustelėkite projektą pavadinimą Sprendimų naršyklėje ir pasirinkite Ypatybės.2.3.4: Turime pridėti papildomus įtraukimo katalogus. Tai galima rasti C/C ++ skirtuke apskritai. Nukopijuokite šį kelią: C: / opencv / build / include ir įklijuokite jį už "AID" ir spustelėkite taikyti. 2.3.5: Tame pačiame lange turime pasirinkite skirtuką „Linker“. apskritai turime sukurti kitus papildomus bibliotekų katalogus. Įklijuokite šį kelią už „AID“C: / opencv / build / x64 / vc14 / lib ir dar kartą paspauskite Apply.2.3.6: Tame pačiame „Linker“skirtuke pasirinkite skirtuką „Įvestis“. Ir paspauskite „Papildomos priklausomybės> redaguoti“ir įklijuokite šiuos failus opencv_world320d.lib ir xinput.lib (valdikliui) ir dar kartą paspauskite taikyti. Uždarykite langą. Dabar jūsų C ++ failas paruoštas darbui.

3 žingsnis: „Arduino“nustatymas

„Arduino“nustatymas
„Arduino“nustatymas
„Arduino“nustatymas
„Arduino“nustatymas
„Arduino“nustatymas
„Arduino“nustatymas
„Arduino“nustatymas
„Arduino“nustatymas

Servų susitikimas: Servos gali pasukti ~ 160 °. Norint normaliai veikti, jos turi turėti nuo 4, 8 iki 6, 0 voltų. Servo turi 3 kaiščius: įžeminimą, 4, 8 - 6, 0 voltų kaištį ir duomenis smeigtukas. Savo projektui mes nustatysime „DigitalPin 9“ir „10“servo duomenų kaiščius.

Susitikimas su RGB šviesos diodais: RGB šviesos diodai turi 4 kaiščius. Raudona, žalia, mėlyna ir įžeminta. Norėdami sutaupyti vietos arduino, galime sujungti 2 RGB lemputes. Taigi mes naudosime tik 3 kaiščius. Galime prijungti ir lituoti RGB šviesos diodus ant protobooto, kaip parodyta paveikslėlyje. Raudonasis kaištis => „DigitalPin 3“(PWM) žalias smeigtukas

Susitikimas su pjezo garsiniu signalu: mūsų mažasis robotas sukels triukšmą. Norėdami tai padaryti, turime duoti jam balsą! Mes galime pasirinkti, kad jis būtų tikrai garsus. Arba mes galime pastatyti 220Ω rezistorių prieš pjezo garsinį signalą, kad jis būtų šiek tiek mažiau nemalonus. Paliekame Piezo signalą ant duonos lentos. Taigi nereikia lituoti. Duomenų kaištį (+) prijungiame prie „DigitalPin 2“, o įžeminimo kaištį - prie duonos lentos.

Susitikimas su sonaru: kad robotas nebandytų nukreipti į žmogų, esantį už 10 metrų. Mes galime suteikti robotui atstumą, nuo kurio jis galės nusitaikyti į žmones. Tai darome naudojant sonaro jutiklį. VCC => 5 voltai Trig => DigitalPin 6Echo => DigitalPin 5GND => žemė

Susitikimas su monetų detektoriumi: ketiname pagaminti monetų detektorių. Monetų detektorius veiks aptikęs, ar grandinė uždaryta ar nutrūkusi. Jis beveik veiks kaip jungiklis. Bet mes turime būti atsargūs. Jei tai padarysime neteisingai, tai mums kainuos arduino. Pirma: prijunkite „AnalogPin A0“prie 5 voltų kabelio. Tačiau įsitikinkite, kad tarp jo yra 1KΩ rezistorius. Antra: prijunkite laidą prie žemės. Mes galime nedelsdami lituoti laidus ir rezistorių prie tos pačios protobooto kaip RGB lemputės. Dabar, jei paliesime du laidus, „arduino“aptiks uždarą grandinę. Tai reiškia, kad yra moneta! Susitikimas su pražūties lazeriais. Robotui reikia ginklų! Norėdami sutaupyti šiek tiek vietos, lituosiu du lazerius. Jie puikiai tilps į fotoaparato rėmą. Prijunkite juos prie „DigitalPin 11“ir prie žemės. Atleiskite mažą vyruką!

Neprivalomas triukas. Po monetų lizdu galime įdėti raudoną šviesos diodą. Tai bus smagus triukas, kai bus tamsu. Prijunkite laidą prie „DigitalPin 8“ir įdėkite 220 Ω rezistorių tarp šviesos diodo ir laido, kad jis nesprogtų. Prijunkite trumpą šviesos diodo kaištį prie žemės.

4 žingsnis: C ++ kodas

4.1 žingsnis: atsisiųskite „main.cpp“kodą4.1.1: atsisiųskite „main.cpp“ir nukopijuokite kodą į savo "\. / COM (pakeisti tai)" 4.1.3: 21 ir 22 eilutėse nustatykite teisingą kelią į failus "haarcascade_frontalface_alt.xml" ir "haarcascade_eye_tree_eyeglasses.xml", jei C diske įdiegta "openCV", šiuos failus galite rasti čia: "C: / opencv / build / etc / haarcascades \" Laikykite dvigubus atbulinius brūkšnius arba pridėkite vieną, kur yra tik vienas.

4.2 veiksmas: pridėkite „tserial.h“ir „Tserial.cpp“Šie 2 failai pasirūpins ryšiu tarp „arduino“ir kompiuterio. 4.2.1: atsisiųskite „tserial.h“ir „Tserial.cpp.4.2.2“: įdėkite šiuos 2 failus į projektą katalogą. Sprendimų naršyklėje dešiniuoju pelės mygtuku spustelėkite projektą ir pasirinkite pridėti> esamas elementas. Atsidariusiame lange pasirinkite du failus, kuriuos norite pridėti.

4.2 veiksmas: pridėkite „CXBOXController.h“ir „CXBOXController.h“. Šie failai perims valdiklio projekto dalį. 4.2.1: Sprendimų naršyklėje dešiniuoju pelės mygtuku spustelėkite projektą ir pasirinkite pridėti> esamą elementą. Iššokančiajame lange pasirinkite du failus, kuriuos norite pridėti. C ++ failai yra nustatyti.

5 žingsnis: „Arduino“kodas

5.1 veiksmas: „NewPing“biblioteka ir įdiekite šią biblioteką.

5.2 veiksmas: „Pitch“biblioteka 5.2.1: atsisiųskite „pitches.txt“ir nukopijuokite „pitches.txt“turinį. 5.2.2: „Arduino IDE“paspauskite CTRL+Shift+N, kad atidarytumėte naują skirtuką. 5.2.3: įklijuokite kodą iš pitches.txt į naują skirtuką ir išsaugokite jį kaip „pitches.h“. „Arduino“kodas buvo nustatytas

6 žingsnis: 3D spausdinimas ir spausdinimo tobulinimas

3D spausdinimas ir spausdinimo tobulinimas
3D spausdinimas ir spausdinimo tobulinimas
3D spausdinimas ir spausdinimo tobulinimas
3D spausdinimas ir spausdinimo tobulinimas

6.1 veiksmas: 3D failo spausdinimas Atidarykite printfile.form ir patikrinkite, ar viskas gerai. Jei viskas atrodo gerai, atsiųskite spausdinimo užduotį į spausdintuvą. Jei kažkas atrodo ar norite pakeisti modelį. Aš įtraukiau „3Ds Max“failus ir OBJ failus, kad galėtumėte juos redaguoti.

6.2 žingsnis: patobulinkite modelį grūdinti modelį. Arba modeliui sukietinti galite naudoti UV lempą. Tai reikia padaryti, nes modelis bus lipnus.

6.2.3: Nuimkite atraminį karkasą. Tai galima padaryti vielos pjaustytuvu. Arba bet kuris kitas įrankis, galintis pjaustyti plastiką.6.2.4: Kai kurios 3D spausdinimo dalys vis tiek gali būti minkštos. Net jei modelis buvo daug UV spindulių. Dalys, kurios gali būti minkštos, yra tos dalys, kurios yra arti atraminių rėmų. Padėkite modelį daugiau saulės spindulių, kad sukietėtų. Galite pabandyti pritvirtinti servo prie rėmo. Jei jie netinka, galite naudoti „Dremel“medžiagą šlifuoti. kad jis tiktų.

7 žingsnis: pastatykite dėžutę

Dėžutės statymas
Dėžutės statymas
Dėžutės statymas
Dėžutės statymas

7.1 žingsnis: skylių padarymas Aš įtraukiau atitinkamos dėžutės projektą. 7.1.1: Pradėkite pažymėdami visas skyles tinkamose vietose. 7.1.2: gręžkite visas skyles. Dremel gali būti padarytos didesnio dydžio skylės. 7.1.3: Taip pat galima išgręžti kvadratines skyles. Jei norite, kad jie būtų kvadratiniai, „Dremel“galite įdėti nedidelį failą ir aštrius kampus. 7.1.4: Pabandykite sutalpinti visus komponentus. 7.1.5: Saugokitės medžio drožlių, jei jos tinka. Norėdami atsikratyti jų, naudokite švitrinį popierių.

7.2 žingsnis: dažymas 7.2.1: pradėkite nuo dangčio šlifavimo. Mums reikia, kad dažai priliptų. 7.2.2: paimkite šluostę ir uždėkite ant jos šiek tiek terpentino, kad išvalytumėte dėžutę.

8 žingsnis: Baigimas

Užbaigimas
Užbaigimas
Užbaigimas
Užbaigimas
Užbaigimas
Užbaigimas

8.1 žingsnis: Monetų detektorius.3: Patikrinkite ryšį su moneta. Jei nėra uždaros grandinės, lituokite laidus labiau prie krašto. 8.2 žingsnis: protoboard ir RGB šviesos diodai 8.2.1: padėkite protoboard viršutiniame dešiniajame kampe ir užklijuokite juostele! 8.2.3: Prijunkite visus laidus iš protobooto prie arduino. 8.3 žingsnis: sonaro jutiklis 8.3.28.3.2: perpjaukite kai kuriuos vyriškus ir moteriškus laidus ir lydykite vidinius ir vidinius laidus, kad gautumėte vieną kabelį, kurį galime naudoti jutikliui prijungti prie arduino. 8.3.3: prijunkite jutiklį prie arduino

8.4 žingsnis: Lazeriai ir fotoaparatas 8.4.1: priklijuokite mažą rėmelį prie fotoaparato. Įsitikinkite, kad jis yra vertikalus.8.4.2: Lazerius taip pat įdėkite į rėmą. Klijuokite juos, kad priešas jų nepavogtų!

8.5 žingsnis: Servo ir 3D spausdinimas 8.5.1: klijuokite servo dangčio skylę 8.5.2: įkelkite arduino failą į arduino (dėl to servos stovi tinkamoje padėtyje) 8.5.3: Kartu su servo mažas apvalus plokščiakalnis. 8.5.5.4: Padėkite didelį 3D atspaudą ant servo ir plokščiakalnio ir tvirtai prisukite juos varžtu. 8.5.6: Įdėkite fotoaparatą į vietą ir viskas yra paruošta darbui!

9 veiksmas: paleiskite programą

Norėdami paleisti robotą, atidarykite „C ++“failą „Visual studio“. Įsitikinkite, kad esate „derinimo režime“. Įkelkite arduino failą į arduino. Kai tai bus įkelta, paspauskite „Play“vaizdo studijoje. Ir robotas šaudys ir surinks visas pasaulio monetas !!!

Rekomenduojamas: