Girasol Arduino: Construye un Girasol Electrónico que Sigue al Sol
Componentes y materiales
- 1x Arduino UNO
- 1x Sensor de luz RobotGeek (o 4x LDRs genéricos)
- 1x Potenciómetro rotativo (genérico)
- 1x Shield Base Shield V2 (Seeed) o similar para conexión fácil
- Cartón (2 piezas)
- Plancha de porexpan / foam (1 pieza)
- Palito de madera (1)
- Cables 3 pines tipo Crowtail/Grove (6 uds)
- 2x Potenciómetros lineales Crowtail/Grove
- 4x Sensores de luz Crowtail/Grove
- 1x Kit Pan-Tilt Crowtail/Grove (con 2 servos 9G)
- 1x Crowduino con ATmega328 v1.1 (o Arduino UNO compatible)
- 1x Crowtail Base Shield para Arduino
Aplicaciones y servicios online
- Arduino IDE
Sobre el proyecto
Un maker siempre está atento a cosas nuevas y curiosas. Un día vi un video donde un girasol se movía siguiendo al sol. Tuve una revelación: ¿por qué no hacer un dispositivo electrónico que imite ese biomaecanismo?
En los días siguientes llevé a cabo mi proyecto de seguidor solar. Seleccioné la placa Crowtail como microcontrolador y cogí componentes de nuestro almacén. Los monté y lo probé con el LED del móvil. ¡Funcionó perfecto!
Me emocioné y subí el video demo a redes sociales. Me sorprendió que a mucha gente le gustara y lo compartiera, y algunos me pidieron tutorial. Así que rehice el proyecto y hice este tutorial específico para que más gente pueda hacerlo. ¡Allá vamos!
Paso 1: Preparación
Materiales necesarios (ver lista arriba).
Paso 2: Hacer la "cabeza" del dispositivo
Corta dos piezas de cartón como en las fotos (mitades de una cruz). Ensámblalas en forma de cruz. Pega el palito en el centro de la cruz: será la "cabeza" que siempre apunte al sol, y da estabilidad y estética.
Paso 3: Instalar 4 sensores de luz
Perfora 4 agujeros adecuados en el porexpan para los 4 sensores, y un agujero central para pasar el palito. Numera los sensores para distinguir su ubicación.
Paso 4: Conectar sensores con cables
Fija el palito al porexpan con silicona caliente y enchufa los cables a los sensores.
Paso 5: Fijar el palito al Pan-Tilt
Fija el palito al mecanismo Pan-Tilt. La base del sensor debe coincidir con la foto: sensores "1" y "2" en la parte inferior. El Pan-Tilt es un dispositivo montado con servos 9G que controla rotación vertical y horizontal 180°.
Por último, fija el panel solar (decorativo, sin función de alimentación) al porexpan.
Paso 6: Subir el código
Saca el Crowduino y el Crowtail Base Shield, apílalos. Antes de conectar cables al shield, sube el código al Crowduino (necesitas cable micro USB). Conecta Crowduino al PC y abre Arduino IDE.
Paso 7: Conectar 4 sensores al Shield
Conecta los cables de los sensores al shield, correspondiendo números uno a uno:
- Cable "1" → A0
- Cable "2" → A1
- Cable "4" → A2
- Cable "3" → A3
Paso 8: Conectar potenciómetros al Shield
Conecta los dos potenciómetros a A4 y A5 del shield. No hay diferencia entre ellos, pero:
- El conectado a A4 controla el retardo de tiempo de reacción.
- El conectado a A5 controla la velocidad de giro de los servos.
Paso 9: Conectar Pan-Tilt al Shield
- Servo inferior (movimiento horizontal) → D9
- Servo superior (movimiento vertical) → D10
Paso 10: Alimentación
El Crowduino es la placa controladora principal. Puedes alimentarlo con power bank USB o adaptador DC, según quieras dispositivo móvil o fijo.
Paso 11: ¡A probar!
Cierra la caja. Parece que no puede esperar a perseguir la luz. Tranquilo, probémoslo.
Lo llevé a una habitación oscura, encendí la linterna del móvil, y ¡WOW! Mira qué mono.
Parece difícil pero es bastante simple, ¡así que a hacerlo! Y puedes ayudar a que se vea más potente y chulo.
Código
CÓDIGO PARA ARDUINO GIRASOL
#include <Servo.h>
Servo horizontal; // servo horizontal
int servoh = 90; // posición inicial horizontal
Servo vertical; // servo vertical
int servov = 90; // posición inicial vertical
// Pines LDR (entradas analógicas)
int ldrrd = 0; // abajo derecha
int ldrld = 1; // abajo izquierda
int ldrlt = 2; // arriba izquierda
int ldrrt = 3; // arriba derecha
void setup() {
Serial.begin(9600);
horizontal.attach(9);
vertical.attach(10);
}
void loop() {
int lt = analogRead(ldrlt); // arriba izq
int rt = analogRead(ldrrt); // arriba der
int ld = analogRead(ldrld); // abajo izq
int rd = analogRead(ldrrd); // abajo der
int dtime = analogRead(4) / 20; // leer potenciómetro A4 (retardo)
int tol = analogRead(5) / 4; // leer potenciómetro A5 (tolerancia/velocidad)
int avt = (lt + rt) / 2; // media arriba
int avd = (ld + rd) / 2; // media abajo
int avl = (lt + ld) / 2; // media izquierda
int avr = (rt + rd) / 2; // media derecha
int dvert = avt - avd; // diferencia vertical
int dhoriz = avl - avr; // diferencia horizontal
// Control vertical
if (-1 * tol > dvert || dvert > tol) {
if (avt > avd) {
servov = ++servov;
if (servov > 180) servov = 180;
} else if (avt < avd) {
servov = --servov;
if (servov < 0) servov = 0;
}
vertical.write(servov);
}
// Control horizontal
if (-1 * tol > dhoriz || dhoriz > tol) {
if (avl > avr) {
servoh = --servoh;
if (servoh < 0) servoh = 0;
} else if (avl < avr) {
servoh = ++servoh;
if (servoh > 180) servoh = 180;
}
horizontal.write(servoh);
}
delay(dtime);
}
Piezas personalizadas
Foto del montaje final (ver imagen adjunta en proyecto original).
Esquemáticos
Esquema de conexiones disponible en la documentación del proyecto.
Proceso de manufactura
- Crea un Impresionante Sistema Ambilight para Monitor con Arduino
- Construya el clásico juego Pong en Arduino UNO con pantalla OLED: Tutorial paso a paso
- Detector de frecuencia de audio con Arduino – Mide los picos de sonido más intensos
- Construye tu Propio Tamagotchi con Arduino: Mascota Digital DIY
- Camaleón Electrónico: Arduino Nano, LED RGB y Sensor de Color
- Controlador Inalámbrico Inteligente de Interruptores: Manipulador Remoto Basado en Arduino
- Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
- Pistola de Agua Inteligente Activada por Movimiento con Arduino Nano
- Construye un Temporizador Regresivo Fiable con Arduino y Pantalla de 7 Segmentos SparkFun
- Sistema electrónico de check-in inteligente para hackerspaces
- Construye tu Propio Coche RC Porsche con Arduino: Guía Paso a Paso