Innholdsfortegnelse:

Tiggerobot med ansiktssporing og kontroll av Xbox -kontroller - Arduino: 9 trinn (med bilder)
Tiggerobot med ansiktssporing og kontroll av Xbox -kontroller - Arduino: 9 trinn (med bilder)

Video: Tiggerobot med ansiktssporing og kontroll av Xbox -kontroller - Arduino: 9 trinn (med bilder)

Video: Tiggerobot med ansiktssporing og kontroll av Xbox -kontroller - Arduino: 9 trinn (med bilder)
Video: Leap Motion SDK 2024, November
Anonim
Image
Image
Installere og konfigurere OpenCV og C ++
Installere og konfigurere OpenCV og C ++

Vi skal lage en tiggerobot. Denne roboten vil prøve å irritere eller få oppmerksomhet fra forbipasserende. Den vil oppdage ansiktene deres og prøve å skyte lasere på dem. Hvis du gir roboten en mynt, vil han synge en sang og danse. Roboten trenger en arduino, en live feed av et kamera og en datamaskin for å kjøre openCV på. Roboten vil også kunne styres av en xBox -kontroller hvis den er koblet til PCen.

Trinn 1: Materialene

Hardware elektronisk

  • Arduino NANO eller UNO
  • USB 2.0 kamera
  • Hoppekabler (hann og hunn)
  • 2 x Servo - Generisk (sub -mikro størrelse)
  • 2 x LED - RGB -KODE 5 mm
  • 2 x 5mW lasere
  • 1 x rød LED 5 mm
  • 1 x brødbrett
  • 4 x 220Ω motstand
  • 1 x 1KΩ motstand
  • 1 x protoboard
  • 1 x ekkoloddsensor 4 pinner
  • Xbox -kontroller

Maskinvare analog

  • Treboks (15 x 15 x 7 cm)
  • Lim
  • Elektrisk tape

Programvare

  • Arduino IDE
  • Visual studio 2017
  • 3Ds Max (eller annen 3D moddeling -programvare)
  • Forhåndsform 2.14.0 eller nyere
  • OpenCV 3.4.0 eller nyere

Verktøy

  • Loddeutstyr
  • Så og bor
  • Wire cutter

Trinn 2: Installere og konfigurere OpenCV og C ++

Installere og konfigurere OpenCV og C ++
Installere og konfigurere OpenCV og C ++

Trinn 2.1: Få programvaren

Visual studio 2017: Last ned Visual studio Comunity 2017openCV 3.4.0 Vinnpakke: Gå til den offisielle nedlastingssiden

Trinn 2.2: Installere OpenCV2.2.1: Pakk ut zipfilen til Windows (: C) -stasjonen.2.2.2: Gå til de avanserte systeminnstillingene. Dette finnes i din win10 søkefunksjon.2.2.3: Vi må sette opp nye miljøvariabler. Finn "Path" -miljøet og trykk på edit.2.2.4: Nå må vi legge til plasseringen av "bin map" i en ny variabel i Path enviromental. Hvis du installerte openCV på din C -stasjon, kan banen gå slik: C: / opencv / build / x64 / vc14 / bin Lim inn banen og trykk "OK" på alle vinduene du kan ha åpnet under denne prosessen.

Trinn 2.3: konfigurere visual studio C ++ 2.3.1: Lag et nytt visuelt C ++ - prosjekt. Gjør det til et tomt win32-konsollapplikasjonsprosjekt. 2.3.2: I kildefilfanen, høyreklikk og legg til en ny C ++- fil (.cpp) og navngi den "main.cpp". 2.3.3: Høyreklikk på prosjekt- navn i løsningsutforskeren og velg Egenskaper 2.3.4: Vi må legge til en ekstra Inkluder kataloger. Dette finner du under fanen C/C ++ generelt. Kopier følgende bane: C: / opencv / build / include og lim den inn bak "AID" og klikk på Apply.2.3.5: I det samme vinduet må vi velg "Linker" -fanen. Generelt må vi lage andre Ytterligere Libary -kataloger. Lim inn den følgende banen bak "AID" C: / opencv / build / x64 / vc14 / lib og trykk bruk igjen 2.3.6: Under den samme Linker -fanen velger du "Input" -fanen. Og trykk på "Ytterligere avhengigheter> rediger" og lim inn følgende fil opencv_world320d.lib og xinput.lib (for kontrolleren) og trykk på Apply igjen. Lukk vinduet. Nå er C ++ - filen klar til å jobbe med.

Trinn 3: Sette opp Arduino

Sette opp Arduino
Sette opp Arduino
Sette opp Arduino
Sette opp Arduino
Sette opp Arduino
Sette opp Arduino
Sette opp Arduino
Sette opp Arduino

Møte servoene: Servoene kan rotere ~ 160 ° De må ha mellom 4, 8 og 6, 0 Volt for å fungere normalt. Servoen har 3 pinner: bakken, 4, 8 - 6, 0 volt pin og en data pin. For prosjektet vårt skal vi sette datapinnene for servoene på DigitalPin 9 og 10.

Møte RGB -lysdiodene: RGB -lysdiodene har 4 pinner. Rød, grønn, blå og bakkenål. For å spare plass på arduinoen kan vi koble de 2 RGB -lysdiodene sammen. Så vi vil bare bruke 3 pinner. Vi kan koble til og lodde RGB -lysdiodene på et protoboard som på bildet. Rød pin => DigitalPin 3 (PWM) Grønn pin => DigitalPin 4Blue pin => DigitalPin 7

Møte Piezo -summer: Vår lille robot kommer til å lage mye støy. For å gjøre dette må vi gi ham en stemme! Vi kan velge å gjøre ham veldig høy. Eller vi kan sette en 220Ω motstand foran piezo summeren for å gjøre ham litt mindre motbydelig. Vi forlater Piezo -summeren på brødbrettet. Så ikke behov for lodding. Vi kobler datapinnen (+) til DigitalPin 2 og jordpinnen til bakken på brødbrettet.

Møte ekkoloddet: For å forhindre at roboten prøver å sikte mot en person som er 10 meter unna. Vi kan gi roboten et avstandsområde fra hvor den vil kunne sikte mot mennesker. Vi gjør dette med en ekkoloddsensor. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => bakken

Møter myntdetektoren: Vi skal lage en myntdetektor. Myntdetektoren vil fungere ved å oppdage om kretsen er lukket eller ødelagt. Det vil nesten fungere som en bryter. Men vi må være forsiktige. Hvis vi gjør dette feil, vil det koste oss en arduino. Først: Koble AnalogPin A0 til en 5 volt kabel. Men sørg for å sette en 1KΩ motstand mellom den. Andre: Koble en ledning til jord. Vi kan umiddelbart lodde ledningene og motstanden til samme protoboard som RGB -lysdiodene. Hvis vi nå berører de to ledningene, vil arduinoen oppdage en lukket krets. Dette betyr at det er en mynt! Møte lasers of doom. Roboten trenger sine våpen for å skyte! For å spare plass lodde jeg de to laserne sammen. De vil passe perfekt inn i rammen på kameraet. Koble dem til DigitalPin 11 og til bakken. Brann bort fyren!

Valgfri gimmick. Vi kan sette en rød LED under myntsporet. Dette blir en morsom liten gimmick for når det er mørkt. Koble en ledning til DigitalPin 8 og sett en 220Ω motstand mellom LED og ledning for å forhindre at den blåser opp. Koble den korte pinnen til LED -en til jord.

Trinn 4: C ++ - koden

Trinn 4.1: Konfigurere main.cpp -koden 4.1.1: Last ned "main.cpp" og kopier koden til din egen main.cpp.4.1.2: På linje 14 endre "com" til den com arduinoen bruker. "\. / COM (endre dette)" 4.1.3: På linje 21 og 22 angir du den riktige banen til filene "haarcascade_frontalface_alt.xml" og "haarcascade_eye_tree_eyeglasses.xml" Hvis openCV er installert på C -stasjonen, disse filene kan finnes her: "C: / opencv / build / etc / haarcascades \" Behold de dobbelte skråstrekkene eller legg til en der det bare er en.

Trinn 4.2: Legg til tserial.h og Tserial.cpp Disse 2 filene tar seg av kommunikasjonen mellom arduino og PC.4.2.1: Last ned tserial.h og Tserial.cpp.4.2.2: Plasser disse 2 filene i prosjektet katalog. I Solution explorer høyreklikker du på prosjektet og velger legg til> eksisterende element. I popup -vinduet velger du de to filene som skal legges til.

Trinn 4.2: Legg til CXBOXController.h og CXBOXController.h Disse filene tar over kontrolleren av prosjektet 4.2.1: I Solution explorer høyreklikker du på prosjektet og velger legg til> eksisterende element. I popup -vinduet velger du de to filene som skal legges til. C ++ - filene er konfigurert.

Trinn 5: Arduino -koden

Trinn 5.1: NewPing -bibliotek 5.1.1: Last ned ArduinoCode.ino og åpne den i arduino IDE.5.1.2: Gå til "Sketch> Include libary> Manage libaries".5.1.3: Søk i filterboksen til "NewPing" og installer dette biblioteket.

Trinn 5.2: Pitches -bibliotek 5.2.1: Last ned pitches.txt og kopier innholdet i pitches.txt.5.2.2: I Arduino IDE trykker du på CTRL+Shift+N for å åpne en ny fane 5.2.3: Lim inn koden fra pitches.txt i den nye fanen og lagre den som "pitches.h". Arduino -koden er satt opp

Trinn 6: 3D -utskrift og finjustering av utskriften

3D -utskrift og finjustering av utskriften
3D -utskrift og finjustering av utskriften
3D -utskrift og finjustering av utskriften
3D -utskrift og finjustering av utskriften

Trinn 6.1: Skriv ut 3D -filen Åpne printfile.form og sjekk om alt er i orden. Hvis alt ser ut til å være greit, sender du utskriftsjobben til skriveren. Hvis noe ser ut til eller du vil endre modellen. Jeg har inkludert 3Ds Max -filene og OBJ -filene som du kan redigere.

Trinn 6.2: Avgrens modellen 6.2.1: Etter at utskriften er ferdig, suge de to modellene i omtrent 70% alkohol for å fjerne eventuell utskrift.6.2.2: Etter utskrift legg modellen i solen i noen timer for å la UV-lyset herde modellen. Eller du kan bruke en UV-lampe til å herde modellen. Dette må gjøres fordi modellen vil være klissete.

6.2.3: Fjern støtterammen. Dette kan gjøres med en trådkutter. Eller et annet verktøy som kan kutte plast 6.2.4: Noen deler av 3D -utskriften kan fortsatt være myk. Selv om modellen har vært i mye UV-lys. Delene som kan være myke, er delene som var nær støtterammene. Legg modellen i mer sol av UV-lys for å herde ut.6.2.5: Med en "dremel" kan du slipe bort alle de små støtene som er laget av rammen. Du kan prøve å montere servoene i rammen. Hvis de ikke passer, kan du bruke Dremel til å slipe bort materiale. få det til å passe.

Trinn 7: Bygg boksen

Å bygge boksen
Å bygge boksen
Å bygge boksen
Å bygge boksen

Trinn 7.1: Lage hullene Jeg har inkludert en blåkopi av den aktuelle boksen. Blåkopien er ikke i målestokk, men alle størrelsene er riktige. 7.1.1: Start med å markere alle hullene på de riktige stedene. 7.1.2: Bor alle hullene. De større hullene kan gjøres opp til størrelse med en Dremel. 7.1.3: De firkantede hullene kan også bores. Men for å gjøre dem firkantede kan du passe Dremel med en liten fil og fil ut skarpe hjørner 7.1.4: Prøv å passe alle komponentene. hvis de passer, er du god til å gå! 7.1.5: Se opp for tresplinter. Bruk sandpapir for å bli kvitt dem.

Trinn 7.2: Maling 7.2.1: Start med å slipe lokket. Vi trenger at malingen klistrer seg.7.2.2: Ta en klut og legg litt terpentin på den for å rengjøre esken. 7.2.3: Nå kan du spraye boksen i hvilken farge du ønsker.

Trinn 8: Fullfør

Ferdig
Ferdig
Ferdig
Ferdig
Ferdig
Ferdig

Nå må vi sette alt på plass og la det gjøre sitt. Trinn 8.1: Myntdetektoren 8.1.1: Lim ned noen metallbøyler til myntdetektoren.8.1.2: Lodd hver ledning fra kontakten til en bøyle.8.1.3: Test forbindelsen med en mynt. Hvis det ikke er noen lukket krets, lodder du ledningene mer til kanten Trinn 8.2: Protoboardet og RGB -lysdiodene8.2.1: Plasser protoboardet øverst til høyre og tape det ned! 8.2.2: Koble RGB -lysdiodene til ledningene fra protoboardet! 8.2.3: Koble alle ledningene fra protoboardet til arduinoen. Trinn 8.3: Ekkoloddsensoren8.3.1: Plasser sensoren i hullene vi laget for den. Hvis du har mannlige til kvinnelige jumpwires kan du hoppe over 8.3.28.3.2: Kutt noen hann- og hunnledninger i to og lodd hunn- og hanntrådene sammen for å lage en enkelt kabel vi kan bruke til å koble sensoren til arduino.8.3.3: Koble sensoren til arduinoen

Trinn 8.4: Lasere og kamera 8.4.1: Lim den lille rammen til kameraet. Sørg for at den er stående.8.4.2: Sett laserne inn i rammen også. Lim dem ned slik at fienden ikke stjeler dem!

Trinn 8.5: Servoer og 3D -utskrift 8.5.1: Lim servoen i hullet på lokket 8.5.2: Last opp arduino -filen til arduinoen (dette får servoene til å stå i riktig posisjon) 8.5.3: Med servoen fulgte en lite rundt platå. Plasser dette på servoen i lokket. 8.5.5: Sett det store 3D -trykket på servoen og platået og skru dem godt sammen med en skrue. 8.5.5: Legg den andre servoen på den lille 3D -utskriften og lim dem sammen. 8.5.6: Sett kameraet på plass, så er alt klart!

Trinn 9: Start programmet

For å starte roboten, åpne C ++ - filen i Visual studio. Sørg for at du er i "feilsøkingsmodus" Last opp arduino -filen til arduinoen. Når det er lastet opp, trykker du på play i visual studio. Og roboten vil skyte og samle alle myntene i verden !!!

Anbefalt: