Flexo RGB robotizado

Flexo robotizado mediante 2 servomotores dirigidos por un joystick, con sensor de luminosidad y rueda para el ajuste de tonalidad de color.

Autores

Elisa Alcalá Guerrero

Javier Maldonado Nido

Alex Murciano Pérez

Información sobre el proyecto

En este proyecto hemos realizado una lámpara flexo controlada por Arduino. La idea es realizar una lámpara que ajuste su color según el usuario elija con un sensor RGB. Consta de un brazo flexible que permite ajustar la luz a la altura y ángulo adecuado según las necesidades del usuario.

La lámpara está construida con una combinación de piezas de madera de balsa y componentes electrónicos que permiten mover la lámpara mediante un joystick. Además, se utiliza una placa Arduino para controlar los LED y el movimiento del joystick.

El programa que hemos desarrollado contiene todas las funciones para la calibración de la luminosidad en relación con la luz recibida y para el movimiento rotativo del flexo; además del botón que permite encender y apagar la lámpara.

La construcción de la lámpara la hemos realizado empleando madera de balsa, servos, silicona, tuercas para realizar contrapeso, un cuenco de aluminio, cartulina negra, un joystick y una caja.

Pasos

El desarrollo de este proyecto final se puede realizar de distintas maneras, adaptándose tanto a la idea como a los miembros del grupo. En nuestro caso lo hemos desarrollado de la siguiente manera:

  • Compra de los materiales necesarios para ir modificando de la manera más rápida el código según lo vamos desarrollando, y de alguna manera, ir materializando el proyecto en nuestras cabezas.
  • Desarrollo y escritura del código en el entorno de programación.
  • A la par del desarrollo del código modelamos lo que sería el circuito en la placa de Arduino, conectando componentes y comprobando su funcionamiento.
  • Montaje de la estructura, una vez comprobado el funcionamiento del proyecto, creamos la estructura con los materiales adquiridos ajustando cables y fijando todos los componentes para que queden fijos.

Costes de los materiales

Caja, madera de balsa y cuenco de aluminio – 10,10 €

Conmutador y joystick – 5,90 €

Servomotores – 6,25 €

Sensor RGB – 8 €

Tuercas y cinta de doble cara – 10 €

Desarrollo y montaje

El diseño del flexo cuenta con dos servomotores que se encargaran de ajustar en altura y ángulo la luz para adaptarse a las necesidades del usuario. Para construir el brazo flexible, hemos utilizado madera de balsa, un material ligero y fácil de trabajar. La silicona ha servido para fijar los servos a la madera.

Para la parte superior del flexo hemos utilizado un cuenco de aluminio a modo de foco para que refleje la luz en la dirección que nos interesa con más intensidad y no se propague en otras direcciones. Además, la hemos cubierto con cartulina negra a modo de embellecedor. Para simular una bombilla, hemos unido 2 leds RGB con estaño y cable, y posteriormente los hemos pegado al foco y al brazo del flexo.

Hemos realizado el montaje del circuito dentro de la caja para que no moleste a la hora de interactuar con la lámpara. La base la hemos hecho con varillas de madera unidas con silicona y permite colocar y retirar el brazo del flexo para un transporte y manipulación más sencillo.

En la tapa de la caja están situados el joystick, el interruptor, el sensor LDR y la ruleta de tonalidad. Para su colocación hemos necesitado unir todas las conexiones de los cables con estaño y pegar cada componente a la tapa.

En el interior de la caja está situado el sensor RGB, la placa Arduino y la protoboard. Para la colocación del sensor RGB hemos necesitado hacer una plataforma que dejase la distancia necesaria para que leyese correctamente los colores de la ruleta de tonalidades. Todas las conexiones de los componentes con la protoboard y con Arduino están organizadas por secciones para su mejor manejo.

Problemas y soluciones

Problema: Hemos tenido problemas con la sujeción de los cables a los pines del joystick para que no se moviesen o desconectasen durante el funcionamiento o el desplazamiento de nuestra lámpara.

Solución: Con un soldador de estaño y una bobina de este, hemos ido soldando y uniendo tanto los pines del joystick con los cables conectados a la placa como los 2 LED´s RGB del foco para aportar más luz a la lámpara.

Problema: Numerosos problemas rutinarios a la hora del montaje.

Solución: Hemos tenido muchos pequeños problemas con sus correspondientes pequeñas soluciones, como realizar un contrapeso en el brazo principal de la lámpara ya que estaba muy descompensado el peso y el servo principal no lo aguantaba, por lo que hemos comprado unas tuercas que hemos ajustado en la parte contraria para nivelar los pesos; juntar la ruleta de colores para el sensor RGB con la caja, lo cual hemos realizado con un alambre de estaño.

Problema: Nuestra idea principal era que el brazo vertical de la lámpara acabase en el fondo de la caja, pero al terminar de montar la estructura se nos quedaba la luz a una altura demasiado baja.

Solución: Como solución hemos tenido que armar una estructura debajo de la tapa de la caja para sujetar ahí el cuerpo del flexo.

Problema: Hemos tenido problemas con la sincronización de los tiempos requeridos por el sensor RGB y los servomotores. El sensor RGB necesitaba más tiempo de lectura de lo que esperábamos, por lo que el movimiento de los servos se nos descuadró e iba demasiado lento.

Solución: Como solución nos tuvimos que informar sobre la librería Adafruit para nuestro sensor RGB en específico y configuramos la inicialización del sensor con ‘TCS34725_INTEGRATIONTIME_2_4MS’. Esto hizo que bajase el tiempo que necesitaba el sensor en leer un color, aunque esto supusiese menor precisión en la lectura. Una vez cambiado, los sensores ya no se descuadraban.

Código

Bibliotecas: El código utiliza tres bibliotecas diferentes: «Servo.h», «Wire.h» y «Adafruit_TCS34725.h». La primera es necesaria para controlar los servomotores, la segunda se utiliza para comunicarse con el sensor de color y la tercera proporciona funciones para leer los valores de los componentes rojo, verde, azul y transparente (clear) del sensor de color.

Definición de pines: Se definen constantes para los pines conectados a los LEDs y a los pines analógicos SDA y SCL que se utilizan para comunicarse con el sensor de color. Además, se definen las variables para los pines a los que están conectados los dos servomotores y el sensor de luminosidad.

Inicialización: En la función setup(), se inicializan los pines de entrada y salida, se crea un objeto colorSensor del tipo Adafruit_TCS34725, se inician los objetos Servo y se establece la posición inicial de los servomotores.

Bucle principal: La función loop() contiene un bucle infinito que se ejecuta continuamente. En primer lugar, se leen los valores del joystick y se mapean a un rango de 0 a 180 para los ángulos de los servomotores. A continuación, se comprueba si el valor del joystick está fuera de un rango deseado, y si lo está, se mueve el servo correspondiente a una nueva posición. También se lee el valor del sensor de color y se asignan valores a las variables que representan los colores rojo, verde y azul, dependiendo de la relación entre la cantidad de luz en cada uno de estos componentes. Por último, se lee el valor del sensor de luminosidad y se asigna un brillo a los valores de los colores RGB. Luego se escribe en los pines de los LEDs el valor correspondiente para cada uno de los componentes de color.

Video

Reparto de tareas

Hemos realizado un reparto de tareas lo más equitativo posible ya que hemos trabajado todo lo posible en salas de trabajo comunes de la biblioteca. Alex y Elisa han hecho más hincapié en la parte de la circuitería y código del proyecto, y Javi se ha encargado más del montaje de la estructura del flexo, de la presentación y de la memoria. Aunque esta ha sido la repartición de trabajo a grandes rasgos, hemos intentado aportar todos por igual en la medida de lo posible.

Conclusiones

Este proyecto ha sido una interesante y divertida manera de poner en práctica conocimientos de programación y electrónica para la creación de una lámpara flexo controlada por Arduino. A lo largo del proceso se han enfrentado distintos problemas y se han encontrado soluciones para cada uno de ellos. La construcción de la lámpara se ha realizado utilizando madera, servomotores, silicona, tuercas, un cuenco de aluminio, cartulina negra, un joystick, sensor RGB, sensor LDR, interruptor, resistencias, leds RGB y una caja. El resultado final es una lámpara ajustable en altura y ángulo, con un sensor RGB y un sensor LDR que permite al usuario seleccionar el color de luz deseado, con un diseño práctico y funcional. Este proyecto ha permitido a los miembros del equipo aprender nuevas habilidades y técnicas, y ha sido una gran oportunidad para poner en práctica la creatividad y el ingenio en la resolución de problemas.

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *