Innehållsförteckning:
- Tillbehör
- Steg 1: Steg 1: Skriva ut delarna
- Steg 2: Steg 2: Gör spegeln
- Steg 3: Steg 3: Montering av komponenterna
- Steg 4: Steg 4: Konfigurera styrelserna
- Steg 5: Koden:
- Steg 6: Kör koden
Video: OCH: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:40
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
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
Ansikteskomponent
- Limma fast näven Servo i den utskurna delen av den roterande basen
- Limma servokontakten i spåret, som ligger längst ner på basdelen
- Sätt ihop de två basdelarna så att servon låser ihop kontakten
- Använd servoskruven för att fästa kontakten på servon
- Hetlim det andra kopplingsstycket i det motsvarande spåret, placerat längst upp på axelstödet
- Använd 4 M5 -bultar för att skruva axelstödet till den roterande basen
- Hetlim den andra servon på fästet
- Skjut kameran på stiften
- Fäst ultraljudsavståndssensorn på fästet, antingen via skruvning eller varmlimning
- Anslut kameran / sensorfästet till axelstödet, Servon måste åter glida in i kontaktstycket
- Använd servoskruven för att fästa kontakten på servon
- Skruva Raspberry Pi och servodrivrutinen på en bit plywood (se till att avståndet matchar hålen på bas L)
- Skruva fast ansiktsdelen på stativet med hjälp av M5 -bultar
Spegelkomponent
- Följ steg 1 till 7
- Anslut spegeln till axelstödet
- Limma ett spegelställ på plywood, så att Mirror och Face -komponenten är i linje
- Skruva fast spegelkomponenten på stativet med hjälp av M5 -bultar
Lätt komponent
- Följ steg 1 till 7 ovanifrån
- Trä ljussensorerna genom monteringshålen längst ner på skuggkorset
- Anslut skuggkorset till axelstödet, Servon måste åter glida in i kontaktstycket
- Använd servoskruven för att fästa kontakten på servon
- Limma ett stativ på plywood, så att Light, Mirror och Face -komponenten är inriktade och Mirror är mellan Face och Light -komponenterna
- 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
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 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
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.
- Öppna kommandotolken på din pi
- Skriv workon cv (eller vilket namn du valt för din virtuella miljö)
- Ändra katalogen där du har dina filer lagrade (cd (sökväg till filer))
- 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:
Läs el- och gasmätare (belgisk/nederländsk) och ladda upp till Thingspeak: 5 steg
Läs el- och gasmätare (belgisk/nederländsk) och ladda upp till Thingspeak: Om du är orolig för din energiförbrukning eller bara en liten nörd, vill du förmodligen se data från din snygga nya digitala mätare på din smartphone. projekt kommer vi att få aktuell information från en belgisk eller nederländsk digital el
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: 11 steg
Hur man skapar och infogar en tabell och lägger till ytterligare kolumner och/eller rader till den tabellen i Microsoft Office Word 2007: Har du någonsin haft mycket data du arbetar med och tänkt för dig själv … " hur kan jag göra allt av dessa data ser bättre ut och blir lättare att förstå? " Om så är fallet kan en tabell i Microsoft Office Word 2007 vara ditt svar
Ansluter bearbetning och Arduino och gör 7 segment och servo GUI -kontroller: 4 steg
Ansluta bearbetning och Arduino och göra 7 segment och servo GUI -kontroller: För vissa projekt måste du använda Arduino eftersom det ger en enkel prototypplattform men visning av grafik i seriell bildskärm av Arduino kan ta ganska lång tid och är till och med svårt att göra. Du kan visa grafer på Arduino Serial Monitor
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: 5 steg (med bilder)
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: Styrning av 8 reläväxlar med nodemcu och IR -mottagare via wifi och IR -fjärrkontroll och Android -app. Fjärrkontrollen fungerar oberoende av wifi -anslutning. HÄR ÄR EN UPPDATERAD VERSIONKLICK HÄR
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning: Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) för att visa temperatur, luftfuktighetsdata i digital och stapeldiagramform, visa tid och datum och kör en räkningstid