Cuprins:

OUCH: 6 pași
OUCH: 6 pași

Video: OUCH: 6 pași

Video: OUCH: 6 pași
Video: Uchi Pahari | Mehak Malik | Dance Performance | Shaheen Studio 2024, Iulie
Anonim
OUCH
OUCH
OUCH
OUCH

Ouch este ajutorul tău personal pentru omnidirecțional inutil pentru cataractă. Pe măsură ce recunoașterea facială lovește Zeitgeist-ul, OUCH te lovește! OUCH nu doar știe cum arăți, ci știe și să fie foarte enervant! Spre deosebire de fratele mai mare, această mașină este foarte vizibilă și îndeplinește un singur scop: de a-ți face viața un pic mai shittier. Ți-ai uitat vreodată ochelarii de soare acasă și ai fost surprins de o reflexie strălucitoare? OUCH vă permite să retrăiți acest moment din nou și din nou. Reflectând lumina de la cea mai strălucitoare sursă de lumină din jurul tău direct în față, te va asigura că nu te vei bucura niciun moment în jurul ei.

Ferește-te, sau OUCH ar putea fi ultimul lucru pe care îl vei vedea vreodată!

Proiectul a fost realizat ca parte a seminarului Computațional de proiectare și fabricare digitală din cadrul programului de masterat ITECH.

August Lehrecke | Max Zorn

Provizii

Parți electronice:

Arduino

  • Arduino UNO

    • 2x Reely Mini-Servo S0009
    • 4x fotorezistoare
    • 4x rezistențe de 10k
    • 2x potențiometre
    • 1x cablu de imprimantă USB

Raspberry Pi

  • Rasberry Pi 4

    • 1x RaspiCam
    • 4x Reely Mini-Servo S0009
    • 1x PCA9685 16-Channel PWM Servo Driver
    • Sursă de alimentare externă 5V DC
    • 1x sursa de alimentare Rasberry Pi 5.1V - 3Amp (sau echivalent extern)
    • 1x senzor cu ultrasunete MAKERFACTORY HC-SR05 (MF-6402156)
    • 1x rezistor de 470 Ohm
    • 1x rezistor de 320 Ohm

Piese imprimate 3D:

OUCH vine în diferite forme și dimensiuni. Pentru această versiune, am folosit o imprimantă 3D pentru a imprima mecanisme personalizate.

  • 4 x Stand
  • 2 x Baza S
  • 1 x Baza L
  • 2 x Baza de rotație dublă
  • 1 x bază de rotație simplă
  • 1 x Set Axis Support S
  • 1 x Set de suport Axis M
  • 1 x set de suport Axis L
  • 1 x Suport pentru cameră
  • 1 x montaj luminos
  • 1 x Suport oglindă

Opțional, puteți utiliza designul Tower furnizat, pentru a combina componentele la:

  • 1 x Turn (în loc de 4 x Stand)
  • 1 x bază S și 1x bază M (în loc de 2 x bază S)

Alte părți:

  • Mylar
  • 1 x bandă de cauciuc
  • 1 x cravată cu fermoar
  • 12 șuruburi cu cap plat M5 x 160
  • 2 șuruburi cu cap plat M5 x 80

Instrumente:

  • imprimantă 3d
  • H3.0 Șurubelniță
  • Hot Glue Gun

Pasul 1: Pasul 1: Tipărirea pieselor

Dacă aveți acces la o imprimantă 3D, puteți imprima mecanisme personalizate pentru a găzdui Servo-urile și pentru a monta cele trei componente principale.

Pentru componenta Face, avem nevoie de:

  • 2 x suporturi
  • 1 x Baza L
  • 1 x bază rotativă dublă
  • 1 x Set de suport Axis M
  • 1 x Suport senzor pentru cameră și distanță

Componenta Light necesită:

  • 1 x Stand
  • 1 x Baza S
  • 1 x bază rotativă dublă
  • 1 x Set Axis Support S
  • 1 x montaj luminos

Componentele Mirror constau din următoarele:

  • 1 x Stand
  • 1 x Baza S
  • 1 x bază rotativă simplă
  • 1 x set de suport Axis L
  • Muntele oglinzii

În cele din urmă, puteți imprima și turnul furnizat.

Dacă doriți să-l utilizați ca bază pentru toate cele trei componente, va trebui să ajustați matematica vectorială în cod în consecință. Mai mult, conectați componenta feței cu baza M în loc de baza L la turn.

Pasul 2: Pasul 2: Realizarea oglinzii

Pasul 2: Realizarea oglinzii
Pasul 2: Realizarea oglinzii
Pasul 2: Realizarea oglinzii
Pasul 2: Realizarea oglinzii

Pentru a vă crea propria componentă Mirror, tăiați o bucată circulară de Mylar și așezați-o deasupra părții oglinzii imprimate 3D. Apoi folosiți mai întâi o bandă de cauciuc pentru a o fixa în poziție. Banda de cauciuc trebuie să se potrivească în interiorul canelurii din jurul componentei. Apoi utilizați o cravată cu fermoar pentru a asigura ușor conexiunea, nu o strângeți încă prea mult. Acum puteți începe să întindeți Mylar până când veți obține o suprafață strălucitoare, în oglindă. În cele din urmă, strângeți cravata cu fermoar și bucurați-vă de reflexia feței dvs. frumoase!

Pasul 3: Pasul 3: Asamblarea componentelor

Pasul 3: Asamblarea componentelor
Pasul 3: Asamblarea componentelor
Pasul 3: Asamblarea componentelor
Pasul 3: Asamblarea componentelor
Pasul 3: Asamblarea componentelor
Pasul 3: Asamblarea componentelor
Pasul 3: Asamblarea componentelor
Pasul 3: Asamblarea componentelor

Componenta feței

  1. Lipiți fierbinte pumnul Servo în decupajul corespunzător al bazei rotative
  2. Lipiți conectorul Servo în canelură, situat în partea de jos a piesei de bază
  3. Puneți cele două părți de bază împreună, astfel încât Servo-ul să se blocheze cu conectorul
  4. Folosiți șurubul Servo-ului pentru a fixa conectorul pe Servo
  5. Lipiți a doua piesă a conectorului în canelura corespunzătoare, situată în partea superioară a suportului axei
  6. Folosiți 4 șuruburi M5 pentru a înșuruba suportul axei la baza rotativă
  7. Adeziv fierbinte al doilea Servo pe suport
  8. Glisați camera pe știfturi
  9. Atașați senzorul de distanță cu ultrasunete la suport, fie prin înșurubare, fie prin lipire la cald
  10. Conectați suportul camerei / senzorului la suportul axei, Servo-ul trebuie să alunece din nou în piesa conectorului
  11. Folosiți șurubul Servo-ului pentru a fixa conectorul pe Servo
  12. Înșurubați Raspberry Pi și servo-driverul pe o bucată de placaj (Asigurați-vă că distanța se potrivește cu găurile bazei L)
  13. Înșurubați componenta față la standuri, folosind șuruburi M5

Componenta oglindă

  1. Urmați pașii de la 1 la 7
  2. Conectați oglinda la suportul axei
  3. Lipiți un suport pentru oglindă pe placaj, astfel încât componenta oglindă și față să fie aliniate
  4. Înșurubați componenta oglindă pe suport, folosind șuruburi M5

Componenta luminoasa

  1. Urmați pașii de la 1 la 7 de mai sus
  2. Infilați senzorii de lumină prin orificiile de montare din partea de jos a crucii de umbrire
  3. Conectați crucea de umbrire la suportul axei, Servo-ul trebuie să alunece din nou în piesa conectorului
  4. Folosiți șurubul Servo-ului pentru a fixa conectorul pe Servo
  5. Lipiți un suport pe placaj, astfel încât componenta Light, Mirror și Face să fie aliniate și oglinda să fie între componentele Face și Light
  6. Înșurubați componenta față la standuri, folosind șuruburi M5

* Toate componentele ar putea fi, de asemenea, atașate la turn, vă rugăm să luați în considerare complexitatea sporită de codare și cablare și timpul de imprimare. Dacă doriți să utilizați turnul, utilizați partea de bază M în loc de baza L pentru componenta față și înșurubați piesele de bază la turn folosind ochiurile și șuruburile M5.

Pasul 4: Pasul 4: Configurați plăcile

Pasul 4: Configurați plăcile
Pasul 4: Configurați plăcile
Pasul 4: Configurați plăcile
Pasul 4: Configurați plăcile
Pasul 4: Configurați plăcile
Pasul 4: Configurați plăcile

Iată schema de conectare a celor trei componente. Sun tracker-ul acționează pe propria buclă pe Arduino și își trimite pozițiile servo către Rasberry Pi prin portul USB serial. Un senzor de distanță opțional poate fi conectat la partea din față a camerei pi / tilt piCamera pentru a crea o triangulare mai robustă a țintei. Aici îi vom alinia în linie dreaptă și vom face doar o medie a vectorilor, astfel încât să nu fie necesară.

Patru servouri sunt conectate la servo-driverul PCA9685 care este alimentat de o sursă de alimentare externă de 5v. Două dintre servome controlează panoramarea și înclinarea pentru camera de urmărire a feței, în timp ce celelalte două controlează panoramarea și înclinarea pentru oglindă.

Pasul 5: Codul:

Codul
Codul

Codul pentru acest proiect poate fi împărțit în două părți: Codul de urmărire a luminii Arduino și codul de urmărire a feței python / poziționare în oglindă.

Cod Arduino:

Acest cod este o versiune ușor modificată a proiectului de urmărire solară de la geobruce. Este o referință excelentă pentru a afla mai multe despre componenta de urmărire solară și mai multe detalii puteți găsi pe această pagină instructabile. Valorile intensității luminii sunt luate de la cele 4 foto-rezistoare și mediate pentru a găsi cea mai strălucitoare zonă și pentru a regla servo-urile în consecință. Apoi scriem valorile servo unghiului în portul serial.

Cod Python:

Acest cod integrează CV deschis pentru a crea un mecanism de înclinare panoramică de urmărire a feței, precum și pentru a conduce servomotoarele pentru oglindă. Va trebui să parcurgeți câțiva pași pentru a descărca CV-ul deschis pe Raspberry pi. Există multe resurse pentru asta, dar îmi place foarte mult cea de la pyimagesearch. O plimbare completă a acestui proces poate fi găsită aici. Notă: Am descărcat bibliotecile CV deschise într-un mediu virtual pe care rulăm tot codul, dacă ați decis să faceți acest lucru, asigurați-vă că descărcați toate dependențele în mediul virtual pe care rulați programul și nu Pi în sine.

După ce ați descărcat CV-ul deschis, acest cod va necesita și alte dependențe (instalate în mediul specific pe care îl executați) pentru a rula:

  • Adafruit ServoKit: O pagină completă despre procesul de descărcare pe raspberry Pi poate fi găsită aici.
  • imutile
  • neclintit
  • gpiozero (dacă utilizați senzorul de distanță)

Pentru urmărirea feței, scriptul necesită un argument (--faces) care este un fișier.xml pe care openCv îl folosește pentru a găsi fețe. Va trebui să puneți acest fișier în același director cu scriptul python. L-am furnizat în descărcări și poate fi găsit și aici.

Pasul 6: Rularea codului

Rularea codului
Rularea codului
Rularea codului
Rularea codului

După ce ați descărcat tot codul în același director și ați configurat mediul virtual cu CV deschis, sunteți gata să îl rulați.

  1. Deschideți promptul de comandă de pe pi
  2. Tastați workon cv (sau oricare nume ați ales pentru mediul dvs. virtual)
  3. Schimbați directorul în locul în care aveți fișierele stocate (cd (calea către fișiere))
  4. Ultima linie rulează programul și specifică fișierul cascadă haar. (Python Face3.py --faces haarcascade_frontalface_default.xml)

Când îl rulați, ar trebui să vedeți pe ecran un flux video din picam și promptul de comandă va începe să tipărească valorile servo din toate cele șase servouri.

Și ai terminat! În funcție de calitatea serviciilor pe care le aveți, vă recomandăm să le calibrați în mod specific pentru a îmbunătăți acuratețea sistemului. Am ajuns să trebuiască să modificăm toate gamele PWM pentru ca acestea să funcționeze corect.

Recomandat: