Satura rādītājs:

OUCH: 6 soļi
OUCH: 6 soļi

Video: OUCH: 6 soļi

Video: OUCH: 6 soļi
Video: Out of Touch 2024, Jūlijs
Anonim
AUCH
AUCH
AUCH
AUCH

Ouch ir jūsu personīgais daudzvirzienu bezjēdzīgais kataraktas palīgs. Tā kā sejas atpazīšana skar Zeitgeist, OUCH skar jūs! OUCH ne tikai zina, kā tu izskaties, bet arī zina, kā būt ļoti kaitinošam! Atšķirībā no lielā brāļa, šī mašīna ir ļoti redzama un tai ir tikai viens mērķis: padarīt jūsu dzīvi mazliet sūdīgāku. Vai esat kādreiz aizmirsis saulesbrilles mājās un pārsteigts par spilgtu atspulgu? OUCH ļauj jums atkal un atkal pārdzīvot šo brīdi. Atspoguļojot gaismu no spilgtākā gaismas avota ap jums tieši sejā, tas nodrošinās, ka jūs neizbaudīsit nevienu mirkli ap to.

Uzmanieties, citādi OUCH varētu būt pēdējā lieta, ko jūs kādreiz redzēsit!

Projekts tika veikts kā daļa no ITECH maģistra programmas skaitļošanas dizaina un digitālās izgatavošanas semināra.

Augusts Lehrecke | Makss Zorns

Piegādes

Elektroniskās detaļas:

Arduino

  • Arduino UNO

    • 2x Reely mini servo S0009
    • 4x fotorezistori
    • 4x 10k rezistori
    • 2x potenciometri
    • 1x USB printera kabelis

Raspberry Pi

  • Rasberry Pi 4

    • 1x RaspiCam
    • 4x Reely mini servo S0009
    • 1x PCA9685 16 kanālu 12 bitu PWM servo draiveris
    • 5V līdzstrāvas ārējais barošanas avots
    • 1x Rasberry Pi 5.1V - 3Amp barošanas avots (vai ārējs ekvivalents)
    • 1x MAKERFACTORY HC-SR05 Ultraschallsensor (MF-6402156)
    • 1x 470 omu rezistors
    • 1x 320 omu rezistors

3D drukātās daļas:

OUCH ir dažādās formās un izmēros. Šai versijai mēs izmantojām 3D printeri, lai drukātu pielāgotus mehānismus.

  • 4 x statīvs
  • 2 x pamatne S
  • 1 x bāze L
  • 2 x rotācijas pamatne dubultā
  • 1 x rotācijas pamatne vienvietīga
  • 1 x ass atbalsta komplekts S
  • 1 x ass atbalsta komplekts M
  • 1 x ass atbalsta komplekts L
  • 1 x kameras stiprinājums
  • 1 x gaismas stiprinājums
  • 1 x spoguļa stiprinājums

Pēc izvēles jūs varat izmantot komplektā iekļauto torņa dizainu, lai saliktu sastāvdaļas:

  • 1 x tornis (4 x statīva vietā)
  • 1 x Base S un 1 x Base M (2 x Base S vietā)

Citas daļas:

  • Mylar
  • 1 x gumijas josla
  • 1 x rāvējslēdzēja kaklasaite
  • 12 M5 x 160 plakanas skrūves
  • 2 M5 x 80 plakanas skrūves

Rīki:

  • 3D printeris
  • H3.0 Skrūvgriezis
  • Karstās līmes pistole

1. darbība: 1. darbība: detaļu drukāšana

Ja jums ir piekļuve 3D printerim, varat izdrukāt pielāgotus mehānismus, lai izvietotu Servos un uzstādītu trīs galvenās sastāvdaļas.

Sejas komponentam mums ir nepieciešams:

  • 2 x statīvi
  • 1 x bāze L
  • 1 x rotējoša pamatne divvietīga
  • 1 x ass atbalsta komplekts M
  • 1 x kameras un attāluma sensora stiprinājums

Gaismas komponentam ir nepieciešams:

  • 1 x statīvs
  • 1 x bāze S
  • 1 x rotējoša pamatne divvietīga
  • 1 x ass atbalsta komplekts S
  • 1 x gaismas stiprinājums

Spoguļa sastāvdaļas sastāv no šādiem elementiem:

  • 1 x statīvs
  • 1 x bāze S
  • 1 x rotējoša pamatne vienvietīga
  • 1 x ass atbalsta komplekts L
  • Spoguļa stiprinājums

Visbeidzot, jūs varat arī izdrukāt piedāvāto torni.

Ja vēlaties to izmantot kā pamatu visiem trim komponentiem, jums būs attiecīgi jāpielāgo vektora matemātika kodā. Turklāt savienojiet sejas komponentu ar bāzi M, nevis bāzi L pie torņa.

2. darbība: 2. darbība: spoguļa izgatavošana

2. solis: spoguļa izgatavošana
2. solis: spoguļa izgatavošana
2. solis: spoguļa izgatavošana
2. solis: spoguļa izgatavošana

Lai izveidotu savu spoguļa komponentu, izgrieziet apļveida Mylar gabalu un novietojiet to virs 3D drukātās spoguļa daļas. Pēc tam vispirms izmantojiet gumiju, lai to nofiksētu vietā. Gumijas joslai vajadzētu ietilpt rievā ap detaļu. Pēc tam izmantojiet rāvējslēdzēju, lai maigi nostiprinātu savienojumu, tomēr nesaspiediet to pārāk stipri. Tagad jūs varat sākt stiept Mylar, līdz iegūstat spīdīgu, spoguļojošu virsmu. Visbeidzot, pievelciet rāvējslēdzēju un izbaudiet savas skaistās sejas atspulgu!

3. darbība: 3. darbība: komponentu salikšana

3. darbība: komponentu salikšana
3. darbība: komponentu salikšana
3. darbība: komponentu salikšana
3. darbība: komponentu salikšana
3. darbība: komponentu salikšana
3. darbība: komponentu salikšana
3. darbība: komponentu salikšana
3. darbība: komponentu salikšana

Sejas sastāvdaļa

  1. Karsti pielīmējiet dūres Servo atbilstoši rotējošās pamatnes izgriezumam
  2. Līmējiet Servo savienotāju rievā, kas atrodas pamatnes daļas apakšā
  3. Salieciet abas pamatdaļas kopā, lai servo saslēgtos ar savienotāju
  4. Izmantojiet servo skrūvi, lai piestiprinātu savienotāju pie servo
  5. Karsti pielīmējiet otro savienotāja gabalu attiecīgajā rievā, kas atrodas ass balsta augšpusē
  6. Ar 4 M5 skrūvēm pieskrūvējiet ass balstu pie rotējošās pamatnes
  7. Karsti pielīmējiet otro servo pie stiprinājuma
  8. Bīdiet kameru uz tapām
  9. Piestipriniet ultraskaņas attāluma sensoru pie stiprinājuma, izmantojot skrūvi vai karstu līmēšanu
  10. Pievienojiet kameras / sensora stiprinājumu pie ass atbalsta, Servo atkal ir jāieslīd savienotāja daļā
  11. Izmantojiet servo skrūvi, lai piestiprinātu savienotāju pie servo
  12. Pieskrūvējiet Raspberry Pi un servo vadītāju pie saplākšņa gabala (pārliecinieties, vai atstarpes atbilst L pamatnes caurumiem)
  13. Pieskrūvējiet sejas komponentu pie statīviem, izmantojot M5 skrūves

Spoguļa sastāvdaļa

  1. Izpildiet 1. līdz 7. darbību
  2. Savienojiet spoguli ar ass balstu
  3. Līmējiet spoguļa statīvu pie saplākšņa, lai spoguļa un sejas komponenti būtu izlīdzināti
  4. Pieskrūvējiet spoguļa detaļu pie statīva, izmantojot M5 skrūves

Gaismas komponents

  1. Izpildiet 1. līdz 7. darbību no augšas
  2. Izvelciet gaismas sensorus caur stiprinājuma caurumiem ēnojuma krusta apakšā
  3. Pievienojiet ēnojuma krustu ass atbalstam, servo atkal jāieslīd savienotāja daļā
  4. Izmantojiet servo skrūvi, lai piestiprinātu savienotāju pie servo
  5. Līmējiet statīvu pie saplākšņa tā, lai gaismas, spoguļa un sejas komponenti būtu izlīdzināti un spogulis būtu starp sejas un gaismas komponentiem
  6. Pieskrūvējiet sejas komponentu pie statīviem, izmantojot M5 skrūves

*Visas detaļas var pievienot arī tornim, tomēr, lūdzu, ņemiet vērā palielināto kodēšanas un vadu sarežģītību un drukāšanas laiku. Ja vēlaties izmantot torni, sejas komponentam izmantojiet Base M daļu, nevis Base L un pieskrūvējiet pamatnes daļas pie torņa, izmantojot cilpiņas un M5 skrūves.

4. darbība: 4. darbība: konfigurējiet dēļus

4. solis: konfigurējiet dēļus
4. solis: konfigurējiet dēļus
4. darbība: konfigurējiet dēļus
4. darbība: konfigurējiet dēļus
4. solis: konfigurējiet dēļus
4. solis: konfigurējiet dēļus

Šeit ir trīs komponentu elektroinstalācijas shēma. Saules izsekotājs darbojas savā cilpā uz Arduino un nosūta savas servo pozīcijas uz Rasberry Pi, izmantojot seriālo USB portu. Papildaprīkojuma attāluma sensoru var piestiprināt pie panoramēšanas/noliekšanas piCamera priekšpuses, lai izveidotu stingrāku mērķa trijstūri. Šeit mēs tos sakārtosim taisnā līnijā un vienkārši noteiksim vektoru vidējo vērtību, lai tas nebūtu nepieciešams.

Četri servo ir savienoti ar servo draiveri PCA9685, kuru darbina ārējs 5 V barošanas avots. Divi no servos kontrolē sejas izsekošanas kameras pannu un slīpumu, bet pārējie divi - pannu un spoguļa slīpumu.

5. darbība: kods:

Kods
Kods

Šī projekta kodu var iedalīt divās daļās: Arduino gaismas izsekošanas kods un pitona sejas izsekošanas/spoguļa pozicionēšanas kods.

Arduino kods:

Šis kods ir nedaudz modificēta saules izsekošanas projekta versija no ģeobruce. Tā ir lieliska atsauce, lai uzzinātu vairāk par saules izsekošanas komponentu, un sīkāku informāciju var atrast šajā pamācību lapā. Gaismas intensitātes vērtības tiek ņemtas no 4 fotorezistoriem un aprēķinātas vidēji, lai atrastu spilgtāko apgabalu un attiecīgi pielāgotu servos. Pēc tam mēs sērijas portam izrakstām servo leņķa vērtības.

Python kods:

Šis kods integrē atvērto CV, lai izveidotu sejas izsekošanas pannas slīpuma mehānismu, kā arī darbina spoguļa servos. Lai Raspberry pi lejupielādētu atvērtu CV, jums būs jāveic dažas darbības. Tam ir daudz resursu, bet man ļoti patīk pyimagesearch resurss. Pilnu šī procesa pārskatu var atrast šeit. Piezīme. Mēs esam lejupielādējuši atvērtās CV bibliotēkas virtuālajā vidē, kurā mēs izpildām visu kodu, ja jūs nolemjat to darīt, pārliecinieties, vai visas atkarības esat lejupielādējis virtuālajā vidē, kurā izmantojat programmu, nevis pats Pi.

Kad esat lejupielādējis atvērto CV, šī koda palaišanai būs nepieciešamas vēl dažas atkarības (instalētas konkrētajā vidē, kurā izmantojat):

  • Adafruit ServoKit: pilnu lapu par lejupielādes procesu aveņu Pi var atrast šeit.
  • imutils
  • dūšīgs
  • gpiozero (ja izmanto attāluma sensoru)

Seju izsekošanai skriptam ir nepieciešams arguments (--faces), kas ir.xml fails, ko openCv izmanto seju atrašanai. Jums būs jāievieto šis fails tajā pašā direktorijā kā python skripts. Esmu to nodrošinājis lejupielādēs, un to var atrast arī šeit.

6. darbība: koda palaišana

Koda izpildīšana
Koda izpildīšana
Koda izpildīšana
Koda izpildīšana

Kad esat lejupielādējis visu kodu vienā direktorijā un iestatījis savu virtuālo vidi ar atvērtu CV, esat gatavs to palaist.

  1. Atveriet komandrindu savā pi
  2. Ierakstiet workon cv (vai jebkuru nosaukumu, kuru izvēlējāties savai virtuālajai videi)
  3. Mainiet direktoriju uz vietu, kur esat saglabājis failus (cd (ceļš uz failiem))
  4. Pēdējā rindā darbojas programma un specifikācijas haar kaskādes fails. (python Face3.py -sejas haarcascade_frontalface_default.xml)

Palaižot to, ekrānā vajadzētu parādīties video straume no pikama, un komandu uzvedne sāks izdrukāt servo vērtības no visiem sešiem servos.

Un jūs esat pabeidzis! Atkarībā no jūsu servo kvalitātes, iespējams, vēlēsities katru atsevišķi kalibrēt, lai uzlabotu sistēmas precizitāti. Mums bija jāpielāgo visi PWM diapazoni, lai tie darbotos pareizi.

Ieteicams: