Inhaltsverzeichnis:

Lichtempfindliche Iris - Gunook
Lichtempfindliche Iris - Gunook

Video: Lichtempfindliche Iris - Gunook

Video: Lichtempfindliche Iris - Gunook
Video: The Coolest Eyeball Video You'll Ever See 2024, November
Anonim
Image
Image
Lichtempfindliche Iris
Lichtempfindliche Iris

Dieses Tutorial zeigt, wie Sie eine Irisblende erstellen, die sich wie die menschliche Iris bei schwachem Licht ausdehnt und in hellen Umgebungen zusammenzieht.

Schritt 1: 3D-Druck

3d Drucken
3d Drucken
3d Drucken
3d Drucken
3d Drucken
3d Drucken

Der Herstellungsprozess für die 3D-gedruckten Komponenten dieses Builds könnte eine eigene Tutorial-Seite haben, und tatsächlich habe ich sie so erstellt:

www.thingiverse.com/thing:2019585

Ich habe die Dateien der Einfachheit halber hier eingefügt.

Ein paar Anmerkungen zu diesem Beispiel, die Klingen (oder Blätter) der Iris wurden aufgrund der Einschränkungen des 3D-Druckers tatsächlich mit einem Harzdrucker unter Verwendung derselben Dateien hergestellt. Außerdem wurde der gesamte Druck um 10 % skaliert. Das Zusammenwirken der Teile erforderte einige Detailarbeit, am Ende habe ich die Teile viel mit feinem Sandpapier, einem Cuttermesser und einem Bohrer geformt.

Andere Iris, die ich während dieses Prozesses untersucht habe:

souzoumaker.com/blog-1/2017/8/12/mechanica…

www.instructables.com/id/How-to-make-a-12-…

Schritt 2: Teile

Teile
Teile
Teile
Teile
Teile
Teile

Die Bilder zeigen die benötigten Teile sowie einige der Werkzeuge und Materialien, die ich zum Bau des in der Galerie gezeigten Modells verwendet habe:

- 3D gedruckte Irisblende

- Futaba S3003 Servomotor

- Arduino UNO-Mikrocontroller

- Lichtabhängiger Widerstand: Dunkelwiderstand 1M Ohm / Lichtwiderstand 10 Ohm – 20k Ohm

- 10k Ohm analoges Potentiometer

- 500 Ohm Widerstand

- PCB (Leiterplatte)

- Überschriften (fünf)

- Kabel: schwarz, rot, weiß und gelb

- Dupont-Anschlussdrähte (zwei)

- Lötkolben (und Lötzinn)

-Multimeter

- Drahtschere

Die Struktur, die diesen Prototyp beherbergt, wurde aus MDF, 3/4-Zoll-Sperrholz, Holzleim, Heißklebepistole, steifem Draht (von einem Kleiderbügel und einer Büroklammer) sowie verschiedenen Bohrern und Bits, einer Tischkreissäge und anderem hergestellt Bandsäge, Motorschleifer und viel Versuch und Irrtum. Das Objekt aus den Fotos ist die dritte Iteration.

Schritt 3: Aufbau der Schaltung / des Gehäuses

Bau der Rennstrecke/des Gehäuses
Bau der Rennstrecke/des Gehäuses
Bau der Rennstrecke/des Gehäuses
Bau der Rennstrecke/des Gehäuses
Bau der Rennstrecke/des Gehäuses
Bau der Rennstrecke/des Gehäuses

Ich hatte ein Rätsel im Stil von "Huhn und Ei", während ich diesen Aspekt entwarf. Da ich keine Erfahrung mit Elektronikschaltplänen habe, ziehe ich es vor, über die Schaltung in Bezug auf ihre tatsächliche Konfiguration oder einen Pseudoschaltplan nachzudenken. Ich stellte fest, dass sich die Architektur sowohl des MDF/Sperrholzgehäuses als auch der Verkabelung auf unerwartete Weise gegenseitig einschränkte. Ich habe versucht, mir etwas einfallen zu lassen, das optisch einfach und in sich geschlossen ist.

-Das Potentiometer war eine späte Idee während des Brainstormings, um einen "Empfindlichkeits" -Einsteller hinzuzufügen, da die Umgebungslichtbedingungen stark variieren können, das Potentiometer und der Widerstand zusammen den Platz eines normalen Widerstands im Spannungsteileraspekt der Schaltung einnehmen. Ich kann nicht ins Detail gehen, weil ich nicht wirklich weiß, wie das alles funktioniert.

-Der vertikale Teil des Gehäuses (aus MDF) ist leicht angewinkelt. Um sich in der gleichen Ebene wie die Iris zu drehen, habe ich einen am Tisch montierten Bandschleifer verwendet, um den gleichen Winkel auf der hölzernen Servohalterung zu erzeugen, die ich auf die Sperrholzbasis geklebt habe.

-Ich fand auch, dass das Servo es vorzog, die MDF-Platte direkt von der Basis zu heben, anstatt die Iris zu schwenken, also fügte ich eine Drahthalteklammer hinzu, die vorne einfügt, um die beiden Teile zu verriegeln. Während ich dabei war, fügte ich Pins für das Arduino-Board aus dem gleichen Draht hinzu. Der Draht, der den Aktuatorarm mit dem Servo verbindet, ist übrigens eine Büroklammer.

-Die Iris passt genau in das MDF, aber trotzdem habe ich eine Perle Heißkleber hinzugefügt, um zu verhindern, dass sich das gesamte Gehäuse in der Buchse dreht, anstatt nur der Betätigungsarm. Dies erforderte eine genauere Ausrichtung des Servohebelarms als ich erwartet hatte. Was für viele Benutzer dieses Tutorials wahrscheinlich offensichtlich ist, obwohl es für mich zu Beginn unerwartet war, war, dass die Drehung des Servos und die Drehung der Blende 1:1 beträgt. Ich musste eine kleine Plastikarmverlängerung für das Servo machen, um den gleichen Radius wie der Irisaktuatorarm zu erreichen. Der Code nutzte ursprünglich das Rotationspotential des Servos voll aus, aber ich maß schließlich die tatsächliche Rotation der Blende und fand dann durch Versuch und Irrtum einen benutzerdefinierten Wert für die Rotationsgrade des Servos, der einen interessanten Effekt erzielte.

- Viele der wichtigen Kabelverbindungen sind in den Bildern unter der Platine versteckt. Ich habe vergessen, ein Foto von dieser Seite der Platine zu machen, bevor ich sie auf das MDF geklebt habe. Dies ist das Beste, da niemand das Chaos kopieren sollte, das ich unter diesem kleinen Stück PCB versteckt habe. Mein Ziel für die Platine war es, Header für die 5-Volt-, Masse- und Servo-Anschlüsse zu haben, damit die Teile für unvorhergesehene Fehlerbehebungen in der Zukunft leicht auseinandergenommen werden können, eine Funktion, die sich als praktisch erwies. Ich habe die richtige Ausrichtung der Header-Steckverbinder mit einem Stück Klebeband auf dem MDF neben der Platine angegeben, obwohl ich vermutlich direkt auf das MDF hätte schreiben können … es schien damals das Richtige zu sein.

Schritt 4: Code

Code
Code

#include // Servobibliothek

Servo-Serv; // Deklaration des Servonamens

int sensorPin = A1; // wähle den Eingangspin für LDR

int sensorValue = 0; // Variable zum Speichern des vom Sensor kommenden Werts

int timeOUT = 0; // variabel für Servo

int-Winkel = 90; // variabel zum Speichern von Impulsen

Void-Setup ()

{

serv.attach(9); // verbindet das Servo an Pin 9 mit dem Servo-Objekt Serial.begin (9600); // Setzt serielle Schnittstelle für die Kommunikation

}

Leere Schleife ()

{

sensorValue = analogRead (sensorPin); // den Wert vom Sensor lesen

Serial.println (sensorValue); // druckt die vom Sensor kommenden Werte auf dem Bildschirm aus

Winkel = Karte (sensorValue, 1023, 0, 0, 88); // konvertiert digitale Werte in Rotationsgrade für das Servo

serv.write(Winkel); // macht Servo bewegen

Verzögerung (100);

}

Empfohlen: