Indholdsfortegnelse:

UHOV: 6 trin
UHOV: 6 trin

Video: UHOV: 6 trin

Video: UHOV: 6 trin
Video: Хорошая Студентка vs Плохая Студентка | Милая Девушка Превратилась в Дерзкую 2024, Juli
Anonim
AV
AV
AV
AV

Ouch er din personlige Omnidirectional Useless Cataract Helper. Da ansigtsgenkendelse rammer Zeitgeist, rammer OUCH dig! OUCH ved ikke kun, hvordan du ser ud, den ved også, hvordan man skal være meget irriterende! I modsætning til storebror er denne maskine meget synlig og opfylder kun ét formål: At gøre dit liv en lille smule skidtere. Glemte du nogensinde dine solbriller derhjemme og blev overrasket over en lys refleksion? OUCH lader dig genopleve dette øjeblik igen og igen. Ved at reflektere lys fra den klareste lyskilde omkring dig lige i dit ansigt, vil det sikre, at du ikke vil nyde et eneste øjeblik omkring det.

Pas på, eller UUCH kan være det sidste, du nogensinde vil se!

Projektet blev gennemført som en del af seminaret Computational Design and Digital Fabrication i ITECH -masterprogrammet.

August Lehrecke | Max Zorn

Forbrugsvarer

Elektroniske dele:

Arduino

  • Arduino UNO

    • 2x Reely Mini-Servo S0009
    • 4x fotoresistorer
    • 4x 10k modstande
    • 2x potentiometre
    • 1x USB -printerkabel

Hindbær Pi

  • Rasberry Pi 4

    • 1x RaspiCam
    • 4x Reely Mini-Servo S0009
    • 1x PCA9685 16-kanals 12-bit PWM servodriver
    • 5v DC ekstern strømforsyning
    • 1x Rasberry Pi 5.1V - 3Amp strømforsyning (eller ekstern tilsvarende)
    • 1x MAKERFACTORY HC-SR05 Ultraschallsensor (MF-6402156)
    • 1x 470 Ohm modstand
    • 1x 320 Ohm modstand

3D -trykte dele:

SÅ mange findes i forskellige former og størrelser. Til denne version brugte vi en 3D -printer til at udskrive brugerdefinerede mekanismer.

  • 4 x stativ
  • 2 x Base S
  • 1 x Base L
  • 2 x rotationsbase dobbelt
  • 1 x rotationsbase enkelt
  • 1 x sæt Axis Support S
  • 1 x sæt aksestøtte M
  • 1 x sæt aksestøtte L
  • 1 x kameraholder
  • 1 x Light Mount
  • 1 x spejlbeslag

Du kan eventuelt bruge det medfølgende Tower -design til at mene komponenterne til:

  • 1 x tårn (i stedet for 4 x stativ)
  • 1 x Base S & 1x Base M (i stedet for 2 x Base S)

Andre dele:

  • Mylar
  • 1 x gummibånd
  • 1 x lynlås
  • 12 M5 x 160 Flathead Skruer
  • 2 M5 x 80 flade skruer

Værktøjer:

  • 3D printer
  • H3.0 Skruetrækker
  • Varm limpistol

Trin 1: Trin 1: Udskrivning af delene

Hvis du har adgang til en 3D -printer, kan du udskrive brugerdefinerede mekanismer til at huse servoer og montere de tre hovedkomponenter.

Til Face -komponenten har vi brug for:

  • 2 x stativer
  • 1 x Base L
  • 1 x Dobbelt roterende base
  • 1 x sæt aksestøtte M
  • 1 x Kamera- og afstandssensormontering

Lyskomponenten kræver:

  • 1 x stativ
  • 1 x Base S
  • 1 x Dobbelt roterende base
  • 1 x sæt Axis Support S
  • 1 x Light Mount

Spejlkomponenterne består af følgende:

  • 1 x stativ
  • 1 x Base S
  • 1 x Roterende Base Single
  • 1 x sæt aksestøtte L
  • Spejlmontering

Endelig kan du også udskrive det medfølgende tårn.

Hvis du vil bruge det som basis for alle tre komponenter, bliver du nødt til at justere vektormatematikken i koden i overensstemmelse hermed. Tilslut endvidere Face -komponenten med Base M i stedet for Base L til tårnet.

Trin 2: Trin 2: Lav spejlet

Trin 2: Lav spejlet
Trin 2: Lav spejlet
Trin 2: Lav spejlet
Trin 2: Lav spejlet

For at lave din egen spejlkomponent skal du skære et cirkulært stykke Mylar og placere det oven på den 3D -trykte spejldel. Brug derefter først et gummibånd til at fastgøre det på plads. Gummibåndet skal passe ind i rillen omkring komponenten. Brug derefter en lynlås til at forsigtigt sikre forbindelsen, stram den ikke for meget endnu. Nu kan du begynde at strække Mylar, indtil du får en skinnende, spejlende overflade. Stram til sidst lynlåsen og nyd refleksionen af dit smukke ansigt!

Trin 3: Trin 3: Samling af komponenterne

Trin 3: Samling af komponenterne
Trin 3: Samling af komponenterne
Trin 3: Samling af komponenterne
Trin 3: Samling af komponenterne
Trin 3: Samling af komponenterne
Trin 3: Samling af komponenterne
Trin 3: Samling af komponenterne
Trin 3: Samling af komponenterne

Ansigtskomponent

  1. Varm lim neven Servo i henhold til udskæringen af den roterende bund
  2. Lim servostikket ind i rillen, der er placeret i bunden af bunddelen
  3. Sæt de to bunddele sammen, så Servoen låser sammen med stikket
  4. Brug servoskruen til at fastgøre stikket til servoen
  5. Varm lim det andet konnektorstykke ind i den tilsvarende rille, der er placeret øverst på aksestøtten
  6. Brug 4 M5 bolte til at skrue aksestøtten til den roterende base
  7. Varm lim den anden Servo til holderen
  8. Skub kameraet på benene
  9. Fastgør ultralydsafstandssensoren til holderen, enten via skruing eller varmlimning
  10. Tilslut kamera / sensorophænget til aksestøtten, Servoen skal igen glide ind i stikstykket
  11. Brug servoskruen til at fastgøre stikket til servoen
  12. Skru Raspberry Pi og servodriveren til et stykke krydsfiner (Sørg for, at afstanden passer til hullerne i Base L)
  13. Skru Face -komponenten fast på stativerne ved hjælp af M5 bolte

Spejlkomponent

  1. Følg trin 1 til 7
  2. Tilslut spejlet til aksestøtten
  3. Lim et spejlstativ til krydsfiner, så komponenten Mirror og Face er justeret
  4. Skru spejlkomponenten fast på stativet ved hjælp af M5 bolte

Let komponent

  1. Følg trin 1 til 7 ovenfra
  2. Træk lyssensorerne gennem monteringshullerne i bunden af skygge -krydset
  3. Tilslut skygge -krydset til aksestøtten, Servoen skal igen glide ind i stikstykket
  4. Brug servoskruen til at fastgøre stikket til servoen
  5. Lim et stativ til krydsfiner, så komponenten Light, Mirror og Face er justeret, og spejlet er mellem Face og Light -komponenterne
  6. Skru Face -komponenten fast på stativerne ved hjælp af M5 bolte

*Alle komponenter kan også fastgøres til tårnet. Overvej dog den øgede kodning og ledningskompleksitet og udskrivningstid. Hvis du vil bruge tårnet, skal du bruge Base M -delen i stedet for Base L til Face -komponenten og skrue Base -delene til tårnet ved hjælp af øjer og M5 -bolte.

Trin 4: Trin 4: Konfigurer tavlerne

Trin 4: Konfigurer tavlerne
Trin 4: Konfigurer tavlerne
Trin 4: Konfigurer tavlerne
Trin 4: Konfigurer tavlerne
Trin 4: Konfigurer tavlerne
Trin 4: Konfigurer tavlerne

Her er ledningsdiagrammet for de tre komponenter. Solsporeren virker på sin egen sløjfe på Arduino og sender sine servopositioner til Rasberry Pi via den serielle USB -port. En valgfri afstandssensor kan tilsluttes fronten af pan/tilt piCamera for at skabe en mere robust triangulering af målet. Her vil vi stille dem op i en lige linje og bare beregne gennemsnittet af vektorer, så det er ikke påkrævet.

Fire servoer er tilsluttet PCA9685 servodriveren, der drives af en ekstern 5v strømforsyning. To af servoerne styrer pan og tilt for ansigtssporingskameraet, mens de resterende to styrer pan og tilt for spejlet.

Trin 5: Koden:

Koden
Koden

Koden til dette projekt kan opdeles i to dele: Arduino light-tracking code og python face tracking/mirror positioning code.

Arduino kode:

Denne kode er en let modificeret version af solsporingsprojektet fra geobruce. Det er en god reference til at finde ud af mere om solsporingskomponenten, og flere detaljer kan findes på denne instruktive side. Lysintensitetsværdier tages fra de 4 fotomodstande og beregnes i gennemsnit for at finde det lyseste område og justere servoerne i overensstemmelse hermed. Vi skriver derefter servovinkelværdierne ud til den serielle port.

Python -kode:

Denne kode integrerer åbent CV for at oprette en ansigtssporings -pan -vippemekanisme samt driver servoerne til spejlet. Du bliver nødt til at gennemgå nogle trin for at downloade åbent CV på din Raspberry pi. Der er mange ressourcer til dette, men jeg kan meget godt lide den fra pyimagesearch. En fuld gennemgang af denne proces kan findes her. Bemærk: Vi har downloadet de åbne CV -biblioteker til et virtuelt miljø, som vi kører hele koden på, hvis du besluttede dig for at gøre dette, skal du sørge for at downloade alle afhængighederne til det virtuelle miljø, som du kører programmet på, og ikke selve Pi.

Når du har downloadet åbent CV, vil denne kode også kræve nogle flere afhængigheder (installeret i det specifikke miljø, du kører) for at køre:

  • Adafruit ServoKit: En hel side om processen til download på hindbær Pi kan findes her.
  • imutils
  • numpy
  • gpiozero (hvis du bruger afstandssensor)

For ansigtssporing kræver scriptet et argument (--faces), som er en.xml-fil, som openCv bruger til at finde ansigter. Du bliver nødt til at sætte denne fil i det samme bibliotek som python -scriptet. Jeg har givet det i downloads, og det kan også findes her.

Trin 6: Kørsel af koden

Kørsel af koden
Kørsel af koden
Kørsel af koden
Kørsel af koden

Når du har hentet hele koden i den samme mappe og konfigureret dit virtuelle miljø med åbent CV, er du klar til at køre den.

  1. Åbn kommandoprompten på din pi
  2. Skriv workon cv (eller hvilket navn du valgte til dit virtuelle miljø)
  3. Skift biblioteket til det sted, hvor du har dine filer gemt (cd (sti til filer))
  4. Den sidste linje kører programmet og specificerer haar cascade -filen. (python Face3.py --faces haarcascade_frontalface_default.xml)

Når du kører den, skal du se en videostream fra picam dukke op på skærmen, og kommandoprompten begynder at udskrive servoværdierne fra alle seks servoer.

Og du er færdig! Afhængigt af kvaliteten af de servoer, du har, vil du måske kalibrere dem hver især for at forbedre nøjagtigheden af dit system. Vi endte med at skulle justere alle PWM -intervaller, for at de kunne fungere korrekt.

Anbefalede: