Inhoudsopgave:

OUCH: 6 stappen
OUCH: 6 stappen

Video: OUCH: 6 stappen

Video: OUCH: 6 stappen
Video: высокий ШИФОНОВЫЙ БИСКВИТ! ПОЛУЧАЕТСЯ ВСЕГДА! РУЧНЫМ миксером ! Очень вкусный! 2024, Juli-
Anonim
OUCH
OUCH
OUCH
OUCH

Ouch is uw persoonlijke omnidirectionele nutteloze cataracthelper. Terwijl gezichtsherkenning de tijdgeest raakt, raakt OUCH jou! OUCH weet niet alleen hoe je eruit ziet, het weet ook heel vervelend te zijn! In tegenstelling tot grote broer, is deze machine erg zichtbaar en vervult hij maar één doel: je leven een klein beetje shittier maken. Ben je ooit je zonnebril thuis vergeten en werd je verrast door een felle reflectie? OUCH laat je dit moment keer op keer herbeleven. Door het licht van de felste lichtbron om je heen recht in je gezicht te reflecteren, zal het ervoor zorgen dat je er geen moment omheen kunt genieten.

Pas op, of OUCH is misschien wel het laatste wat je ooit zult zien!

Het project werd uitgevoerd als onderdeel van het seminar Computational Design en Digital Fabrication in het ITECH-masterprogramma.

Augustus Lehrecke | Max Zorn

Benodigdheden

Elektronische onderdelen:

Arduino

  • Arduino UNO

    • 2x Reely Mini-Servo S0009
    • 4x fotoweerstanden
    • 4x 10k weerstanden
    • 2x potmeters
    • 1x USB-printerkabel

Raspberry Pi

  • Raspberry Pi 4

    • 1x RaspiCam
    • 4x Reely Mini-Servo S0009
    • 1x PCA9685 16-kanaals 12-bits PWM-servostuurprogramma
    • 5v DC externe voeding
    • 1x Rasberry Pi 5.1V - 3Amp voeding (of extern equivalent)
    • 1x MAKERFACTORY HC-SR05 Ultraschallsensor (MF-6402156)
    • 1x 470 Ohm weerstand
    • 1x 320 Ohm weerstand

3D-geprinte onderdelen:

OUCH's zijn er in verschillende soorten en maten. Voor deze versie hebben we een 3D-printer gebruikt om aangepaste mechanismen af te drukken.

  • 4 x standaard
  • 2 x basis S
  • 1 x basis L
  • 2 x rotatiebasis dubbel
  • 1 x Rotatiebasis Single
  • 1 x set assteun S
  • 1 x set assteun M
  • 1 x set assteunen L
  • 1 x camerabevestiging
  • 1 x lichtmontage
  • 1 x spiegelmontage

Optioneel kunt u het meegeleverde Tower-ontwerp gebruiken om de componenten te combineren om:

  • 1 x toren (in plaats van 4 x standaard)
  • 1 x Basis S & 1x Basis M (in plaats van 2 x Basis S)

Overige onderdelen:

  • Mylar
  • 1 x rubberen band
  • 1 x ritssluiting
  • 12 M5 x 160 schroeven met platte kop
  • 2 M5 x 80 schroeven met platte kop

Gereedschap:

  • 3D-printer
  • H3.0 Schroevendraaier
  • Heet lijmpistool

Stap 1: Stap 1: De onderdelen afdrukken

Als u toegang hebt tot een 3D-printer, kunt u aangepaste mechanismen afdrukken om de servo's te huisvesten en de drie hoofdcomponenten te monteren.

Voor de Face-component hebben we nodig:

  • 2 x standaards
  • 1 x basis L
  • 1 x roterende basis dubbel
  • 1 x set assteun M
  • 1 x camera- en afstandssensorbevestiging

De Light-component vereist:

  • 1 x standaard
  • 1 x basis S
  • 1 x roterende basis dubbel
  • 1 x set assteun S
  • 1 x lichtmontage

De Mirror-componenten bestaan uit het volgende:

  • 1 x standaard
  • 1 x basis S
  • 1 x roterende basis enkel
  • 1 x set assteunen L
  • Spiegelmontage

Ten slotte kunt u ook de meegeleverde toren afdrukken.

Als je het als basis voor alle drie de componenten wilt gebruiken, moet je de vectorberekening in de code dienovereenkomstig aanpassen. Verbind verder de Face-component met Base M in plaats van Base L met de toren.

Stap 2: Stap 2: De spiegel maken

Stap 2: De spiegel maken
Stap 2: De spiegel maken
Stap 2: De spiegel maken
Stap 2: De spiegel maken

Om je eigen spiegelcomponent te maken, knip je een cirkelvormig stuk Mylar en plaats je dit bovenop het 3D-geprinte spiegeldeel. Gebruik dan eerst een elastiekje om het op zijn plaats te fixeren. De rubberen band moet in de groef rond het onderdeel passen. Gebruik vervolgens een kabelbinder om de verbinding voorzichtig vast te zetten, trek deze nog niet te strak aan. Nu kunt u de Mylar uitrekken totdat u een glanzend, spiegelend oppervlak krijgt. Trek tenslotte de ritssluiting aan en geniet van de weerspiegeling van je mooie gezicht!

Stap 3: Stap 3: Montage van de componenten

Stap 3: Montage van de componenten
Stap 3: Montage van de componenten
Stap 3: Montage van de componenten
Stap 3: Montage van de componenten
Stap 3: Montage van de componenten
Stap 3: Montage van de componenten
Stap 3: Montage van de componenten
Stap 3: Montage van de componenten

Gezichtscomponent

  1. Heetlijm de vuist Servo in de overeenkomstige uitsparing van de roterende basis
  2. Lijm de servoconnector in de groef aan de onderkant van het basisdeel
  3. Zet de twee basisdelen bij elkaar, zodat de Servo in de connector grijpt
  4. Gebruik de schroef van de servo om de connector op de servo te bevestigen
  5. Heetlijm het tweede verbindingsstuk in de overeenkomstige groef, die zich bovenaan de assteun bevindt
  6. Gebruik 4 M5-bouten om de assteun op de roterende basis te schroeven
  7. Heet lijm de tweede servo op de houder
  8. Schuif de camera op de pinnen
  9. Bevestig de ultrasone afstandssensor aan de houder, door middel van schroeven of warmlijmen
  10. Sluit de camera / sensor mount aan op de assteun, de Servo moet weer in het koppelstuk schuiven
  11. Gebruik de schroef van de servo om de connector op de servo te bevestigen
  12. Schroef de Raspberry Pi en de servo-driver op een stuk triplex (zorg ervoor dat de afstand overeenkomt met de gaten van Base L)
  13. Schroef het Face-onderdeel op de standaards, met behulp van M5-bouten

Spiegelcomponent

  1. Volg stappen 1 t/m 7
  2. Sluit de spiegel aan op de assteun
  3. Lijm een spiegelstandaard op multiplex, zodat de component Mirror en Face op één lijn ligt
  4. Schroef het spiegelonderdeel op de standaard met M5-bouten

Lichtcomponent

  1. Volg stappen 1 tot 7 van hierboven
  2. Steek de lichtsensoren door de montagegaten aan de onderkant van het schaduwkruis
  3. Sluit het schaduwkruis aan op de assteun, de servo moet weer in het verbindingsstuk schuiven
  4. Gebruik de schroef van de servo om de connector op de servo te bevestigen
  5. Lijm een standaard op multiplex, zodat de Light-, Mirror- en Face-componenten zijn uitgelijnd en de Mirror zich tussen de Face- en Light-componenten bevindt
  6. Schroef het Face-onderdeel op de standaards, met behulp van M5-bouten

*Alle componenten kunnen ook aan de toren worden bevestigd, houd echter rekening met de toegenomen complexiteit van codering en bedrading en afdruktijd. Als je de toren wilt gebruiken, gebruik dan het Base M-deel in plaats van de Base L voor het Face-component en schroef de Base-delen op de toren met behulp van de oogjes en M5-bouten.

Stap 4: Stap 4: Configureer de borden

Stap 4: Configureer de borden
Stap 4: Configureer de borden
Stap 4: Configureer de borden
Stap 4: Configureer de borden
Stap 4: Configureer de borden
Stap 4: Configureer de borden

Hier is het bedradingsschema voor de drie componenten. De suntracker werkt op zijn eigen lus op de Arduino en stuurt zijn servoposities via de seriële USB-poort naar de Rasberry Pi. Een optionele afstandssensor kan aan de voorkant van de pan/tilt piCamera worden aangesloten om een robuustere triangulatie van het doel te creëren. Hier zullen we ze in een rechte lijn op een rij zetten en alleen de vectoren middelen, dus het is niet vereist.

Vier servo's zijn aangesloten op de PCA9685-servodriver die wordt gevoed door een externe 5v-voeding. Twee van de servo's regelen de pan en tilt voor de gezichtsvolgcamera, terwijl de overige twee de pan en tilt voor de spiegel regelen.

Stap 5: De code:

De code
De code

De code voor dit project kan in twee delen worden opgesplitst: de Arduino light-tracking-code en de python face-tracking/mirror positioning-code.

Arduino-code:

Deze code is een licht gewijzigde versie van het zonvolgproject van geobruce. Het is een geweldige referentie om meer te weten te komen over de component voor het volgen van zonne-energie en meer details zijn te vinden op deze instructables-pagina. De lichtintensiteitswaarden worden uit de 4 fotoweerstanden gehaald en gemiddeld om het helderste gebied te vinden en de servo's dienovereenkomstig aan te passen. Vervolgens schrijven we de servo-hoekwaarden uit naar de seriële poort.

Python-code:

Deze code integreert open CV om een pan-kantelmechanisme voor het volgen van gezichten te creëren en stuurt de servo's voor de spiegel aan. Je zult een aantal stappen moeten doorlopen om open CV op je Raspberry pi te downloaden. Er zijn veel bronnen hiervoor, maar ik vind die van pyimagesearch erg leuk. Een volledige doorloop van dit proces is hier te vinden. Opmerking: we hebben de open CV-bibliotheken gedownload naar een virtuele omgeving waarop we alle code uitvoeren. Als u besluit dit te doen, zorg er dan voor dat u alle afhankelijkheden downloadt naar de virtuele omgeving waarop u het programma uitvoert en niet de Pi zelf.

Nadat je open CV hebt gedownload, vereist deze code ook wat meer afhankelijkheden (geïnstalleerd in de specifieke omgeving die je gebruikt) om te draaien:

  • Adafruit ServoKit: Een volledige pagina over het downloadproces op de Raspberry Pi is hier te vinden.
  • imutils
  • numpy
  • gpiozero (bij gebruik van afstandssensor)

Voor het volgen van gezichten vereist het script een argument (--faces), een.xml-bestand dat openCv gebruikt om gezichten te vinden. U moet dit bestand in dezelfde map plaatsen als het python-script. Ik heb het bij de downloads opgegeven en het is ook hier te vinden.

Stap 6: De code uitvoeren

De code uitvoeren
De code uitvoeren
De code uitvoeren
De code uitvoeren

Zodra u alle code in dezelfde map hebt gedownload en uw virtuele omgeving met open CV hebt ingesteld, bent u klaar om deze uit te voeren.

  1. Open de opdrachtprompt op uw pi
  2. Typ workon cv (of welke naam u ook kiest voor uw virtuele omgeving)
  3. Verander de map naar waar je je bestanden hebt opgeslagen (cd (pad naar bestanden))
  4. De laatste regel voert het programma uit en specificeert het haar cascadebestand. (python Face3.py --faces haarcascade_frontalface_default.xml)

Wanneer je het uitvoert, zou je een videostream van de picam op het scherm moeten zien verschijnen en de opdrachtprompt zal beginnen met het afdrukken van de servowaarden van alle zes servo's.

En je bent klaar! Afhankelijk van de kwaliteit van de servo's die je hebt, wil je ze misschien elk specifiek kalibreren om de nauwkeurigheid van je systeem te verbeteren. Uiteindelijk moesten we alle PWM-reeksen aanpassen om ze goed te laten werken.

Aanbevolen: