Tabla de contenido:

Iris sensible a la luz: 4 pasos
Iris sensible a la luz: 4 pasos

Video: Iris sensible a la luz: 4 pasos

Video: Iris sensible a la luz: 4 pasos
Video: ¿Cómo procesan nuestros ojos las imágenes? 2024, Noviembre
Anonim
Image
Image
Iris sensible a la luz
Iris sensible a la luz

Este tutorial muestra cómo crear un diafragma de iris que, como el iris humano, se dilatará con poca luz y se contraerá en entornos de luz brillante.

Paso 1: Impresión 3D

Impresión 3d
Impresión 3d
Impresión 3d
Impresión 3d
Impresión 3d
Impresión 3d

El proceso de fabricación de los componentes impresos en 3D de esta construcción podría tener su propia página de tutoriales y, de hecho, eso es lo que usé para hacerlos:

www.thingiverse.com/thing:2019585

He incluido los archivos aquí por conveniencia.

Algunas notas sobre este ejemplo, las hojas (u hojas) del iris se produjeron en realidad con una impresora de resina utilizando los mismos archivos debido a las limitaciones de la impresora 3D. Además, toda la impresión se amplió un 10%. Conseguir que las piezas trabajaran juntas requirió un trabajo de detalle, terminé dando forma a las piezas con papel de lija fino, un cuchillo y una broca.

Otros iris que investigué durante este proceso:

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

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

Paso 2: Partes

Partes
Partes
Partes
Partes
Partes
Partes

Las imágenes muestran las piezas que necesitará, así como algunas de las herramientas y materiales que utilicé para construir el modelo que se muestra en la galería:

- Diafragma de iris impreso en 3D

- Servomotor Futaba S3003

- Micro crontroller Arduino UNO

- Resistencia dependiente de la luz: resistencia a la oscuridad 1 M ohmios / resistencia a la luz 10 ohmios - 20 k ohmios

- Potenciómetro analógico de 10k ohmios

- Resistencia de 500 ohmios

- PCB (placa de circuito impreso)

- encabezados (cinco)

- alambre: negro, rojo, blanco y amarillo

- cables conectores dupont (dos)

- soldador (y soldadura)

-multímetro

- tijeras de alambre

La estructura que alberga este prototipo fue realizada con MDF, contrachapado de 3/4 de pulgada, cola para madera, pistola de pegamento caliente, alambre rígido (de una percha y un clip), así como varios taladros y brocas, una sierra de mesa y un sierra de cinta, lijadora eléctrica y mucho ensayo y error. El objeto de las fotos es la tercera iteración.

Paso 3: Construcción del circuito / vivienda

Construyendo el Circuito / Vivienda
Construyendo el Circuito / Vivienda
Construyendo el Circuito / Vivienda
Construyendo el Circuito / Vivienda
Construyendo el Circuito / Vivienda
Construyendo el Circuito / Vivienda

Tuve un acertijo al estilo del "huevo y la gallina" mientras diseñaba este aspecto. Como no tengo experiencia con esquemas electrónicos, prefiero pensar en el circuito en términos de su configuración real, o pseudoesquema. Descubrí que la arquitectura de la carcasa de MDF / madera contrachapada y el cableado se limitaban entre sí de formas inesperadas. Traté de encontrar algo que fuera visualmente simple y autónomo.

-El potenciómetro fue una idea de etapa tardía durante la lluvia de ideas para agregar un ajustador de "sensibilidad", ya que las condiciones de iluminación ambiental pueden variar mucho, el potenciómetro y la resistencia juntos toman el lugar de una resistencia normal en el aspecto divisor de voltaje del circuito. No puedo entrar en detalles sobre esto porque realmente no sé cómo funciona todo.

-La parte vertical de la carcasa (fabricada en MDF) está ligeramente inclinada. Para rotar en el mismo plano que el iris, utilicé una lijadora de banda montada en la mesa para crear el mismo ángulo en el soporte del servo de madera que pegué a la base de madera contrachapada.

-También descubrí que el servo prefería levantar el tablero de MDF directamente de la base en lugar de articular el iris, así que agregué una grapa de retención de alambre que se inserta en la parte frontal para bloquear las dos piezas. Mientras estaba en eso, agregué pines para la placa Arduino del mismo cable. Por cierto, el cable que conecta el brazo del actuador al servo es un clip.

-El iris encaja perfectamente en el MDF, pero aún así agregué una gota de pegamento caliente para evitar que toda la carcasa gire en el zócalo en lugar de solo el brazo del actuador. Esto requirió una alineación más precisa del brazo de la palanca del servo de lo que esperaba. Lo que probablemente sea obvio para muchos que usan este tutorial, aunque inesperado para mí cuando comencé, fue que la rotación del servo y la rotación del iris es 1: 1. Tuve que hacer una pequeña extensión de brazo de plástico para que el servo lograra el mismo radio que el brazo del actuador de iris. El código originalmente aprovechó al máximo el potencial de rotación del servo, pero terminé midiendo la rotación real del iris, luego, a través de prueba y error, encontré un valor personalizado para los grados de rotación del servo que logró un efecto interesante.

- Muchas de las conexiones de cableado importantes están ocultas debajo de la PCB en las imágenes. Olvidé tomar una foto de ese lado de la PCB antes de pegarla en caliente al MDF. Esto es lo mejor, ya que nadie debería copiar el desorden que escondí debajo de esa pequeña pieza de PCB. Mi objetivo para la PCB era tener cabezales para los conectores de 5 voltios, tierra y servo para que las piezas pudieran separarse fácilmente para solucionar problemas imprevistos en el futuro, una característica que fue útil. Indiqué la orientación adecuada para los conectores de encabezado con un trozo de cinta adhesiva en el MDF al lado de la PCB, aunque supongo que podría haber escrito directamente en el MDF … parecía lo correcto en ese momento.

Paso 4: Código

Código
Código

#include // biblioteca de servos

Servo serv; // declaración del nombre del servo

int sensorPin = A1; // seleccione el pin de entrada para LDR

int sensorValue = 0; // variable para almacenar el valor proveniente del sensor

int timeOUT = 0; // variable para servo

int ángulo = 90; // variable para almacenar pulsos

configuración vacía ()

{

serv.attach (9); // conecta el servo en el pin 9 al objeto servo Serial.begin (9600); // establece el puerto serie para la comunicación

}

bucle vacío ()

{

sensorValue = analogRead (sensorPin); // lee el valor del sensor

Serial.println (sensorValue); // imprime los valores provenientes del sensor en la pantalla

ángulo = mapa (sensorValue, 1023, 0, 0, 88); // convierte los valores digitales a grados de rotación para el servo

serv.write (ángulo); // hace que el servo se mueva

retraso (100);

}

Recomendado: