Kazalo:

OUCH: 6 korakov
OUCH: 6 korakov

Video: OUCH: 6 korakov

Video: OUCH: 6 korakov
Video: Tschaikowsky: 6. Sinfonie (»Pathétique«) ∙ hr-Sinfonieorchester ∙ Lionel Bringuier 2024, Julij
Anonim
OUCH
OUCH
OUCH
OUCH

Ouch je vaš osebni vsestranski neuporabni pomočnik pri katarakti. Ko prepoznavanje obrazov zadene Zeitgeist, vas OUCH zadene! OUCH ne ve samo, kako izgledate, ampak tudi zna biti zelo moteč! Za razliko od velikega brata je ta stroj zelo viden in izpolnjuje le en namen: narediti vaše življenje nekoliko bolj usrano. Ste kdaj pozabili sončna očala doma in vas presenetil svetel odsev? OUCH vam omogoča, da znova in znova podoživite ta trenutek. Z odbojem svetlobe iz najsvetlejšega svetlobnega vira okoli vas naravnost v obraz bo poskrbel, da ne boste uživali niti v enem trenutku okoli njega.

Pazite, sicer bo OUCH zadnje, kar boste kdaj videli!

Projekt je bil izveden v okviru seminarja Računalniško oblikovanje in digitalna izdelava v magistrskem programu ITECH.

August Lehrecke | Max Zorn

Zaloge

Elektronski deli:

Arduino

  • Arduino UNO

    • 2x Reely Mini-Servo S0009
    • 4 -kratni foto upori
    • 4x 10k upori
    • 2x potenciometra
    • 1x USB kabel za tiskalnik

Malina Pi

  • Rasberry Pi 4

    • 1x RaspiCam
    • 4x Reely Mini-Servo S0009
    • 1x 16-kanalni 12-bitni PWM servo gonilnik PCA9685
    • 5v DC zunanji napajalnik
    • 1x napajalnik Rasberry Pi 5.1V - 3Amp (ali zunanji ekvivalent)
    • 1x MAKERFACTORY HC-SR05 Ultraschallsensor (MF-6402156)
    • 1x 470 ohmski upor
    • 1x 320 ohmski upor

3D natisnjeni deli:

OUCH so različnih oblik in velikosti. Za to različico smo uporabili 3D tiskalnik za tiskanje mehanizmov po meri.

  • 4 x stojalo
  • 2 x Podstavek S
  • 1 x Podstavek L
  • 2 x dvojna vrtljiva osnova
  • 1 x vrtljiva osnova Single
  • 1 x komplet osi za podporo S
  • 1 x Komplet osi za podporo M
  • 1 x komplet osi za podporo L
  • 1 x nosilec za fotoaparat
  • 1 x svetlobni nosilec
  • 1 x nosilec za ogledalo

Po želji lahko uporabite priloženo obliko stolpa, da komponente označite za:

  • 1 x stolp (namesto 4 x stojalo)
  • 1 x Base S & 1x Base M (namesto 2 x Base S)

Drugi deli:

  • Mylar
  • 1 x gumijasti trak
  • 1 x kravata z zadrgo
  • 12 ploskih vijakov M5 x 160
  • 2 vijaka M5 x 80 s plosko glavo

Orodja:

  • 3D tiskalnik
  • H3.0 izvijač
  • Pištola za vroče lepilo

1. korak: 1. korak: Tiskanje delov

Če imate dostop do 3D tiskalnika, lahko natisnete mehanizme po meri za namestitev servomotorjev in namestite tri glavne komponente.

Za komponento obraza potrebujemo:

  • 2 x stojala
  • 1 x Podstavek L
  • 1 x Dvojna vrtljiva osnova
  • 1 x Komplet osi za podporo M
  • 1 x Nosilec za senzor kamere in razdalje

Lahka komponenta zahteva:

  • 1 x stojalo
  • 1 x Podstavek S
  • 1 x Dvojna vrtljiva osnova
  • 1 x Komplet osi za podporo S
  • 1 x svetlobni nosilec

Zrcalne komponente so sestavljene iz naslednjega:

  • 1 x stojalo
  • 1 x Podstavek S
  • 1 x vrtljiva osnova Single
  • 1 x komplet osi za podporo L
  • Zrcalni nosilec

Nazadnje lahko natisnete tudi priloženi stolp.

Če ga želite uporabiti kot osnovo za vse tri komponente, boste morali ustrezno prilagoditi vektorsko matematiko v kodi. Nadalje priključite komponento Face z bazo M namesto baze L na stolp.

2. korak: 2. korak: Izdelava ogledala

2. korak: Izdelava ogledala
2. korak: Izdelava ogledala
2. korak: Izdelava ogledala
2. korak: Izdelava ogledala

Če želite izdelati svojo zrcalno komponento, izrežite okrogel kos Mylarja in ga položite na 3D ogledalo. Nato najprej pritrdite z gumijastim trakom. Gumijasti trak se mora prilegati v utor okoli sestavnega dela. Nato z zadrgo nežno zavarujte povezavo, vendar je ne zategnite preveč. Zdaj lahko začnete raztezati Mylar, dokler ne dobite sijoče, zrcalne površine. Nazadnje zategnite kravato na zadrgo in uživajte v odsevu vašega čudovitega obraza!

3. korak: 3. korak: Sestavljanje komponent

3. korak: Sestavljanje komponent
3. korak: Sestavljanje komponent
3. korak: Sestavljanje komponent
3. korak: Sestavljanje komponent
3. korak: Sestavljanje komponent
3. korak: Sestavljanje komponent
3. korak: Sestavljanje komponent
3. korak: Sestavljanje komponent

Komponenta obraza

  1. Vroče lepite pest Servo v skladu z izrezom vrtljive podlage
  2. Priključite servo konektor v utor, ki se nahaja na dnu osnovnega dela
  3. Dva osnovna dela sestavite skupaj, tako da se servo poveže s priključkom
  4. S servo vijakom pritrdite konektor na servo
  5. Drugi konektor vroče prilepite v ustrezen utor, ki se nahaja na vrhu osi
  6. S pomočjo 4 vijakov M5 privijte nosilec osi na vrtljivo podlago
  7. Drugi servo vroče lepite na nosilec
  8. Kamero potisnite na zatiče
  9. Ultrazvočni senzor razdalje pritrdite na nosilec bodisi z vijačenjem bodisi z vročim lepljenjem
  10. Nosilec kamere / senzorja priključite na osi, servo mora spet zdrsniti v priključek
  11. S servo vijakom pritrdite konektor na servo
  12. Privijte Raspberry Pi in servo gonilnik na kos vezanega lesa (Prepričajte se, da se razmik ujema z luknjami podnožja L)
  13. S pomočjo vijakov M5 privijte komponento Face na stojala

Zrcalna komponenta

  1. Sledite korakom od 1 do 7
  2. Ogledalo priključite na nosilec osi
  3. Stojalo za ogledalo prilepite na vezan les, tako da sta sestavni del ogledala in obraza poravnani
  4. Z vijaki M5 privijte ogledalo na stojalo

Svetlobna komponenta

  1. Sledite korakom od 1 do 7 od zgoraj
  2. Svetlobne senzorje napeljite skozi pritrdilne luknje na dnu zasenčenega križa
  3. Zasenčevalni križ povežite z nosilcem osi, servo mora spet zdrsniti v konektor
  4. S servo vijakom pritrdite konektor na servo
  5. Lepilo pritrdite na vezan les, tako da so sestavni deli svetlobe, ogledala in obraza poravnani, ogledalo pa med komponentama obraza in svetlobe
  6. S pomočjo vijakov M5 privijte komponento Face na stojala

*Vse komponente so lahko pritrjene tudi na stolp, vendar upoštevajte povečano kompleksnost kodiranja in ožičenja ter čas tiskanja. Če želite uporabiti stolp, uporabite del Base M namesto baze L za komponento Face in pritrdite osnovne dele na stolp z ušesci in vijaki M5.

4. korak: 4. korak: Konfigurirajte plošče

4. korak: Konfigurirajte plošče
4. korak: Konfigurirajte plošče
4. korak: Konfigurirajte plošče
4. korak: Konfigurirajte plošče
4. korak: Konfigurirajte plošče
4. korak: Konfigurirajte plošče

Tukaj je shema ožičenja za tri komponente. Sledilnik sonca deluje na lastni zanki na Arduinu in pošilja svoje servo položaje na Rasberry Pi prek serijskih vrat USB. Izbirni senzor razdalje lahko priključite na sprednjo stran kamere za premikanje/nagibanje, da ustvarite močnejšo triangulacijo cilja. Tukaj jih bomo postavili v ravno črto in samo povprečili vektorje, tako da ni potrebno.

Štirje servomotorji so priključeni na servo gonilnik PCA9685, ki ga napaja zunanji napajalnik 5 V. Dva servomotorja nadzorujeta pomik in nagib za kamero za sledenje obraza, preostala dva pa nadzorujeta pomik in nagib ogledala.

5. korak: Koda:

Koda
Koda

Kodo za ta projekt lahko razdelimo na dva dela: kodo za sledenje svetlobe Arduino in kodo za sledenje obrazu/pozicioniranje zrcala python.

Koda Arduino:

Ta koda je nekoliko spremenjena različica projekta za sledenje soncu iz geobruce. To je odlična referenca za več informacij o komponenti za sledenje soncu, več podrobnosti pa najdete na tej strani z navodili. Vrednosti jakosti svetlobe se vzamejo iz 4 foto-uporov in se povprečijo, da najdejo najsvetlejše območje in temu ustrezno prilagodijo servomotorje. Nato vrednosti servo kota izpišemo v serijska vrata.

Koda Python:

Ta koda združuje odprt življenjepis za ustvarjanje mehanizma za nagibanje s sledenjem obrazov in poganja servomotorje za ogledalo. Če želite prenesti odprti življenjepis na svoj Raspberry pi, boste morali opraviti nekaj korakov. Za to obstaja veliko virov, vendar mi je zelo všeč tisti, ki ga je naredil pyimagesearch. Celoten opis tega procesa najdete tukaj. Opomba: Knjižnice odprtih življenjepisov smo prenesli v virtualno okolje, v katerem izvajamo vso kodo. Če ste se tako odločili, prenesite vse odvisnosti v virtualno okolje, v katerem izvajate program, in ne sam Pi.

Ko prenesete odprti življenjepis, bo za izvajanje te kode potrebno tudi nekaj več odvisnosti (nameščenih v določenem okolju, ki ga izvajate):

  • Adafruit ServoKit: Celotno stran o postopku prenosa na malino Pi najdete tukaj.
  • imutils
  • numpy
  • gpiozero (če uporabljate senzor razdalje)

Za sledenje obrazov skript zahteva argument (--faces), ki je datoteka.xml, ki jo openCv uporablja za iskanje obrazov. To datoteko boste morali dati v isti imenik kot skript python. Zagotovil sem ga v prenosih in ga najdete tudi tukaj.

6. korak: Zaženite kodo

Izvajanje kode
Izvajanje kode
Izvajanje kode
Izvajanje kode

Ko prenesete vso kodo v isti imenik in nastavite navidezno okolje z odprtim življenjepisom, ste pripravljeni na zagon.

  1. Odprite ukazni poziv na pi
  2. Vnesite workon cv (ali katero koli ime, ki ste ga izbrali za svoje virtualno okolje)
  3. Spremenite imenik v mesto, kjer imate shranjene datoteke (cd (pot do datotek))
  4. Zadnja vrstica zažene program in določi kaskadno datoteko haar. (python Face3.py -obrazi haarcascade_frontalface_default.xml)

Ko ga zaženete, bi morali na zaslonu prikazati video tok iz picama in ukazni poziv bo začel tiskati vrednosti servo iz vseh šestih servomotorjev.

In končali ste! Odvisno od kakovosti servomotorjev, ki jih imate, jih boste morda želeli kalibrirati posebej, da izboljšate natančnost vašega sistema. Na koncu smo morali prilagoditi vse obsege PWM, da bodo delovali pravilno.

Priporočena: