Sadržaj:

OUCH: 6 koraka
OUCH: 6 koraka

Video: OUCH: 6 koraka

Video: OUCH: 6 koraka
Video: Урок № 6: «Изхар» (إِظْهَار) Ясное чтение / 1-ое правило Нун-Сакина и Танвина 2024, Juli
Anonim
OUCH
OUCH
OUCH
OUCH

Ouch je vaš lični, beskorisni pomoćnik za kataraktu u svim smjerovima. Dok prepoznavanje lica pogađa Zeitgeist, OUCH vas pogađa! OUCH ne samo da zna kako izgledate, već zna i biti jako dosadan! Za razliku od velikog brata, ova mašina je vrlo vidljiva i ispunjava samo jednu svrhu: učiniti vaš život malo usranijim. Jeste li ikada zaboravili naočare za sunce kod kuće i iznenadili vas svijetlim odsjajem? OUCH vam omogućava da iznova i iznova proživljavate ovaj trenutak. Odbijajući svjetlost iz najsvjetlijeg izvora svjetlosti oko sebe ravno u vaše lice, pobrinut ćete se da nećete uživati ni u jednom trenutku oko nje.

Pazite, ili će OUCH biti posljednje što ćete vidjeti!

Projekt je proveden u sklopu seminara Računarsko projektiranje i digitalna izrada u master programu ITECH.

August Lehrecke | Max Zorn

Supplies

Elektronski dijelovi:

Arduino

  • Arduino UNO

    • 2x Reely Mini-Servo S0009
    • 4x fotootpornici
    • 4x 10k otpornici
    • 2x potenciometra
    • 1x USB kabl za štampač

Raspberry Pi

  • Rasberry Pi 4

    • 1x RaspiCam
    • 4x Reely Mini-Servo S0009
    • 1x PCA9685 16-kanalni 12-bitni PWM servo upravljački program
    • 5v DC vanjsko napajanje
    • 1x napajanje Rasberry Pi 5.1V - 3Amp (ili vanjski ekvivalent)
    • 1x MAKERFACTORY HC-SR05 Ultraschallsensor (MF-6402156)
    • 1x 470 Ohm otpornik
    • 1x 320 Ohm otpornik

3D štampani dijelovi:

OUCH dolaze u različitim oblicima i veličinama. Za ovu verziju koristili smo 3D štampač za štampanje prilagođenih mehanizama.

  • 4 x Postolje
  • 2 x Baza S
  • 1 x Baza L
  • 2 x Rotirajuća baza Double
  • 1 x Rotacijska baza Single
  • 1 x Set nosača osi S
  • 1 x Set nosača osi M
  • 1 x Set nosača osi L
  • 1 x Držač za kameru
  • 1 x Light Mount
  • 1 x Nosač ogledala

Opcionalno, možete upotrijebiti priloženi dizajn tornja da biste komponente izmjenjivali na:

  • 1 x toranj (umjesto 4 x postolje)
  • 1 x Baza S & 1x Baza M (umjesto 2 x Baza S)

Ostali delovi:

  • Mylar
  • 1 x gumica
  • 1 x kravata sa patentnim zatvaračem
  • 12 M5 x 160 ravnih vijaka
  • 2 vijka M5 x 80 s ravnom glavom

Alati:

  • 3D štampač
  • H3.0 odvijač
  • Pištolj za vruće ljepilo

Korak 1: Korak 1: Štampanje dijelova

Ako imate pristup 3D štampaču, možete odštampati prilagođene mehanizme za smeštaj servomotora i montiranje tri glavne komponente.

Za komponentu Face potrebno nam je:

  • 2 x stalci
  • 1 x Baza L
  • 1 x Rotirajuća baza Double
  • 1 x Set nosača osi M
  • 1 x Nosač kamere i senzora udaljenosti

Svjetlosna komponenta zahtijeva:

  • 1 x Stalak
  • 1 x Baza S
  • 1 x Rotirajuća baza Double
  • 1 x Set nosača osi S
  • 1 x Light Mount

Komponente ogledala sastoje se od sljedećeg:

  • 1 x Stalak
  • 1 x Baza S
  • 1 x Rotirajuća baza Single
  • 1 x Set nosača osi L
  • Montaža ogledala

Na kraju, možete i odštampati isporučeni toranj.

Ako ga želite koristiti kao bazu za sve tri komponente, morat ćete prema tome prilagoditi vektorsku matematiku u kodu. Nadalje, spojite komponentu Face s bazom M umjesto baze L na toranj.

Korak 2: Korak 2: Napravite ogledalo

Korak 2: Napravite ogledalo
Korak 2: Napravite ogledalo
Korak 2: Napravite ogledalo
Korak 2: Napravite ogledalo

Da biste napravili vlastitu komponentu Mirror, izrežite kružni komad Mylara i postavite ga na 3D dio s ogledalom. Zatim prvo upotrijebite gumicu da je učvrstite na mjestu. Gumena traka bi trebala stati unutar utora oko komponente. Zatim upotrijebite patentni zatvarač za nježno učvršćivanje veze, nemojte je još previše zatezati. Sada možete početi s rastezanjem Mylara sve dok ne dobijete sjajnu, zrcalnu površinu. Na kraju, stegnite kravatu s patentnim zatvaračem i uživajte u odrazu vašeg prekrasnog lica!

Korak 3: Korak 3: Sklapanje komponenti

Korak 3: Sklapanje komponenti
Korak 3: Sklapanje komponenti
Korak 3: Sklapanje komponenti
Korak 3: Sklapanje komponenti
Korak 3: Sklapanje komponenti
Korak 3: Sklapanje komponenti
Korak 3: Sklapanje komponenti
Korak 3: Sklapanje komponenti

Komponenta lica

  1. Vruće zalijepite Servo šaku u odgovarajući izrez na rotirajućoj podlozi
  2. Zalijepite servo konektor u utor koji se nalazi na dnu osnovnog dijela
  3. Spojite dva osnovna dijela tako da se Servo spoji s konektorom
  4. Pomoću servo vijka pričvrstite konektor na servo
  5. Vruće zalijepite drugi dio konektora u odgovarajući utor koji se nalazi na vrhu osnog nosača
  6. Pomoću 4 vijka M5 pričvrstite osnu os na rotirajuću podlogu
  7. Vruće ljepilo zakačite drugi Servo na držač
  8. Gurnite kameru po iglama
  9. Pričvrstite ultrazvučni senzor udaljenosti na držač, bilo pomoću vijka ili vrućim lijepljenjem
  10. Spojite držač kamere / senzora na os oslonaca, servo opet mora ući u dio konektora
  11. Pomoću servo vijka pričvrstite konektor na servo
  12. Pričvrstite Raspberry Pi i servo upravljač na komad šperploče (provjerite da li razmak odgovara rupama baze L)
  13. Pričvrstite komponentu Face na postolja, pomoću vijaka M5

Komponenta ogledala

  1. Slijedite korake od 1 do 7
  2. Spojite ogledalo na os osi
  3. Zalijepite stalak za ogledalo na šperploču, tako da su komponenta Ogledalo i Lice poravnate
  4. Pričvrstite zrcalnu komponentu na postolje pomoću vijaka M5

Light Component

  1. Slijedite gore navedene korake 1 do 7
  2. Provucite svjetlosne senzore kroz montažne rupe na dnu križa za zasjenjivanje
  3. Spojite križ za sjenčanje na osnu osnu, servo opet mora ući u priključni dio
  4. Pomoću servo vijka pričvrstite konektor na servo
  5. Zalijepite stalak na šperploču, tako da su komponenta Light, Mirror i Face poravnate, a Mirror između komponente Face i Light
  6. Pričvrstite prednju komponentu na postolja, pomoću vijaka M5

*Sve komponente također se mogu pričvrstiti na toranj, ipak razmislite o povećanoj složenosti kodiranja i ožičenja i vremenu ispisa. Ako želite koristiti toranj, upotrijebite dio baze M umjesto baze L za komponentu lica i pričvrstite dijelove osnove na toranj pomoću ušica i vijaka M5.

Korak 4: Korak 4: Konfigurirajte ploče

Korak 4: Konfigurirajte ploče
Korak 4: Konfigurirajte ploče
Korak 4: Konfigurirajte ploče
Korak 4: Konfigurirajte ploče
Korak 4: Konfigurirajte ploče
Korak 4: Konfigurirajte ploče

Evo dijagrama ožičenja za tri komponente. Tragač od sunca djeluje na vlastitu petlju na Arduinu i šalje svoje servo pozicije na Rasberry Pi putem serijskog USB priključka. Opcionalni senzor udaljenosti može se priključiti na prednju stranu kamere za pomicanje/nagib kako bi se stvorila robusnija triangulacija cilja. Ovdje ćemo ih poredati u ravnu liniju i samo usrednjavati vektore tako da nije potrebno.

Četiri servo pogona su spojena na PCA9685 servo upravljački program koji se napaja iz vanjskog napajanja od 5 V. Dva servo upravljača upravljaju pomicanjem i nagibom kamere za praćenje lica, dok preostala dva upravljaju pomicanjem i nagibom ogledala.

Korak 5: Kôd:

Kod
Kod

Kôd za ovaj projekt može se podijeliti na dva dijela: Arduino kôd za praćenje svjetlosti i kôd za pozicioniranje zrcala python lica.

Arduino kod:

Ovaj kod je malo izmijenjena verzija projekta praćenja sunca iz geobrucea. To je odlična referenca za saznanje više o komponenti solarnog praćenja, a više detalja možete pronaći na ovoj stranici s uputama. Vrijednosti intenziteta svjetlosti preuzimaju se sa 4 foto-otpornika i usrednjavaju se kako bi se pronašlo najsvjetlije područje i prema tome podesili servomotori. Zatim zapisujemo vrijednosti servo kuta na serijski port.

Python kod:

Ovaj kôd integrira otvoreni CV kako bi stvorio mehanizam za naginjanje okretanja lica, kao i pokreće servo za ogledalo. Morat ćete proći neke korake za preuzimanje otvorenog životopisa na svoj Raspberry pi. Za to postoji mnogo resursa, ali jako mi se sviđa onaj od pyimagesearch. Potpuni pregled ovog procesa možete pronaći ovdje. Napomena: Preuzeli smo otvorene biblioteke životopisa u virtualno okruženje u kojem pokrećemo sav kôd. Ako ste to odlučili, svakako preuzmite sve ovisnosti u virtualno okruženje na kojem pokrećete program, a ne sam Pi.

Nakon što preuzmete otvorenu biografiju, ovaj kôd će zahtijevati i dodatne ovisnosti (instalirane na određenom okruženju koje pokrećete) za pokretanje:

  • Adafruit ServoKit: Cijelu stranicu o procesu preuzimanja na malini Pi možete pronaći ovdje.
  • imutils
  • numpy
  • gpiozero (ako koristite senzor udaljenosti)

Za praćenje lica, skripta zahtijeva argument (--faces) koji je.xml datoteka koju openCv koristi za pronalaženje lica. Morat ćete staviti ovu datoteku u isti direktorij kao i python skripta. Naveo sam ga u preuzimanjima, a može se pronaći i ovdje.

Korak 6: Pokretanje koda

Pokretanje koda
Pokretanje koda
Pokretanje koda
Pokretanje koda

Nakon što preuzmete sav kôd u isti direktorij i postavite virtualno okruženje s otvorenim životopisom, spremni ste za pokretanje.

  1. Otvorite komandnu liniju na svom pi
  2. Upišite workon cv (ili bilo koje ime koje ste odabrali za svoje virtualno okruženje)
  3. Promijenite direktorij u mjesto gdje imate pohranjene datoteke (cd (put do datoteka))
  4. Posljednja linija pokreće program i specificira haar kaskadnu datoteku. (python Face3.py -lica haarcascade_frontalface_default.xml)

Kada ga pokrenete, trebali biste vidjeti video stream sa picama koji će se pojaviti na ekranu, a naredbeni redak će početi ispisivati servo vrijednosti sa svih šest servo pogona.

I gotovi ste! Ovisno o kvaliteti servo servera koje imate, možda ćete ih htjeti posebno kalibrirati kako biste poboljšali preciznost vašeg sistema. Na kraju smo morali prilagoditi sve raspone PWM -a kako bi ispravno radili.

Preporučuje se: