Indholdsfortegnelse:

Tiggerrobot med ansigtsregistrering og kontrol af Xbox -controller - Arduino: 9 trin (med billeder)
Tiggerrobot med ansigtsregistrering og kontrol af Xbox -controller - Arduino: 9 trin (med billeder)

Video: Tiggerrobot med ansigtsregistrering og kontrol af Xbox -controller - Arduino: 9 trin (med billeder)

Video: Tiggerrobot med ansigtsregistrering og kontrol af Xbox -controller - Arduino: 9 trin (med billeder)
Video: The Real Story of Paris Hilton | This Is Paris Official Documentary 2024, Juli
Anonim
Image
Image
Installation og konfiguration af OpenCV og C ++
Installation og konfiguration af OpenCV og C ++

Vi skal lave en tiggerrobot. Denne robot vil forsøge at irritere eller få opmærksomhed fra forbipasserende mennesker. Det vil opdage deres ansigter og prøve at skyde lasere på dem. Hvis du giver robotten en mønt, vil han synge en sang og danse. Robotten skal bruge en arduino, et live feed af et kamera og en computer til at køre openCV på. Robotten vil også kunne styres af en xBox -controller, hvis den er tilsluttet pc'en.

Trin 1: Materialerne

Hardware elektronisk

  • Arduino NANO eller UNO
  • USB 2.0 kamera
  • Jumperkabler (han og hun)
  • 2 x Servo - Generisk (sub -mikro størrelse)
  • 2 x LED - RGB -KATODE 5 mm
  • 2 x 5mW lasere
  • 1 x rød LED 5 mm
  • 1 x brødbræt
  • 4 x 220Ω modstand
  • 1 x 1KΩ modstand
  • 1 x protoboard
  • 1 x ekkolodssensor 4 ben
  • Xbox controller

Hardware analog

  • Trækasse (15 x 15 x 7 cm)
  • Lim
  • Elektrisk tape

Software

  • Arduino IDE
  • Visual studio 2017
  • 3Ds Max (eller anden 3D -moddeling -software)
  • Forudform 2.14.0 eller nyere
  • OpenCV 3.4.0 eller nyere

Værktøjer

  • Loddeudstyr
  • Sav og bor
  • Trådskærer

Trin 2: Installation og konfiguration af OpenCV og C ++

Installation og konfiguration af OpenCV og C ++
Installation og konfiguration af OpenCV og C ++

Trin 2.1: Hentning af softwaren

Visual studio 2017: Download Visual studio Comunity 2017openCV 3.4.0 Win pack: Gå til den officielle downloadside

Trin 2.2: Installation af OpenCV2.2.1: Udpak zipfilen til dit Windows (: C) -drev.2.2.2: Gå til dine avancerede systemindstillinger. Dette kan findes i din win10 -søgefunktion.2.2.3: Vi skal opsætte nye miljøvariabler. Find "Path" -miljøet, og tryk på edit.2.2.4: Nu skal vi tilføje placeringen af "bin map" til en ny variabel i Path enviromental. Hvis du installerede openCV på dit C -drev, kan stien gå sådan: C: / opencv / build / x64 / vc14 / bin Indsæt stien, og tryk på "OK" på alle de vinduer, du muligvis har åbnet under denne proces.

Trin 2.3: Konfigurering af Visual Studio C ++ 2.3.1: Lav et nyt visuelt C ++ - projekt. Gør det til et tomt win32-konsolapplikationsprojekt. 2.3.2: I fanen kildefiler skal du højreklikke og tilføje en ny C ++- fil (.cpp) og navngive den "main.cpp".2.3.3: Højreklik på projektet- navn i Solution explorer og vælg Egenskaber 2.3.4: Vi skal tilføje yderligere Inkluder mapper. Dette kan findes under fanen C/C ++ generelt. Kopier følgende sti: C: / opencv / build / include og indsæt det bag "AID", og klik på Apply.2.3.5: I det samme vindue skal vi vælg fanen "Linker". generelt skal vi lave andre Yderligere Libary Directories. Indsæt følgende sti bag "AID" C: / opencv / build / x64 / vc14 / lib, og tryk på Apply igen 2.3.6: Under den samme Linker -fane skal du vælge fanen "Input". Og tryk på "Yderligere afhængigheder> rediger" og indsæt følgende fil opencv_world320d.lib og xinput.lib (for controlleren), og tryk på Apply igen. Luk vinduet. Nu er din C ++ - fil klar til at arbejde med.

Trin 3: Opsætning af Arduino

Opsætning af Arduino
Opsætning af Arduino
Opsætning af Arduino
Opsætning af Arduino
Opsætning af Arduino
Opsætning af Arduino
Opsætning af Arduino
Opsætning af Arduino

Møde servoer: Servoerne kan rotere ~ 160 ° De skal have mellem 4, 8 og 6, 0 Volt for at fungere normalt. Servoen har 3 ben: jord, 4, 8 - 6, 0 volt pin og en data pin. Til vores projekt skal vi indstille datapinde til servoerne på DigitalPin 9 og 10.

Møde med RGB -lysdioderne: RGB -lysdioderne har 4 ben. Rød, grøn, blå og jordet stift. For at spare plads på arduinoen kan vi forbinde de 2 RGB -lysdioder sammen. Så vi vil kun bruge 3 pins. Vi kan tilslutte og lodde RGB -lysdioderne på et protoboard som på billedet. Rød pin => DigitalPin 3 (PWM) Grøn pin => DigitalPin 4Blue pin => DigitalPin 7

Møde Piezo -summer: Vores lille robot kommer til at larme. For at gøre dette skal vi give ham en stemme! Vi kan vælge at gøre ham virkelig høj. Eller vi kan sætte en 220Ω modstand foran piezo -summeren for at gøre ham lidt mindre modbydelig. Vi forlader Piezo -summeren på brødbrættet. Så det er ikke nødvendigt at lodde. Vi tilslutter datapinden (+) til DigitalPin 2 og jordstiftet til jorden på brødbrættet.

Møde med ekkoloddet: For at forhindre robotten i at forsøge at sigte mod en person, der er 10 meter væk. Vi kan give robotten en afstand fra hvor den vil være i stand til at sigte mod mennesker. Vi gør dette med en ekkolodssensor. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => jord

Møde møntdetektoren: Vi skal lave en møntdetektor. Møntdetektoren fungerer ved at registrere, om kredsløbet er lukket eller brudt. Det vil næsten fungere som en switch. Men vi skal være forsigtige. Hvis vi gør dette forkert, vil det koste os en arduino. Først: Tilslut AnalogPin A0 til et 5 volt kabel. Men sørg for at sætte en 1KΩ modstand mellem den. For det andet: Tilslut en ledning til jorden. Vi kan straks lodde ledningerne og modstanden til det samme protoboard som RGB -lysdioderne. Hvis vi nu rører de 2 ledninger, vil arduinoen detektere et lukket kredsløb. Det betyder, at der er en mønt! At møde undergangens lasere. Robotten har brug for sine våben for at skyde! For at spare plads lodde jeg de 2 lasere sammen. De vil passe perfekt ind i kameraets ramme. Tilslut dem til DigitalPin 11 og til jorden. Fyr den lille fyr væk!

Valgfri gimmick. Vi kan sætte en rød LED under mønterne. Dette bliver en sjov lille gimmick, når det er mørkt. Tilslut en ledning til DigitalPin 8, og sæt en 220Ω modstand mellem LED'en og ledningen for at forhindre, at den blæser op. Tilslut LED'ens korte pin til jord.

Trin 4: C ++ - koden

Trin 4.1: Opsætning af main.cpp -koden 4.1.1: Download "main.cpp", og kopier koden til din egen main.cpp.4.1.2: På linje 14 skal du ændre "com" til den com, som arduino bruger. "\. / COM (rediger dette)" 4.1.3: På linje 21 og 22 indstil den rigtige vej til filerne "haarcascade_frontalface_alt.xml" og "haarcascade_eye_tree_eyeglasses.xml" Hvis openCV er installeret på C -drevet, disse filer kan findes her: "C: / opencv / build / etc / haarcascades \" Behold de dobbelte skråstreger eller tilføj en, hvor der kun er en.

Trin 4.2: Tilføj tserial.h og Tserial.cpp Disse 2 filer tager sig af kommunikationen mellem arduino og PC.4.2.1: Download tserial.h og Tserial.cpp.4.2.2: Placer disse 2 filer i projektet vejviser. I Solution explorer skal du højreklikke på projektet og vælge tilføj> eksisterende element. I popup -vinduet skal du vælge de to filer, der skal tilføjes.

Trin 4.2: Tilføj CXBOXController.h og CXBOXController.h Disse filer overtager controllerens del af projektet 4.2.1: I Solution explorer skal du højreklikke på projektet og vælge tilføj> eksisterende element. I popup -vinduet skal du vælge de to filer, der skal tilføjes. C ++ - filerne er konfigureret.

Trin 5: Arduino -koden

Trin 5.1: NewPing -bibliotek 5.1.1: Download ArduinoCode.ino og åbn det i arduino IDE.5.1.2: Gå til "Skitse> Inkluder libary> Administrer libaries".5.1.3: Søg i filterboksen til "NewPing" og installer dette bibliotek.

Trin 5.2: Pitches -bibliotek 5.2.1: Download pitches.txt og kopier indholdet af pitches.txt.5.2.2: I Arduino IDE skal du trykke på CTRL+Shift+N for at åbne en ny fane 5.2.3: Indsæt koden fra pitches.txt ind på den nye fane og gem den som "pitches.h". Arduino -koden er blevet konfigureret

Trin 6: 3D -udskrivning og forfining af udskrivningen

3D -udskrivning og finjustering af printet
3D -udskrivning og finjustering af printet
3D -udskrivning og finjustering af printet
3D -udskrivning og finjustering af printet

Trin 6.1: Udskriv 3D -filen Åbn printfile.form og kontroller, om alt er ok. Hvis alt ser ud til at være ok, skal du sende printjob til printeren. Hvis noget ser ud til, eller du vil ændre modellen. Jeg har inkluderet 3Ds Max -filer og OBJ -filer, som du kan redigere.

Trin 6.2: Forfine modellen 6.2.1: Efter udskrivning er de to modeller i blød i ca. 70% alkohol for at fjerne eventuel udskrift.6.2.2: Efter udskrivning skal modellen ligge i solen i et par timer for at lade UV-lyset hærde modellen. Eller du kan bruge en UV-lampe til at hærde modellen. Dette skal gøres, fordi modellen vil være klæbrig.

6.2.3: Fjern supportrammen. Dette kan gøres med en trådskærer. Eller ethvert andet værktøj, der kan skære plastik 6.2.4: Nogle dele af 3D -printet kan stadig være bløde. Selvom modellen har været i meget UV-lys. De dele, der kan være bløde, er de dele, der var tæt på understøtningsrammerne. Læg modellen i mere sol af UV-lys for at hærde ud.6.2.5: Med en "dremel" kan du slibe alle de små ujævnheder fra rammen. Du kan prøve at montere servoerne i rammen. Hvis de ikke passer, kan du bruge Dremel til at slibe materiale væk. få det til at passe.

Trin 7: Opbygning af kassen

Bygger kassen
Bygger kassen
Bygger kassen
Bygger kassen

Trin 7.1: Gør hullerne Jeg har inkluderet en blueprint af den pågældende boks. Tegningen er ikke i målestok, men alle størrelser er korrekte. 7.1.1: Start med at markere alle hullerne på de rigtige steder. 7.1.1: Bor alle hullerne. De større huller kan laves i størrelse med en Dremel.7.1.3: De firkantede huller kan også bores. Men for at gøre dem firkantede kan du tilpasse Dremel med en lille fil og fjerne skarpe hjørner.7.1.4: Prøv at passe alle komponenterne. hvis de passer, er du god til at gå! 7.1.5: Pas på træflis. Brug sandpapir til at slippe af med dem.

Trin 7.2: Maling7.2.1: Start med at slibe låget. Vi har brug for, at malingen sidder fast.7.2.2: Tag en klud og læg en lille smule terpentin på den for at rengøre kassen.7.2.3: Nu kan du sprøjte male boksen, uanset hvilken farve du ønsker.

Trin 8: Afslutning

Afslutter
Afslutter
Afslutter
Afslutter
Afslutter
Afslutter

Nu skal vi sætte alt på plads og lade det gøre sin ting. Trin 8.1: Møntdetektoren 8.1.1: Lim nogle metalbøjler til møntdetektoren.8.1.2: Lod hver ledning fra konnektoren til en bøjle.8.1.3: Test forbindelsen med en mønt. Hvis der ikke er noget lukket kredsløb, loddes ledningerne mere til kanten Trin 8.2: Protoboardet og RGB -lysdioderne 8.1.2: Placer protoboardet i øverste højre hjørne og tap det ned! 8.2.2: Tilslut RGB -lysdioderne med ledningerne 8.2.3: Tilslut alle ledninger fra protoboardet til arduinoen. Trin 8.3: Ekkolodssensoren8.3.1: Placer sensoren i de huller, vi lavede til den. Hvis du har en hun -til -hun -jumpwire, kan du springe over 8.3.28.3.2: Skær nogle han- og hunledninger i halvdelen og lod lod- og hanledningerne sammen til et enkelt kabel, vi kan bruge til at forbinde sensoren til arduino.8.3.3: Tilslut sensoren til arduinoen

Trin 8.4: Lasere og kamera8.4.1: Lim den lille ramme til kameraet. Sørg for, at den er opretstående.8.4.2: Læg også laserne i rammen. Lim dem ned, så fjenden ikke stjæler dem!

Trin 8.5: Servoer og 3D -print 8.5.1: Lim servoen i hullet på låget 8.5.2: Upload arduino -filen til arduinoen (dette får servoerne til at stå i den rigtige position) 8.5.3: Med servoen fulgte en lille rundt plateau. Placer dette på servoen i låget.8.5.4: Læg det store 3D -print på servoen og plateauet og skru dem tæt sammen med en skrue.8.5.5: Læg den anden servo på det lille 3D -print og lim dem sammen. 8.5.6: Sæt kameraet på plads, og alt er klar til at gå!

Trin 9: Start programmet

For at starte robotten skal du åbne C ++ - filen i Visual studio. Sørg for, at du er i "fejlfindingstilstand" Upload arduino -filen til arduinoen. Når det er uploadet, skal du trykke på play i visual studio. Og robotten vil skyde og indsamle alle verdens mønter !!!

Anbefalede: