Inseguitore solare autocostruito a due assi con il Raspberry Pi

Un inseguitore solare è un dispositivo che serve a mantenere i raggi del Sole perpendicolari ad una superfice come quella dei pannelli fotovoltaici, al fine di massimizzare lo sfruttamento dell’energia.

In questo post presento un prototipo di inseguitore solare a due assi ( beccheggio e rollio – pitch & roll in inglese).

L’obiettivo era l’economicità e la flessibilità, per cui ho realizzato la struttura con profilati di ferro di recupero e ho usato barre filettate e dadi al posto dei cuscinetti ( anche se poi ho trovato dei cuscinetti con supporto molto economici che userò per la versione 2.0).
solar tracker at zenith position solar tracker frame
La movimentazione dei due assi è affidata a due attuatori lineari di quelli per movimentare grosse parabole TV, la gestione degli attuatori è affidata a un Raspberry Pi che, essendo connesso in LAN, mi consente tra le altre cose di gestire da remoto l’inseguitore.
solar tracker controllerschema elettrico interfaccia con RaspberryPI

Veniamo al software di controllo:

È stato realizzato in Python e fa uso della libreria GPIO oppure pigpio, configurabile. Attualmente il tutto gira su una versione RT del kernel  e libreria pigpio.
Sono state utilizzate tre porte di IO per ogni asse, due in uscita e una in ingresso: le due in uscita rispettivamente accendono l’attuatore  e  determinano il verso del movimento ( estensione/retrazione, invertendo la polarità di alimentazione); quella in ingresso conta gli impulsi che viene generato dal trasduttore ad ogni giro della vite dell’attuatore.

L’architettura del software prevede un “tracker server” e uno o più client.
Il tracker server è un processo che ascolta ( listen ) su una porta TCP/IP i comandi che devono essere impartiti ai motori: calibrate, goto position, goto angle, goto azimuth and elevation, lock,unlock
La struttura dell’inseguitore andrebbe montata in direzione sud->nord, tuttavia se per motivi estetici o pratici la struttura deve essere orientata diversamente, è possibile configurare il “motor server” in modo che applichi al comando “goto azimuth and elevation” un offset in gradi all’azimuth.
Il comando lock “dice” all’inseguitore di bloccarsi su una posizione ed ignorare i comandi successivi, è utile per bloccare l’inseguitore in caso di vento forte, in posizione orizzontale, o neve, in posizione verticale.

Il client fondamentale è quello che calcola la posizione del Sole nel cielo e la manda al server. Durante la notte l’inseguitore viene messo nella posizione orizzontale.

Un altro client monitorizza la velocità del vento e blocca l’inseguitore in posizione orizzontale tramite il comando “lock” in caso di vento forte.

Ho sviluppato poi un altro semplice client che consente di mandare comandi al motor server tramite tastiera, per eseguire diagnostica e debug.

La parte più complessa è il tracker server, in quanto deve gestire tutti i segnali dei motori ed effettuare la conversione di azimuth/elevazione in valori lineari di spostamento dei due motori di beccheggio e di rollio.

Per convertire le coordinate celesti del Sole espresse come azimuth ed elevazione in angoli di beccheggio e di rollio ho usato la geometria dei vettori 3d.

Gli angoli di beccheggio e di rollio sono stati poi convertiti in valori di estensione degli attuatori lineari, una volta modellizzata la struttura meccanica dell’inseguitore, il problema è risultato essere quello di calcolare un lato di un quadrilatero dati due angoli opposti e tre lati.

pitch

Il risultato è il prototipo che vedete nel video

Alcune foto dell’inseguitore installato

L'inseguitore solare alle 12 di una giornata di dicembre

L’inseguitore solare alle 12 di una giornata di dicembre

L'inseguitore montato, l'8 dicembre alle 12

L’inseguitore montato, l’8 dicembre alle 12

Scatola con Raspberry Pi + elettronica di comando

Scatola con Raspberry Pi + elettronica di comando

Alcune foto / video della versione con cuscinetti

inseguitore solare

Versione 2.0 dell’inseguitore, con cuscinetti

inseguitore, frame, telaio

inseguitore solare

linear actuator interface schematic diagram

linear actuator interface

reed output, filtered

solar tracker frame

work in progress

raspberry and linear actuator interface

hardware

IMG_20141216_144452 IMG_20150108_065338

L’inseguitore versione 2.0 installato

Finalmente il frutto del lavoro, i due inseguitori che lavorano in timelapse