Sol artificial. Iluminando tu casa con un heliostato

HeliostatoHace tiempo que mi padre me lleva diciendo que le haga algún «inventillo» para poder poner en su azotea unos espejos móviles que se alineen al sol y, en invierno, pueda tener luz solar en el patio o en el salón de su casa. Así rápidamente se me antojaba algo complicado y como además no tenía demasiado tiempo he ido dejando este tema hasta que hace poco decidí ponerme a investigar un poco a ver qué podíamos hacer.

Después de googlear un poco, la verdad es que hay información al respecto por internet, y además no parece demasiado complicado. Parece que mi padre no es el único «loco» al que se le ha ocurrido poner unos espejos para tener luz solar en habitaciones de la casa que directamente nunca les da el sol. En España la verdad es que no he encontrado mucho, pero en Estados Unidos la verdad es que parece una práctica no tan extraña y hay mucha gente que se construye sus propios heliostatos con el fin de aprovechar la luz solar. ¡Veamos si somos capaces de hacer algo parecido!

Seguidor solar (Suntracker) y Heliostatos

Los seguidores solares o suntrackers son aparatos encargados de orientar automáticamente una serie de espejos al sol, de tal manera que durante las horas de sol, los rayos solares siempre incidan directamente sobre los espejos. Una vez que conseguimos que el aparato esté continuamente alineado al sol y la luz incida sobre éste, sólo debemos aplicar una corrección sobre los ángulos de orientación del espejo (horizontal y vertical) para hacer que la luz del sol se proyecte sobre un punto determinado. Si este cálculo lo hacemos continuamente conseguiremos proyectar la luz del sol siempre en el mismo punto, da igual la hora del día que sea. Esto es lo que realiza un Heliostato.

Calcular la corrección de los espejos para que la luz que incide sobre el mismo se refleje en un punto determinado es relativamente fácil, pero ¿cómo podemos saber en cada momento la posición del sol? En un principio yo me imaginaba algoritmos mucho más complejos de seguimiento solar (detectores de intensidad de luz y cosas así) pero en realidad es algo más sencillo. Digamos «sencillo» mirándolo desde el punto de vista de la electrónica necesaria, pero realmente el cálculo matemático para obtener estos datos no es nada evidente. Al final, los algoritmos de suntracking (cálculo de la posición solar) lo que hacen es, conociendo la trayectoria del sol en función de la fecha, y conociendo la posición del espejo (latitud y longitud) calculan la orientación del espejo. Al final estos algoritmos suelen tener como variables de entrada lo siguiente: longitud/latitud del espejo, longitud/latitud del punto dónde queremos reflejar y fecha/hora actual. Con esto obtienen como salida el azimuth (ángulo con respecto al Norte real) y la elevación (ángulo con respecto a la horizontal) que son los ángulos que usaremos para orientar el espejo y proyectar la luz en el punto dado. ¿Fácil no?

Algoritmos para hacer un seguidor solar y/o heliostato

Evidentemente la teoría parece fácil, pero los cálculos para obtener el azimuth y la elevación no son nada evidentes. Hay algoritmos de todo tipo para calcular esto con más o menos precisión. Algunos se basan en arrays que almacenan la trayectoria del sol precalculada, otros la calculan en tiempo real. Incluso algunos necesitan como variables de entrada la altitud, presión, humedad u otros factores para calcular la posición del sol con muchísima más exactitud.

En la tabla siguiente recopilo algunos ejemplos de código que he encontrado por internet para calcular el azimuth y la elevación y poder orientar el heliostato al punto que queramos.

Enlace al código Descripción
SPA.h
SPA.c
Algoritmo para el cálculo de la posición del sol. Muy preciso (alrededor de +/- 0.0003 grados). Creado por NREL (National Renewable Energy Laboratory)
PSA.java Otro algoritmo para el seguimiento solar pero en Java
sun_tracking.c Algoritmo muy sencillito para calcular la posición del sol y la corrección del espejo para proyectar la luz en un punto dado
sunalignqbasic El mismo algoritmo anterior pero en QBASIC (¡si! ¡qbasic!). No vale como ejemplo de última tecnología en lenguajes de programación, pero muy útil para entender el algoritmo. 😉

¿Lo probamos?

Que mejor manera de ver si todo esto funciona que haciendo un pequeño piloto con el Lego Mindstorms. Yo al mío le tengo cambiado el firmware y uso leJOS. Así lo puedo programar en Java que siempre es más fácil y versátil. Para probarlo he cogido un espejo pequeño y he hecho una máquina muy simple que es capaz de de orientar el mismo en 2 ejes, que es lo que necesitamos. En el video siguiente se muestra la maquinita con un simple programa de ejemplo para probar el movimiento.

Como veis, la «mecánica» no funciona muy bien del todo, al cambiar el azimuth se bloquea un poco; habría que mejorarlo porque rozan algunas piezas, pero para probarlo creo que es suficiente. Una vez visto que la mecánica más o menos funciona lo que he hecho ha sido adaptar el programa «sun_tracking.c» a java y lo he cargado en el «ladrillo» del Mindstorms. Para ponerlo en marcha es necesario indicar en el código la fecha y la latitud/longitud del aparato y del objetivo dónde queremos reflejar la luz. Después sólo hace falta posicionar la máquina orientada correctamente (al Norte real) y esperar que funcione… Mirad el resultado en el siguiente video. ¡parece que funciona!

Si os fijáis en el video, hay un punto de luz reflejada en la pared, que es la luz que refleja el heliostato. El video dura apenas unos minutos, pero la máquina la dejé funcionando varias horas y mantenía más o menos el reflejo en el mismo sitio, adaptándose a la posición del sol. Digo más o menos porque tenía una desviación de algunos centímetros por hora. Hay que tener en cuenta, que la mecánica del Lego es muy poco precisa y además, el «ladrillo» no tiene reloj en tiempo real, luego no sabe exactamente la hora real en cada momento, y lo tuve que simular en el código haciendo cálculos «un poco inexactos». De cualquier manera, este piloto me valió para comprobar la viabilidad de hacer un heliostato, que era su objetivo, antes de lanzarme a hacer uno de verdad a tamaño real.

Para el que quiera hacer esta prueba en su Mindstorms con leJOS, aquí os dejo un enlace al código.

Más información interesante

Durante la búsqueda de información encontré una página en dónde vendían «girasoles» para ponerlos en tu patio y dirigir el sol a dónde tu quisieras. Y además por un precio bastante interesante, menos de 200€. Lo podéis ver en la página http://wikoda.com/.
Pero como siempre, nos gusta hacernos las cosas nosotros con nuestras manitas y adaptándolo a nuestras necesidades, así que seguí buscando información y encontré otra página realmente interesante. Es http://www.cerebralmeltdown.com. En esta página detallan como hacerse un heliostato casero controlado por un Arduino (¡bien!), de hecho el autor de la página se ha hecho unos shields de Arduino para facilitar la construcción de la electrónica. Muy interesante echarle un vistazo a su página y a los contenidos del foro.

¿Y ahora qué?

Pero… ¿podremos tener sol artificial en el salón o no? ¡Yo creo que sí! Voy a empaparme bien de información y ya mismo empiezo a pedir la electrónica necesaria por internet y mi padre se pondrá a preparar la mecánica. ¡Estoy deseando ver ya ese espejo gigante alumbrando el salón!

9 comentarios sobre “Sol artificial. Iluminando tu casa con un heliostato”

  1. Veo interesante el proyecto. Y tus videos muestran lo que yo quiero construir. Podrías publicar el codigo de arduino adaptado a tu caso particular? Estoy empapandome de información en la web de cerebralmeltdown pero hay conceptos que todavía no pillo. Además veo que él tiene muchas funciones que en mi caso y, creo que en el tuyo, sobran, como el poder manjear más de un espejo, la memorizacíon de varios objetivos, etc. Vamos que me gustaría ver un código más sencillo, reducido y «asequible». Además que en arduino Uno entra muy ajustado de tamaño.

    Un saludo; espero que nos des más información con tus avances. José María

    1. Hola Jose María,
      efectivamente el código que se publica en CerebralMeltdown tiene bastantes funcionalidades. Esto lo hace muy versátil, pero es cierto que el código se vuelve un poco complejo y complicado de seguir en caso de error. Yo empecé a reducir el mismo porque había casos en los que me fallaba (había un bug en el caso de que no conectaras el potenciómetro selector de objetivo). Así que al final terminé haciendo una versión muchísimo más reducida que para mi caso es totalmente válida y el código es más fácil de seguir.

      Voy a editar el post y cuelgo el código en breve. Cualquier duda me preguntas sin problemas.

      Saludos!

    1. ¡Hola! ¿Que necesitas San? ¿En que puedo ayudarte? Si quieres montarte un heliostato para iluminar (yo tengo montado uno para eso) puedes seguir las instrucciones que pongo en el blog y me preguntas cualquier duda que quieras. Si lo quieres comprar ya hecho hay una página que vende pequeños heliostatos autónomos alimentados por placas solares (http://wikoda.com). No tengo nada que ver con ellos, pero tienen muy buena pinta para su precio (pero claro, no es tan entretenido como montar tu uno por ti mismo, jejej)

      Saludos!

        1. Hola Sandra!

          La verdad es que a nivel comercial y para el hogar no conozco dónde se podría adquirir un Heliostato similar a este. ¿No te atreves a construir uno? 🙂

  2. Hola Ugo. Me parece genial tu invento, me gustaria montarlo, pero en programacion estoy muy verde, Tengo el kit basico de arduino con motores 28BYJ-48 y el rtc clock ds1307; y no tengo ni idea en que pines los debo conectar, y si me hace falta algo más.
    Un Saludo y muchas gracias.

  3. Hola Carlos! Lo primero es que te hagas al funcionamiento del Arduino y hagas algunas pruebas moviendo motores y demás para que vayas aprendiendo como funciona el mismo. Una vez tengas un poquito de práctica con el arduino te puedes aventurar a montar el Helio. Los motores que comentas no te valdrán, necesitas motores más potentes. En el post del Helio viene una descripción básica de los motores que necesitarás.

    En la web de http://www.cerebralmeltdown.com podrás encontrar el esquema básico de conexión y el programa. Mi montaje está basado en el de dicha página. En el siguiente enlace puedes encontrar mi programa en particular que es una versión mucho más reducida del de dicha página que sólo funciona para 1 Helio y actuadores lineales. http://www.remolinomental.com/?attachment_id=389

    Lo dicho, haz pruebas con el Arduino y cuando tengas práctica haciendo programitas simples y jugando con las entradas y salidas del mismo te podrías lanzar a montar este esquema. Cualquier duda me comentas.

    Saludos,

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.