Cuprins:

Robot cerșetor cu urmărire facială și control de controler Xbox - Arduino: 9 pași (cu imagini)
Robot cerșetor cu urmărire facială și control de controler Xbox - Arduino: 9 pași (cu imagini)

Video: Robot cerșetor cu urmărire facială și control de controler Xbox - Arduino: 9 pași (cu imagini)

Video: Robot cerșetor cu urmărire facială și control de controler Xbox - Arduino: 9 pași (cu imagini)
Video: În 2055, un robot ucide un milion de oameni, ceea ce declanșează un război între I.A și oameni 2024, Iulie
Anonim
Image
Image
Instalarea și configurarea OpenCV și C ++
Instalarea și configurarea OpenCV și C ++

Vom face un robot care cerșește. Acest robot va încerca să irite sau să atragă atenția oamenilor care trec. Le va detecta fețele și va încerca să tragă lasere asupra lor. Dacă îi dai robotului o monedă, el va cânta o melodie și va dansa. Robotul va avea nevoie de un arduino, un flux live al unei camere și un computer pentru a rula openCV. De asemenea, robotul va putea fi controlat de un controler xBox dacă este conectat la computer.

Pasul 1: Materialele

Hardware electronic

  • Arduino NANO sau UNO
  • Cameră USB 2.0
  • Cabluri jumper (masculin și feminin)
  • 2 x Servo - Generic (dimensiune sub-micro)
  • 2 x LED - RGB CATODĂ 5mm
  • 2 x 5mW lasere
  • 1 x LED rosu 5mm
  • 1 x panou de pâine
  • Rezistor 4 x 220Ω
  • 1 rezistor de 1KΩ
  • 1 x protoboard
  • 1 x senzor sonar 4 pini
  • Controler Xbox

Analog hardware

  • Cutie din lemn (15 x 15 x 7 cm)
  • Lipici
  • Bandă electrică

Software

  • IDE Arduino
  • Studio vizual 2017
  • 3Ds Max (sau orice alt software de modelare 3D)
  • Preforma 2.14.0 sau o versiune ulterioară
  • OpenCV 3.4.0 sau o versiune ulterioară

Instrumente

  • Echipament de lipit
  • Văzut și găurit
  • Cleste de sarma

Pasul 2: Instalarea și configurarea OpenCV și C ++

Instalarea și configurarea OpenCV și C ++
Instalarea și configurarea OpenCV și C ++

Pasul 2.1: Obținerea software-ului

Visual studio 2017: Descărcați Visual studio Comunity 2017openCV 3.4.0 Win pack: Accesați pagina oficială de descărcare

Pasul 2.2: Instalarea OpenCV2.2.1: Extrageți fișierul zip pe unitatea Windows (: C) 2.2.2: Accesați setările avansate de sistem. Acest lucru poate fi găsit în funcția dvs. de căutare win10.2.2.3: Trebuie să configurăm noi variabile de mediu. Localizați mediul „Path” și apăsați edit.2.2.4: Acum trebuie să adăugăm locația „hartă bin” la o nouă variabilă din mediul Path. Dacă ați instalat openCV pe unitatea C, calea poate merge astfel: C: / opencv / build / x64 / vc14 / bin Lipiți calea și apăsați „OK” pe toate ferestrele pe care le-ați deschis în timpul procesului.

Pasul 2.3: configurarea studiului vizual C ++ 2.3.1: Realizați un nou proiect vizual C ++. Faceți-l un proiect win32 Console Application.2.3.2: În fila fișiere sursă, faceți clic dreapta și adăugați un nou fișier C ++ (.cpp) și denumiți-l „main.cpp”.2.3.3: Faceți clic dreapta pe proiect- nume în exploratorul de soluții și selectați Proprietăți.2.3.4: Trebuie să adăugăm un director de includere suplimentar. Acest lucru poate fi găsit în fila C / C ++ în general. Copiați următoarea cale: C: / opencv / build / include și lipiți-o în spatele "AID" și faceți clic pe Apply.2.3.5: În aceeași fereastră trebuie să selectați fila „Linker”. în general, trebuie să facem alte directoare libare suplimentare. Lipiți următoarea cale în spatele "AID" C: / opencv / build / x64 / vc14 / lib și apăsați din nou pe aplicare.2.3.6: Sub aceeași filă Linker selectați fila "Intrare". Și apăsați „Dependențe suplimentare> editați” și lipiți următorul fișier opencv_world320d.lib și xinput.lib (Pentru controler) și apăsați din nou pe Aplicare. Închideți fereastra. Acum fișierul dvs. C ++ este gata să funcționeze.

Pasul 3: Configurarea Arduino

Configurarea Arduino
Configurarea Arduino
Configurarea Arduino
Configurarea Arduino
Configurarea Arduino
Configurarea Arduino
Configurarea Arduino
Configurarea Arduino

Întâlnirea cu servomotoarele: Servomotoarele sunt capabile să se rotească ~ 160 ° Trebuie să aibă între 4, 8 și 6, 0 volți pentru a funcționa normal. pin. Pentru proiectul nostru, vom seta pinii de date pentru servo-urile de pe DigitalPin 9 și 10.

Întâlnirea ledurilor RGB: Ledurile RGB au 4 pini. Pin roșu, verde, albastru și sol. Pentru a economisi puțin spațiu pe arduino, putem conecta împreună cele două led-uri RGB. Deci vom folosi doar 3 pini. Putem conecta și lipi ledurile RGB pe un protoboard ca în imagine. Pin roșu => DigitalPin 3 (PWM) Pin verde => DigitalPin 4Pin albastru => DigitalPin 7

Întâlnirea cu buzzer-ul piezo: micul nostru robot va face ceva zgomot. Pentru a face acest lucru, trebuie să-i dăm glas! Putem alege să-l facem tare tare. Sau putem pune un rezistor de 220Ω în fața sonorului piezo pentru a-l face un pic mai puțin obositor. Lăsăm buzzerul Piezo pe panou. Deci nu este nevoie de lipire. Conectăm pinul de date (+) la DigitalPin 2 și pinul de masă la masă pe panoul de măsurare.

Întâlnirea Sonarului: Pentru a împiedica robotul să încerce să vizeze o persoană aflată la 10 metri distanță. Putem oferi robotului o distanță de unde va putea viza oamenii. Facem acest lucru cu un senzor sonar. VCC => 5 volt Trig => DigitalPin 6Echo => DigitalPin 5GND => masă

Întâlnirea cu detectorul de monede: Vom face un detector de monede. Detectorul de monede va funcționa detectând dacă circuitul este închis sau rupt. Aproape că va funcționa ca un comutator. Dar trebuie să fim atenți. Dacă facem acest lucru greșit, ne va costa un arduino. În primul rând: conectați AnalogPin A0 la un cablu de 5 volți. Dar asigurați-vă că puneți un rezistor de 1KΩ între acesta. În al doilea rând, conectați un fir la masă. Putem lipi imediat firele și rezistența la același protoboard cu ledurile RGB. Acum, dacă atingem cele 2 fire mai mari, arduino va detecta un circuit închis. Acest lucru înseamnă că există o monedă! Întâlnirea cu laserele de pedeapsă. Robotul are nevoie de armele sale pentru a trage! Pentru a economisi puțin spațiu, am soldat cele 2 lasere împreună. Se vor potrivi perfect în cadrul camerei. Conectați-le la DigitalPin 11 și la masă. Ardeți tipul mic!

Truc opțional. Putem pune un LED roșu sub lotul de monede. Acesta va fi un mic truc distractiv pentru când este întuneric. Conectați un fir la DigitalPin 8 și puneți un rezistor de 220Ω între LED și fir pentru a preveni aruncarea în aer. Conectați pinul scurt al LED-ului la masă.

Pasul 4: Codul C ++

Pasul 4.1: Configurarea codului main.cpp4.1.1: Descărcați „main.cpp” și copiați codul în propriul dvs. main.cpp.4.1.2: Pe linia 14 schimbați „com” la com utilizează arduino. "\. / COM (schimbați acest lucru)" 4.1.3: pe linia 21 și 22 setați calea corectă către fișierele "haarcascade_frontalface_alt.xml" și "haarcascade_eye_tree_eyeglasses.xml" Dacă openCV este instalat pe unitatea C, aceste fișiere pot fi localizate aici: "C: / opencv / build / etc / haarcascades \" Păstrați backslashes duble sau adăugați una acolo unde există doar una.

Pasul 4.2: Adăugați tserial.h și Tserial.cpp Aceste 2 fișiere se vor ocupa de comunicarea dintre arduino și PC.4.2.1: Descărcați tserial.h și Tserial.cpp.4.2.2: Plasați aceste 2 fișiere în proiect director. În Solution Explorer faceți clic dreapta pe proiect și selectați adăugare> element existent. În fereastra pop-up selectați cele două fișiere de adăugat.

Pasul 4.2: Adăugați CXBOXController.h și CXBOXController.h Aceste fișiere vor prelua partea de control a proiectului.4.2.1: În Solution Explorer faceți clic dreapta pe proiect și selectați adăugare> element existent. În fereastra pop-up selectați cele două fișiere care trebuie adăugate. Fișierele C ++ sunt configurate.

Pasul 5: Codul Arduino

Pasul 5.1: Biblioteca NewPing 5.1.1: Descărcați ArduinoCode.ino și deschideți-l în arduino IDE.5.1.2: Accesați "Schiță> Includeți bibliotecă> Gestionați bibliotecile".5.1.3: Căutați în caseta de filtrare la "NewPing" și instalați această bibliotecă.

Pasul 5.2: Pitch biblioteca 5.2.2: Descărcați pitches.txt și copiați conținutul pitches.txt.5.2.2: În Arduino IDE apăsați CTRL + Shift + N pentru a deschide o nouă filă. 5.2.2: Lipiți codul din pitches.txt în noua filă și salvați-o ca „pitches.h”. Codul Arduino a fost configurat

Pasul 6: Imprimarea 3D și rafinarea imprimării

Imprimarea 3D și rafinarea imprimării
Imprimarea 3D și rafinarea imprimării
Imprimarea 3D și rafinarea imprimării
Imprimarea 3D și rafinarea imprimării

Pasul 6.1: Imprimați fișierul 3D Deschideți printfile.form și verificați dacă totul este okey. Dacă totul pare okey, trimiteți imprimarea la imprimantă. Dacă pare ceva sau doriți să schimbați modelul. Am inclus fișierele 3Ds Max și fișierele OBJ pe care le puteți edita.

Pasul 6.2: Rafinați modelul 6.2.2: După ce ați terminat de imprimat, înmuiați cele 2 modele în 70% alcool pentru a elimina orice resedu de tipărire. întăriți modelul. Sau puteți utiliza o lampă UV pentru a întări modelul. Acest lucru trebuie făcut, deoarece modelul va fi lipicios.

6.2.3: Eliminați cadrul de suport. Acest lucru se poate face cu un tăietor de sârmă. Sau orice alt instrument care poate tăia plasticul 6.2.2.4: Unele părți ale imprimării 3D pot fi în continuare moi. Chiar dacă modelul a avut multă lumină UV. Părțile care pot fi moi, sunt părțile care se află aproape de cadrele de susținere. Așezați modelul în mai multă lumină ultravioletă pentru a întări.6.2.5: Cu un "dremel" puteți șlefui toate umflăturile făcute de cadru. Puteți încerca să încadrați servomotoarele în cadru. Dacă nu se potrivesc, puteți folosi Dremel pentru a șlefui materialul. fă-o să se potrivească.

Pasul 7: Construirea cutiei

Construind Cutia
Construind Cutia
Construind Cutia
Construind Cutia

Pasul 7.1: Realizarea găurilor Am inclus un plan al cutiei în cauză. Planul nu este la scară, dar toate dimensiunile sunt corecte 7.1.1: Începeți prin a marca toate găurile din locațiile potrivite. 7.1.1: Forați toate găurile. Găurile mai mari pot fi făcute la dimensiune cu un Dremel. 7.1.1: Găurile pătrate pot fi, de asemenea, găurite. Dar pentru a le face pătrate, puteți monta Dremel cu un fișier mic și scoateți colțurile ascuțite. 7.1.1: Încercați să montați toate componentele. dacă se potrivesc, ești bine să mergi! 7.1.5: Ai grijă la așchii de lemn. Folosiți hârtie de nisip pentru a scăpa de ele.

Pasul 7.2: Vopsire 7.2.2: Începeți cu șlefuirea capacului. Avem nevoie ca vopseaua să se lipească.7.2.2: Luați o cârpă și puneți un pic de terebentină pe ea pentru a curăța cutia.7.2.3: Acum puteți pulveriza vopseaua cutiei indiferent de culoarea dorită.

Pasul 8: Finalizare

Terminand
Terminand
Terminand
Terminand
Terminand
Terminand

Acum trebuie să punem totul în poziție și să lăsăm să facă asta. Pasul 8.1: Detectorul de monede 8.1.1: Lipiți niște bretele metalice pentru detectorul de monede..3: Testați conexiunea cu o monedă. Dacă nu există circuit închis, lipiți firele mai mult la margine. 8.2.3: Conectați toate firele de la protoboard la arduino. Pasul 8.3: Senzorul sonar 8.3.1: Așezați senzorul în găurile pe care le-am făcut. 8.3.28.3.2: Tăiați câteva fire masculine și femele în jumătate și lipiți firele feminine și cele masculine împreună pentru a face un singur cablu pe care îl putem folosi pentru a conecta senzorul la arduino. 8.3.3: Conectați senzorul la arduino

Pasul 8.4: Lasere și cameră 8.4.1: Lipiți cadrul mic pe cameră. Asigurați-vă că este în poziție verticală.8.4.2: Puneți laserele și în cadru. Lipiți-le pentru ca inamicul să nu le fure!

Pasul 8.5: Servo-urile și tipărirea 3D 8.5.1: Lipiți servo-ul în gaura capacului 8.5.2: Încărcați fișierul arduino în arduino (aceasta face ca serv-urile să stea în poziția corectă) 8.5.3: Cu servo-ul a venit un mic platou rotund. Așezați-l pe servo în capac.8.5.4: Puneți imprimarea 3D mare pe servo și platou și înșurubați-le strâns împreună cu un șurub. 8.5.6: Puneți camera în poziție și fiecare lucru este pregătit!

Pasul 9: Porniți programul

Pentru a porni robotul, deschideți fișierul C ++ în Visual studio. Asigurați-vă că vă aflați în „modul de depanare” Încărcați fișierul arduino în arduino. Odată ce a fost încărcat, apăsați redare în studio vizual. Și robotul va trage și va colecta toate monedele din lume !!!

Recomandat: