Proyecto Prototipo de Lampara con IA - Utilizando plataforma Arduino
Lámpara AI - ¡Cómo usar AI en Arduino!
¡Leíste bien! Todos los sofisticados modelos de IA de los que has oído hablar: LLM como ChatGPT, generadores de códigos, software para completar historias, generadores de música e incluso modelos que predicen el cáncer. En el fondo, todas son sólo fórmulas matemáticas. Sin embargo, son muy complejos. Si los escribe, se necesitarían cientos o incluso miles de páginas para completar la escritura. Pero no todos los modelos de IA tienen por qué ser complejos. Algunos pueden ser simples. Como el que voy a mostrar cómo construí.
En este Instructable, le explicaré cómo construí esta lámpara inteligente con IA que se ajusta automáticamente al brillo circundante después de conocer los niveles de brillo específicos con los que se siente cómodo. ¡Todo impulsado por un modelo básico de IA que se ejecuta directamente en un Arduino! ¿Suena genial? ¡Entonces comencemos!
Suministros
Arduino UNO https://a.co/d/gfj3Saa
Cables de puente macho-hembra https://a.co/d/1HzvSw1
Potenciómetro https://a.co/d/gRAjS5N
CONDUJO
Resistencia de 10K https://a.co/d/13zsMSa
LDR (Fotorresistor) https://a.co/d/709Vs7p
Fuente de alimentación de 5v https://a.co/d/iFgz31o
Adhesivo
Paso 1: entender la IA
Mi hermano, que trabaja en el ámbito de la IA, me ayudó a comprender mucho sobre los conceptos básicos de la IA y el aprendizaje automático. Me di cuenta de que hacer un proyecto físico me ayudó a comprender la IA de una manera muy intuitiva. Por lo tanto, mi objetivo es hacer de este Instructable también una guía para que los principiantes comprendan el funcionamiento y los conceptos básicos de la IA.
En mi opinión, Inteligencia Artificial es un término bastante elegante. El objetivo aquí es generar una acción o resultado basado en algunas observaciones o entradas.
Por ejemplo, mientras usa ChatGPT, su mensaje es la entrada y la respuesta de GPT es la salida. De manera similar, en, digamos, los sistemas de predicción del cáncer, la imagen de la cámara del tumor (por ejemplo) es la entrada y la etapa del cáncer predicha es la salida.
Entonces, existe este “cerebro” o IA que recibe la información y escupe la salida. Y este cerebro, damas y caballeros, es la fórmula matemática de la que hablaba. Funciona como cualquier fórmula que hayas leído en la escuela. Supongamos que tiene un modelo de IA muy simple que ingresa dos números y genera un número diferente. Cuando ingresas 1 y 2, obtienes 3 como salida. Cuando ingresas 3 y 4, obtienes 7 como salida. Entonces, para un conjunto de entradas de a y b, ¿qué está haciendo el “cerebro”? El cerebro es solo la fórmula a+b. ¿Ver? Eso es lo que es la IA. Una fórmula.
Cuando decimos que estamos "entrenando" un modelo de IA, esencialmente estamos tratando de encontrar la fórmula secreta que funcione para un conjunto de entradas y salidas.
Ahora que comprende la IA, ¡construyamos y entrenemos una!
Paso 2: construye la lámpara
La lámpara se construyó con unos trozos de papel de cartón. Se inspiró en el diseño de una lámpara de IKEA.
Reúna los materiales necesarios: cartulina blanca y negra, una tapa vieja para la parte superior, tijeras y pegamento. Luego, use la plantilla proporcionada en este paso para hacer la forma de la lámpara en los papeles.
Utilice la plantilla para recortar las piezas necesarias del papel de la tarjeta. Recomiendo usar papel blanco para el soporte y negro para la pantalla, queda muy bien.
Comience ensamblando la pantalla con adhesivo.
Archivos adjuntos
Paso 3: conecte el LED y ensamble
Utilice una pequeña luz LED blanca y suelde cables. No utilice un LED de alta potencia ya que es posible que Arduino no pueda alimentarlo.
Utilice una pequeña cantidad de adhesivo blanco o cinta de doble cara para fijar temporalmente el LED en su lugar.
Pase los cables a través de la pantalla de la lámpara. Es posible que tengas que crear una pequeña abertura en la parte posterior de la pantalla, que es básicamente la tapa vieja.
Una vez que el LED esté en su posición, es hora de fijar la pantalla a la base. Aplique una cantidad generosa de adhesivo fuerte al borde de la base. Alinee con cuidado la pantalla con la base, asegurándose de que esté centrada y recta. Una vez alineada, presione suavemente la pantalla sobre la base, aplicando una presión uniforme para garantizar una unión segura. Deje que el adhesivo se seque por completo. Esto puede llevar algún tiempo, así que tenga paciencia y evite tocar la lámpara.
Paso 4: Prepárese para recopilar datos
Cada modelo de IA debe entrenarse en un conjunto de datos. Esto es lo que diferencia un modelo de IA de la codificación estándar. El modelo aprende del conjunto de datos e intenta encontrar una relación entre las entradas y la salida. De esta forma, el comportamiento del modelo se adapta a las características del conjunto de datos. ¿Porque es esto importante? Al hacer esto, está sintonizando el modelo para ajustar el brillo de la lámpara a su caso específico. Los ajustes de brillo se adaptarán perfectamente a sus preferencias. ¿Confundido? Síguenos y todo quedará claro.
Primero, crearemos el conjunto de datos recopilando datos sobre el brillo circundante y el brillo del LED. El propio Arduino se utilizará para recopilar datos.
Primero, construya el circuito como se muestra en el diagrama. Este circuito es un sistema de recolección de datos. El pulsador funciona como una instantánea. Cada vez que lo presiona, registra las lecturas del LDR y la salida de brillo del LED en el monitor serie.
Paso 5: comenzar la recopilación de datos
Sube el código adjunto a tu placa Arduino.
Esto es lo que haremos:
- Configura la lámpara con el Arduino. Asegúrese de que el LDR no esté frente a la luz del LED. No queremos que lea la luz del LED cuando se enciende la lámpara. Un buen lugar para el LDR es la parte posterior de la base de la lámpara.
- Mueva la lámpara a diferentes lugares de su casa, exponiéndola a diferentes niveles de brillo del entorno.
- En cada lugar adecuado, ajuste el brillo del LED a su nivel preferido usando el potenciómetro.
- Presione el botón para registrar la lectura LDR y el brillo del LED en el monitor serie.
- Recopile de 20 a 50 puntos de datos (o 100 si tiene paciencia) repitiendo los pasos 2 a 4 a lo largo del día.
Al hacer esto en diferentes lugares y momentos del día, estará registrando los valores de brillo de la lámpara preferidos para diferentes condiciones.
Usaremos estos datos para entrenar un modelo de IA. Cuanto mayor sea el conjunto de datos, mejor será la precisión.
Archivos adjuntos
Paso 6: Exportar los datos a CSV
Ahora necesitamos guardar los datos registrados para poder entrenar nuestro modelo en ellos. Copie los datos recopilados del monitor serie y péguelos en un bloc de notas (documento TXT)
Ahora, cambie el nombre del documento para reemplazar la extensión .txt con .csv. Windows puede mostrar una advertencia, pero puedes presionar "Sí"
Ahora, cuando hagas clic en el archivo, debería abrirse en Excel. Encontrará dos columnas de números: la primera columna son las lecturas LDR y la segunda los valores de brillo del LED. Recomiendo agregar los nombres de las columnas en la primera fila para facilitar la programación en Python en el siguiente paso.
Paso 7: entrena tu modelo de IA
Esta es la parte divertida (y un poco técnica). Ahora crearemos un modelo de IA. Recomiendo usar Python. Si bien se puede usar cualquier otro lenguaje y escribir un programa desde cero para entrenar un modelo de regresión, Python tiene algunas bibliotecas interesantes que facilitarán mucho nuestro trabajo. No te preocupes si eres nuevo en esto, puedes usar mi código adjunto en este paso y eventualmente aprender a codificar en Python en el proceso :)
Como ya mencioné (tantas veces que quizás ya te sientas frustrado), la IA es básicamente una fórmula matemática. Estamos a punto de entrenar una IA que generará la mejor fórmula para producir los valores de brillo LED correctos según las lecturas del LDR. El modelo aprenderá esto del conjunto de datos que recopilamos.
Regresión lineal
Usaremos una biblioteca de Python llamada scikit-learn (o sklearn). Esta biblioteca ya contiene el código para entrenar un modelo de regresión lineal, por lo que todo lo que tenemos que hacer es importarlo y enviarle nuestros datos.
Pero ¿qué es un modelo de regresión lineal? Es una versión más simple de las redes neuronales (otro tipo sofisticado de modelo de IA). Este método de aprendizaje automático implica ajustar una línea a través de nuestros datos para crear una interpolación que pueda usarse para predecir datos futuros.
¿Demasiados términos técnicos? Bueno, todo lo que necesitas saber para este proyecto es que la regresión lineal generará una ecuación de la forma y = wX+b . Aquí, y es la predicción (brillo del LED), X es la entrada (lectura de LDR), w y b son los parámetros que se obtendrán al entrenar el modelo.
Crear y entrenar el modelo de IA
Asegúrese de instalar sklearn y pandas ejecutando pip install scikit-learn y pip install pandas respectivamente en el símbolo del sistema de Windows (CMD). Pandas nos ayudará a leer el archivo CSV y scikit-learn creará nuestro modelo.
Una vez hecho esto, reemplace el nombre del archivo CSV con el suyo. Luego, cuando ejecuta el código, sklearn crea un modelo de regresión lineal (nuestro cerebro de IA) que intentará relacionar las entradas (LDR) con las salidas (brillo del LED).
La regresión lineal básicamente ajusta una línea con la ecuación y = mX + c a través del conjunto de datos. En nuestro caso, y es la predicción, X es la entrada, m es la pendiente de la línea (peso) y c es la intersección y (sesgo). Entonces, nuestra ecuación se convierte en predicción = w*entrada + b.
Una vez entrenado el modelo, podemos obtener los valores de w y b para usar en nuestro código Arduino. Como puede ver en mi código anterior, obtuve w = 0,2487 y b = 149,9255. ¡No copie mis valores y úselos en los suyos! Estos números se adaptan al brillo de mi entorno y a mis niveles de brillo LED preferibles. Las cosas pueden ser diferentes para ti.
Observe cómo generé una predicción para una entrada LDR de 83, obteniendo un brillo LED previsto de 170,57. Está bastante cerca del brillo LED real de 171 del conjunto de datos (arriba).
Archivos adjuntos
Paso 8: agregue la fórmula AI al Arduino
Y finalmente, utilizamos los parámetros del modelo aprendido en Arduino para que pueda comenzar a ajustar automáticamente el brillo de la lámpara.
Creamos un nuevo código Arduino donde el brillo previsto se obtiene de la misma ecuación: predicción = w*entrada LDR + b.
Hemos obtenido w y b después de entrenar el modelo en el paso anterior. Al insertar estos valores en el código Arduino, podemos hacer que comience a hacer lo suyo.
Ahora puedes quitar el pulsador y el potenciómetro, ya que solo estaban allí para recopilar datos. Ahora tu lámpara ajustará el brillo sin que tengas que manipular un potenciómetro. ¡Porque ha aprendido tus preferencias! Eso es IA, amigo mío :)
Archivos adjuntos
Paso 9: Montaje final
Finalmente, esconde todos los componentes electrónicos dentro de la base de la lámpara. ¡Ahora tu lámpara ajustará el brillo según tus necesidades! Ni siquiera tienes que tocarlo. ¡Solo enciéndelo y olvídalo!
Ahora te preguntarás: ¿era necesaria la IA para esto? Hay cientos de tutoriales sobre cómo utilizar un LDR para ajustar automáticamente el brillo de una lámpara. Bueno, la respuesta es si o no. No necesitas IA para el brillo automático. Pero el brillo automático genérico sólo ajustará el brillo de una forma predefinida. Es posible que tengas que juguetear con un potenciómetro hasta obtener el brillo deseado para diferentes situaciones. Pero con este método, estás entrenando a la lámpara para que comprenda tus necesidades. Cuánto brillo necesitas en diferentes situaciones.
Pero, sobre todo, este proyecto es una guía para empezar a utilizar la IA y explicar qué es realmente la IA. Puedes hacer todo tipo de cosas con esto. Puedes tener un sistema de predicción del tiempo con sensores de temperatura, humedad, presión y calidad del aire (y tal vez también datos de Internet) y utilizar los datos de los sensores para predecir el tiempo y avisarte si estás a punto de ponerte la ropa. en la lavadora. O tal vez puedas tener un acelerómetro y un giroscopio conectados a un guante y entrenarlo para que aprenda el lenguaje de señas y lo traduzca. Todo esto se puede hacer con un microcontrolador como Arduino o esp8266. Simplemente entrene el modelo para obtener los pesos y sesgos de una computadora e insértelos en el microcontrolador.
Espero que este proyecto te haya interesado en la IA y te haya animado a aprender más sobre ella para crear proyectos más interesantes.
Comentarios
Publicar un comentario