Tabla de contenido:

Luz interactiva sin contacto: 7 pasos (con imágenes)
Luz interactiva sin contacto: 7 pasos (con imágenes)

Video: Luz interactiva sin contacto: 7 pasos (con imágenes)

Video: Luz interactiva sin contacto: 7 pasos (con imágenes)
Video: Quieres sabes cuántas vidas pasadas tienes 2024, Diciembre
Anonim
Luz interactiva sin contacto
Luz interactiva sin contacto

¡Hola a todos! Me gustaría compartir el proyecto en el que he estado trabajando aquí. Me inspiré para experimentar con la detección táctil capacitiva a través de un proyecto en mi universidad. Descubrí esta tecnología a través de instructables y usé las cosas que aprendí aquí y en otros lugares en Internet para construir mi propio controlador sin contacto, que uso para combinar diferentes valores RGB para crear colores de luz interesantes.

Para empezar, cuando comencé este proyecto, no sabía casi nada acerca de la electrónica ni de la detección táctil capacitiva.

Algunos problemas con los que me encontré al principio se debieron a no entender lo que realmente sucede. Entonces, una breve introducción de cómo lo entiendo:

Un sensor capacitivo utiliza múltiples componentes, principalmente:

Un condensador (en este proyecto usamos papel de aluminio, pero también es posible usar fluidos conductores, etc.), cables (por supuesto, su electrónica)

y una resistencia, cualquier cosa por debajo de 10 MOhm es una resistencia demasiado pequeña para más que un toque directo.

la forma en que funciona es midiendo una diferencia de tiempo entre el punto A y el punto B. Desde el pin de inicio envía una señal a un pin final, el tiempo que tarda se mide con un temporizador. Al disminuir el valor de la resistencia (al mover un capacitor (en este caso su mano) más cerca del capacitor del sensor (el papel de aluminio), este tiempo se acorta, la diferencia de tiempo es lo que el sensor devuelve como valor.

Debido a que el sensor se ve afectado por superficies capacitivas, los datos pueden ser tremendamente erráticos debido a la interferencia. Esto se puede resolver en gran parte aislando correctamente el condensador y también usando una tierra (mostraré cómo más adelante).

Entonces, ahora que está fuera del camino, podemos comenzar a hacer un inventario de todo lo que necesitamos:

Paso 1: ¿Qué necesitamos?

Electrónica:

1. 2 resistencias de 22 M Ohm + (cuanto mayor es el valor de resistencia, más lejos reacciona su sensor, yo personalmente usé 22 M Ohm, el mínimo para obtener datos utilizables que experimenté fue 10 M Ohm)

2. 3 resistencias de 330 ohmios

3 cables

4. Tablero de pruebas

5. Placa de circuito (la mía tenía tiras de cobre continuas)

6. Múltiples LED RGB de cátodo comunes (usé 8, pero puede tener más o menos dependiendo de la cantidad de luz que desee)

7.papel de aluminio

8. Envoltura adhesiva

9. Arduino Uno

10. Cinta

El caso:

1. Madera Usé MDF de 50 x 50 x 1.8 CM (puedes usar cualquier cosa realmente. Depende del efecto que quieras y de las herramientas que tengas a tu disposición)

2. Plexiglás acrílico que utilicé 50 x 50 x 0,3 CM (o cualquier otro material transparente / translúcido como papel de arroz)

3.papel de lija (papel de lija fino)

4.pegamento de madera

5.veneer (opcional)

6.pegamento acrílico

Instrumentos:

Pelacables

Soldador + estaño

cuchillo Stanley

taladro

Saw (usé una sierra de mesa)

Paso 2: creación de prototipos:

Prototipos
Prototipos
Prototipos
Prototipos

Ahora lo tenemos todo y podemos empezar a hacer un prototipo para ver cómo funciona:

Trabajo de preparación:

Recorta 4 rectángulos del papel de aluminio (los míos miden unos 10 cm por 5 cm), envuélvelos en una envoltura adhesiva para aislarlos del contacto directo y pega un alambre al papel de aluminio. Acabo de pegar un extremo pelado al papel de aluminio (siempre que permanezcan en contacto).

Para asegurarme de que el aluminio esté aislado de manera segura, lo envolví en una envoltura adhesiva y lo planché entre papeles (solo durante unos segundos para que no se derrita por completo).

Luego configure el circuito como se ve en la imagen.

El pin 4 se utiliza como pin de envío para ambos sensores, mientras que los pines de recepción son los pines 2 y 5. Puede usar varios pines de envío, pero esto causa problemas ya que no están perfectamente sincronizados.

use esta configuración para fines de depuración antes de soldar todo junto, para asegurarse de que todo funcione realmente como se espera.

Paso 3: Código:

Ahora tenemos todo y podemos empezar a depurar los sensores.

Para usar mi código, debe descargar la biblioteca de detección capacitiva de Arduino e instalarla de acuerdo con las instrucciones dadas por la página de referencia: Haga clic en mí

El código: (No soy bueno codificando, así que si sabes cómo hacerlo mejor, hazlo)

#include // importar la biblioteca de códigos

CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); // Enviar pin = 4, recibir son 2 y 5 CapacitiveSensor cs_4_5 = CapacitiveSensor (4, 5); const int redPin = 11; const int greenPin = 10; const int bluePin = 9; const int numIndexR = 10; // tamaño de la matriz const int numIndexG = 10; int colorR = 0; int colorG = 0; flotar colorB = 0; int indexR [numIndexR]; int posIndexR = 0; total largo R = 0; // debe ser largo porque el total de mi matriz era demasiado grande para un número entero. int promedio R = 0; int indexG [numIndexG]; int posIndexG = 0; long totalG = 0; int promedioG = 0; configuración vacía () {pinMode (redPin, SALIDA); pinMode (greenPin, SALIDA); pinMode (bluePin, SALIDA); for (int thisIndexR = 0; thisIndexR <numIndexR; thisIndexR ++) {// establece la matriz en 0 indexR [thisIndexR] = 0; } for (int thisIndexG = 0; thisIndexG = 4500) {// limita los valores del sensor a un máximo utilizable, esto no es el mismo para cada valor de resistencia y también puede diferir un poco de un entorno a otro, es posible que deba modificar esto para sus propias necesidades. total1 = 4500; } si (total2> = 4500) {total2 = 4500; } totalR = totalR - indexR [posIndexR]; // esto aquí crea una matriz que agrega continuamente una salida de sensor y produce el promedio. indexR [posIndexR] = total1; totalR = totalR + indexR [posIndexR]; posIndexR = posIndexR + 1; if (posIndexR> = numIndexR) {posIndexR = 0; } averageR = totalR / numIndexR; // utilizamos el promedio en lugar de los datos sin procesar para suavizar la salida, ralentiza un poco el proceso pero también crea un flujo muy agradable. totalG = totalG - indexG [posIndexG]; indexG [posIndexG] = total2; totalG = totalG + indexG [posIndexG]; posIndexG = posIndexG + 1; if (posIndexG> = numIndexG) {posIndexG = 0; } averageG = totalG / numIndexG; if (averageR> = 2000) {// no queremos que los leds cambien constantemente de valor a menos que haya una entrada de su mano, por lo que esto asegura que no se tengan en cuenta todas las lecturas ambientales más bajas. colorR = mapa (promedioR, 1000, 4500, 255, 0); analogWrite (redPin, colorR); } else if (averageR = 1000) {colorG = map (averageG, 1000, 4500, 255, 0); analogWrite (greenPin, colorG); } else if (averageG <= 1000) {colorG = 255; analogWrite (greenPin, colorG); } if (colorR <= 125 && colorG <= 125) {// B funciona un poco diferente porque solo usé 2 sensores, así que mapeé B en ambos sensores colorB = map (colorR, 255, 125, 0, 127.5) + map (colorG, 255, 125, 0, 127,5); analogWrite (bluePin, colorB); } else {colorB = map (colorR, 255, 125, 127.5, 0) + map (colorG, 255, 125, 127.5, 0); si (colorB> = 255) {colorB = 255; } si (colorB <= 0) {colorB = 0; } analogWrite (bluePin, colorB); } Serial.print (millis () - inicio); // esto es con fines de depuración Serial.print ("\ t"); Serial.print (colorR); Serial.print ("\ t"); Serial.print (colorG); Serial.print ("\ t"); Serial.println (colorB); retraso (1); }

Lo que hace este código es extraer los datos sin procesar del sensor (estos datos siempre serán ligeramente erráticos debido a todos los diferentes factores que afectan al sensor) y coloca los datos sin procesar continuamente en una matriz, cuando la matriz alcanza su valor máximo (en mi caso 10) purga el último valor y agrega uno nuevo. Cada vez que se agrega un valor, calcula el valor promedio y lo coloca en una nueva variable. Esta variable promedio se usa para mapear un valor a un valor de 0 a 255, este es el valor que escribimos en los pines RGB para aumentar el brillo de cada canal (los canales son R G y B).

Ahora, si carga su código en el arduino y abre el monitor en serie, debería ver que los valores RGB son más bajos cuando pase la mano sobre cada sensor y el color de la luz del LED también debería cambiar.

Paso 4: Ahora para el caso:

Ahora para el caso
Ahora para el caso
Ahora para el caso
Ahora para el caso
Ahora para el caso
Ahora para el caso

El caso: presenté el caso utilizando herramientas disponibles a través de mi universidad, por lo que este flujo de trabajo no es aplicable para todos. Sin embargo, no tiene nada de especial, necesita un orificio en un lado para que pase el puerto USB, pero aparte de eso, es solo una caja abierta con la parte superior.

Las dimensiones son las siguientes:

15 x 15 CM para la tapa transparente

y

15 x 8 CM para la base de madera (el grosor de la madera era de 1,8 CM para mí).

Utilicé una sierra de mesa para cortar una placa de MDF en las dimensiones correctas que necesitaba (que son 4 paneles de 15 x 8 CM y 1 panel de tierra de 15 x 15 CM), después de lo cual corté las esquinas en un ángulo de 45 grados. Todas las piezas las pegué con pegamento para madera y abrazaderas (dejé secar al menos 30 minutos), utilicé el mismo procedimiento para el plexiglás pero con una hoja de sierra especial.

1 de los lados de madera debe tener un agujero en el centro a la altura del conector USB arduino para permitir que el arduino se conecte.

Terminé la base de con chapa. Lo corté en trozos un poco más grandes que la superficie de cada lado.

Esto lo pegué, luego lo sujeté 30 minutos por cada lado (mejor hacerlo individualmente para que te asegures de que no se deslice y después de que se seque corté lo que sobresalió.

La tapa la pegué con un pegamento específico para Acryl llamado Acryfix.

Tenga en cuenta que si usa plexiglás acrílico, el pegamento disuelve un poco el plexiglás, así que sea lo más preciso y rápido posible (se seca en un par de minutos, pero se expone al aire en segundos).

Para rematar la tapa, esmeré el cubo con un chorro de arena, pero también puedes usar papel de lija fino, solo se necesita mucho más tiempo para que se vea uniforme. Sin embargo, tenga en cuenta que si usa papel de lija, debe ser de grano fino y también pegar las partes después del procedimiento de glaseado (para que no lo rompa accidentalmente al aplicar mucha presión)

Para asegurarme de que la tapa no se deslice demasiado, pegué un par de pequeñas barras de madera en los bordes del cubo de madera.

Paso 5: El resultado final debería tener un aspecto similar a esto:

El resultado final debería ser similar a esto
El resultado final debería ser similar a esto

Paso 6: ¡Soldar

¡Soldadura!
¡Soldadura!
¡Soldadura!
¡Soldadura!

Si tiene una placa de circuito, puede comenzar a soldar todas las piezas juntas usando la misma configuración que tiene su placa de pruebas.

Mi placa de circuito tiene tiras de cobre continuas para facilitar su uso.

Para cada sensor, corté un pequeño cuadrado para soldar las resistencias y los cables.

Los cables de envío (los cables que van del pin 4 a cada sensor) se sueldan en secuencia a un cuadrado separado, con 1 cable que va al pin 4.

Mantuve un rectángulo largo para hacer una tira de led improvisada (mídela para que quepa dentro de la tapa pero en los bordes de la base). Puede soldar los leds en secuencia uno después del otro (tenga en cuenta que en la imagen solda accidentalmente los leds y las resistencias en el lado equivocado de la placa de circuito, las tiras de cobre siempre deben estar en la parte inferior).

Cuando haya terminado de soldar las piezas individuales, colóquelas en la carcasa. No soldé mis cables individuales para poder cambiarlos fácilmente si fuera necesario.

Es hora de colocar todo en la base: este es prácticamente el paso más fácil, el arduino debe colocarse primero con el puerto USB a través del orificio en la parte posterior de la carcasa. Ahora agregue los sensores, asegúrese de que la lámina del sensor se ajuste a la madera en ambos lados, con la lámina de tierra recta contra ella. Cuando todo encaje bien, enchufa los leds RGB en los pines correctos (9, 10, 11) y deja que se apoye en los bordes de la base.

Paso 7: ¡Terminamos

Si ha cumplido con todo esto, ahora debería tener una luz de trabajo con mezcla de color táctil capacitiva. ¡Divertirse!

Recomendado: