Turinys:

OUCH: 6 žingsniai
OUCH: 6 žingsniai

Video: OUCH: 6 žingsniai

Video: OUCH: 6 žingsniai
Video: Five Feet Apart (2019) Full Movie 2024, Lapkritis
Anonim
OUCH
OUCH
OUCH
OUCH

„Ouch“yra jūsų asmeninis visapusiškas nenaudingas kataraktos pagalbininkas. Kai veido atpažinimas pasiekia „Zeitgeist“, „OUCH“patenka į tave! OUCH ne tik žino, kaip atrodote, bet ir labai erzina! Skirtingai nuo didžiojo brolio, ši mašina yra labai matoma ir turi tik vieną tikslą: padaryti jūsų gyvenimą šiek tiek švaresnį. Ar kada pamiršote namuose savo akinius nuo saulės ir nustebino ryškus atspindys? OUCH leidžia vėl ir vėl išgyventi šią akimirką. Atspindėdamas šviesą iš ryškiausio aplink jus esančio šviesos šaltinio tiesiai į veidą, užtikrinsite, kad jums nepatiks nė viena akimirka aplinkui.

Saugokitės, nes OUCH gali būti paskutinis dalykas, kurį kada nors pamatysite!

Projektas buvo vykdomas kaip ITECH magistrantūros programos Kompiuterinio dizaino ir skaitmeninės gamybos seminaro dalis.

Augustas Lehrecke | Maksas Zornas

Prekės

Elektroninės dalys:

Arduino

  • Arduino UNO

    • 2x „Reely Mini-Servo S0009“
    • 4x fotorezistoriai
    • 4x 10k rezistoriai
    • 2x potenciometrai
    • 1x USB spausdintuvo kabelis

Raspberry Pi

  • Rasberry Pi 4

    • 1x „RaspiCam“
    • 4x „Reely Mini-Servo S0009“
    • 1x PCA9685 16 kanalų 12 bitų PWM servo tvarkyklė
    • 5 V nuolatinis išorinis maitinimo šaltinis
    • 1x Rasberry Pi 5.1V - 3Amp maitinimo šaltinis (arba išorinis ekvivalentas)
    • 1x MAKERFACTORY HC-SR05 ultragarsinis jutiklis (MF-6402156)
    • 1x 470 omų rezistorius
    • 1x 320 omų rezistorius

3D spausdintos dalys:

OUCH yra įvairių formų ir dydžių. Šioje versijoje pasirinktiniams mechanizmams spausdinti naudojome 3D spausdintuvą.

  • 4 x stovas
  • 2 x bazė S
  • 1 x bazė L
  • 2 x dvigubas sukamasis pagrindas
  • 1 x sukamasis pagrindas
  • 1 x ašies atramos rinkinys S
  • 1 x ašies atramos rinkinys M
  • 1 x ašies atramos rinkinys L
  • 1 x fotoaparato laikiklis
  • 1 x šviesos laikiklis
  • 1 x veidrodžio laikiklis

Pasirinktinai galite naudoti pateiktą bokšto dizainą, kad sujungtumėte komponentus:

  • 1 x bokštas (vietoj 4 x stovo)
  • 1 x Base S ir 1 x Base M (vietoj 2 x Base S)

Kitos dalys:

  • Mylar
  • 1 x guminė juosta
  • 1 x užtrauktukas
  • 12 M5 x 160 plokščių varžtų
  • 2 M5 x 80 plokščios formos varžtai

Įrankiai:

  • 3D spausdintuvas
  • H3.0 Atsuktuvas
  • Karšto klijų pistoletas

1 veiksmas: 1 žingsnis: dalių spausdinimas

Jei turite prieigą prie 3D spausdintuvo, galite atsispausdinti pasirinktinius mechanizmus, kad būtų galima įdiegti „Servos“ir sumontuoti tris pagrindinius komponentus.

Veido komponentui mums reikia:

  • 2 x stovai
  • 1 x bazė L
  • 1 x pasukama bazė dviguba
  • 1 x ašies atramos rinkinys M
  • 1 x fotoaparato ir atstumo jutiklio laikiklis

Šviesos komponentui reikia:

  • 1 x stovas
  • 1 x bazė S
  • 1 x pasukama bazė dviguba
  • 1 x ašies atramos rinkinys S
  • 1 x šviesos laikiklis

Veidrodžio komponentus sudaro šie elementai:

  • 1 x stovas
  • 1 x bazė S
  • 1 x besisukantis pagrindas
  • 1 x ašies atramos rinkinys L
  • Veidrodžio laikiklis

Galiausiai taip pat galite atsispausdinti pateiktą bokštą.

Jei norite jį naudoti kaip visų trijų komponentų pagrindą, turėsite atitinkamai pakoreguoti vektorinę matematiką kode. Be to, prie bokšto prijunkite veido komponentą prie „Base M“, o ne „Base L“.

2 žingsnis: 2 žingsnis: veidrodžio kūrimas

2 žingsnis: veidrodžio kūrimas
2 žingsnis: veidrodžio kūrimas
2 žingsnis: veidrodžio kūrimas
2 žingsnis: veidrodžio kūrimas

Norėdami sukurti savo veidrodžio komponentą, supjaustykite apskritą „Mylar“gabalėlį ir padėkite jį ant 3D spausdintos veidrodžio dalies. Tada pirmiausia naudokite guminę juostą, kad ją pritvirtintumėte. Guminė juosta turėtų tilpti į griovelį aplink komponentą. Tada švelniai pritvirtinkite jungtį su užtrauktuku, dar neužveržkite. Dabar galite pradėti tempti „Mylar“, kol gausite blizgantį veidrodinį paviršių. Galiausiai priveržkite užtrauktuką ir mėgaukitės gražaus veido atspindžiu!

3 žingsnis: 3 žingsnis: komponentų surinkimas

3 žingsnis: komponentų surinkimas
3 žingsnis: komponentų surinkimas
3 žingsnis: komponentų surinkimas
3 žingsnis: komponentų surinkimas
3 žingsnis: komponentų surinkimas
3 žingsnis: komponentų surinkimas
3 žingsnis: komponentų surinkimas
3 žingsnis: komponentų surinkimas

Veido komponentas

  1. Karštai įklijuokite kumštį „Servo“į atitinkamą besisukančio pagrindo išpjovą
  2. Klijuokite „Servo“jungtį į griovelį, esantį pagrindo dalies apačioje
  3. Sujunkite dvi pagrindines dalis taip, kad „Servo“sujungtų jungtį
  4. Naudodami „Servo“varžtą pritvirtinkite jungtį prie servo
  5. Antrą jungties detalę karštai klijuokite į atitinkamą griovelį, esantį ašies atramos viršuje
  6. 4 M5 varžtais prisukite ašies atramą prie besisukančio pagrindo
  7. Karštą klijuokite antrąjį servo prie laikiklio
  8. Stumkite fotoaparatą ant kaiščių
  9. Pritvirtinkite ultragarsinį atstumo jutiklį prie laikiklio prisukdami arba karštai klijuodami
  10. Prijunkite fotoaparato / jutiklio laikiklį prie ašies atramos, „Servo“vėl turi slysti į jungties dalį
  11. Naudodami „Servo“varžtą pritvirtinkite jungtį prie servo
  12. Prisukite „Raspberry Pi“ir servovariklį prie faneros gabalo (įsitikinkite, kad tarpai atitinka pagrindo L skyles)
  13. Prisukite veido komponentą prie stovų, naudodami M5 varžtus

Veidrodžio komponentas

  1. Atlikite 1–7 veiksmus
  2. Prijunkite veidrodį prie ašies atramos
  3. Klijuokite veidrodžio stovą prie faneros, kad veidrodžio ir veido komponentas būtų sulygiuotas
  4. Prisukite veidrodžio komponentą prie stovo, naudodami M5 varžtus

Šviesos komponentas

  1. Vykdykite 1–7 veiksmus iš viršaus
  2. Įkiškite šviesos jutiklius per tvirtinimo angas šešėlio kryžiaus apačioje
  3. Prijunkite šešėlio kryžių prie ašies atramos, „Servo“vėl turi slysti į jungties detalę
  4. Naudodami „Servo“varžtą pritvirtinkite jungtį prie servo
  5. Klijuokite stovą prie faneros, kad šviesa, veidrodis ir veidas būtų sulygiuoti, o veidrodis būtų tarp veido ir šviesos komponentų
  6. Prisukite veido komponentą prie stovų, naudodami M5 varžtus

*Visus komponentus taip pat galima pritvirtinti prie bokšto, tačiau atsižvelkite į padidėjusį kodavimą ir laidų sudėtingumą bei spausdinimo laiką. Jei norite naudoti bokštą, naudokite „Base M“dalį, o ne „Base L“, skirtą „Face“komponentui, ir prisukite pagrindo dalis prie bokšto, naudodami kilpas ir M5 varžtus.

4 veiksmas: 4 veiksmas: sukonfigūruokite plokštes

4 žingsnis: sukonfigūruokite plokštes
4 žingsnis: sukonfigūruokite plokštes
4 žingsnis: sukonfigūruokite plokštes
4 žingsnis: sukonfigūruokite plokštes
4 žingsnis: sukonfigūruokite plokštes
4 žingsnis: sukonfigūruokite plokštes

Čia yra trijų komponentų prijungimo schema. Saulės sekimo priemonė veikia savo kilpą „Arduino“ir siunčia savo servo pozicijas į „Rasberry Pi“per serijinį USB prievadą. Pasirenkamas atstumo jutiklis gali būti prijungtas prie priekinės keptuvės/pakreipimo piCamera, kad būtų sukurtas tvirtesnis taikinio trikampis. Čia mes juos išdėstysime tiesia linija ir tiesiog nustatysime vektorių vidurkį, todėl to nereikia.

Prie PCA9685 servo tvarkyklės, prijungtos prie išorinio 5 V maitinimo šaltinio, yra prijungti keturi servo įrenginiai. Du iš servo valdo veido stebėjimo kameros keptuvę ir pakreipimą, o kiti du valdo veidrodžio keptuvę ir pakreipimą.

5 žingsnis: kodas:

Kodas
Kodas

Šio projekto kodą galima suskirstyti į dvi dalis: „Arduino“šviesos sekimo kodą ir „python“veido sekimo/veidrodžio padėties nustatymo kodą.

„Arduino“kodas:

Šis kodas yra šiek tiek pakeista saulės sekimo projekto versija iš geobruce. Tai puiki nuoroda norint sužinoti daugiau apie saulės sekimo komponentą, o daugiau informacijos rasite šiame instrukcijų puslapyje. Šviesos intensyvumo vertės yra paimtos iš 4 fotorezistorių ir apskaičiuojamos vidutiniškai, kad būtų nustatyta ryškiausia sritis ir atitinkamai sureguliuotos servos. Tada išrašome servo kampo reikšmes į nuoseklųjį prievadą.

„Python“kodas:

Šis kodas integruoja atvirą CV, kad sukurtų veido stebėjimo panoramos pakreipimo mechanizmą, taip pat valdo veidrodžio servo sistemas. Turėsite atlikti kelis veiksmus, kad atsisiųstumėte atvirą CV į Raspberry pi. Tam yra daug išteklių, bet man labai patinka pyimagesearch šaltinis. Išsamų šio proceso aprašymą rasite čia. Pastaba: Atsisiuntėme atviras CV bibliotekas į virtualią aplinką, kurioje vykdome visą kodą, jei nusprendėte tai padaryti, įsitikinkite, kad atsisiųsite visas priklausomybes į virtualią aplinką, kurioje vykdote programą, o ne pats Pi.

Kai atsisiuntėte atvirą CV, šiam kodui paleisti reikės ir daugiau priklausomybių (įdiegtų konkrečioje jūsų naudojamoje aplinkoje):

  • „Adafruit ServoKit“: visą puslapį apie atsisiuntimą „Raspberry Pi“rasite čia.
  • imutils
  • kvailas
  • „gpiozero“(jei naudojamas atstumo jutiklis)

Veidų stebėjimui scenarijus reikalauja argumento (--face), kuris yra.xml failas, kurį „openCv“naudoja veidams rasti. Turėsite įdėti šį failą į tą patį katalogą kaip ir „python“scenarijus. Aš jį pateikiau atsisiuntimuose ir taip pat galite rasti čia.

6 veiksmas: paleiskite kodą

Kodo vykdymas
Kodo vykdymas
Kodo vykdymas
Kodo vykdymas

Atsisiuntę visą kodą į tą patį katalogą ir sukūrę virtualią aplinką su atviru CV, esate pasiruošę jį paleisti.

  1. Atidarykite komandų eilutę savo pi
  2. Įveskite „workon cv“(arba bet kurį virtualiai aplinkai pasirinktą pavadinimą)
  3. Pakeiskite katalogą į vietą, kurioje išsaugojote failus (cd (kelias į failus))
  4. Paskutinė eilutė paleidžia programą ir nurodo haar kaskados failą. („python Face3.py“-„haarcascade_frontalface_default.xml“)

Kai jį paleisite, ekrane turėtų pasirodyti vaizdo srautas iš „picam“, o komandų eilutė pradės spausdinti servo vertes iš visų šešių servo.

Ir baigėte! Atsižvelgdami į turimų servo paslaugų kokybę, galbūt norėsite kiekvieną iš jų specialiai sukalibruoti, kad pagerintumėte sistemos tikslumą. Galų gale turėjome pataisyti visus PWM diapazonus, kad jie tinkamai veiktų.

Rekomenduojamas: