Innehållsförteckning:

OCH: 6 steg
OCH: 6 steg

Video: OCH: 6 steg

Video: OCH: 6 steg
Video: Favoritsaker hos en Indisk säkerhetsvakt (Filip Och Fredrik) 2024, Juli
Anonim
AJ
AJ
AJ
AJ

Ouch är din personliga Omnidirectional Useless Cataract Helper. När ansiktsigenkänning träffar Zeitgeist, träffar OUCH dig! OUCH vet inte bara hur du ser ut, det vet också hur man ska vara väldigt irriterande! Till skillnad från storebror är den här maskinen mycket synlig och uppfyller endast ett syfte: Att göra ditt liv lite skitigare. Glömde du någonsin dina solglasögon hemma och blev överraskad av en ljus reflektion? OUCH låter dig återuppleva detta ögonblick om och om igen. Genom att reflektera ljuset från den ljusaste ljuskällan runt dig rakt i ansiktet ser du till att du inte kommer att njuta av ett enda ögonblick runt det.

Se upp, eller OUCH kan vara det sista du någonsin kommer att se!

Projektet genomfördes som en del av seminariet Computational Design and Digital Fabrication i ITECH -masterprogrammet.

August Lehrecke | Max Zorn

Tillbehör

Elektroniska delar:

Arduino

  • Arduino UNO

    • 2x Reely Mini-Servo S0009
    • 4x fotoresistorer
    • 4x 10k motstånd
    • 2x potentiometrar
    • 1x USB -skrivarkabel

Raspberry Pi

  • Rasberry Pi 4

    • 1x RaspiCam
    • 4x Reely Mini-Servo S0009
    • 1x PCA9685 16-kanals 12-bitars PWM-servodrivrutin
    • 5v DC extern strömförsörjning
    • 1x Rasberry Pi 5.1V - 3Amp strömförsörjning (eller extern motsvarighet)
    • 1x MAKERFACTORY HC-SR05 Ultraschallsensor (MF-6402156)
    • 1x 470 Ohm motstånd
    • 1x 320 Ohm motstånd

3D -tryckta delar:

OCH kommer i olika former och storlekar. För den här versionen använde vi en 3D -skrivare för att skriva ut anpassade mekanismer.

  • 4 x stativ
  • 2 x bas S
  • 1 x bas L
  • 2 x Rotationsbas Dubbel
  • 1 x Rotationsbas Enkel
  • 1 x uppsättning axelstöd S
  • 1 x uppsättning axelstöd M
  • 1 x uppsättning axelstöd L
  • 1 x kamerafäste
  • 1 x ljusfäste
  • 1 x spegelfäste

Alternativt kan du använda den medföljande Tower -designen för att följa komponenterna till:

  • 1 x torn (istället för 4 x stativ)
  • 1 x Base S & 1x Base M (istället för 2 x Base S)

Andra delar:

  • Mylar
  • 1 x gummiband
  • 1 x dragkedja
  • 12 M5 x 160 plattskruvar
  • 2 M5 x 80 plattskruvar

Verktyg:

  • 3d skrivare
  • H3.0 Skruvmejsel
  • Lim pistol

Steg 1: Steg 1: Skriva ut delarna

Om du har tillgång till en 3D -skrivare kan du skriva ut anpassade mekanismer för att rymma servon och montera de tre huvudkomponenterna.

För Face -komponenten behöver vi:

  • 2 x stativ
  • 1 x bas L
  • 1 x roterande basdubbel
  • 1 x uppsättning axelstöd M
  • 1 x Kamera- och distanssensormontering

Ljuskomponenten kräver:

  • 1 x stativ
  • 1 x bas S
  • 1 x roterande basdubbel
  • 1 x uppsättning axelstöd S
  • 1 x ljusfäste

Spegelkomponenterna består av följande:

  • 1 x stativ
  • 1 x bas S
  • 1 x roterande bas singel
  • 1 x uppsättning axelstöd L
  • Spegelfäste

Slutligen kan du också skriva ut det medföljande tornet.

Om du vill använda den som bas för alla tre komponenterna måste du justera vektormatematiken i koden i enlighet därmed. Anslut dessutom Face -komponenten med Base M istället för Base L till tornet.

Steg 2: Steg 2: Gör spegeln

Steg 2: Gör spegeln
Steg 2: Gör spegeln
Steg 2: Gör spegeln
Steg 2: Gör spegeln

För att göra din egen spegelkomponent, skär en cirkulär bit Mylar och lägg den ovanpå den 3D -tryckta spegeldelen. Använd sedan först ett gummiband för att fixa det på plats. Gummibandet ska passa inuti spåret runt komponenten. Använd sedan en dragkedja för att försiktigt säkra anslutningen, dra inte åt den för mycket, ännu. Nu kan du börja sträcka Mylar tills du får en blank, spegelande yta. Slutligen, dra åt dragkedjan och njut av reflektionen av ditt vackra ansikte!

Steg 3: Steg 3: Montering av komponenterna

Steg 3: Montering av komponenterna
Steg 3: Montering av komponenterna
Steg 3: Montering av komponenterna
Steg 3: Montering av komponenterna
Steg 3: Montering av komponenterna
Steg 3: Montering av komponenterna
Steg 3: Montering av komponenterna
Steg 3: Montering av komponenterna

Ansikteskomponent

  1. Limma fast näven Servo i den utskurna delen av den roterande basen
  2. Limma servokontakten i spåret, som ligger längst ner på basdelen
  3. Sätt ihop de två basdelarna så att servon låser ihop kontakten
  4. Använd servoskruven för att fästa kontakten på servon
  5. Hetlim det andra kopplingsstycket i det motsvarande spåret, placerat längst upp på axelstödet
  6. Använd 4 M5 -bultar för att skruva axelstödet till den roterande basen
  7. Hetlim den andra servon på fästet
  8. Skjut kameran på stiften
  9. Fäst ultraljudsavståndssensorn på fästet, antingen via skruvning eller varmlimning
  10. Anslut kameran / sensorfästet till axelstödet, Servon måste åter glida in i kontaktstycket
  11. Använd servoskruven för att fästa kontakten på servon
  12. Skruva Raspberry Pi och servodrivrutinen på en bit plywood (se till att avståndet matchar hålen på bas L)
  13. Skruva fast ansiktsdelen på stativet med hjälp av M5 -bultar

Spegelkomponent

  1. Följ steg 1 till 7
  2. Anslut spegeln till axelstödet
  3. Limma ett spegelställ på plywood, så att Mirror och Face -komponenten är i linje
  4. Skruva fast spegelkomponenten på stativet med hjälp av M5 -bultar

Lätt komponent

  1. Följ steg 1 till 7 ovanifrån
  2. Trä ljussensorerna genom monteringshålen längst ner på skuggkorset
  3. Anslut skuggkorset till axelstödet, Servon måste åter glida in i kontaktstycket
  4. Använd servoskruven för att fästa kontakten på servon
  5. Limma ett stativ på plywood, så att Light, Mirror och Face -komponenten är inriktade och Mirror är mellan Face och Light -komponenterna
  6. Skruva fast ansiktsdelen på stativet med hjälp av M5 -bultar

*Alla komponenter kan också fästas på tornet, men tänk på den ökade kodnings- och ledningskomplexiteten och utskriftstiden. Om du vill använda tornet, använd Base M -delen istället för Base L för Face -komponenten och skruva fast Base -delarna i tornet med hjälp av öglorna och M5 -bultarna.

Steg 4: Steg 4: Konfigurera styrelserna

Steg 4: Konfigurera styrelserna
Steg 4: Konfigurera styrelserna
Steg 4: Konfigurera styrelserna
Steg 4: Konfigurera styrelserna
Steg 4: Konfigurera styrelserna
Steg 4: Konfigurera styrelserna

Här är kopplingsschemat för de tre komponenterna. Solspåraren fungerar på sin egen slinga på Arduino och skickar sina servopositioner till Rasberry Pi via den seriella USB -porten. En avståndssensor som tillval kan anslutas till framsidan av pan/tilt piCamera för att skapa en mer robust triangulering av målet. Här kommer vi att rada upp dem i en rak linje och bara medelvärde för vektorerna så att det inte krävs.

Fyra servon är anslutna till PCA9685 servodrivrutinen som drivs av en extern 5v strömförsörjning. Två av servona styr pannan och lutningen för ansiktsspårningskameran, medan de återstående två styr pannan och lutningen för spegeln.

Steg 5: Koden:

Koden
Koden

Koden för detta projekt kan delas upp i två delar: Arduino-ljus-spårningskoden och python-ansiktsspårning/spegelpositioneringskoden.

Arduino -kod:

Denna kod är en något modifierad version av solspårningsprojektet från geobruce. Det är en bra referens för att ta reda på mer om solspårningskomponenten och mer information finns på denna instruerbara sida. Ljusintensitetsvärden tas in från de fyra fotomotstånden och medelvärdesvis för att hitta det ljusaste området och justera servona därefter. Vi skriver sedan ut servovinkelvärdena till serieporten.

Python -kod:

Den här koden integrerar öppen CV för att skapa en mekanism för ansiktsspårning och att driva servon för spegeln. Du måste gå igenom några steg för att ladda ner öppet CV på din Raspberry pi. Det finns många resurser för detta men jag gillar väldigt mycket den från pyimagesearch. En fullständig genomgång av denna process hittar du här. Obs: Vi har laddat ner de öppna CV -biblioteken till en virtuell miljö som vi kör hela koden på, om du bestämde dig för att göra detta, se till att du laddar ner alla beroenden till den virtuella miljö som du kör programmet på och inte själva Pi.

När du har laddat ner öppet CV kommer denna kod också att kräva ytterligare beroenden (installerade på den specifika miljö du kör) för att köra:

  • Adafruit ServoKit: En helsida om processen för nedladdning på hallon Pi hittar du här.
  • imutils
  • numpy
  • gpiozero (om du använder avståndssensor)

För ansiktsspårning kräver skriptet ett argument (--faces) som är en.xml-fil som openCv använder för att hitta ansikten. Du måste lägga den här filen i samma katalog som python -skriptet. Jag har tillhandahållit det i nedladdningarna och det kan också hittas här.

Steg 6: Kör koden

Kör koden
Kör koden
Kör koden
Kör koden

När du har laddat ner koden i samma katalog och ställt in din virtuella miljö med öppet CV är du redo att köra den.

  1. Öppna kommandotolken på din pi
  2. Skriv workon cv (eller vilket namn du valt för din virtuella miljö)
  3. Ändra katalogen där du har dina filer lagrade (cd (sökväg till filer))
  4. Den sista raden kör programmet och specificerar hennes kaskadfil. (python Face3.py --faces haarcascade_frontalface_default.xml)

När du kör det bör du se en videoström från picam dyka upp på skärmen och kommandotolken börjar skriva ut servovärdena från alla sex servon.

Och du är klar! Beroende på kvaliteten på servon du har kanske du vill kalibrera dem specifikt för att förbättra noggrannheten i ditt system. Det slutade med att vi behövde justera alla PWM -intervall för att de skulle fungera korrekt.

Rekommenderad: