Kazalo:
- 1. korak: Materiali
- 2. korak: Namestitev in konfiguriranje OpenCV in C ++
- 3. korak: Nastavitev Arduina
- 4. korak: Koda C ++
- 5. korak: Koda Arduino
- 6. korak: 3D tiskanje in izboljšanje tiskanja
- 7. korak: Izdelava škatle
- 8. korak: Dokončanje
- 9. korak: Zaženite program
Video: Robot za prosjačenje s sledenjem obraza in nadzorom s krmilnikom Xbox - Arduino: 9 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Naredili bomo prosjaškega robota. Ta robot bo poskušal dražiti ali pritegniti pozornost mimoidočih ljudi. Zaznal bo njihove obraze in jih poskušal ustreliti z laserji. Če robotu podarite kovanec, bo zapel pesem in plesal. Robot bo za zagon openCV potreboval arduino, prenos kamere v živo in računalnik. Robota bo lahko upravljal tudi krmilnik xBox, če je povezan z osebnim računalnikom.
1. korak: Materiali
Strojna elektronika
- Arduino NANO ali UNO
- Kamera USB 2.0
- Mostični in ženski mostični kabli
- 2 x Servo - generično (podmikro velikost)
- 2 x LED - RGB KATODA 5 mm
- 2 x 5mW laserji
- 1 x rdeča LED 5 mm
- 1 x Deska
- 4 x 220Ω upor
- 1 x 1KΩ upor
- 1 x protoboard
- 1 x senzor sonarja 4 zatiči
- Krmilnik Xbox
Strojni analog
- Lesena škatla (15 x 15 x 7 cm)
- Lepilo
- Električni trak
Programska oprema
- Arduino IDE
- Vizualni studio 2017
- 3Ds Max (ali katera koli druga programska oprema za 3d modeliranje)
- Preform 2.14.0 ali novejši
- OpenCV 3.4.0 ali novejši
Orodja
- Spajkalna oprema
- Žaga in vrtanje
- Rezalnik žice
2. korak: Namestitev in konfiguriranje OpenCV in C ++
Korak 2.1: Pridobite programsko opremo
Visual studio 2017: Prenesite Visual studio Comunity 2017openCV 3.4.0 Win pack: Pojdite na uradno stran za prenos
Korak 2.2: Namestitev OpenCV2.2.1: Izvlecite datoteko zip v pogon Windows (: C). 2.2.2: Pojdite na napredne sistemske nastavitve. To lahko najdete v iskalni funkciji win10. 2.2.3: Nastaviti moramo nove okoljske spremenljivke. Poiščite okolje "Pot" in pritisnite Edit.2.2.4: Zdaj moramo dodati lokacijo "zemljevida koša" novi spremenljivki v okolju Path. Če ste na pogon C namestili openCV, je pot lahko naslednja: C: / opencv / build / x64 / vc14 / bin Prilepite pot in pritisnite »V redu« na vseh oknih, ki ste jih morda odprli med tem postopkom.
Korak 2.3: konfiguriranje vizualnega studia C ++ 2.3.1: Ustvarite nov vizualni projekt C ++. 2.3.3: Na zavihku izvorne datoteke z desno tipko miške kliknite in dodajte novo datoteko C ++ (.cpp) in jo poimenujte "main.cpp".2.3.3: Desni klik na projekt- ime v Raziskovalcu rešitev in izberite Lastnosti. 2.3.4: Dodati moramo dodatne Vključi imenike. To je na splošno na zavihku C/C ++. Kopirajte naslednjo pot: C: / opencv / build / include in jo prilepite za "AID" in kliknite Apply.2.3.5: V istem oknu moramo izberite zavihek "Povezovalnik". na splošno moramo narediti druge dodatne imenike knjižnic. Prilepite naslednjo pot za "AID" C: / opencv / build / x64 / vc14 / lib in znova pritisnite Apply.2.3.6: Pod istim jezičkom Povezovalnik izberite zavihek "Vnos". In pritisnite "Dodatne odvisnosti> uredi" in prilepite naslednjo datoteko opencv_world320d.lib in xinput.lib (za krmilnik) in znova pritisnite Apply. Zaprite okno. Zdaj je vaša datoteka C ++ pripravljena za delo.
3. korak: Nastavitev Arduina
Spoznavanje servomotorjev: Servomotorji se lahko vrtijo ~ 160 ° Za normalno delovanje morajo imeti med 4, 8 in 6, 0 voltov. Servo ima 3 zatiča: ozemljitev, 4, 8 - 6, 0 voltov in podatkovni pin. Za naš projekt bomo nastavili podatkovne zatiče za servomotorje na DigitalPin 9 in 10.
Spoznavanje RGB LED: RGB LED ima 4 zatiči: rdeča, zelena, modra in ozemljitev. Da bi prihranili nekaj prostora na arduinu, lahko povežemo 2 LED RGB. Uporabili bomo torej samo 3 zatiče. RGB LED lahko povežemo in spajkamo na protoboard, kot je na sliki. Rdeči pin => DigitalPin 3 (PWM) Zeleni pin => DigitalPin 4Blue pin => DigitalPin 7
Srečanje z zvočnikom Piezo: Naš mali robot bo naredil nekaj hrupa. Da bi to naredili, mu moramo dati glas! Lahko se odločimo, da bomo res glasni. Ali pa lahko pred piezo zvočnikom postavimo 220Ω upor, da bo nekoliko manj neprijeten. Zvočni signal Piezo puščamo na plošči. Ni potrebe po spajkanju. Priključimo podatkovni zatič (+) na DigitalPin 2, ozemljitveni zatič pa na maso na plošči.
Spoznavanje sonarja: Da bi preprečili, da bi robot poskušal ciljati na osebo, ki je oddaljena 10 metrov. Robotu lahko damo razdaljo, od koder bo lahko ciljal na ljudi. To naredimo s senzorjem sonarja. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => ozemljitev
Spoznavanje detektorja kovancev: Naredili bomo detektor kovancev. Detektor kovancev bo deloval tako, da bo ugotovil, ali je vezje zaprto ali prekinjeno. To bo skoraj delovalo kot stikalo. Vendar moramo biti previdni. Če to storimo narobe, nas bo to stalo arduino. Prvič: AnalogPin A0 priključite na 5 -voltni kabel. Toda med njim vstavite 1KΩ upor. Drugič: Priključite žico na ozemljitev. Žice in upor lahko takoj spajkamo na isto ploščo kot LED diode RGB. Če se dotaknemo dveh žic, se bo arduino zaznal v zaprtem krogu. To pomeni, da obstaja kovanec! Srečanje z laserji doom. Robot potrebuje orožje za streljanje! Da bi prihranil nekaj prostora, sem spajal dva laserja, ki se popolnoma prilegata okvirju fotoaparata. Priključite jih na DigitalPin 11 in na ozemljitev. Požari malega fanta!
Izbirni trik. Pod režo lahko postavimo rdečo LED. To bo zabaven mali trik, ko bo temno. Priključite žico na DigitalPin 8 in med LED in žico vstavite 220Ω upor, da preprečite njeno razstreljevanje. Kratki zatič LED priklopite na ozemljitev.
4. korak: Koda C ++
Korak 4.1: Nastavitev kode main.cpp 4.1.1: Prenesite datoteko "main.cpp" in jo kopirajte v svoj main.cpp.4.1.2: V vrstici 14 spremenite "com" v com, ki ga uporablja arduino. "\. / COM (spremeni to)" 4.1.3: V vrsticah 21 in 22 nastavite pravo pot do datotek "haarcascade_frontalface_alt.xml" in "haarcascade_eye_tree_eyeglasses.xml" Če je na pogonu C nameščen openCV, te datoteke se lahko nahajajo tukaj: "C: / opencv / build / etc / haarcascades \" Ohranite dvojne poševnice ali dodajte eno, če je le ena.
Korak 4.2: Dodajte tserial.h in Tserial.cpp Ti datoteki bosta skrbeli za komunikacijo med arduinom in osebnim računalnikom. 4.2.2: Prenesite tserial.h in Tserial.cpp imenik. V raziskovalcu rešitev z desno miškino tipko kliknite projekt in izberite dodaj> obstoječi element. V pojavnem oknu izberite dve datoteki, ki ju želite dodati.
Korak 4.2: Dodajte CXBOXController.h in CXBOXController.h Te datoteke bodo prevzele krmilni del projekta. 4.2.2: V raziskovalcu rešitev z desno tipko miške kliknite projekt in izberite dodaj> obstoječi element. V pojavnem oknu izberite dve datoteki, ki ju želite dodati. Datoteke C ++ so nastavljene.
5. korak: Koda Arduino
Korak 5.1: Knjižnica NewPing 5.1.1: Prenesite ArduinoCode.ino in ga odprite v arduino IDE.5.1.2: Pojdite na "Sketch> Include libary> Manage libaries".5.1.3: V polju za filtriranje poiščite "NewPing" in namestite to knjižnico.
5. korak: Knjižnica predstavitev 5.2.2: Prenesite datoteko pitches.txt in kopirajte vsebino datoteke pitches.txt. 5.2.2: V IDE -ju Arduino pritisnite CTRL+Shift+N, da odprete nov zavihek. pitches.txt v nov zavihek in ga shranite kot "pitches.h". Koda Arduino je nastavljena
6. korak: 3D tiskanje in izboljšanje tiskanja
Korak 6.1: Natisnite datoteko 3D Odprite printfile.form in preverite, ali je vse v redu. Če se vam zdi vse v redu, pošljite tiskalniško opravilo tiskalniku. Če se vam zdi nekaj ali želite spremeniti model. Za urejanje sem vključil datoteke 3Ds Max in datoteke OBJ.
Korak 6.2: Izboljšajte model 6.2.1: Po končanem tiskanju namočite dva modela v približno 70% alkohola, da odstranite morebitne odtise tiskanja. utrdi model. Ali pa za utrjevanje modela uporabite UV-svetilko. To je treba storiti, ker bo model lepljiv.
6.2.3: Odstranite podporni okvir. To lahko storite z rezalnikom žice. Ali katero koli drugo orodje, ki lahko reže plastiko. 6.2.4: Nekateri deli 3D -tiskanja so lahko še vedno mehki. Tudi če je bil model v veliko UV-svetlobi. Mehki deli so tisti, ki so blizu podpornih okvirjev. Model položite na bolj sonce UV-svetlobe, da se strdi. 6.2.5: Z "dremelom" lahko pobrusite vse majhne izbokline, ki jih naredi ogrodje. Servomotorje lahko poskusite namestiti v okvir. Če se ne prilegajo, lahko uporabite Dremel za brušenje materiala. naj bo primerno.
7. korak: Izdelava škatle
Korak 7.1: Izdelava lukenj Vključil sem načrt zadevnega polja. Načrt ni prilagojen, vendar so vse velikosti pravilne. 7.1.1: Začnite tako, da označite vse luknje na desnih mestih. 7.1.2: Izvrtajte vse luknje. Večje luknje je mogoče zgraditi z Dremelom. 7.1.3: Lahko izvrtate tudi kvadratne luknje. Da pa bodo kvadratni, lahko Dremel namestite z majhno datoteko in izrežete ostre vogale. 7.1.4: Poskusite namestiti vse komponente. 7.1.5: Pazite na drobce lesa, če se prilegajo. Da se jih znebite, uporabite brusni papir.
Korak 7.2: Slikanje 7.2.1: Začnite z brušenjem pokrova. 7.2.2: Vzemite krpo in nanjo položite malo terpentina, da očistite škatlo.
8. korak: Dokončanje
Zdaj moramo vse postaviti na svoje mesto in pustiti, da to naredi. Korak 8.1: Detektor kovancev 8.1.1: Prilepite nekaj kovinskih opornikov za detektor kovancev 8.1.1.2: Spajajte vsako žico od priključka na nosilec..3: Preverite povezavo s kovancem. Če ni zaprtega tokokroga, žice spajkajte bolj do roba. Korak 8.2: Protoboard in RGB LED 8.2.1: Protoboard postavite v zgornji desni kot in ga pritrdite s trakom! 8.2.2: LED RGB povežite z žicami 8.2.3: Priključite vse žice iz protoboard -a na arduino. Korak 8.3: Sonarni senzor 8.3.1: Senzor postavite v luknje, ki smo jih naredili zanj. Če imate moške in ženske skakalnice, jih lahko preskočite 8.3.28.3.2: Prerežite nekaj moških in ženskih žic na pol in spajajte žensko in moško žico skupaj, da naredite en sam kabel, ki ga lahko uporabimo za povezavo senzorja z arduinom.
Korak 8.4: Laserji in kamera 8.4.1: Majhen okvir prilepite na kamero. 8.4.2: Laserje vstavite tudi v okvir. Lepite jih, da jih sovražnik ne ukrade!
Korak 8.5: Servomotorji in 3D tiskanje 8.5.1: Lepilo servo v luknjo na pokrovu 8.5.2: Naložite datoteko arduino v arduino (zaradi tega servomotorji stojijo v pravem položaju) 8.5.3: S servo je prišel majhna okrogla planota. To položite na servo v pokrovu. 8.5.4: Položite velik 3D -tisk na servo in plato ter jih tesno privijte skupaj z vijakom. 8.5.5: Drugi servomotor postavite na majhen 3D -tisk in jih zlepite skupaj. 8.5.6: Postavite kamero na mesto in vse je pripravljeno!
9. korak: Zaženite program
Če želite zagnati robota, odprite datoteko C ++ v Visual studiu. Prepričajte se, da ste v "načinu odpravljanja napak". Naložite datoteko arduino v arduino. Ko to naložite, pritisnite play v vizualnem studiu. In robot bo streljal in zbral vse kovance na svetu !!!
Priporočena:
Ogledalo za prepoznavanje obraza s skrivnim oddelkom: 15 korakov (s slikami)
Ogledalo za prepoznavanje obraza s skrivnim oddelkom: vedno so me zanimali vedno ustvarjalni skrivni predeli, ki se uporabljajo v zgodbah, filmih in podobno. Ko sem si ogledal natečaj Secret Compartment Contest, sem se odločil, da bom tudi sam eksperimentiral z idejo in naredil običajno ogledalo, ki odpira
Raspberry Pi - avtonomni Mars Rover s sledenjem objektom OpenCV: 7 korakov (s slikami)
Raspberry Pi - avtonomni Mars Rover s sledenjem objektov OpenCV: Poganja ga Raspberry Pi 3, funkcija prepoznavanja odprtih CV -jev, ultrazvočni senzorji in motorji z enosmernim tokom. Ta rover lahko sledi vsakemu objektu, za katerega je usposobljen, in se premika po katerem koli terenu
Projekcijska maska za spreminjanje obraza - karkoli: 14 korakov (s slikami)
Maska za spreminjanje obraza za spreminjanje obraza - bodite karkoli: Kaj storite, ko se ne morete odločiti, kaj želite biti za noč čarovnic? Bodi vse. Projekcijsko masko sestavljajo bela 3D natisnjena maska, malina pi, majhen projektor in baterija. Sposoben je projicirati vse in vse
Avto na daljavo - krmiljenje z brezžičnim krmilnikom Xbox 360: 5 korakov
Avto na daljavo - krmiljenje z brezžičnim krmilnikom Xbox 360: to so navodila za izdelavo lastnega avtomobila na daljavo, ki ga upravljate z brezžičnim krmilnikom Xbox 360
Kako narediti pameten koridor s nastavljivim krmilnikom časovnika: 6 korakov (s slikami)
Kako narediti pametni koridor z nastavljivim krmilnikom časovnika: Ta vadnica prikazuje, kako narediti pametni koridor z nastavljivim krmilnikom časovnika