STUDIO E PROGETTAZIONE DI UN INTERFACCIA … · specifico per i microcontrollori della ATMEL. ......

142
UNIVERSITA’ POLITECNICA DELLE MARCHE FACOLTA’ DI INGEGNERIA C. d. L. S. : Ingegneria Informatica STUDIO E PROGETTAZIONE DI UNINTERFACCIA INTELLIGENTE PER IL CONTROLLO DELLEFFICIENZA DI IMPIANTI DI PRODUZIONE DI ENERGIA DA FONTI RINNOVABILI Relatore: Prof.sa Paola Pierleoni Laureando: Correlatore: Lelio Spadoni Ing. Samuele Pasqualini Sessione: Autunnale 2° Appello Anno Accademico 2008 - 2009

Transcript of STUDIO E PROGETTAZIONE DI UN INTERFACCIA … · specifico per i microcontrollori della ATMEL. ......

UNIVERSITA’ POLITECNICA DELLE MARCHE

FACOLTA’ DI INGEGNERIA

C. d. L. S. : Ingegneria Informatica

STUDIO E PROGETTAZIONE DI

UN’ INTERFACCIA INTELLIGENTE PER IL

CONTROLLO DELL ’EFFICIENZA DI IMPIANTI DI

PRODUZIONE DI ENERGIA DA FONTI

RINNOVABILI

Relatore:

Prof.sa Paola Pierleoni

Laureando: Correlatore:

Lelio Spadoni Ing. Samuele Pasqualini

Sessione: Autunnale 2° Appello Anno Accademico 2008 - 2009

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 2

INDICE

Introduzione…………………………………………………………………….…pag.003

Capitolo 1

1.1 Dalle fonti alternative di energia agli impianti fotovoltaici (Prologo)…….pag.006

1.2 I sistemi di posizionamento degli impianti fotovoltaici…………………...pag.032

Capitolo 2

Caratteristiche del progetto da realizzare: inseguitore solare biassiale di

tipo astronomico (prototipo)……………………………………………..……pag.040

Capitolo 3

Descrizione del progetto hardware/software realizzato………………………. pag.044

Capitolo 4

Descrizione fasi operative……………………………………………………..pag.132

Capitolo 5

Conclusioni…………………………………………………………………….pag.138

Bibliografia…………………………………………………………………………pag.142

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 3

Introduzione

Il presente lavoro nasce dall’unione delle conoscenze e delle

competenze acquisite durante il corso degli studi in Ingegneria Informatica e

dalla mia passione per realizzare sistemi completi, dalla progettazione alla

realizzazione pratica.

L’obiettivo principale è stato quello di realizzare un prototipo di

un’interfaccia intelligente per il controllo dell’efficienza degli impianti

fotovoltaici per la produzione di energia elettrica, con il desiderio poi di

metterla in produzione e lanciarla sul mercato.

Il funzionamento si basa sull’applicazione di un apposito algoritmo che calcola

la posizione istantanea del sole, e comanda i due motori passo-passo utilizzati

per lo spostamento (Est-Ovest e Nord-Sud) del generatore fotovoltaico, per

seguire il moto apparente del sole per avere i raggi solari sempre

perpendicolari ai pannelli fotovoltaici. L’interfaccia risulta essere quindi un

inseguitore solare di tipo biassiale senza l’utilizzo di sensori per la rilevazione

della radiazione solare (sensor-less).

L’interfaccia ha tutte le caratteristiche dei prodotti di pari livello in commercio,

con l’aggiunta di requisiti particolari che la rendono unica nel suo genere. Il

basso costo è l’aspetto principale, ed è stato ottenuto grazie alla scelta di

componenti elettronici di grande potenza ma di basso costo, gestiti in modo

ottimale dalla componente software realizzata ad hoc. L’altro requisito

fondamentale è l’utilizzo di dispositivi opzionali altamente tecnologici, entrati

nella vita di ognuno di noi, come il GPS e il modem GSM/GPRS; il primo può

essere utilizzato durante la fase di installazione per sincronizzare il sistema

con i dati relativi alla latitudine, longitudine del luogo, nonché alla data e all’ora

locali. Il secondo può essere utilizzato per l’invio remoto degli allarmi.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 4

Questo è l’obiettivo “tecnico” che mi sono posto. Ora è necessario che parli

anche di un altro obiettivo che chiamo “di apprendimento”. Infatti la scelta di

utilizzare nel progetto componenti quali il GPS e il modem GSM/GPRS è stata

dettata anche dalla voglia di studiare le loro potenzialità in relazione al

telecontrollo. Per quanto riguarda il GPS ho approfondito le problematiche

relative all’interfacciamento con i microcontrollori e quelle relative alla

decodifica della stringa contenente i dati significativi di altitudine, longitudine,

data e ora (protocollo NMEA0183). Riguardo al modem GSM/GPRS ho

approfondito sia le problematiche relative all’interfacciamento con i

microcontrollori sia l’utilizzo dei comandi AT per la gestione degli SMS. Ho

inoltre iniziato lo studio del modem GPRS come mezzo di collegamento alla

rete Internet, per offrire un valore aggiunto all’interfaccia, dotandola cioè di un

sistema per la rilevazione e l’invio dei dati nella fase di fattibilità dei progetti.

Per realizzare il progetto è stato necessario, fin dalle prime fasi della

progettazione, tenere bene in considerazione lo stretto legame tra hardware

e software. Per il progetto hardware ho fatto uso di un microcontrollore

ATmega328 della ATMEL, già montato su una scheda (Arduino Duemilanove)

contenente anche l’interfaccia USB necessaria per la comunicazione con il

Personal Computer. Inoltre ho realizzato la scheda contenente gli elementi per

l’interfaccia utente quali: pulsanti, led, display LCD seriale; la scheda per il

comando dei motori passo-passo utilizzando gli integrati LM293; la scheda

per la rilevazione della velocità del vento, necessaria per proteggere il

generatore fotovoltaico dalle raffiche di vento, dove trova posto anche il GPS;

infine la scheda dove è alloggiato il modem GSM/GPRS.

Per il progetto software ho scelto di utilizzare l’ambiente di sviluppo “Arduino”

specifico per i microcontrollori della ATMEL. In questo ambiente di sviluppo è

possibile utilizzare/realizzare librerie scritte nei linguaggi di programmazione

“principali” per applicazioni di questo tipo: il linguaggio C e il C++. Il prototipo

realizzato è stato montato prima sulle bread-board (basette sperimentali), poi

è stato saldato su delle schede “millefori”; non è stato realizzato il circuito

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 5

stampato definitivo per motivi di ordine pratico dovuti alla indisponibilità

dell’attrezzatura necessaria.

Il prototipo così realizzato ha permesso la simulazione di tutte le fasi del

sistema in esame, e i risultati ottenuti sono stati in linea con le specifiche del

progetto originale.

Pertanto, la scelta delle componenti hardware e software si è rilevata giusta,

permettendo di ottenere nei tempi prestabiliti risultati incoraggianti a

proseguire in una possibile ulteriore fase di sviluppo, che potrebbe essere

quella di avere dati in tempo reale sul funzionamento del sistema, utilizzando il

collegamento Internet tramite il modem GPRS.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 6

Capitolo 1

1.1 Dalle fonti alternative di energia agli impianti fotovoltaici

(Prologo)

FONTI ALTERNATIVE DI ENERGIA . [Energethics]

A seconda delle fonti da cui trae origine l’energia può essere classificata in:

•••• Fonti esauribili: sono a disposizione in quantità limitata. In questa categoria rientrano il

carbone, il petrolio, il gas naturale, le sostanze radioattive, etc.

•••• Fonti rinnovabili: sono a disposizione in quantità illimitata. In questa categoria rientrano il

sole, l’acqua, il vento, il calore della Terra, le maree, le biomasse, etc.

FONTI RINNOVABILI

La luce e il calore del sole, il vento e l’acqua sono fonti energetiche naturali e hanno il

vantaggio di essere gratuite ed inesauribili. Alcune come la luce del sole, il vento e l’acqua

sono fonti di energia verdi per eccellenza perché non inquinanti, altre come quelle definite

biomasse (olii vegetali, rami secchi dei boschi, scarti della lavorazione del legno, residui

dell’agricoltura, etc.), utilizzate per produrre energia attraverso processi chimici e

combustione, salvaguardano l’ambiente in quanto le emissioni di CO2 sono altamente ridotte.

Alcune piante oleaginose come la colza, la soia e il girasole sono classificate tra le rinnovabili

perché hanno un potere energetico che può essere trasformato in combustibile (il biodisel). Le

tecnologie più utilizzate per ricavare energia elettrica da fonti rinnovabili sono:

• Fotovoltaico - Energia elettrica dalla luce del sole.

La tecnologia fotovoltaica permette di trasformare direttamente in energia elettrica la luce

associata alla radiazione solare. Essa sfrutta le proprietà dei materiali semiconduttori, come il

silicio, che opportunamente trattati, sono in grado di generare elettricità una volta colpiti dalla

radiazione solare (quindi senza alcun uso di combustibili).

• Solare termico - Acqua calda dal calore del sole.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 7

I pannelli solari (collettori) servono a catturare l’energia del sole e a convertirla in calore

(conversione fototermica). L’energia viene inviata ad un fluido termovettore che circola

all’interno del collettore collegato con un serbatoio d’acqua con il quale avviene lo scambio di

calore tra il fluido termovettore e l’acqua contenuta nel serbatoio. Cedendo il calore ricevuto

dal sole il fluido riscalda l’acqua contenuta nel serbatoio ad una temperatura tra i 60° e i 70°C.

L’acqua calda prodotta viene quindi utilizzata per usi sanitari, per il riscaldamento di piscine

etc.

• Biomasse - Energia da materiale organico.

Attualmente gli impianti alimentati con biomasse utilizzano come combustibile sottoprodotti

o rifiuti di altre lavorazioni, scarti dell’agricoltura, dell’allevamento, dell’industria, etc. Per

citare alcuni esempi ci sono impianti che utilizzano residui forestali e scarti industriali del

settore legno e arredamento, impianti che utilizzano scarti dell’industria agro-alimentare quali

sansa, paglia, semi etc. e impianti che utilizzano biomasse da rifiuti urbani (in questo caso e

utile ricordare i termovalorizzatori).

• Eolico - Energia Elettrica dal vento.

Il vento e generato dal calore del sole. Infatti, enormi masse d’aria si riscaldano e salgono

verso gli strati alti dell’atmosfera richiamando enormi masse d’aria fredda che, a seguito di

spostamenti di grandi volumi d’aria, danno origine ai venti. Per mezzo di aereogeneratori,

simili a grandi mulini, l’energia cinetica dei venti viene convertita in energia meccanica che

viene poi utilizzata per produrre energia elettrica tramite alternatori collegati a dei rotori.

Fattorie eoliche si concentrano in zone più favorite dai venti.

• Idroelettrico - Energia elettrica dall’acqua.

Al pari del vento, la pioggia e generata dal sole. L’acqua degli oceani e dei mari evapora ed il

vapore forma le nuvole che vengono trasportate dal vento lontano dalle zone di evaporazione.

Incontrando aria più fredda il vapore contenuto nelle nuvole si condensa e precipita al suolo

sottoforma di pioggia, grandine o neve. L’acqua piovana può essere quindi raccolta in grandi

invasi artificiali. Le centrali idroelettriche sono le più conosciute. Esse sfruttano la forza

dell’acqua che viene fatta fluire in una condotta forzata dove fa girare una turbina abbinata ad

un alternatore, che ruotando produce energia elettrica. Le centrali idroelettriche sono in grado

di sfruttare sia l’acqua fluente sia l’acqua nei bacini (naturali o artificiali).

• Geotermico - Energia elettrica da vapori naturali

La Geotermia sfrutta il calore che giunge dal centro della Terra. Il nostro pianeta, infatti, dopo

la sua formazione, ha mantenuto all’interno un elevata temperatura: il calore immagazzinato

nella crosta terrestre fluisce in alcune zone verso l’esterno con l’ausilio di fluidi vettori come

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 8

l’acqua ed il vapore e può essere utilizzato per la produzione di energia attraverso centrali

geotermiche che utilizzano il vapore per produrre energia elettrica e l’acqua calda per il

riscaldamento.

• Termovalorizzatori - Energia elettrica da rifiuti.

I rifiuti rappresentano un problema per il genere umano: ogni cittadino produce infatti circa

500 Kg di rifiuti all’anno. Uno dei sistemi per smaltire i rifiuti e quello di utilizzarli come

combustibili. I termovalorizzatori sono quindi in grado di produrre energia elettrica e termica

utilizzando come fonte energetica la parte dei rifiuti che non può essere recuperata o riciclata.

I rifiuti appositamente pre-selezionati e trattati vengono bruciati: la produzione del vapore

aziona una turbina collegata ad un alternatore capace di produrre energia elettrica. Il calore

generato anziché essere disperso nell’ambiente viene recuperato per alimentare una rete di

teleriscaldamento. I termovalorizzatori, chiamati anche impianti di cogenerazione da rifiuti,

sono dotati di sistemi per ridurre gli effetti inquinanti.

• Idrogeno - Energia elettrica dall’idrogeno.

L’idrogeno e l’elemento più diffuso al mondo ed e la sostanza principale che costituisce le

stelle. L’idrogeno, tuttavia, non esiste da solo in natura ma lo si può ricavare dall’acqua, dal

gas, etc. L’idrogeno ricavato dall’acqua per mezzo di energia derivata dal fotovoltaico e una

fonte energetica pura. L’idrogeno prodotto viene quindi immagazzinato in appositi contenitori

e trasformato in energia elettrica attraverso celle a combustibile. Gli unici prodotti ricavati da

questa combustione sono corrente elettrica e vapore acqueo.

FONTI ESAURIBILI

Attraverso le centrali termoelettriche, i combustibili fossili consentono di trasformare

l’energia termica del carbone, del petrolio e del metano in energia elettrica.

Oltre l’80% dell’energia elettrica prodotta in tutto il mondo è ottenuta utilizzando i

combustibili fossili. Essi si sono formati in natura milioni di anni fa, hanno alti poteri

energetici, sono immagazzinabili e facilmente trasportabili. La loro disponibilità e tuttavia

destinata ad esaurirsi nel tempo. Le risorse energetiche a disposizione del nostro pianeta,

infatti, si stanno rapidamente riducendo. La dipendenza dai paesi produttori, ed i problemi

politico economici fanno lievitare i prezzi che si riflettono su tutti i prodotti derivati. Un kWh

utilizzato e prodotto

da una centrale termoelettrica equivale a circa 530g di Anidride Carbonica CO2 immessa

nell’atmosfera. Se si calcola il nr. kWh consumati soltanto in Italia e si trasformano in CO2 si

ha subito un’idea della catastrofica situazione verso la quale stiamo andando.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 9

I combustibili fossili generano energia attraverso la combustione, producendo quindi gas

inquinanti che danneggiano l’ambiente e sono dannosi alla salute. L’Anidride Carbonica

(CO2), infatti, una volta immessa nell’atmosfera , è la causa principale del riscaldamento del

pianeta, il cosiddetto effetto serra.

Oltre all’effetto serra l’uso dei combustibili fossili provoca altri tipi di inquinamento:

• le piogge acide: si formano quando gli ossidi di zolfo generati dalla combustione del

carbone e dei derivati del petrolio, combinandosi con il vapore acqueo generano molecole di

acido solforico e acido nitrico.

• lo smog: e costituito dai fumi generati dalla combustione di carbone e derivati del petrolio,

che per effetto di reazioni chimiche formano una miscela di fumo e nebbia. Lo smog tende a

formarsi nelle aree urbane dove l’aria e più stagnante.

• Nucleare

L’atomo e la più piccola parte in cui può essere suddiviso un elemento chimico ed e formato

da un nucleo costituito da protoni, neutroni ed elettroni. Ogni volta che i nuclei subiscono una

trasformazione, avviene una liberazione di energia:

•••• Fusione Nucleare: unione di due nuclei in uno;

•••• Fissione Nucleare: scissione di un nucleo in due.

Nella trasformazione la massa dei nuovi nuclei generati e inferiore a quella che li hanno

generati e la differenza viene liberata sotto forma di energia. Oggi il 6% dell’energia elettrica

prodotta a livello mondiale proviene dal nucleare, in Francia rappresenta il 70%, mentre

nell’Unione Europea circa il 14%. Le centrali sfruttano l’energia generata dalla reazione di

fissione nucleare. L’Uranio ha la capacita di scindersi in elementi più leggeri sprigionando

energia. Il calore che si sprigiona viene adoperato per produrre vapore che, a sua volta, viene

utilizzato per produrre energia elettrica tramite turbine ed alternatori. L’impatto ambientale

delle centrali nucleari e costituito da due tipi di rischio:

1) rischio di incidente e di fuga di materiale radioattivo;

2) smaltimento delle scorie radioattive.

ASSIMILATE ALLE RINNOVABILI

Sono fonti energetiche non rinnovabili che vengono pero assimilate alle rinnovabili per

incentivare l’uso razionale delle risorse utilizzate. Le centrali termoelettriche hanno

rendimenti molto bassi circa il 40% (solo poco più di un terzo del combustibile viene

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 10

trasformato in energia). Il termine cogenerazione indica la produzione combinata in un unico

processo di energia elettrica e di energia termica.

Il calore prodotto viene utilizzato per produrre acqua calda per alimentare una rete di

Teleriscaldamento.

Il Teleriscaldamento distribuisce attraverso una rete di tubazioni isolate termicamente fino

agli edifici allacciati, qui attraverso uno scambiatore di calore (installato al posto della

caldaia) cede il proprio calore all’impianto condominiale.

Una volta ceduto il calore, l’acqua ritorna alla centrale per continuare il ciclo.

IL FOTOVOLTAICO : LA FISICA E L ’ELETTROTECNICA .

Il termine fotovoltaico deriva dall’unione di due parole: “Photo” dal greco phos (Luce)

e “Volt” che prende le sue radici da Alessandro Volta, il primo a studiare il fenomeno

elettrico. Quindi, il termine fotovoltaico significa letteralmente:

““““elettricità dalla luce””””.

Il fotovoltaico è la tecnologia che permette di produrre energia elettrica mediante la

conversione diretta della luce del sole senza l’uso di combustibili e senza parti meccaniche in

movimento. Oggi la tecnologia moderna ci offre gli strumenti necessari per ottenere energia

elettrica direttamente dalla luce solare. Il fotovoltaico, tuttavia, non può sostituire al 100% la

produzione di energia elettrica necessaria, perché la fonte che l’alimenta non e continua 24 ore

su 24 , ma può dare un grande contributo limitando aumenti di produzione elettrica attraverso

la combustione di carbone, petrolio, e gas, e riducendo notevolmente l’emissione

nell’atmosfera di sostanze nocive alla salute e all’ambiente.

LA FISICA DEL FOTOVOLTAICO . [Enea2]

La conversione della radiazione solare in energia elettrica avviene nella cella

fotovoltaica. Essa è costituita da una sottile fetta di un materiale semiconduttore, molto

spesso silicio.

Quando un fotone dotato di sufficiente energia viene assorbito nella cella, nel

materiale semiconduttore di cui essa è costituita si crea una coppia di cariche elettriche di

segno opposto, un "elettrone" (cioè una carica di segno negativo) ed una "lacuna" (carica

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 11

positiva). Si dice allora che queste cariche sono "disponibili per la conduzione di elettricità".

Per generare effettivamente una corrente elettrica, però, è necessaria una differenza di

potenziale, e questa viene creata grazie all’introduzione di piccole quantità di impurità nel

materiale che costituisce le celle. Queste impurità, chiamate anche "droganti", sono in grado

di modificare profondamente le proprietà elettriche del semiconduttore.

Se il materiale semiconduttore, come comunemente accade, è il silicio, introducendo

atomi di fosforo, si ottiene la formazione di silicio di tipo "n", caratterizzato da una densità di

elettroni liberi (cariche negative) più alta di quella presente nel silicio normale (intrinseco). La

tecnica del drogaggio del silicio con atomi di boro porta, invece, al silicio di tipo "p" in cui le

cariche libere in eccesso sulla norma sono di segno positivo.

fig. 1.1.1 “Struttura cristallina del silicio”

fig. 1.1.2 “Silicio di tipo N e di tipo P”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 12

Una cella fotovoltaica richiede l’intimo contatto, su una grande superficie, di due strati di

silicio p ed n. Nella zona di contatto tra i due tipi di silicio, detta "giunzione p-n", si ha la

formazione di un forte campo elettrico.

fig. 1.1.3 “Giunzione PN”

Le cariche elettriche positive e negative generate, per effetto fotovoltaico, dal bombardamento

dei fotoni costituenti la luce solare, nelle vicinanze della giunzione vengono separate dal

campo elettrico. Tali cariche danno luogo a una circolazione di corrente quando il dispositivo

viene connesso ad un carico. La corrente è tanto maggiore quanto maggiore è la quantità di

luce incidente.

Ai fini del funzionamento delle celle, i fotoni di cui è composta la luce solare non sono tutti

equivalenti: per poter essere assorbiti e partecipare al processo di conversione, un fotone deve

possedere un’energia superiore a un certo valore minimo, che dipende dal materiale di cui è

costituita la cella. In caso contrario, il fotone non riesce ad innescare il processo di

conversione.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 13

fig. 1.1.4 “Struttura della cella”

L’ ELETTROTECNICA DEL FOTOVOLTAICO . [DocWeb1]

Considerando una cella fotovoltaica elementare sottoposta alla radiazione solare, se si

immagina di collegare ai suoi morsetti di uscita un resistore di resistenza variabile da zero

(corto circuito) fino a infinito (corto aperto), si potranno misurare per ogni condizione di

resistenza un valore di tensione e uno di corrente.

Se si riportano tali valori in un piano cartesiano I-V si ottiene la “caratteristica I-V del

generatore fotovoltaico” (figura 1.1.5)..

fig 1.1.5 “Caratteristica I-V del generatore fotovoltaico”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 14

Dall’esame di questa caratteristica si può notare che il generatore non può essere

schematizzato né come un generatore di tensione di corrente, né come un generatore di

tensione con in serie una resistenza interna poiché la caratteristica non è una retta.

La caratteristica può essere però suddivisa in tre parti:

� nella zona “vicina” alla condizione di corto circuito (tratto AB) la corrente è quasi

costante, ovvero si comporta da generatore di corrente;

� nella zona “vicina” alla condizione di circuito aperto (tratto CD) la tensione è quasi

costante e in questo tratto il comportamento è simile a quello del generatore di

tensione;

� nella zona rimanente BC, chiamata anche “ginocchio” per la pronunciata curvatura, il

generatore non è schematizzabile in alcuno dei modi visti e per lo studio delle

prestazioni farà uso dei metodi grafici.

La potenza erogata in un punto della caratteristica è rappresentabile dall’area che l’ascissa e

l’ordinata del punto formano con gli assi cartesiani.

Si nota che il punto di massima potenza si trova nel ginocchio della caratteristica.

Le prestazioni di una cella fotovoltaica sono influenzate prevalentemente dalla temperatura e

dalla “quantità di luce” o “irraggiamento” che investe la cella.

L’ irraggiamento rappresenta la quantità di energia luminosa che nell’unità di tempo investe

l’unità di superficie, e si misura in W/m2.

Per fissare le idee, si consideri che un irraggiamento di 1000W/m2 corrisponde a quello di

mezzogiorno in una giornata serena estiva, mentre quello di 100W/m2 corrisponde a quello di

mezzogiorno in una giornata con cielo completamente coperto da nuvole bianche.

Nella successiva figura 1.1.6 in particolare si evidenzia il comportamento di un generatore

fotovoltaico alla temperatura costante di 25° C e con irraggiamento variabile da 100 a

1000W/m2.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 15

fig 1.1.6 “Caratteristiche I-V con temperatura di 25° e irraggiamento variabile”

Si può notare come la corrente di corto circuito risulti proporzionale all’irraggiamento mentre

la tensione a vuoto varia di molto poco (da 0.35 a 0.45V quando l’irraggiamento aumenta di

dieci volte, da 100 a 1000W/m2).

Da ciò consegue che risulta fattibile la misura dell’irraggiamento dalla misura della corrente

di corto circuito di una cella campione (per la quale sia nota cioè con molta precisione la

corrente Icc0 relativa ad una condizione di irraggiamento nota Irrag 0); si avrà infatti:

Irrag mis = Irrag 0 x Iccmis/Icc0

Per esempio una cella al silicio monocristallino con area pari a 100cm2 eroga

all’irraggiamento di 1000W/m2 una corrente di corto circuito di circa 3A; pertanto se viene

misurata una corrente Iccmis = 2.4A la condizione di irraggiamento sarà di 800W/m2.

Viceversa la variabile temperatura influenza prevalentemente i valori di tensione.

Nella successiva figura 1.1.7 invece vengono messe a confronto due caratteristiche con uguale

irraggiamento, la prima rilevata con temperatura di 25°C mentre la seconda a 60°C.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 16

fig 1.1.7 “Caratteristiche I-V con uguale irraggiamento e temperatura variabile”

Se si confrontano due curve si nota che la corrente di corto circuito praticamente non è

influenzata dalla temperatura, mentre la tensione a vuoto si riduce considerevolmente con

l’aumentare della temperatura.

Per il silicio cristallino la tensione si riduce del 4% per 10°C di aumento della temperatura.

In definitiva la temperatura influenza la tensione mentre l’irraggiamento determina la corrente

del dispositivo fotovoltaico.

In genere i costruttori di moduli fotovoltaici forniscono le caratteristiche I-V nelle condizioni

di: irraggiamento pari a 1000W/m2 e temperatura di 25°C, denominate condizioni standard;

in tali condizioni la potenza dichiarata dal costruttore è denominata “potenza nominale” o

“potenza di picco”.

Supponendo ad esempio che un modulo fotovoltaico di silicio monocristallino abbia alle

condizioni standard:

� Corrente di corto circuito Icc =6.7A

� Tensione a vuoto V0 =21.0V

� Tensione al punto di massima potenza Vm =16.7V

� Corrente al punto di massima potenza Im =6.0A

Il modulo in oggetto ha quindi una potenza nominale:

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 17

P = Vm x Im = 16.7 x 6 = 100W

Si vogliono determinare le corrispondenti grandezze nelle condizioni: irraggiamento pari a

700W/m2 e temperatura di 55°C.

Per stimare il valore dei parametri nelle nuove condizioni meteorologiche si tiene conto che le

correnti sono pressoché proporzionali all’irraggiamento, mentre le tensioni si riducono del 4%

per un aumento di 10°C di temperatura; in questo caso, essendo l’aumento di temperatura di

30°C, la riduzione della tensione sarà del 12%.

Icc = 6.7 x 700 / 1000 = 4.7A

Im = 6 x 700 / 1000 = 4.2A

Vm = (1 – 0.12) x 16.7 = 14.7V

V0 = (1 – 0.12) x 21.0 = 18.5V

Quindi nelle nuove condizioni operative la potenza massima si riduce a:

P = 4.2A x 14.7V = 61.7 W

Un ulteriore elemento di grande interesse è la valutazione della energia producibile da parte di

un impianto fotovoltaico di potenza nota in un periodo di tempo prestabilito, ad esempio un

anno.

Tale valutazione ha notevole interesse anche perché i dati meteorologici in un dato istante non

sono completamente prevedibili, e quindi non si può essere certi che alle ore 12.30 del

prossimo 26 giugno si abbia un certo livello di potenza da parte del generatore, ma si può

ragionevolmente ritenere che l’energia luminosa che incide sul generatore in un anno

corrisponda a quella dell’anno successivo.

Per questo motivo il dimensionamento di un impianto fotovoltaico viene di norma eseguito

sulla base della energia richiesta in un periodo di tempo prestabilito (anno o stagione).

Si vuole per esempio stimare la energia producibile da un generatore con potenza nominale di

1600W installato in un sito con clima mediterraneo (ossia alla nostra latitudine e posto entro

15÷20km dal mare).

Per fissare le idee, un impianto con potenza nominale di 1600W si ottiene dalla composizione

di 16 moduli da 100W nominali, cioè del tipo analogo a quello considerato nell’esempio

precedente.

La composizione dei 16 moduli potrà essere realizzata in uno dei seguenti modi:

� 16 moduli in parallelo;

� 8 rami in parallelo, ciascuno costituito da 2 moduli in serie;

� rami in parallelo, ciascuno costituito da 4 moduli in serie;

� rami in parallelo, ciascuno costituito da 8 moduli in serie;

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 18

� 1 ramo, costituito da 16 moduli in serie.

A ciascuna delle composizioni corrisponde un diverso valore di tensione nominale

dell’impianto (pari al numero dei moduli in serie moltiplicato per la tensione nominale del

modulo, che si assume pari alla tensione di massima potenza nelle condizioni standard).

La scelta della tensione nominale è legata a:

� aspetti di carattere normativo (per esempio una tensione fino a 120V in corrente

continua è considerata in condizioni ordinarie bassissima tensione di sicurezza e

richiede provvedimenti meno severi riguardo ai contatti accidentali di una persona

con parti elettriche in tensione);

� contenimento delle dissipazioni di energia (maggiore è il numero dei rami in

parallelo, tanto più grande è la corrente globale, e con essa aumentano le perdite per

effetto Joule);

� adattamento alle caratteristiche elettriche degli altri componenti di impianto (di cui si

parlerà più avanti).

In ogni caso la energia producibile dall’impianto (trascurando le perdite per effetto Joule) è

indipendente dalla configurazione dei collegamenti serie-parallelo, e dipende dalla potenza

nominale dell’impianto e dai dati climatici del sito.

Nel caso di un sito con clima mediterraneo la energia solare che incide sui moduli in un anno

è pari a circa 1500 kWh / m2.

Si tenga presente che tale dato può anche essere rappresentato in modo apparentemente

diverso; si consideri che nelle condizioni di pieno sole si ha una radiazione luminosa di circa

1000W/m2=1 kW/m2 e che pertanto l’energia di 1500 kWh / m2 è pari a 1 kW/m2 moltiplicato

per 1500 h (ore).

Si ha cioè che l’energia luminosa che globalmente incide su di una superficie in un anno

corrisponde a quella che si avrebbe in 1500 ore di pieno sole, con le rimanenti ore dell’anno al

buio completo.

In altri termini, l’energia luminosa mediamente captata in un giorno da una superficie

corrisponde a 1500/365 = 4.1 ore di pieno sole, con le altre 19.9 ore al buio completo.

Si suole dire che l’energia luminosa in un sito a clima mediterraneo corrisponde a 1500 ore

equivalenti all’anno, intendendo queste come numero di ore annue di piena luce (con le

rimanenti senza luce).

Ciò premesso, un impianto con potenza di 1600W produce tale potenza quando esposto

all’irraggiamento 1000 W/m2 = 1 kW/m2 di e alla temperatura di 25°C.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 19

Trascurando per ora il dato di temperatura, se si considera che tale condizione di

irraggiamento perdura per 1500 ore equivalenti all’anno, l’energia producibile per tale

periodo sarà:

E = 1600W x 1500h = 2400000 Wh = 2400 kWh/anno

Tale energia deve però essere ridotta, tenendo conto che:

� la temperatura dei moduli è normalmente maggiore di 25°C, e ciò comporta una

riduzione del 4% della energia stimata ogni 10°C di aumento (si ipotizza l’uso di

moduli al silicio, come normalmente accade);

� vi sono delle perdite per effetto Joule tanto maggiori quanto più alta è la corrente

nominale e tanto maggiore è l’estensione dell’impianto.

Nel caso di clima mediterraneo di tali effetti si tiene conto considerando un abbattimento della

energia prima stimata pari al 15%; quindi l’energia producibile è pari a:

E = 0.85 x 2400 kWh = 2040 kWh/anno

Questa energia corrisponde a 2040/1600 = 1.27 kWh/anno per ogni Watt di potenza nominale

di impianto (ovvero mediamente 3.5 Wh/giorno per ogni W di potenza nominale).

Per diversi valori di potenza dell’impianto, il valore di energia producibile sarà in proporzione

con la potenza nominale.

GLI IMPIANTI FOTOVOLTAICI IN CONTINUA ED IN ALTERNATA .

Gli impianti fotovoltaici sono sistemi in grado di captare e trasformare l’energia solare in

energia elettrica. Fondamentalmente sono classificabili in:

• impianti isolati (stand-alone), nei quali l’energia prodotta alimenta direttamente un

carico elettrico e, per la parte in eccedenza, viene generalmente accumulata in apposite

batterie di accumulatori, che la renderanno disponibile all’utenza nelle ore in cui

manca l’insolazione;

• impianti connessi ad una rete elettrica di distribuzione (grid-connected): l’energia

viene convertita in corrente elettrica alternata per alimentare il carico-utente e/o

immessa nella rete, con la quale lavora in regime di interscambio.

Un impianto fotovoltaico è costituito da un insieme di componenti meccanici, elettrici ed

elettronici che captano l’energia solare, la trasformano in energia elettrica, sino a renderla

disponibile all’utilizzazione da parte dell’utenza. Esso sarà quindi costituito dal generatore

fotovoltaico (o da un campo fotovoltaico nel caso di impianti di una certa consistenza), da un

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 20

sistema di controllo e condizionamento della potenza e, per gli impianti isolati, da un sistema

di accumulo dell’energia.

Il generatore fotovoltaico

Collegando in serie-parallelo un insieme opportuno di moduli si ottiene un generatore o un

campo fotovoltaico, con le caratteristiche desiderate di corrente e tensione di lavoro. I suoi

parametri elettrici principali sono la potenza nominale, che è la potenza erogata dal generatore

in condizioni nominali standard (irraggiamento di 1000 W/m2 e temperatura dei moduli di

25°C) e la tensione nominale, tensione alla quale viene erogata la potenza nominale.

I moduli o i pannelli sono montati su una struttura meccanica capace di sostenerli e ancorarli.

Generalmente tale struttura è orientata in modo da massimizzare l'irraggiamento solare.

Il sistema di condizionamento della potenza

La variabilità di tensione e di corrente in uscita da un generatore fotovoltaico al variare

dell'irraggiamento solare mal si adatta alle specifiche dell'utenza, che spesso richiede corrente

in alternata, per alimentare direttamente il carico o per il collegamento alla rete elettrica di

distribuzione e un valore costante per la tensione in uscita dal generatore.

Nei sistemi fotovoltaici il generatore è quindi collegato a seconda dei casi, alla batteria, agli

apparecchi utilizzatori o alla rete, tramite un sistema di controllo e condizionamento della

potenza.

Nei sistemi isolati il sistema di condizionamento della potenza adatta le caratteristiche del

generatore fotovoltaico a quelle dell'utenza e gestisce il sistema di accumulo attraverso il

regolatore di carica. In particolare il regolatore di carica serve sostanzialmente a preservare gli

accumulatori da un eccesso di carica ad opera del generatore fotovoltaico e da un eccesso di

scarica dovuto all’utilizzazione, entrambe condizioni nocive alla salute e alla durata degli

accumulatori.

Nei sistemi connessi alla rete il sistema di controllo della potenza converte la corrente

prodotta dal generatore fotovoltaico da continua in alternata, inverter, adatta la tensione del

generatore a quella di rete effettuando l’inseguimento del punto di massima potenza e, infine,

controlla la qualità della potenza immessa in rete in termini di distorsione e rifasamento.

GLI IMPIANTI FOTOVOLTAICI IN CONTINUA .

Come già indicato nei paragrafi precedenti, un generatore fotovoltaico di per sé di

eroga energia elettrica in corrente continua.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 21

Nel presente paragrafo si analizzano le problematiche di connessione del generatore ad un

apparecchio utilizzatore, in grado di funzionare con tale forma di corrente (per esempio

lampada ad incandescenza, motore elettrico in corrente continua, ecc.).

Nella figura 1.1.8 si rappresentano differenti caratteristiche di un generatore fotovoltaico,

rilevate in diverse condizioni di irraggiamento ma a temperatura costante, sovrapposte a

quella di un carico resistivo a resistenza fissa.

fig 1.1.8 “Caratteristiche I-V del generatore collegato a un carico resistivo”

Essendo di volta in volta il punto di lavoro determinabile dalla intersezione fra la caratteristica

del generatore e quella del carico, risulta evidente come l’accoppiamento fra generatore e

carico fisso possa comportare una parziale utilizzazione delle potenzialità offerte dal

generatore.

Nella figura 1.1.8, ad esempio, il carico resistivo è ottimizzato per estrarre la massima potenza

quando l’irraggiamento è di 500 W/m2 e la temperatura di 25 °C; quando però l’irraggiamento

è dell’ordine di 1000 W/m2 il generatore eroga una potenza decisamente minore di quella

massima, mentre a 100 W/m2 il generatore funziona quasi in corto circuito.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 22

A ciò si aggiunge che una variazione di temperatura, rispetto ai 25 °C prima ipotizzati,

comporta la modifica della caratteristica del generatore (figura 1.1.7), e pertanto il punto di

lavoro nella nuova condizione non è più quello ottimale.

Si può concludere che un carico resistivo potrà essere ottimale solo per una sola condizione di

irraggiamento e per una sola temperatura.

Si deve considerare inoltre che un apparecchio utilizzatore è in genere dimensionato per un

funzionamento a tensione pressoché costante; dalla figura 1.1.8 si nota invece che

l’apparecchio resistivo passa da una tensione di lavoro di 3.6V (all’irraggiamento di 100

W/m2) ad una tensione di circa 17.8V all’irraggiamento pieno; tale escursione di tensione è

assolutamente inaccettabile per l’utilizzatore.

I due problemi di migliore sfruttamento del generatore e mantenimento ad un valore costante

della tensione di lavoro per l’utilizzatore possono essere in buona misura risolti collegando in

parallelo al generatore fotovoltaico un accumulatore elettrochimico (batteria).

Nella figura seguente si rappresenta lo schema di principio di un impianto fotovoltaico che

comprende l’accumulo elettrochimico (batteria).

fig 1.1.9 “Impianto fotovoltaico con accumulo elettrochimico”

Nella figura 1.1.9 è stato introdotto un nuovo elemento di impianto: il diodo di blocco.

La funzione di tale diodo è di impedire che durante la notte la batteria possa scaricarsi sul

generatore fotovoltaico (che in assenza di luce si comporta come un corto circuito), pur

consentendo in condizioni diurne la normale circolazione della corrente IPV nel verso indicato

in figura 1.1.9.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 23

Di solito vengono utilizzati per questo scopo diodi del tipo Schottky, in quanto caratterizzati

da tensioni di soglia ridotte rispetto ai diodi normali, quindi con minori dissipazioni di energia

in condizioni di corrente diretta.

Per analizzare il funzionamento dell’impianto in figura 1.1.9 si consideri che il

comportamento della batteria sia assimilabile a quello di un generatore ideale di tensione.

Poiché il carico è collegato direttamente ai morsetti della batteria, la tensione VL del carico

rimane inalterata se tale è la tensione di batteria; si consegue quindi il risultato di avere la

tensione di funzionamento dell’utilizzatore (e quindi anche la potenza) indipendenti dalla

disponibilità del generatore fotovoltaico.

Riguardo poi l’accoppiamento fra batteria e generatore fotovoltaico, si considerino le curve

rappresentate in figura 1.1.10, nelle quali sono state rappresentate sovrapposte la caratteristica

di un generatore ideale di tensione con valore pari a 12V (rappresentativo della batteria) e due

caratteristiche I-V di un modulo commerciale alla temperatura del modulo di 60°.

fig 1.1.10 “Caratteristiche I-V con generatore fotovoltaico e accumulo elettrochimico”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 24

Si nota che pur essendovi una notevole escursione nell’irraggiamento (passando dal sole

pieno, che corrisponde a 1000W/m2, a circa un terzo di tale irraggiamento) la tensione nel

punto di massima potenza del generatore fotovoltaico è comunque molto vicina a 12V.

Quindi il collegamento del generatore fotovoltaico (alla temperatura indicata) alla batteria

porta ad un ottimale sfruttamento di quest’ultimo.

Nel caso poi di funzionamento a 1000W/m2 il generatore fotovoltaico eroga una corrente IPV

ottenibile come indicato nella figura 1.1.11, dal punto di intersezione fra la caratteristica I-V

del generatore e quella della batteria.

fig 1.1.11 “Funzionamento con irraggiamento di 1000 W/m2”

Viceversa la corrente IL assorbita dall’utilizzatore si determina considerando che quest’ultimo

in ogni caso vede la tensione della batteria, e quindi può essere ottenuta dall’intersezione fra

la caratteristica della batteria e quella del carico.

La differenza fra le correnti IPV e IL corrisponde alla corrente di batteria IB .

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 25

In questo caso corrisponde ad una carica della batteria, con conseguente accumulo di energia

da parte di questa.

L’energia accumulata viene messa a disposizione in caso di basso irraggiamento.

Nella figura 1.1.12è rappresentato il funzionamento con irraggiamento di 330W/m2 e

temperatura di modulo di 60 °C.

fig 1.1.12 “Funzionamento con irraggiamento di 330 W/m2”

Rispetto alla condizione precedente la corrente IL dell’utilizzatore non cambia, mentre nelle

condizioni attuali di irraggiamento la corrente IPV del generatore è diventata inferiore del

fabbisogno.

In questo caso la batteria sostiene il generatore, e la corrente IB corrisponde ad una scarica

della batteria, con conseguente restituzione della energia accumulata in precedenza.

Naturalmente ad ogni ciclo di carica e scarica corrisponde una quota di energia dissipata.

Nel suo complesso però l’impianto descritto risponde molto meglio del precedente alle

esigenze di ottimizzare lo sfruttamento della risorsa fotovoltaica, consentendo inoltre

all’utilizzatore di lavorare a tensione pressoché costante.

Si può concludere che un impianto fotovoltaico collegato a carico resistivo e batteria potrà

essere ottimale solo per una sola condizione di temperatura.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 26

Infatti l’ottimizzazione indicata nella figura 1.1.10, con la caratteristica di batteria che media

fra i punti di massima potenza del generatore, può venir meno nel caso la temperatura dei

moduli sia molto diversa da quella ipotizzata.

Pur tuttavia per impianti con potenza nominale fino a qualche centinaio di Watt (per esempio

segnaletica stradale, pali per pubblica illuminazione), lo schema di impianto è del tipo della

figura 1.1.9, provvedendo in qualche caso ad aggiungere un regolatore di carica di batteria,

avente lo scopo di evitare sovraccariche oppure scariche troppo profonde.

Per impianti con potenze nominali superiori si può utilizzare uno schema del tipo indicato

nella figura 1.1.13, nella quale compare il nuovo dispositivo denominato “convertitore dc/dc”

(dc è la sigla di direct current, ovvero corrente continua); si tratta cioè di un dispositivo

elettronico che riceve in ingresso ed eroga in uscita energia elettrica in corrente continua.

Il convertitore dc/dc ha un comportamento analogo a quello che in alternata ha il

trasformatore, ossia è capace di variare la tensione in ingresso rispetto a quella in uscita, ma

lasciando praticamente inalterata la potenza. Con i simboli adottati in figura 1.1.13 si ha

quindi:

VPV x IPV = VC x IC

fig 1.1.13 “Impianto fotovoltaico in corrente continua con batteria e convertitore DC/DC”

Nel caso della figura 1.1.13 la tensione di uscita VC del convertitore è fissa, essendo pari a

quella di batteria VB; invece la tensione di ingresso (che coincide con quella del generatore

fotovoltaico) viene fatta variare al fine di massimizzare l’estrazione di potenza dal generatore.

Il dispositivo interno al convertitore che esegue tale regolazione viene denominato con la

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 27

sigla MPPT (che sta per Maximum Power Point Tracking, ossia inseguitore del punto di

massima potenza).

Tramite la regolazione MPPT si ha l’effetto di compensare le variazioni sia di temperatura

che di irraggiamento, ottimizzando l’utilizzo della risorsa fotovoltaica.

Naturalmente l’esubero o il deficit di energia erogata dalla sorgente fotovoltaica vengono

compensate dalla batteria, che ha la funzione di volano energetico, secondo le modalità già

esposte.

GLI IMPIANTI FOTOVOLTAICI IN ALTERNATA .

A fronte della disponibilità da parte del generatore fotovoltaico di erogare energia

elettrica in corrente continua, per la grande maggioranza degli utilizzatori elettrici è richiesta

una alimentazione in corrente alternata.

Infatti si è già detto che per una lampada a filamento (incandescenza o alogena) è del tutto

indifferente che l’alimentazione avvenga in corrente alternata o continua (purché con livelli

confrontabili di tensione); così non è per le lampade fluorescenti o per quelle a scarica, per le

quali una eventuale alimentazione in corrente continua comporterebbe un consumo di energia

notevolmente più alto.

Nel campo dei motori invece la scelta di un modello in corrente continua o alternata dipende

dai requisiti richiesti. Un motore in corrente continua ha il vantaggio di consentire una

regolazione continua della velocità, ma ha l’inconveniente di contenere un contatto strisciante

spazzole – collettore, che è oggetto di usura e richiede periodici interventi di manutenzione.

Viceversa nel campo della corrente alternata è disponibile il motore asincrono, caratterizzato

da grande affidabilità poiché non ha alcun contatto strisciante, ma che di per sé non consente

una significativa regolazione di velocità. Ne consegue che in tutte quelle situazioni in cui non

si richiede regolazione continua di velocità si preferisce una applicazione con motore

asincrono, tanto più se le condizioni di installazione ne rendono gravosa la manutenzione (per

esempio il motore elettrico a servizio di una pompa installata in un pozzo a 300 metri di

profondità).

Si deve tener presente infine che quasi sempre gli utilizzatori elettrici sono alimentati da una

rete pubblica di distribuzione (per esempio ENEL), che per evidenti vantaggi di gestione

trasporta e distribuisce in alternata; ciò ha contribuito a orientare il mercato degli

elettrodomestici verso prodotti progettati per funzionare in corrente alternata. Quindi in linea

di principio si potrebbe avere un frigorifero in corrente continua, ma il 99.99% dei frigoriferi

disponibili in commercio funzionano con motore in corrente alternata.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 28

Da quanto esposto scaturisce questa ulteriore necessità di adattare il generatore

all’utilizzatore, e ciò impone l’adozione di convertitori elettronici denominati dc/ac (energia

in ingresso continua, ed uscita in alternata).

Nei due paragrafi successivi sono presentate due diverse configurazioni di impianto in

corrente alternata:

• Sistema fotovoltaico funzionante in isola;

• Sistema fotovoltaico collegato alla rete elettrica pubblica.

SISTEMI COLLEGATI IN ISOLA

Si intende per “sistema fotovoltaico funzionante in isola” un sistema isolato dalla rete

pubblica di distribuzione, e per il quale l’impianto in oggetto costituisce l’unica sorgente di

alimentazione.

Lo schema di principio di impianto in isola con alimentazione in alternata è rappresentato

nella figura seguente:

fig 1.1.14 “Impianto fotovoltaico in corrente alternata con batteria e convertitore DC/AC

(funzionamento in isola)”

Il cuore dell’impianto è in questo caso il convertitore dc/ac (continua/alternata), che è

collegato in ingresso alle due sorgenti in continua (fotovoltaico e batterie), e trasferisce in

uscita l’energia in alternata al carico.

Il convertitore dc/ac viene in genere dimensionato in base alla massima potenza che si intende

trasferire al carico (per esempio 3kW nel caso di alimentazione di utenza residenziale), e tale

potenza può risultare superiore alla potenza nominale del generatore fotovoltaico, poiché

l’ulteriore potenza può essere prelevata dalle batterie.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 29

Ulteriori elementi da specificare per la scelta del convertitore sono: livello e tolleranza per la

tensione di uscita (per esempio 220V ± 3%), tensioni di ingresso del fotovoltaico e delle

batterie, in genere fra di loro uguali ( a seconda delle potenze di solito si adottano tensioni da

48V a 120V).

I compiti demandati al convertitore dc/ac sono:

� Rendere stabile la tensione di uscita, al variare del carico inserito;

� Eseguire le funzioni di regolatore di carica per le batterie, ossia provvedere ad

escludere il collegamento del generatore fotovoltaico in caso di batterie troppo

cariche, ovvero escludere forzatamente il carico in caso di batterie troppo scariche;

� Al di fuori dei casi estremi di cui al punto precedente, effettuare la regolazione MPPT

(inseguimento del punto di massima potenza) per ottimizzare l’estrazione di potenza

dal generatore fotovoltaico.

I sistemi in isola sono utilizzati quando l’ubicazione degli apparecchi utilizzatori rende

antieconomico l’allaccio con rete elettrica pubblica (per esempio rifugi alpini, ponti radio,

ecc.).

L’inconveniente di un sistema in isola è di richiedere un parco batterie, il cui

dimensionamento è legato alla autonomia desiderata (espressa come numero di giorni senza

sole in cui l’alimentazione del carico deve essere comunque garantita).

Occorre tener presente inoltre che il parco batterie spesso richiede l’installazione in un

apposito locale perché le escursioni termiche compromettono l’autonomia delle batterie. Il

locale dovrà essere adeguatamente ventilato, e munito di impianto elettrico idoneo al pericolo

di esplosione.

La presenza del parco batterie comporta inoltre dei costi di esercizio, per la inevitabile

manutenzione richiesta.

SISTEMI COLLEGATI ALLA RETE PUBBLICA

In questo caso l’impianto utilizzatore è già collegato alla rete pubblica di

distribuzione, e l’impianto fotovoltaico è connesso alla stessa rete, riversando su di essa

l’energia elettrica prodotta (figura 1.1.15).

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 30

fig 1.1.15 “Impianto fotovoltaico in corrente alternata collegato alla rete pubblica di distribuzione (funzionamento grid connected)”

Dall’esame della figura 1.1.15 si nota che non è più presente il parco batterie, in quanto in

ogni istante la potenza richiesta dal carico può essere fornita dalla rete pubblica.

Ciò comporta evidenti vantaggi in termini di riduzione dei costi di installazione e di esercizio

(il parco batterie era l’unica componente dell’impianto che richiede manutenzione ordinaria)

nonché miglioramento del rendimento complessivo di impianto.

A fronte di questi vantaggi, deve essere installato un convertitore dc/ac idoneo alla

connessione in rete (grid connected).

In questo caso i requisiti richiesti al convertitore dc/ac sono:

� Mantenere in ogni istante il sincronismo con la tensione di rete.

� Nel caso la rete pubblica venga disalimentata, per esempio per un guasto o per

manutenzione programmata, l’impianto in oggetto deve escludersi automaticamente,

per evitare che la rete stessa venga mantenuta in tensione dal generatore (si tratta del

temuto effetto isola); in questo caso il gestore della rete pubblica può anche richiedere

l’installazione, al di fuori del convertitore dc/ac, di un set omologato di protezioni di

minima e massima tensione e frequenza (protezioni di interfaccia).

� Ridurre l’inquinamento armonico che deriva da una forma d’onda non perfettamente

sinusoidale per la tensione di uscita del convertitore; per questo scopo i convertitori

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 31

più efficaci sono quelli con tecnologia PWM (Pulse Width Modulation, ovvero

Modulazione della Larghezza degli Impulsi).

� Effettuare la regolazione MPPT (inseguimento del punto di massima potenza) per

ottimizzare l’estrazione di potenza dal generatore fotovoltaico.

Per quanto concerne poi la connessione alla rete pubblica, si possono adottare due modalità,

come indicato nella figura 1.1.16.

fig 1.1.16 “Modalità di connessione dell’impianto fotovoltaico al punto di consegna della rete pubblica di distribuzione”

Nel caso a) viene ceduta alla rete la differenza fra la potenza generata dall’impianto e quella

richiesta dall’utilizzatore; naturalmente se la differenza è positiva si ha una cessione verso la

rete della eccedenza, altrimenti è la rete che contribuisce al fabbisogno del carico.

Nel caso b) invece l’energia prodotta dal generatore è integralmente ceduta alla rete, mentre il

fabbisogno del carico è integralmente assicurato dalla rete stessa.

Naturalmente queste due opzioni derivano dal fatto che le tariffe per la produzione e

assorbimento possono essere diverse; per l’utente è più vantaggiosa la modalità del caso b) se

la tariffa della produzione è maggiore di quella dell’assorbimento.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 32

1.2 Sistemi di posizionamento degli impianti: fissi, ad un asse, a

due assi.

Un pannello fotovoltaico produce tanta più energia quanto più viene illuminato dal

Sole. In particolare, la produzione del pannello e massima quando i raggi del Sole lo

colpiscono perpendicolarmente, quindi con un angolo di 90°.

Nella maggior parte degli impianti fotovoltaici i pannelli vengono collocati in modo fisso, con

un orientamento ed una inclinazione che permetta di ottenere durante il giorno e durante

l’anno un angolo di incidenza con valore più alto possibile. Sembra essere abbastanza

intuitivo che, per quanto riguarda l’orientamento di un pannello inclinato, quello ottimale sia

in direzione Sud, in quanto permette di ottenere il massimo grado di incidenza dei raggi

solari, che hanno moto Est-Ovest simmetrico rispetto al Sud. Per quanto riguarda invece

l’angolo di inclinazione del pannello rispetto all’orizzontale (angolo di tilt) per la latitudine

italiana l’ottimale risulta essere dai 29° (Sud Italia) ai 32° (Nord Italia). Infatti questa è

l’altezza media del Sole sull’orizzonte durante la giornata e durante l’anno. Un altro modo di

rendere sempre massimo l’angolo di incidenza dei raggi solari con la superficie del pannello è

quella di muovere il pannello, e di orientarlo costantemente verso il Sole. Parliamo quindi dei

cosiddetti inseguitori solari. In particolare, tramite motori pilotati da un minicomputer, i

pannelli si muovono seguendo il moto apparente del Sole da Est ad Ovest. Il movimento può

avvenire su due assi (variazione dell’orientamento e dell’inclinazione rispetto all’orizzontale)

oppure su un asse solo.

In un inseguitore il movimento può avvenire sul solo asse verticale (inseguitori di azimuth)

oppure su quello orizzontale (inseguitori di tilt).

A seconda dei movimenti previsti si parla inoltre di inseguitore biassiale o monoassiale.

• Inseguitori biassali

I sistemi di “puntamento” degli inseguitori biassiali possono essere o “astronomici”, pilotati

quindi da un software che calcola la posizione del Sole in ogni istante e muove i pannelli di

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 33

conseguenza, oppure a cellula fotosensibile, in grado cioè di dirigere i pannelli verso la

sorgente di luce più forte in ogni momento.

• Inseguitori monoassiale

Il sistema di movimento di un inseguitore monoassiale è, invece, solitamente di tipo

astronomico, e prevede, a fine giornata, il posizionamento del pannello ad inizio corsa, verso

Est.

I più evoluti inseguitori sono dotati anche di un sistema di rilevazione della velocità del vento,

che posiziona i pannelli in posizione orizzontale in caso di venti forti. A fronte del vantaggio

del maggior rendimento, si ha di contro un maggior onere di manutenzione data la presenza di

parti meccaniche in movimento.

fig 1.2.1 “Traccia della proiezione perpendicolare ai pannelli fotovoltaici e traccia della

posizione del sole” [ http://www.anu.edu.au/ ]

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 34

IL RENDIMENTO . [Energethics]

Come accennato, il fatto di variare l’inclinazione e/o l’orientamento dei pannelli

conduce ad una maggiore producibilità di energia elettrica. Orientativamente, un inseguitore

monoassiale comporta una maggiore produzione del 10-20% rispetto ad un impianto fisso, a

seconda del tipo di montaggio e di movimento. Un inseguitore biassiale, invece, può

permettere un incremento della producibilità del 30-40%. a seconda dei diversi modelli. Nel

grafico che segue possiamo osservare la produzione elettrica di un impianto fotovoltaico

nell’arco della giornata relativa ad un impianto fisso e ad un impianto con inseguimento

solare.

fig 1.2.2 "Confronto della produzione giornaliera tra un impianto fisso e uno ad

inseguimento solare"

Un inseguitore biassiale ha un prezzo maggiore per kWp di un impianto fisso di circa il 20-

25%, quindi anche ipotizzando i casi più sfavorevoli (25% di incremento del prezzo, 30% di

incremento di produttività) si ha una leva positiva che rende interessante economicamente

l’utilizzo degli inseguitori. In diversi scenari economico-finanziari, ipotizzando inseguitori a

due assi che montano pannelli ad alta efficienza (21%) si e giunti a determinare che, a parità

di produzione di energia elettrica, con la soluzione “inseguitori” viene prodotto il 30% in più

rispetto ad un impianto fisso, ad un costo complessivo nettamente inferiore.

La figura seguente mostra la producibilità con impianti fissi e con l’ausilio di inseguitori

solari:

S. impianto fisso; B. impianto con inseguitoti solari.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 35

fig 1.2.3 “Produzione annua di energia elettrica prodotta da 1kWp installato nelle diverse

zone d’Italia”

[ http://re.jrc.cec.eu.int/pvgis/pv ]

Entrando nel merito della questione se sia conveniente installare un impianto fotovoltaico

fisso o uno con inseguitore solare, analizziamo i dati presenti nella figura seguente che sono

stati redatti dal Joint Research Centre.

Nella zona di colore verdino possiamo vedere che orientando i moduli fotovoltaici con due

diverse angolazioni di tilt (uno per la stagione invernale e uno per la stagione estiva), si

ottiene un sovrapproduzione di energia elettrica di un valore compreso tra l’1,5% e il 4,5%.

Nella zona di colore giallo vediamo a confronto impianti fissi con impianti monoassiali: si

possono vedere le buone prestazioni dell’impianto monoassiale che raggiunge una

sovraproducibiltà anche del 50% rispetto agli impianti fissi.

Nella zona di colore rosa si vede chiaramente che dotando un impianti fotovoltaico con un

meccanismo di puntamento del sole, si può ottenere un incremento della produzione elettrica

che arriva fino al 55% in più rispetto allo stesso impianto con posizionamento fisso.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 36

fig 1.2.4 “Confronto della produzione di energia elettrica tra impianti fissi e con inseguitore

solare”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 37

A conferma di quanto detto è possibile utilizzare un software, disponibile all’indirizzo

http://sunbird.jrc.it/pvgis/apps/pvest.php?lang=it&map=africa&app=gridconnected , o all’

indirizzo http://re.jrc.ec.europa.eu/pvgis/apps3/pvest.php?lang=it, con il quale possiamo

confrontare i valori di un impianto fotovoltaico installato in una qualsiasi città italiana con

inseguitore solare e fisso.

L’esempio seguente riguarda un impianto fotovoltaici installato nella città di Ancona; i

risultati sono i seguenti:

Dati di progetto:

� Località 43°36'14" Nord, 13°30'32" Est, Altitudine: 12 m. s. l. m.

� Potenza nominale del sistema FV: 1.0 kW (silicio cristallino)

� Inclinazione dei moduli: 35.0°

� Orientamento (azimuth) dei moduli: 0.0°

� Stima delle perdite causato dalla temperatura: 8.6% (usando dati di temperatura

locali); Perdite stimate causate dall'effetto angolare di riflessione: 2.6%; Altre perdite

(cavi, inverter, etc.): 14.0%; Totale delle perdite di sistema FV: 25.2%

Risulati:

Questo grafico e la tabella mostra la produzione di energia elettrica (stimata) che si

può aspettare ogni mese da un sistema fotovoltaico con i parametri scelti (usando

l'inclinazione ottimale). Mostra anche la stima della media giornaliera e la produzione totale

annuale

fig 1.2.5 “Produzione di energia elettrica (stimata) che si può aspettare ogni mese da un

sistema fotovoltaico con i parametri scelti (usando l'inclinazione ottimale)”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 38

Questo grafico mostra l'energia erogata da un sistema ad inseguimento a 2 assi

fig 1.2.6 “Quantità di energia erogata da un sistema ad inseguimento a 2 assi”

fig 1.2.7 “Simulazione produzione annuale di energia elettrica di un impianto fisso e uno con

inseguitore solare (con i parametri impostati)”

Produzione elettrica FV per: potenza nominale=1.0 kW, Perdite di sistema=14.0%

Inclin.=35 gr., Orient.=0 gr. Sistema ad inseguimento 2 assi

Mese Produzione mensile (kWh)

Produzione giornaliera (kWh)

Produzione mensile (kWh)

Produzione giornaliera (kWh)

Gen 61 2.0 76 2.4

Feb 72 2.6 87 3.1

Mar 109 3.5 135 4.3

Apr 127 4.2 168 5.6

Mag 130 4.2 178 5.7

Giu 142 4.7 207 6.9

Lug 150 4.9 219 7.1

Ago 148 4.8 208 6.7

Set 126 4.2 164 5.5

Ott 100 3.2 124 4.0

Nov 63 2.1 76 2.5

Dic 48 1.5 58 1.9

Media annuale 106 3.5 142 4.7

Produzione annuale (kWh) 1276 1699

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 39

I risultati ottenuti sono molto incoraggianti e ci spingono a scegliere gli inseguitori solari

come sistema di riferimento per l’installazioni di nuovi impianti fotovoltaici: infatti per ogni

kWp installato si ottiene un rendimento di oltre 400kWh di energia prodotta all’anno.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 40

Capitolo 2

Caratteristiche del progetto da realizzare: inseguitore solare

biassiale di tipo astronomico.

Il progetto ha come obiettivo la realizzazione di una interfaccia che permetta la

rilevazione del miglior orientamento possibile dei pannelli fotovoltaici in funzione della

posizione del sole, e il comando agli organi attuatori per eseguire tale operazione.

Il procedimento utilizzato per il calcolo della posizione del sole è indicato nella sezione:

“L’algoritmo per il calcolo della posizione del sole”.

Nell’interfaccia risiede un software dedicato, attraverso il quale è possibile eseguire tutte le

funzioni necessarie al normale funzionamento del sistema e a quelle di manutenzione

ordinaria o straordinaria. L’interfaccia funziona in modalità stand-alone ed è fornita di un

dispaly LCD attraverso il quale vengono visualizzati i parametri del sistema.

Un’altra scheda elettronica è necessaria per il pilotaggio degli attuatori (motori) che

realizzano il movimento dei pannelli fotovoltaici in corrispondenza della posizione del sole.

In fase di installazione le coordinate del luogo, la data e l’ora locale vengono rilevate tramite

un ricevitore GPS che sincronizza l’intero sistema; le stesse informazioni possono essere

inserite manualmente dall’installatore.

fig. 2.1 “Disegno dei componenti del sistema”

L’interfaccia può essere utilizzata in impianti biassiali e, come è ovvio, anche in

impianti monoassiali; infatti in quest’ultimo caso è sufficiente lasciare scollegate le uscite

relative ad uno dei due attuatori di movimento.

La scheda può essere utilizzata in impianti di grandi dimensioni, come pure in quelli di

piccole dimensioni; la parte relativa al calcolo della posizione del sole, alla sincronizzazione e

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 41

in generale, a tutte le operazioni possibili, non cambiano in nessuno dei due casi; quello che

cambia è solamente la parte relativa alla scheda di comando degli attuatori, che potrebbero

essere a seconda dei casi, dei motori passo-passo, dei motori in cc, dei servomotori sempre in

cc o altri tipi di motori quali gli asincroni trifase. In questo lavoro viene realizzata la scheda di

comando per i motori passo-passo.

Il circuito realizzato è valido e utilizzabile per uno o più generatori fotovoltaici in

quanto i segnali di comando generati possono andare a pilotare diverse schede di comando

degli attuatori (una per ogni generatore), purché le coordinate di longitudine e di latitudine

siano le stesse, cosa che avviene praticamente nella totalità dei casi.

Caratteristiche dell’interfaccia:

� GUI : è il sistema che permette all’utente di inserire tutti i dati di cui l’interfaccia ha

bisogno, quali ad esempio: altitudine, longitudine, data, ecc… E’ basata su un display

LCD seriale per la visualizzazione dei parametri introdotti, e su soli due pulsanti di cui

uno utilizzato per la scelta del parametro da selezionare e l’altro per la modifica del

valore del parametro selezionato, tramite lo scorrimento sempre in avanti del valore da

attribuire;

� reset del sistema con posizionamento iniziale del generatore fotovoltaico ad Est ed in

posizione verticale (punto dal quale sorge il sole); questa operazione può essere

eseguita in qualsiasi momento, oppure il sistema viene resettato in automatico alle ore

22:00 di ogni giorno per posizionare il generatore fotovoltaico nel punto iniziale del

giorno successivo;

� posizionamento automatico del generatore fotovoltaico di tipo astronomico (sensor-

less), attraverso il calcolo della posizione del sole tramite la sola conoscenza della

latitudine, longitudine, data e ora locale;

� sincronizzazione del sistema con coordinate e tempo fornite da un ricevitore GPS o

tramite l’introduzione dei dati da parte dell’utente;

fig. 2.2 “Trasmettitore e ricevitore GPS (Global Positioning System)

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 42

� invio allarme di “fuori posizione” tramite SMS, ad un numero di telefono precaricato;

se il sistema rileva una discrepanza tra i movimenti calcolati e quelli effettivamente

fatti invia un SMS di allarme. L’unica situazione di allarme prevista è quella che si ha

quando l’interfaccia comanda al motore di ruotare per un certo numero di passi, ma

prima che tutti i passi siano stati eseguiti, riconosce la pressione di un fine corsa ad

indicare invece che il sistema è arrivato alla fine e non deve più muoversi; il GSM

trova posto su una scheda elettronica distinta dall’interfaccia;

� utilizzo di motori passo-passo per realizzare il movimento del generatore fotovoltaico

richiede una scheda di pilotaggio dedicata alla scopo, costruita utilizzando gli integrati

LM293;

� funzione di protezione dal vento con velocità maggiori o uguali a 10m/s [Ecoware]; il

sistema in presenza di tale ipotesi posiziona il generatore fotovoltaico

orizzontalmente, parallelo al terreno, per offrire la minima resistenza al vento

considerando che il flusso d’aria si muove parallelamente al terreno; la rilevazione

della velocità del vento avviene grazie al sensore del vento mod. WD01 e un apposita

circuiteria che trova spazio in una piccola scheda indipendente;

fig. 2.3 “Posizionamento orizzontale in caso di vento > ai 10 m/s”

� posizionamento manuale dei generatori fotovoltaici; il generatore fotovoltaico può

essere posizionato in qualsiasi posizione, purché compresa tra i limiti impostati

dall’utente.

� Inserimento manuale dei limiti relativi all’angolo di tilt compreso tra 0 e 90° e

l’angolo azimutale che può variare da un minimo di +135 Est, a un massimo di –135

Ovest (si veda la figura seguente).

� Inserimento manuale della posizione di due ostacoli che con la loro ombra rendono

inutile il posizionamento preciso del generatore fotovoltaico; in presenza di questi

ostacoli infatti, il sistema rimane fermo finché il sole non li avrà superati (si veda la

figura seguente).

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 43

fig. 2.4 “Diagramma circolare dove sono indicati i limiti dell’altezza solare, dell’azimut

e degli ostacoli”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 44

Capitolo 3

Descrizione del progetto hardware realizzato. [ http://www.arduino.cc ]

In questa, e nella prossima pagina, sono state inserite una foto contenente tutte parti

del sistema e lo schema elettrico globale.

Nel seguito di questo capitolo le singole parti con i relativi schemi, vengono descritti

dettagliatamente.

fig. 3.1 “Vista delle componenti del sistema”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 45

fig. 3.2 “Schema elettrico dell’inseguitore solare ”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 46

ARDUINO

Il cuore del sistema è Arduino Duemilanove: una scheda elettronica basata sul

microcontrollore Atmega328. Ha 14 ingressi digitali di ingresso/uscita (di cui 6 possono

essere utilizzati come uscite PWM), 6 ingressi analogici, un oscillatore a cristallo a 16Mhz,

un connettore USB, un ingresso per l’alimentazione, un ingresso per la programmazione ICSP

e un bottone di reset. Naturalmente contiene anche tutti i componenti necessari per supportare

il microcontrollore; si può collegarlo al PC con un cavo USB oppure lo si può alimentare con

un’alimentazione esterna.

fig. 3.3 “Arduino Duemilanove con in evidenza l’ATMEL ATmega328”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 47

Schema Elettrico

fig. 3.4 “Schema elettrico completo della scheda di interfaccia Arduino Duemilanove”

SOMMARIO DELLE CARATTERISTICHE DI ARDUINO DUEMILANOVE :

Microcontrollore Atmega328

Tensione di esercizio 5V

Tensione di ingresso (consigliata) 7-12V

Tensione di ingresso (limite) 6-20V

Ingressi digitali 14 ( di cui 6 utilizzabili come uscite PWM)

Ingressi analogici 6

Corrente DC per I/O pin 40mA

Corrente DC per 3.3V pin 50mA

Memoria flash 32KB di cui 2KB usata per il bootloader

SRAM 2KB

EEPROM 512 bytes

Frequenza di clock 16Mhz

ALIMENTAZIONE

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 48

Arduino Duemilanove può essere alimentato tramite il connettore USB o con una tensione di

alimentazione esterna. La sorgente di alimentazione è selezionata automaticamente.

L’alimentazione esterna può provenire da un alimentatore in DC oppure da una batteria; nel

primo caso è disponibile un connettore plugging a 2.1mm con positivo al centro. Per

l’alimentazione con la batteria sono disponibili due pin, uno per il collegamento della massa

chiamato GND e l’atro per il collegamento del segnale positivo chiamati Vin.

La scheda può operare con una alimentazione esterna compresa tra 6 e 20 volts, ma è

raccomandabile una tensione di alimentazione compresa tra 7 e 12 volts per evitare il

surriscaldamento del regolatore di tensione.

I pin per l’alimentazione sono i seguenti:

• Vin: il pin per l’ingresso della tensione di alimentazione esterna diversa dalla USB.

• 5V: la tensione stabilizzata utilizzata per alimentare il microcontrollore e gli altri

circuiti presenti sulla scheda o ad essa collegabili.

• 3V3: una tensione di alimentazione di 3.3V generata dal cip FTDI. Corrente massima

50mA.

• GND: pin di massa.

MEMORIA

L’Atmega328 ha 32KB (di cui 2 KB usati per il bootloader) di memoria flash; 2KB di SRAM

e 1KB di EEPROM.

INGRESSI E USCITE

Ognuno dei 14 pins digitali può essere usato come ingresso o come uscita, usando le funzioni

pinMode(), digitalWrite() e digitalRead(). La tensione di lavoro è 5V. Ogni pins può fornire o

assorbire una corrente di 40mA ed hanno una resistenza interna di pull-up (disconnessa per

default) di 20-50Kohms. Inoltre, i seguenti pin hanno delle funzioni aggiuntive:

• Seriale hardware: 0 (Rx) e 1 (Tx). Usati per ricevere e trasmettere dati seriali ad un

livello logico TTL. Questi pins sono connessi ai corrispondenti pins del chip FTDI che

provvede all’interfaccia dei livelli logici da USB a TTL.

• Pin per interrupt esterno: 2 e 3. Questi pins sono utilizzati per attivare un’interruzione

su un livello basso, su un fronte di salita o di discesa o, infine, su una variazione di

valore.

• PWM: 3,5,6,9,10 e 11. Forniscono un’uscita a 8 bit PWM.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 49

• SPI: 10 (SS), 11 (MOSI) , 12 (MISO), 13 (SCK). Questi pins permettono una

comunicazione con protocollo SPI.

• LED: 13. E’ un led connesso fisicamente al pin 13. Quando il pin è ad un valore

HIGH il led è acceso, altrimenti spento.

Arduino duemilanove ha 6 ingressi digitali, ognuno dei quali forniscono una risoluzione di 10

bits (1024 valori). Per default gli ingressi accettano tensioni da 0 a 5V, ma è possibile

cambiare il range superiore utilizzando il pin AREF.

Inoltre i seguenti pins hanno le seguenti funzionalità:

• I2C: 4 (SDA) e 5 (SCL). Supportano la comunicazione I2C.

Ci sono anche un’ultima coppia di pins nella scheda:

• AREF. Riferimento di tensione per gli ingressi analogici.

• Reset. Portando questa linea bassa si resetta il microcontrollore.

COMUNICAZIONE

Arduino Duemilanove ha un certo numero di servizi per comunicare con un computer, un'altra

Arduino oppure con altri microcontrollore. L’ATmega328 fornisce una comunicazione seriale

tramite una UART TTL (5V), che è disponibile sui pin 0 (Rx) e 1 (Tx). Un FTDI FT232RL

presente sulla scheda fornisce un canale di comunicazione sopra un collegamento USB; i

drivers FTDI (inclusi nel software Arduino) forniscono allora una comunicazione seriale

virtuale al software del computer. Il software Arduino comprende un monitor seriale che

permette di inviare e di ricevere dati testuali da e per la scheda hardware (Arduino board).

PROGRAMMAZIONE

Arduino Duemilanove può essere programmato con il software chiamato Arduino. Il

microcontrollore è fornito con un bootloader, che è un software che permette il caricamento

dei programmi in memoria senza l’ausilio di programmatori esterni. E’ possibile, comunque,

programmare l’ATmega328 senza utilizzare il bootloader per avere a disposizione tutta la

memoria flash per il programma, utilizzando un programmatore esterno connesso al

connettore ICSP (In-Circuit Serial Programming).

Il bootloader è un piccolo software che viene caricato nel microcontrollore presente sulla

scheda Arduino Duemilanove e permette di programmare il micro stesso senza l’ausilio di

programmatori hardware esterni.

Quando si resetta la scheda viene fatto girare il bootloader (se presente) che fa lampeggiare il

led collegato al pin 13. Il bootloader si mette in ascolto di comandi o dati in arrivo dal

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 50

computer (che generalmente sono i programmi scritti dall’utente) e li carica nella memoria

flash del microcontrollore; dopodiché viene lanciato il programma in memoria. Se non ci sono

programmi in arrivo dal computer viene lanciato l’ultimo sketch caricato. Se invece, il

microcontrollore è vuoto viene lanciato in continuazione il bootloader.

Il bootloader viene utilizzato per evitare l’uso di programmatori hardware esterni, anche se

per caricare per la prima volta il bootloader stesso c’è bisogno proprio di uno di questi

programmatori.

RESET AUTOMATICO

Arduino Duemilanove ha un polyfuse resettabile che protegge la porta USB del computer da

corti circuiti e da sovracorrenti. Sebbene molti computer forniscono una protezione interna

dai corto circuiti, il fusibile installato fornisce un ulteriore strato di protezione. Se sulla porta

USB scorre una corrente superiore ai 500mA, il fusibile salta e la comunicazione è interrotta

finché il corto circuito o il sovraccarico vengono rimossi.

Caratteristiche fisiche

La lunghezza e la larghezza della scheda sono rispettivamente di 2,7 e 2,1 pollici; il

connettore USB e la presa jack per l’alimentazione superano tali limiti. E’ possibile collegare

la scheda con tre viti attraverso tre rispettivi fori passanti.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 51

INTERFACCIA PER IL PILOTAGGIO DEI MOTORI PASSO -PASSO.

Nella foto seguente si può vedere la scheda per il pilotaggio dei motori passo-passo

con in evidenza i due integrati L293 utilizzati allo scopo.

fig. 3.5 “La scheda per il pilotaggio dei motori passo-passo con in evidenza gli integrati

L293”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 52

fig. 3.6 “Schema elettrico per il pilotaggio dei motori passo-passo”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 53

Il circuito integrato L293 e il L293D sono composti da quattro high-current half-H drivers. Il

L293 è progettato per fornire correnti bidirezionali fino a 1 A con voltaggi da 4.5 V a 36 V. Il

L293D è progettato per fornire correnti bidirezionali fino a 600mA con voltaggi da 4.5 V a 36

V. Entrambi i dispositivi sono progettati pilotare carichi induttivi come, solenoidi, motori dc e

passo-passo, ecc…

fig. 3.7 “Applicazione tipica per l’integrato LM293”

In alternativa è possibile utilizzare gli integrati L297 e L298, ma in questo caso si dovrà

fornire il segnale clock che determina la velocità di movimento dei motori. Inoltre sono

sempre necessarie due linnee di comandi: una per la scelta del senso di rotazione e una per

l’abilitazione del motore.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 54

fig. 3.8 “Applicazione tipica per il pilotaggio dei motori passo-passo”

GLI ATTUATORI : MOTORI PASSO-PASSO. [DocWeb2]

La tipica costituzione di un motore passo-passo prevede l’impiego di un rotore a

magnete permanente (e quindi privo di avvolgimenti) dotato di un certo numero di “denti”,

con lo statore costituito da numerose espansioni polari, alimentate da altrettanti avvolgimenti.

Questi avvolgimenti sono collegati in modo da portare esternamente un numero fisso di fili,

che può essere di 4, 5 o 6 conduttori. A questi conduttori (fra di loro non intercambiabili)

viene applicata la corretta sequenza di impulsi per l’avanzamento del rotore. I “passi”

ottenibili – che dipendono dalle modalità costruttive del motore – possono andare da 40 a 200,

a seconda dei modelli.

fig. 3.9 “Costituzione di un motore passo-passo”

Al fine di facilitare la comprensione del modo di funzionamento (e quindi di pilotaggio) di

questo tipo di motore, immaginiamo di semplificarne la costituzione, schematizzando la sua

realizzazione con sole 4 espansioni polari dello statore, come nella seguente figura.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 55

fig. 3.10 “Realizzazione semplificata di un motore passo-passo”

Il rotore – essendo un magnete permanente – sarà provvisto di un polo Nord e di un polo Sud.

Gli avvolgimenti A e B sono in serie, in modo che applicando una tensione positiva ad A e

negativa a B la corrente può fluire da A a B, polarizzando in tal modo entrambe le espansioni

polari; la stessa cosa dicasi per gli avvolgimenti C e D, anch’essi in serie. A, B, C e D

vengono dette anche le “fasi” del motore passo-passo.

Il pilotaggio a singola fase o “a onda”

Date queste premesse, si immagini di fornire tensione al conduttore A, collegando B a massa

e lasciando scollegate le fasi C e D: a causa della magnetizzazione delle espansioni polari

connesse alle fasi A e B il magnete permanente del rotore ruoterà, orientandosi in modo da

allineare le proprie espansioni polari Nord e Sud nella direzione A-B, come mostrato in

figura.

fig. 3.11 “Orientamento del rotore secondo a seguito dell’alimentazione delle diverse fasi”

Se successivamente si toglie tensione alla fase A e la si commuta alla fase C in modo da

alimentare il percorso di corrente da C a D, il rotore ruoterà in senso orario di un quarto di

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 56

giro allineandosi lungo la direzione C-D. Per provocare un ulteriore avanzamento si fornirà

tensione alla fase B, poi alla D e così via, provocando una continua rotazione dell’asse del

motore.

La sequenza degli impulsi elettrici da fornire è quella evidenziata nella figura precedente

(corrispondente a due giri del motore), dove le varie sequenze sono sincronizzate da un clock,

il cui periodo determina ovviamente la frequenza di ripetizione degli impulsi, e quindi la

velocità di rotazione del motore.

Come si può dedurre dal tipo di pilotaggio, le quattro fasi A, B, C e D non sono fra di loro

equivalenti, bensì richiedono una sequenza di pilotaggio ben precisa. Per questo motivo, un

erroneo collegamento anche di una sola delle fasi determina l’avanzamento irregolare o

addirittura il blocco del motore.

Questo tipo di pilotaggio è detto “a singola fase” o “a onda” (wave drive).

Il pilotaggio a due fasi

Un altro modo di pilotare il motore è quello di alimentare contemporaneamente due fasi, ad

esempio A e C: in tal modo il rotore si allinea in una direzione intermedia fra le due

espansioni polari dello statore. Lo scopo di questa doppia alimentazione è quello di ottenere

una forza di attrazione magnetica più intensa fra statore e rotore, e quindi una maggior coppia

meccanica di rotazione per il motore.

Questa tecnica viene detta per tale motivo “pilotaggio a due fasi” (two phases drive).

Con questa tecnica, per fare avanzare il motore in senso orario è necessario fornire sequenze

di impulsi del tipo A-C, poi C-B, in seguito B-D e infine D-A, in modo da provocare la

completa rotazione dell’asse, ma sempre con il polo Nord del rotore allineato in una posizione

intermedia fra due fasi.

fig. 3.12 “Sequenza degli impulsi richiesti con le rispettive posizioni assunte dal rotore”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 57

Con entrambe le tecniche è comunque necessario garantire la corretta sequenza degli impulsi,

senza omettere alcuna sequenza, pena l’avanzamento irregolare del motore. E’ altresì ovvio

che l’inversione del senso di rotazione del motore viene ottenuto inviando al motore sequenze

di impulsi invertite, ovvero come se fossero “lette da destra a sinistra” rispetto a quelle ora

descritte.

L’avanzamento a mezzo passo

Si può osservare che è possibile altresì alternare le due sequenze: ad esempio si può

alimentare prima A, poi la coppia A-C, poi C, poi la coppia B-C, poi B, e così via. Che cosa si

ottiene? Semplice, il rotore si allinea dapprima verso A, poi in posizione intermedia fra A e C,

poi verso C, poi in posizione intermedia fra C e B, poi verso B, e così via. Lo scopo? Quello

di far compiere al rotore movimenti “a mezzo passo”, e quindi attuare posizionamenti più

precisi, anche se con una complicazione della sequenza degli impulsi.

fig. 3.13 “Il pilotaggio a mezzo passo”

Abbiamo visto che per un motore ideale a 4 espansioni polari è possibile compiere passi di un

quarto di giro (90 gradi) oppure – attuando un controllo a mezzo passo – di un ottavo di giro,

ovvero 45 gradi. In un motore reale il numero di espansioni polari è maggiore, ma sempre

multiplo di quattro, in modo da utilizzare esternamente solo 4 fili. Per tale motivo gli

avvolgimenti sono connessi in parallelo quattro a quattro (il primo con il quinto, il secondo

con il sesto, e così via).

Grazie a questo accorgimento le sequenze di impulsi evidenziati nelle figure precedenti

rimangono invariate anche per motori da decine o centinaia di passi. E’ ovvio che

all’aumentare del numero di passi si ridurrà progressivamente l’angolo di rotazione per ogni

passo, che solitamente va da 1.8 ai 9 gradi. Per questi motori, quindi, per poter compiere un

giro completo sarà necessario ripetere più volte le combinazioni sopra descritte.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 58

Motori unipolari e bipolari

Alcuni motori presenti in commercio presentano però più di quattro fili. Perché mai? La

risposta è da ricercare nella modalità di avvolgimento dei conduttori fra le varie espansioni

polari dello statore, ciò che condiziona anche le possibilità di pilotaggio. Infatti, il motore che

abbiamo finora analizzato è quello di tipo “bipolare”, così denominato poiché permette di

invertire le polarità degli avvolgimenti e quindi di far fluire la corrente in entrambe le

direzioni.

Alcuni motori sono invece avvolti in modo da possedere una configurazione interna quale

quella della figura seguente, ottenuta rendendo disponibile esternamente il punto centrale del

filo di passaggio fra le due fasi opposte dello statore (A e B da un lato, C e D dall’altro) in

modo da disporre di un totale di 6 fili, di cui quattro sono le normali fasi, e due “prese

centrali”. Alcuni tipi di motori dispongono di soli 5 fili, dove 4 sono le fasi A, B, C e D e il

quinto è dato dall’unione delle due prese centrali V+.

fig. 3.14 “Disposizione interna degli avvolgimenti di alcuni motori passo-passo”

Con questa configurazione si offre una possibilità in più, ovvero se si desidera utilizzare il

motore come se fosse di tipo bipolare, allora è sufficiente ignorare il due fili aggiuntivi e

lasciarli sconnessi. Se invece i fili (o il filo) V+ viene collegato ad una tensione di

alimentazione, allora si trasforma il motore in “unipolare”, ovvero si fa sì che la corrente negli

avvolgimenti fluisca solo dal terminale V+ ad una delle fasi, senza la possibilità di invertire il

verso della corrente. A che serve tutto ciò? Semplice: una soluzione di questo tipo permette di

semplificare il circuito di pilotaggio, riducendone il costo.

Nella figura successiva sono rappresentate schematicamente le connessioni per i due tipi di

motori: unipolari e bipolari.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 59

fig. 3.15 “Connessioni degli avvolgimento per i due tipi di motore passo-passo: unipolari e

bipolari”

Oltre ai motori passo-passo del tipo ora visto (ovvero a magnete permanente) esistono anche

altri tipi di motori a passo. Uno di questi è quello detto “a riluttanza variabile”, che impiega

un rotore in lega ferromagnetica “dolce” (ovvero a piccola isteresi) i cui “denti” si polarizzano

solo in corrispondenza al passaggio in vicinanza delle espansioni polari dello statore, ciò che

necessita di un traferro molto ridotto (inferiore al decimo di millimetro). In questo tipo di

motore il numero dei denti rotorici è differente da quello delle fasi statoriche, in modo da far

sì che quando un dente e una fase sono allineati, i due adiacenti non lo siano. Questi motori,

realizzati in ferro-silicio laminato, permettono di ottenere coppie elevate, azionamenti ad

elevata velocità ed un elevato numero di passi.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 60

CIRCUITO PER LA RILEVAZIONE DELLA VELOCITÀ DEL VENTO .

fig. 3.16 “Fotografia del circuito Circuito per la rilevazione del vento e del relativo sensore”

Il circuito utilizzato è un convertitore frequenza tensione a basso costo che utilizza

l’integrato LM331. Il segnale impulsivo proveniente dal sensore della velocità del vento è

posto in ingresso del circuito integrato; in uscita è disponibile un segnale analogico

proporzionale alla frequenza del segnale di ingresso.

Il sensore del vento è il modello WD01 acquistato dalla www.futuranet.it, ed è realizzato con

tre semisfere ruotanti e da un contatto interno.

fig. 3.17 “Contatto del sensore del vento”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 61

fig. 3.18 “Schema elettrico del convertitore frequenza-tensione”

Nota: l’alimentazione utilizzata non è quella indicata di 15V ma di soli 5V; questa tensione è

prelevata direttamente dalla Arduino shield.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 62

IL SISTEMA GPS. [EleIn]

Il GPS, acronimo per Global Positioning System è un sistema mondiale di radio-

navigazione satellitare sviluppato dal Ministero della Difesa degli Stati Uniti. Oltre che per

scopi militari è utilizzato anche in marina, nella navigazione terrestre e nei servizi basati sulla

localizzazione (come sistema di radio-localizzazione).

fig. 3.19 “Vista del GPS”

L’utilizzo del GPS non richiede il montaggio di circuiti particolari. Infatti il dispositivo invia

continuamente (circa una volta al secondo) i dati ricevuti dai satelliti attraverso la sua porta

seriale. Basta quindi collegare direttamente l’uscita del GPS all’ingresso Rx di Arduino per

leggere i dati inviati. Il problema sorge durante la fase di decodifica della stringa ricevuta, ma

è ampiamente superabile grazie al supporto decisivo del software.

Da alcuni anni, in special modo da quando i navigatori satellitari per auto sono

diventati accessibili a tutte le tasche, si fa un gran parlare di GPS, spesso a sproposito, tanto

che nell’immaginario collettivo questo termine, un tempo quasi sconosciuto, viene

identificato con un apparecchio da tenere sul cruscotto dell‘auto ed ascoltare “come fosse

l'oracolo" per sapere che strada percorrere, dove trovare il ristorante o l'albergo migliore e,

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 63

almeno si crede, in quali località sono collocati i temuti Autovelox. C’è però molta

confusione, perché in realtà il GPS è qualcosa di ben più complesso. Per comprendere di che

si tratta bisogna tornare indietro di una cinquantina d’anni, al secondo dopoguerra, quando gli

U.S.A., per contrastare l’insorgente minaccia dell’allora Unione Sovietica, commissionarono

al gruppo Rockwell (Rockwell Aerospace & Avionics, Collins) un sistema in grado di guidare

le navi (e in un secondo tempo anche gli aerei) in maniera del tutto innovativa: niente più

carte, ingombranti e fastidiose, ma un apparato elettronico capace di determinare in ogni

momento la posizione del natante anche senza bussola.

Il sistema satellitare (scopo del quale, oltre alla localizzazione, era fornire a terra un segnale

orario per sincronizzare le operazioni belliche) ideato nel lontano 1940 ma seriamente

considerato durante la Guerra Fredda, venne chiamato NAVSTAR (sigla di NAVigation

Signal Timing And Ranging) e ben presto fu applicato anche alla localizzazione di mezzi

militari sulla terraferma, postazioni mobili e imbarcazioni eventualmente in difficoltà e alla

pianificazione di eventuali operazioni di soccorso. Quanto al termine GPS, esso è l’acronimo

di Global Positioning System, che tradotto in italiano significa sistema di posizionamento

globale; è il sistema di localizzazione satellitare il cui funzionamento è basato sulla rete

NAVSTAR. Ma non bisogna confondere le due cose, perché GPS e NAVSTAR sono due

discorsi a parte: il primo si serve del secondo, in quanto sfrutta i dati di massima sul

posizionamento che la rete Navstar fornisce, ma poi ogni ricevitore può servirsi, nel

determinare la propria posizione, di metodi che si appoggiano ad altri sistemi. Tali metodi

servono per correggere l’informazione ricavata dalla rete NAVSTAR e determinare con

maggiore precisione la posizione del ricevitore e quindi del veicolo su quale è collocato. Alla

luce di ciò, si può fare una prima considerazione: il sistema di posizionamento globale (GPS)

può essere diviso in due parti fondamentali, che sono:

� SPS (Standard Positioning System): è il sistema di posizionamento essenziale, che

permette ai ricevitori di dedurre la propria posizione basandosi esclusivamente sui dati

in arrivo dalla rete NAVSTAR; a seconda degli apparati usati (civili o militari) può

dare risultati più o meno precisi; l'SPS è il sistema di base del GPS e non si può

prescindere da esso;

� sistemi complementari: con questo nome si identifica una categoria di sistemi che, da

terra o sfruttando i segnali di satelliti ausiliari non appartenenti alla rete NAVSTAR,

aiutano i ricevitori GPS civili a superare i limiti imposti dalla degradazione del

segnale ad uso civile che la stessa rete NAVSTAR rende accessibile;in ogni caso, il

GPS funziona anche senza.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 64

Per riassumere, si parla di SPS quando il GPS sfrutta soltanto le informazioni del NAVSTAR,

che possono essere desunte dal segnale civile o da quello militare a seconda che il ricevitore

sia ad uso civile o militare. Quando si dice GPS, invece, oggigiorno si intende il

posizionamento basato su NAVSTAR ma integrato da tutti i sistemi complementari

disponibili.

NAVSTAR

Quel complesso sistema di navigazione messo a punto in U.S.A. si basava e si basa sul

rilevamento della posizione di un punto in relazione alla distanza da almeno altri tre noti; per

ottenere le distanze corrispondenti si sfrutta un complesso che consta di una porzione

collocata nello spazio ed una a terra, a sua volta divisa i due parti.

fig. 3.20 “Distanze dei satelliti del sistema NAVSTAR”

Il cosiddetto segmento spaziale consiste in un certo numero di satelliti, posti in orbita non

geostazionaria intorno alla Terra. Per l’esattezza, i satelliti sono in numero di 24 operativi e

almeno 4 di scorta (pronti a rimpiazzare quelli che dovessero guastarsi) collocati su sei piani

orbitali che ruotano a 20.200 km Sopra la superficie del pianeta (26.560 rispetto al centro

della Terra) compiendo un giro di rivoluzione, lungo 166.796,8 km, in un tempo di appena 12

ore. Ogni orbita ospita quattro satelliti, che ruotano descrivendo una traiettoria circolare (il cui

diametro misura 53.120 km) inclinata di 55° rispetto al piano dell’equatore; le sei orbite

distano tra loro 60° esatti (6 x 60° = 360°) quindi sono uniformemente ripartite lungo la

circonferenza della Terra.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 65

Il sistema di satelliti originario è stato completato nel 1993 ed ha iniziato a lavorare l'8

dicembre di quell’anno, seppure in maniera limitata; la piena operatività è stata raggiunta il 27

aprile del 1995.

Siccome i satelliti impiegati hanno una prevedibile vita media, trascorsa la quale non sono più

affidabili, è previsto che la rete satellitare sia integrata con lanci ogni 10 anni, finalizzati alla

sostituzione di quei satelliti che smettono di funzionare e non possono più essere rimpiazzati

da quelli di scorta; il prossimo lancio e previsto avvenga nel 2012.

La Tabella seguente riepiloga la collocazione dei satelliti sulle rispettive orbite, sia di quelli

operativi che degli elementi di scorta; come si nota, questi ultimi si trovano solo su alcune

orbite.

Per leggere correttamente i dati nella tabella si consideri che il primo numero identifica il tipo

di satellite o, meglio, il gruppo di appartenenza; fra parentesi si trova, invece, il numero del

lancio (relativo alla rete Navstar) con il quale e stato portato in orbita.

fig. 3.21 “Identificazione e tipo dei satelliti del sistema di localizzazione satellitare”

Attualmente già cinque satelliti sono stati messi fuori servizio (e non compaiono nella tabella)

mentre uno andò distrutto, nel gennaio del 1997, in un lancio non andato a buon fine.

I gruppi di satelliti indicano delle generazioni, che si sono succedute dai primi lanci e si

succederanno negli anni a venire; possono, insomma, essere considerati delle fasi di

attuazione e mantenimento del sistema NAVSTAR. Il primo, detto blocco 1, è rappresentato

dai satelliti usati, agli albori durante la sperimentazione del NAVSTAR, per provare in pratica

come la cosa poteva funzionare; oggi non esistono più, ma grazie ad essi sono state apprese

nozioni fondamentali che hanno portato, nel 1993, alla messa in esercizio del sistema e che

hanno permesso di perfezionare la tecnica costruttiva sulla quale sono stati realizzati i satelliti

attuali.

Il blocco 1 consisteva in 11 elementi, che ruotavano su orbite inclinate di 63° e non di 55°

come quelle dell’attuale costellazione. Dopo il gruppo 1, sono stati messi in orbita i gruppi

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 66

chiamati blocchi 2 e 2A, che sono ancora in funzione e si trovano praticamente in tutti i piani

orbitali, con satelliti sia operativi che di scorta.

La terza generazione (blocco 2R) e rappresentata da satelliti già in orbita e che sono andati a

integrare l’iniziale costellazione di 21 elementi; attualmente conta sei satelliti, uno dei quali è

di scorta; gradualmente andrà a sostituire gli elementi del gruppo 2 e 2A, man mano che

questi arriveranno alla fine della loro vita.

Infine, vi è una quarta generazione (chiamata blocco 2F) prevista sia per rimpiazzare satelliti

operativi non più utilizzabili, sia per operazioni di manutenzione e assistenza.

Fin qui, si è vista la porzione del NAVSTAR collocata nello spazio; non meno importante è la

sezione a terra, detta segmento di controllo, perché provvede a gestire l’attività dei satelliti.

Più esattamente, invia ed aggiorna l’orologio di sistema, verifica ed aggiorna le variazioni di

rotta, ripete i segnali da una parte all’altra del globo.

Il segmento consta di tre elementi, rappresentati da una stazione di controllo, cinque

postazioni di monitoraggio e tre antenne.

La più importante é la stazione di controllo principale (master control station): genera l’ora di

riferimento del sistema, verifica la condizione e la posizione dei satelliti e gestisce il formato

dei dati che ciascuno di questi invia a terra perché siano usati dai ricevitori.

Per ragioni legate alla riduzione del tempo di trasmissione dei dati verso i satelliti, la

comunicazione con essi avviene a frequenze molto elevate, dell'ordine di alcuni GHz; a tali

valori le onde radio si propagano praticamente in linea retta, come la luce, quindi, affinché

possa ricevere le informazioni dal segmento di controllo, un satellite deve trovarsi in vista

rispetto alla stazione che deve trasmetterle. Siccome la stazione è unica, per come sono

collocati i satelliti non può trovarseli tutti a vista, quanto meno tutti nello stesso istante; quindi

non dialoga direttamente: il sistema NAVSTAR prevede una serie di stazioni di ripetizione,

collocate strategicamente al fine di distribuirsi i dati da e verso la costellazione satellitare in

maniera efficace.

La stazione di controllo principale e situata nella base dell'aeronautica militare di Schriever, in

Colorado (U.S.A.) e dialoga con le cinque stazioni di monitoraggio, collocate nelle isole

Hawaii, a Kwajalein, nell’isola Ascension (Oceano Atlantico) a Diego Garcia (isola

dell‘arcipelago delle Chagos nell’Oceano Indiano, che ospita una base militare USA) e a

Colorado Springs, passando

loro le informazioni da inviare ai satelliti e ricevendo da essi i dati di manutenzione che

riguardano la costellazione. Sempre a terra, sono posizionate quattro grandi antenne

paraboliche per Ia ricetrasmissione dei dati dal sistema di controllo ai satelliti e viceversa; le

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 67

antenne si trovano una nella solita isola Ascension, una nella stazione Diego Garcia, una a

Kwajalein e l‘altra nella base USAF di Colorado Springs. Tale dislocazione e sufficiente a

poter vedere l’intera costellazione, dato che le antenne sono posizionate in punti della Terra

che consentono il collegamento radio a vista con tutti i satelliti.

Il posizionamento strategico delle antenne e delle stazioni di monitoraggio e stato permesso

sia dalla vastità del territorio degli U.S.A., che dalla collaborazione della Gran Bretagna, che

controlla, sparse per il mondo, isole che costituiscono vecchie colonie o protettorati.

Giunti a questo punto, va detto che l'orario del NAVSTAR viene aggiornato a terra e poi

trasmesso ai satelliti, dalle stazioni di monitoraggio loro più vicine, per una precisa ragione: a

parità di velocità di propagazione delle onde radio, il segnale impiega meno tempo a viaggiare

da una stazione a terra a un satellite, piuttosto che a passare da un satellite all’altro, come

accadrebbe se una sola postazione a terra inviasse l'orario a uno solo dei satelliti e poi

quest’ultimo dovesse passare l’informazione agli altri. Infatti l’orbita di un satellite ha una

circonferenza che misura ben 166.796,8 chilometri, contro i 39.940,8 km della terra.

fig. 3.22 “Antenna del segmento di terra del sistema NAVSTAR”

Il sistema di aggiornamento permette di sincronizzare l’orario dei satelliti dell’intera

costellazione garantendo differenze, tra l'uno e l‘altro, non eccedenti il microsecondo; inoltre

corregge e aggiorna automaticamente le cosiddette effemeridi, che sono le tabelle che

riportano, in determinati orari del giorno (tipicamente alle 24:00 e alle 12:00) le esatte

posizioni dei singoli satelliti. In altre parole, le effemeridi corrispondono alla rotta percorsa

dai satelliti.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 68

Visibilità dei satelliti da terra

Alla luce di quanto appena visto, si può dire che per la dislocazione che i satelliti hanno

rispetto al piano orbitale terrestre e per come si smuovono, in ogni momento della giornata e

possibile, da un certo punto della superficie del pianeta, ricevere i segnali di un numero di

satelliti che varia tra cinque e otto, sebbene in particolari condizioni si possa arrivare ad

“agganciare" anche 12 o 13 satelliti. La visibilità è dovuta a molte variabili, prima fra tutte

l’elevata distanza dalla superficie terrestre: infatti il diametro della terra è rispetto a quello di

un’orbita, tanto piccolo che dalla linea dell’orizzonte e al livello del mare permette di ricevere

i segnali di quasi metà delle costellazione .

fig. 3.23 “Visibilità dei satelliti nel punto del ricevitore”

Come avviene la localizzazione

Si e detto che il sistema di localizzazione permette di conoscere la posizione di un oggetto una

volta nota la distanza da almeno tre punti; ma come si fa a ricavare i dati corrispondenti?

Come funziona la cosa? Per comprenderlo bisogna dire innanzitutto che non è il sistema di

satelliti, né tutto quello che a terra lo assiste, a dare o ricavare la posizione sebbene sembri

assurdo, NAVSTAR si limita a trasmettere un segnale orario corredato da alcune

informazioni sulla posizione dei satelliti che lo trasmettono. Chi determina la posizione, la

propria posizione (e il caso di dirlo) è il ricevitore, che lo fa valutando opportunamente il

segnale orario.

Ecco come funziona la cosa: tutti i satelliti operativi hanno lo stesso orario, assicurato da

quattro precisissimi orologi atomici (al cesio o basati su tecnologie più moderne) che

mantengono l’ora (con la precisione di 1 microsecondo) e si correggono a vicenda; l’orario

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 69

viene trasmesso da una stazione a terra che lo invia ai satelliti che si trovano in quel momento

a vista, quindi lo ripete verso gli altri, con le correzioni del caso, ovvero quelle dovute al

tempo che le onde radio impiegano a propagarsi da un apparato all’altro.

Gli orologi sfruttano tecniche diverse: quelli dei satelliti di ultima generazione si basano su

MASER (Microwave Amplification by Stimulated Emission of Radiation) passivo a idrogeno

e frequenza standard dell’atomo di rubidio, il cui errore e dell’ordine di pochi miliardesimi di

secondo al giorno; i più datati lavorano sull’emissione dell’atomo di cesio.

Tornando alla determinazione della posizione si può dire che, ciclicamente, ogni satellite

trasmette verso terra stringhe di dati contenenti l’orario, il suo identificativo nel sistema

NAVSTAR (utile al ricevitore per conoscerne la posizione) le informazioni circa l’eventuale

errore di rotta ed altro ancora.

Il ricevitore collocato su un veicolo o natante cerca il segnale di uno o più satelliti, quindi per

ognuno di quelli che trova memorizza i dati corrispondenti; ora va detto che tutti i ricevitori

sono

gestiti da un microprocessore che ha in un’apposita memoria i dati caratteristici di ogni

satellite, quindi per ciascuna stringa conosce, in ogni momento e salvo l’errore di rotta, la

posizione e quindi la distanza dalla superficie terrestre. In altre parole, se riceve i dati dal

satellite 1, va a cercare in memoria la distanza, le effemeridi corrispondenti (la rotta

abituale...) e la posizione in corrispondenza dell’ora del giorno in cui avviene la ricezione.

Per ricavare la distanza da ciascuno dei satelliti di cui riceve la portante radio, il

microprocessore calcola il tempo trascorso da quando il segnale è partito da un determinato

satellite a quando lo ha ricevuto; noto che la velocità della luce nel vuoto e 300.000 km/sec e

che le onde radio viaggiano teoricamente alla stessa velocità, e assai semplice ricavare la

distanza, dalla formula:

d = t x v

dove v e la velocità, d la distanza e t l’intervallo trascorso. Per esempio, se il segnale giunge

con un ritardo di 10 millisecondi, ha percorso una distanza di:

d = 0,01 s x 300.000 km/s = 3.000 km

Chiarito ciò, resta, a questo punto, da definire come fa il ricevitore a sapere che il segnale e

arrivato in ritardo è in che modo può determinare il tempo trascorso fra la trasmissione e la

ricezione; la risposta e che i ricevitori incorporano anch’essi un orologio, certo non atomico,

ma pur sempre molto preciso, perché basato su un oscillatore quarzato e un divisore di

frequenza ad elevato fattore di divisione, tale da garantire errori dell’ordine di qualche

secondo al mese. L'orologio di ogni ricevitore viene mantenuto aggiornato quando lo si

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 70

accende; ad aggiornarlo é il sistema satellitare, che trasmette un orario di riferimento. Più

esattamente, per mettersi al riparo dall’errore derivante dal ritardo di propagazione del segnale

radio, il ricevitore GPS cerca di collegarsi con il maggior numero possibile di satelliti, cosi

da ricavare più orari e determinare, sulla base della media degli orari ricevuti, se sia il caso di

aggiornare il proprio orologio.

Cosi, in ogni istante il ricevitore è in grado di confrontare l’orario che gli viene comunicato

con quello reale, ovvero di determinare il ritardo di ricezione; si noti comunque che

dell’orologio del ricevitore non conta molto la stabilita a lungo termine, quanto, piuttosto,

quella nel ristretto periodo di tempo in cui avviene la ricezione della stringa dal satellite e il

calcolo della distanza. Se poi, a lungo andare, il clock del ricevitore tende a deviare, viene

riportato in passo agganciando molti satelliti e facendo una media degli orari ricevuti.

Tornando alla modalità di calcalo, ad esempio, se il ricevitore "aggancia" il segnale di un

satellite il quale gli dice che sono le 10:20:03 e 20 centesimi, mentre il suo orologio segna,

invece, le 10:20:03 e 27 centesimi, significa che la portante a radiofrequenza ha viaggiato per

0,7 decimi di secondo. Ora, sapendo che la luce viaggia a 300.000 km/sec, la distanza

percorsa dal segnale per raggiungere il ricevitore è:

d = 300.000 km/s x t = 300.000 km/s x 0,07 s = 21.000 km

Quindi al momento il ricevitore GPS dista 21.000 chilometri dal satellite del quale ha ricevuto

il segnale orario.

Dato che conosce la posizione del satellite (inclinazione rispetto all’asse terrestre, posizione

angolare sulla propria rotta, distanza dal centro della terra, che e fissa...) il ricevitore

determina l’esatta distanza da esso.

Tuttavia, per determinare dove si trova, un apparato GPS non può basarsi sulla semplice

distanza da un punto noto; infatti la geometria insegna che per trovare con esattezza la

posizione di un punto bisogna conoscerne la distanza da altri tre la cui posizione sia nota

rispetto a un piano di riferimento. Anzi, per l’esattezza bisogna dire che conoscendo la

distanza da tre punti si ricavano due posizioni e non una sola, quindi il calcolo da due

possibili risultati e perciò incertezza.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 71

fig. 3.24 “Localizzazione di un punto incognito, conoscendo la distanza da tre punti noti”

Nella pratica, il microprocessore che governa il ricevitore può, opportunamente "addestrato",

escludere uno dei due punti, perché inverosimile: infatti, i due punti trovati si trovano opposti

l’uno rispetto all’altro, quindi uno dei due e falso. Per comprenderlo basta fare un semplice

ragionamento se la distanza da tre punti noti rispetto alla superficie terrestre da due posizioni,

sempre riferite al suolo, una risulta verosimilmente distante da terra e l’altra no; ad esempio,

se il ricevitore è collocato su un’autovettura e i calcoli danno un punto a 1.000 metri

d’altitudine e l’altro a 10.000, è ovvio che il secondo valore va scartato perché irreale.

Cosa trasmettono i satelliti

Finora si é parlato genericamente del segnale trasmesso a terra dai satelliti e utilizzato dagli

utenti del sistema di posizionamento globale, dicendo che ogni apparato in orbita invia

l’orario del NAVSTAR e altre informazioni complementari. Ora e giunto il momento di

vedere dettagliatamente cosa contiene la trasmissione e con quali modalità avviene.

Per prima cosa va detto che nel sistema GPS vengono utilizzati normalmente i seguenti due

segnali:

• L1 (1575.42 MHz); in esso si trovano, miscelati, diverse componenti utili al posizionamento

e alla navigazione, tra i quali il codice per la localizzazione grossolana (C/A) e quello per la

localizzazione precisa P (Y) che, essendo riservato all’utilizzo da parte dell’esercito USA e

della NATO, è codificato, quindi non può essere decifrato dai ricevitori GPS destinati all’uso

civile (barche, auto ecc.);

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 72

• L2 (1227.60 MHz); contiene il codice di localizzazione precisa P(Y) più un codice di

nuovissima introduzione, detto L2C, generato esclusivamente dai satelliti del gruppo 2R-M e

da quelli più recenti e che verranno messi in orbita negli anni a venire.

Ma come tutti i sistemi, anche il GPS è in continua evoluzione, tanto che, ai due segnali

originari, ne sono stati o ne saranno affiancati altri tre, che sono:

• L3 (1381.05 MHz); è una portante usata esclusivamente dal Defense Support Program

U.S.A. per rilevare l’eventuale lancio di missili da parte ostile, esplosioni nucleari ed altri

eventi che rilasciano grandi quantità di energia rilevabili mediante l’analisi a raggi infrarossi;

• L4 (1379.913 MHz); è una portante in fase di studio e che verrà riservata all’effettuazione di

una correzione addizionale dell'errore dovuto all‘effetto della ionosfera sulla propagazione

delle onde radio trasmesse dai satelliti;

• L5 (1176.45 MHz); attualmente in fase di proposta, questo segnale nasce dall'idea di usarlo

per la tutela dei civili (Safety of Life, SoL) e quindi per tutti i servizi collegati; la portante

rientra in un campo di frequenze protetto e riservato, a livello internazionale, alla navigazione

aerea; è previsto che la L5 sia operativa già nel primo satellite del gruppo 2F, il cui lancio

dovrebbe avvenire nel 2008.

l due segnali principali, L1 ed L2, sono quelli operativi dall'avvio dell’esercizio della rete

NAVSTAR e vengono utilizzati da tutti i ricevitori GPS, anche i più vecchi, sebbene vada

precisato che quelli civili sono predisposti per ricevere solo la portante L1; gli altri sono

destinati ad usi particolari.

fig. 3.25 “Segnali di base prodotti dal sistema NAVSTAR”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 73

Ogni satellite della rete NAVSTAR diffonde tre diversi tipi di dati, il primo dei quali e il

cosiddetto almanacco, che contiene il segnale orario grossolano (C/A Code) e le informazioni

sul satellite che lo ha trasmesso. Per orario grossolano si intende il segnale orario di massima,

quello riservato alla localizzazione ad uso civile. Il secondo tipo di dati riguarda le effemeridi

e contiene le informazioni sull’orbita e quindi le posizioni assunte dal satellite in ogni orario

del giorno; ciò permette al ricevitore di capire dove si trova il satellite stesso al momento in

cui riceve da esso il segnale orario. Il terzo tipo di dati riguarda il codice P(Y) riguardante la

localizzazione precisa, riservato ai militari.

I dati corrispondenti alle tre categorie (almanacco, effemeridi ecc.) sono contenuti in stringhe

che il satellite emette periodicamente. Più esattamente, le effemeridi, le informazioni sul

satellite e le eventuali correzioni dell'errore di rotta sono incluse in una stringa di 37.500 bit

detta Navigation Message, che viene trasferita alla tipica velocità di 50 bps; perciò per l'intera

trasmissione e ricezione da parte del ricevitore GPS sono richiesti alcuni minuti (12 e mezzo,

per l’esattezza). In pratica ciò significa che quando aggancia il segnale di un satellite, il

ricevitore impiega un tempo consistente a prendere da esso tutte le informazioni del caso.

Ultimamente le cose sono un po' migliorate, tanto che solitamente il tempo di "aggancio" dei

satelliti è ridotto a circa un minuto, salvo imprevisti.

I segnali L1 ed L2 sono entrambi modulati in fase (PSK = Phase Shift Keying) dai due codici,

che sono, come accennato, Coarse/Acquisition code, (C/A) liberamente utilizzabile, Precise

Code (P-Code) normalmente ristretto all’uso militare. Il C/A e un codice lungo 1.023 bit di

tipo pseudo-random (pseudo-casuale) prodotto alla frequenza di 1,023 MHz, che modula

entrambe le portanti L1 ed L2 ad intervalli di un millisecondo; dunque, il C/A Code viene

ripetuto ogni ms.

Va detto che il segnale C/A emesso da un satellite è sempre diverso da quello degli altri, cosi

da consentire ai ricevitori di identificare univocamente ciascun satellite, basandosi su tabelle

già memorizzate in fabbrica che permettono loro di riconoscere i tipi di codice C/A emesso

dai satelliti “agganciati". Dunque, riepilogando, ogni satellite emette un proprio codice C/A,

grazie al quale il ricevitore riesce a capire di chi si tratta.

Una volta che ha ricevuto la stringa, questi va a vedere nella tabella che ha in memoria a quale

numero di satellite corrisponde,così ne conosce la posizione nello spazio. Poi, avvalendosi

degli altri dati (almanacco ed effemeridi) determina l'esatta distanza da esso. Ma la

differenziazione dei codici C/A e indispensabile per un'altra ragione: tutti i satelliti operano

sulla stessa frequenza, quindi se un ricevitore capta due segnali vicini o simultanei, fa non

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 74

poca fatica a decifrarne l‘origine; insomma, sbaglierebbe di sicuro perché non riuscirebbe a

capire quale satellite ha mandato un certo segnale orario.

Comunque, anche in caso di ricezione simultanea il ricevitore non "va in confusione", perché

la trasmissione del C/A avviene secondo un sistema a divisione di codice (CDMA) a spettro

disperso, che consiste essenzialmente nel riservare, nella stringa di dati del C/A stesso, una

porzione ad ognuno dei codici dei satelliti della rete NAVSTAR. In tal modo è impossibile

che una trasmissione disturbi l'altra e il ricevitore può leggere tranquillamente i dati del caso.

Quanto al codice di localizzazione precise (P-Code) è simile al C/A, tuttavia modula la sola

portante L2 e lo fa alla frequenza di 10,23 MHz (non a 1,023 MHz come il C/A Code); viene

ripetuto con una periodicità decisamente diversa: una volta a settimana.

Nel normale funzionamento del sistema Navstar, il cosiddetto Anti-spoofing Made (modalità

anti-sabotaggio) il codice P viene crittografato e trasformato in quello che si identifica come

Y-code o P(Y) che può essere decifrato solamente dai dispositivi che hanno una valida chiave

di decifrazione, ossia dagli apparati in dotazione ai militari.

Vista la bassissima frequenza con la quale viene aggiornato, è evidente che tale codice non

serve a desumere direttamente la propria posizione, ma è una sorta di ausilio, di contorno del

C/A:

e una specie di chiave di lettura che permette di usare con maggiore precisione il codice di

localizzazione di massima.

Ciò si comprende guardando le cose in quest'ottica: il C/A viene declassato, sporcato un po’

come avviene con l’alcool denaturato e il P (Y) permette di togliere lo sporco e usare con

precisione il segnale orario. Se cosi non fosse, che senso avrebbe trasmettere un codice una

volta alla settimana?

Fino a pochi anni fa, il codice C/A era volutamente alterato per ridurre la precisione della

localizzazione da parte dei ricevitori ad uso civile, tanto da permettere un'accuratezza di 100

metri in orizzontale e 150 in verticale; sul piano temporale, era ammessa una tolleranza di + o

- 340 ns., che praticamente limitava il rilevamento della velocità di spostamento di veicoli sui

quali era montato un ricevitore GPS, determinando errori accettabili solo per velocità

relativamente basse. Scopo di tale limitazione era impedire il tracciamento degli aeromobili.

A decidere il declassamento del C/A Code è preposta una funzione detta SA (Selective

Availability) che attualmente è disabilitata; quindi oggi come oggi la localizzazione civile e

più precisa di un tempo, sebbene con il solo codice C/A non sia possibile raggiungere la

precisione ottenibile dal segnale ad uso militare. Per aumentare la precisione della

localizzazione civile i moderni ricevitori si avvalgono di tecniche differenziali (DGPS, cioè

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 75

Differential GPS) e di una serie di stazioni a terra ausiliarie, che consentono di affinare il

posizionamento, garantendo scarti di pochi metri, risultato che viene ottenuto anche grazie

alla capacita dei moderni apparati di ricevere contemporaneamente in dati di parecchi satelliti.

PROTOCOLLI DI COMUNICAZIONE

II ricevitore GPS acquisisce dalla rete satellitare NAVSTAR e dalle fonti ausiliarie

eventualmente accessibili, tutta una serie di informazioni che si possono suddividere in

gruppi, ciascuno dei quali è ricevuto in una determinata fase della sua attività: in acquisizione

apprende le notizie riguardanti i satelliti che "aggancia" (almanacco, effemeridi, UTC) mentre

dopo il fix e quindi in navigazione, per ciascun satellite riceve il segnale orario necessario al

calcolo delle distanze e, periodicamente, gli aggiornamenti di almanacco, effemeridi e UTC.

Dai sistemi di ausilio, riceve le informazioni sulla correzione degli errori di posizionamento,

sulla situazione atmosferica ecc.

Di quanto riceve, il ricevitore GPS può darne o meno notizia all’esterno; in altre parole, a

seconda della configurazione scelta e del tipo di apparecchio può rendere disponibili diversi

tipi di dati.

Per l’invio dei dati dai satelliti NAVSTAR (e assimilati dei sistemi ausiliari) a terra e

comunque ai ricevitori GPS, viene utilizzato un protocollo chiamato NMEA0183, il quale

detta le regole di trasmissione del C/A code.

fig. 3.26 “Codifica delle porzioni di dati contenute in un astringa NMEA0183 uscente da un

ricevitore GPS. Nota. GNSS = Global Navigation satellite Systems”

NMEA e l'acronimo di National Marine Electronics Association, l’ente che, alla nascita del

sistema GPS per applicazioni nautiche, ha definito gli standard riguardanti proprio gli apparati

di localizzazione e navigazione satellitare basati sul NAVSTAR. Secondo il protocollo, ogni

satellite invia una stringa molto lunga che può contenere fino a 20 tipi di messaggio e che

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 76

normalmente incorpora le informazioni sul satellite che l’ha trasmessa, l’orario di sistema,

l’orario per il posizionamento ecc.

STRINGHE NMEA0183

Il protocollo NMEAO183 è sostanzialmente un linguaggio che permette di trasformare i dati

in arrivo dai satelliti in stringhe composte da messaggi che precedono il nome di sentenze e

che sono ciascuna una porzione di stringa NMEA. II protocollo prevede che ciascuna inizi

con un identificativo del messaggio (Message ID) preceduto dai caratteri ASCII $GP e

termini con un checksum (controllo d’errore) preceduto da un asterisco e poi da un a capo

(CR, ovvero Carriage Return) ed un Line Feed (LF).

La sequenza dei dati prevede solitamente questo ordine:

� dati fissi del GPS (Global Positioning System Fixed Data);

� posizione geografica (latitudine, longitudine, altitudine);

� dati sui satelliti usati, i canali ad essi correlati e via di seguito (GNSS DOP);

� i satelliti agganciati e le loro caratteristiche;

� i dati essenziali dei satelliti usati e quelli minimi sul posizionamento (data e ora,

latitudine, longitudine) anche detti RMC (o Recommended Minimum Specific GNSS

Data);

� direzione al suolo e velocità.

Per quel che riguarda i dati fissi sul sistema GPS, una possibile stringa è del tipo:

$MessageID,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M ,,,, 0000*18.

Nel messaggio, $GPMessageID è la parte iniziale e in essa al posto di MessageID c’è il nome

della porzione di dati corrispondente.

SENTENZA GGA

Con riferimento alla figura 2.1.4.7, la sentenza che riguarda i dati fissi sul sistema GPS può

essere del tipo:

$GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M ,,,, 0000*18.

Volendo analizzare i dati della stringa GGA presa ad esempio, si può dire che:

� 161229.487 è l’informazione UTC (ore, minuti, secondi, millesimi di secondo) ossia

indica che l’ora di sistema è 16 ore, 12 minuti, 29 secondi e 487 millesimi;

� 3723.2475 è la latitudine e la lettera che segue il suo riferimento (N = nord, S = sud);

� 12158.3416 è, invece, la longitudine, riferita ad est o ad ovest a seconda che la lettera

seguente sia E o W; in questo caso e W (west = ovest);

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 77

� la cifra che segue la longitudine (1) indica lo stato del fix e può valere 0 se il fix non e

possibile, 1 se il fix è avvenuto con il solo sistema GPS e 2 se il fix é avvenuto con il

sistema ausiliario DGPS;

� il numero seguente (07) indica il numero di satelliti acquisiti dal ricevitore; in questo

caso, 7;

� il numero 1.0 corrisponde al valore della degradazione della precisione orizzontale;

� il valore seguente (9.0) corrisponde all’altitudine cui si trova il ricevitore, espressa con

l’unita di misura corrispondente alla lettera che segue (M indica che si tratta di metri).

I campi successivi, fino al checksum (*18) non sempre presentano valori; in particolare, gli

ultimi due riguardano informazioni presenti esclusivamente se il ricevitore riceve

informazioni dal sistema DGPS.

SENTENZA GLL

Quanto alla posizione geografica (GLL = Geographic position Latitude/Longitude) un tipico

formato del messaggio è il seguente:

$GPGLL,3723.2475,N,12158.3416,W,161229.487,A*2C.

Volendolo analizzare, va detto che:

� 3723.2475 è la solita latitudine e la lettera che segue indica se è riferita a nord o a sud;

� 12158.3416 è la solita longitudine e la lettera seguente dice se si riferisce ad est o ad

ovest;

� 161229.487 è l’informazione UTC (ore, minuti, secondi, millesimi di secondo) ossia

indica che l’ora di sistema é 16 ore, 12 minuti, 29 secondi e 487 millesimi;

� A indica la validazione dei dati (V significherebbe dati non validati).

A riguardo, prima di procedere occorre fare una precisazione, se non altro per evitare un

equivoco che potrebbe sorgere vedendo un campo riservato alla validazione dei dati; infatti,

ad un primo approccio verrebbe da domandarsi perché nel protocollo NMEA sia previsto di

dichiarare o meno valide delle informazioni che il protocollo stesso prevede; non sarebbe più

semplice non trasmetterle, certe informazioni non valide? In realtà la cosa un significato c’e

l’ha, eccome: per validazione si intende l’indicazione data al ricevitore GPS dal satellite

corrispondente, circa la validità o l’inutilizzabilità dei dati ai fini del fix. Ciò si comprende

considerando che talvolta un satellite, per un’anomalia o a causa di operazioni di

manutenzione in corso su di esso, trasmette stringhe di dati non affidabili; ora, va detto che i

ricevitori GPS ricevono tutto quello che arriva e non sono in grado, per conto proprio, di

capire se il satellite sta trasmettendo informazioni di prova o effettivamente utilizzabili per il

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 78

fix. Può cosi accadere che il ricevitore effettui il fix usando dati sbagliati, il che porterebbe ad

una errata determinazione della posizione. Introducendo la segnalazione di validazione, si da

al satellite un modo per avvertire i ricevitori quando i dati trasmessi non devono essere presi

in considerazione. Quindi, quando il campo riservato alla validazione presenta il valore (V)

non valido, il ricevitore, pur acquisendo correttamente il satellite, ne scarta le informazioni e

non le usa per il fix.

SENTENZA GSA

Detto questo, si può passare all'analisi della sentenza GSA (GNSS DOP and Satellites

Actives): contiene le informazioni sui satelliti impiegati per il posizionamento e la diluizione

della precisione che ne deriva; un tipico formato è:

$GPGSA,A,3,07,02,26,27,09,04,15 ,,,,,, 1.8,1.0,1.5*33.

Anche in questo caso, si analizza il contenuto:

� la lettera seguente l’ID del messaggio indica il tipo di fix disponibile riguardo alla

funzione di selezione delle modalità 2D (Latitudine/Longitudine) o 3D

(latitudine/longitudine/altitudine);

� A vuol dire che il ricevitore sceglie autonomamente, in base alla disponibilità dei dati

ricevuti, se dare il posizionamento bidimensionale (a terra) o tridimensionale (con

l’altitudine) mentre M significa che nel ricevitore bisogna impostare manualmente la

modalità desiderata;

� 07 e 02 indicano i satelliti utilizzati; a riguardo va precisato che i campi possibili sono

tanti quanti i canali del ricevitore, ognuno separato da una virgola; l’assenza di numeri

prima della virgola corrispondente indica che sul relativo canale non viene acquisito

alcun satellite; nel caso nell'esempio, 07 indica che il canale 1 riceve il satellite 7 del

GPS e che sul secondo canale è acquisito il satellite 2;

� 1.7 è il valore indicante la degradazione della posizione (PDOP);

� 1.0 indica la degradazione sulla posizione orizzontale (Longitudine) ossia HDOP;

� 1.5indica la degradazione sulla posizione verticale (Latitudine) ossia VDOP.

SENTENZE GSV

Riguarda i satelliti acquisiti (GSV = GNSS Satellites in View) e, diversamente da quelle

esaminate finora, può essere non una sola sentenza ma un gruppo di messaggi strutturalmente

simili, ognuno dei quali si riferisce a un massimo di quattro satelliti; per questa ragione, in

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 79

una stringa NMEA0183 possono trovarsi più sentenze GSV. Una tipica sentenza e la

seguente:

$GPGSV,2,1,07,07,79,048,42,02,51,062,43,26,36,256,42,27,27,138,42*71

I dati contenuti hanno questo significato:

� 2 è la quantità di sentenze (da 1 a 3, perché si prevede di acquisire insieme fino a 12

satelliti) dello stesso tipo necessarie per poter fornire le informazioni su tutti i satelliti

visibili;

� 1 (da 1 a 3) indica che, delle sentenze GSV necessarie per descrivere tutti i satelliti

visibili, quella in questione è la prima;

� 07 dice quanti sono i satelliti acquisiti;

� il secondo valore 07 indica l’identificativo del primo satellite riassunto nella sentenza

(in questo caso e il numero 07 della costellazione); il campo corrispondente può

contenere valori da 01 a 32;

� 79 é l'elevazione del satellite, ossia l’angolo (espresso in gradi) rispetto all‘orizzonte;

� 048 e l’azimuth (espresso in gradi) del satellite corrispondente);

� 42 é il rapporto segnale/rumore (S/N, espresso in dB) del canale dove viene ricevuto il

satellite in questione.

Dato che ogni sentenza può fornire i dati di quattro satelliti, in ciascuna di essa possono

esserci fino a quattro gruppi di dati riguardanti identificativo del satellite, elevazione, azimuth

e S/N; ad esempio, una sentenza GSV può essere cosi schematizzata: quantità di sentenze

presenti, numero della sentenza, quantità di satelliti acquisiti, poi ID satellite1, elevazione

satellite1, azimuth satellite 1, S/N satellite 1; ID satellite 2, elevazione satellite 2, azimuth

satellite 2, S/N satellite 2... ID satellite 4, elevazione satellite 4, azimuth satellite 4, S/N

satellite 4. Quantità, numero sentenza e totale satelliti acquisiti sono sempre comuni a tutte le

sentenze GSV; cambia il resto.

Per fare un esempio, in una stringa NMEA possono arrivare in sequenza due messaggi GSV

che iniziano l’uno con $GPGSV,2,1,07,04 .... e l’altro con $GPSV, 2,2,07,11...; la prima dice

che sono presenti due sentenze GSV, di cui essa e la prima, che i satelliti acquisiti sono 7 e

che i dati successivi si riferiscono al satellite n ° 4 della costellazione NAVSTAR. La seconda

dice che sono presenti due sentenze, di cui essa è la seconda, che sono stati acquisiti i soliti

sette satelliti e che i dati seguenti si riferiscono al satellite n ° 11.

SENTENZA VTG

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 80

Ora si può vedere un tipico esempio di sentenza VTG, contenente, cioè, indicazioni sulla

direzione e sulla velocità al suolo:

$GPVTG, 309.62,T,,M,O.13,N,O.2,K*6E.

Riguardo al formato di quest’ultima, si noti che:

� 309.62 è lo spostamento rilevato (in gradi sessagesimali) rispetto al punto di

riferimento;

� la lettera T è il riferimento;

� il campo tra le due virgole seguenti la T può non essere presente; comunque indica

l'eventuale spostamento rilevato riferito al riferimento magnetico (lettera M seguente);

� 0.13 è la velocità di spostamento orizzontale (velocità di movimento sul suolo

terrestre) rilevata ed espressa nell’unita di misura corrispondente alla lettera che segue:

� N indica che il valore precedente è espresso in knot;

� 0.2 è la velocità di spostamento orizzontale (velocità di movimento sul suolo terrestre)

rilevata ed espressa nell’unita di misura corrispondente alla lettera che segue;

� K indica che la velocità del campo precedente é in km/h.

SENTENZE GPRMC

Una delle sentenze NMEAO183 che merita un discorso a sé è la GPRMC: è molto importante

perché, mentre le altre danno frammenti di informazione che tutti insieme, opportunamente

elaborati danno orario, posizione al suolo e altitudine, velocità verticale e al suolo e via di

seguito, questa raggruppa direttamente tali dati. I dati del caso non arrivano direttamente dai

satelliti, come quelli dell’NMEA0183, ma vengono ricavati dai ricevitori, che li mettono poi

in quella sentenza che viene chiamata anche RMC o formato minimo. Il protocollo prevede

l’esistenza di tale sentenza perché esistono applicazioni in cui ci si può accontentare delle

informazioni essenziali o nelle quali elaborare l’intera stringa NMEA sarebbe un compito

troppo oneroso per un microprocessore dalle limitate capacita.

Una tipica stringa GPRMC è la seguente:

$GPRMC,l61229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10.

Si può analizzarla, per vedere il significato dei singoli dati contenuti:

� 161229.487 é l’informazione UTC (ore, minuti, secondi, millesimi di secondo) ossia

indica che l'ora di sistema è 16 ore, 12 minuti, 29 secondi e 487 millesimi;

� la lettera che segue indica se i dati sono validi o meno (A = dati validi, V = dati non

validi);

� 3723.2475 è la latitudine e la lettera che segue il suo riferimento (N = nord, S = sud);

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 81

� 12158.3416 è, invece, la longitudine, riferita ad est o ad ovest a seconda che la lettera

seguente sia E o W; in questo caso é W (west = ovest);

� 0.13 è la velocità al suolo, espressa in knot;

� 309.62 corrisponde allo spostamento orizzontale espresso in gradi sessagesimali

(normalmente rispetto al meridiano, di Greenwich);

� 120598 é la data UTC, espressa nel formato ggmmaa;

� il campo seguente (tra le virgole che seguono) è riservato alla variazione magnetica

che può affliggere la posizione rilevata orizzontalmente (spostamento orizzontale) e

può non contenere dati; vale E quando la variazione è uno spostamento a est e W

quando, invece, la variazione corrisponde a uno spostamento ad ovest.

La stringa termina con il checksum, che in questo caso è *10.

Molti ricevitori GPS possono essere configurati in modo da decidere se rendere disponibile

all’uscita l’intera stringa NMEA0183 oppure escludere alcune sentenze; in essi, quando le

esigenze lo richiedono e possibile limitare l’output alla sola GPRMC.

PROTOCOLLI PROPRIETARI

Alcuni costruttori usano per i propri ricevitori protocolli derivati dall’NMEA0183 ma

personalizzati che possono presentare alcune sequenze in più. In questo contesto non verranno

analizzati i protocolli proprietari.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 82

GSM

Il Global System for Mobile Communications (GSM) è attualmente lo standard di

telefonia mobile più diffuso del mondo. Più di 3 miliardi di persone in 200 paesi usano

telefoni cellulari GSM. Per questo motivo il nuovo standard è stato lanciato sul mercato come

sistema di telefonia mobile di seconda generazione o, più sinteticamente 2G. Questa

caratteristica di base significa che la possibilità di scambiare dati, oltre che conversazioni, è

già stata implementata fin dall'inizio dello sviluppo del nuovo sistema.

Il maggior punto di forza del sistema GSM è stata la possibilità, da parte degli utenti, di

accedere a tutta una serie di nuovi servizi a costi molto contenuti. Ad esempio lo scambio di

messaggi testuali (SMS) è stato sviluppato per la prima volta in assoluto in ambito GSM.

SMS

Il termine sms (acronimo dell'inglese: short message service, servizio messaggi brevi)

è comunemente usato per indicare un breve messaggio di testo inviato da un telefono cellulare

ad un altro. Il termine corretto sarebbe sm (Short message), ma ormai è invalso l'uso di

indicare il singolo messaggio col nome del servizio.Il servizio è stato originariamente

sviluppato sulla rete GSM, tuttavia è ora disponibile anche su altre reti, come la UMTS ed

alcune reti fisse (in Italia per ora solo Telecom). È possibile inviare SMS ad un telefono

cellulare anche da un computer, tramite Internet, e dal telefono di rete fissa.

Tra i principali vantaggi percepiti dell'SMS, alla base della straordinaria diffusione di questo

servizio come sistema di comunicazione, c'è il basso costo rispetto ad una lunga telefonata

(vantaggio in realtà spesso inesistente, perché una conversazione via SMS è costituita da più

sms a distanza di tempo, l'uno in risposta all'altro) e la possibilità di rendere la comunicazione

asincrona, cioè di leggere il messaggio in un qualsiasi momento successivo alla ricezione.

GPRS

Il GPRS (General Racket Radio Service) è un sistema basato sulla commutazione di

pacchetto tramite onde radio. GPRS consente di raggiungere velocità di 57.6 kbit/s in

download e di 14.4 kbit/s in upload e mantenere una connessione permanente ad Internet.

GPRS è ormai diventato lo standard per la trasmissione dati nella rete telefonica cellulare

attraverso la commutazione di pacchetto.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 83

fig. 3.28 “Fotografia GSM/GPRS”

Di seguito riporto lo schema elettrico e il listato del programma che permette l’invio di un

SMS al numero di telefono specificato, attraverso il modulo GM862-QUAD della Telit.

L ISTATO :

#include <NewSoftSerial.h> int rxPin = 2; int txPin = 3; // imposta una porta seriale software NewSoftSerial serial=NewSoftSerial(rxPin,txPin); void setup() { pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); // imposta la velocità di trasmissione della porta SoftwareSerial serial.begin(9600); Serial.begin(9600); serial.print("AT\r\n"); delay(300); while (serial.available()){ Serial.print(serial.read(),BYTE); } Serial.println(""); Serial.println("scelgo il formato testo per gli SMS"); serial.print("AT+CMGF=1\r\n"); Serial.println("done"); delay(300); Serial.println("compongo il numero di telefono"); serial.print("AT+CMGS="); delay(300);

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 84

serial.print("3284670783\r\n"); Serial.println("done"); delay(300); Serial.println("scrivo il messaggio"); serial.print("Allarme posizionamento irregolare. Si richiede l’intervento tecnico"); delay(300); serial.print(0x1A,BYTE); // la fine del messaggio si ha introducendo control-z Serial.println("done"); } void loop() { }

SCHEMA ELETTRICO :

fig. 3.29 “Schema elettrico del Telit”

I pin Rx (2) e Tx (3) presenti sul connettore vanno collegati ai rispettivi pin 2 e 3 della

Arduino 2009 shield; le masse di tutti i dispositivi utilizzati devono sempre essere collegate

insieme.

Nel micro deve essere caricato il programma riportato in precedenza, dove si può vedere che

per la gestione del collegamento seriale tra Arduino e il Telit viene utilizzata una porta seriale

software (NewSerielSoft) avente il canale Rx sul pin 2 e il canale Tx sul pin 3.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 85

IL SOFTWARE ARDUINO PER LA PROGRAMMAZIONE DELLA ARDUINO DUEMILANOVE

BOARD. [ http://www.arduino.cc ]

Il linguaggio di programmazione Arduino è basato sul linguaggio C/C++ e supporta

tutti i costrutti standard del C ed alcune funzionalità del C++. It links against AVR Libc and

allows the use of any of its functions; see its user manual for details.

I programmi scritti con Arduino possono contenere tre parti: strutture, valori (variabili e

costanti) e funzioni.

Structure

In Arduino, the standard program entry point (main) is defined in the core and calls into two

functions in a sketch. setup() is called once, then loop() is called repeatedly (until you reset

your board).

• void setup() • void loop()

Control Structures

• if • if...else • for • switch case • while • do... while • break • continue • return

Further Syntax

• ; (semicolon) • {} (curly braces) • // (single line comment) • /* */ (multi-line comment) • #define • #include

Arithmetic Operators

• = (assignment operator) • + (addition) • - (subtraction) • * (multiplication) • / (division) • % (modulo)

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 86

Comparison Operators

• == (equal to) • != (not equal to) • < (less than) • > (greater than) • <= (less than or equal to) • >= (greater than or equal to)

Boolean Operators

• && (and) • || (or) • ! (not)

Pointer Access Operators

• * dereference operator • & reference operator

Bitwise Operators

• & (bitwise and) • | (bitwise or) • ^ (bitwise xor) • ~ (bitwise not) • << (bitshift left) • >> (bitshift right) • Port Manipulation

Compound Operators

• ++ (increment) • -- (decrement) • += (compound addition) • -= (compound subtraction) • *= (compound multiplication) • /= (compound division) • &= (compound bitwise and) • |= (compound bitwise or)

Variables

Constants

• HIGH | LOW • INPUT | OUTPUT • true | false • integer constants • floating point constants

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 87

Data Types

• void keyword • boolean • char • unsigned char • byte • int • unsigned int • long • unsigned long • float • double • string • array

Variable Scope & Qualifiers

• variable scope • static • volatile • const • PROGMEM

Utilities

• cast (cast operator) • sizeof() (sizeof operator)

Functions

Digital I/O

• pinMode(pin, mode) • digitalWrite(pin, value) • int digitalRead(pin)

Analog I/O

• analogReference(type) • int analogRead(pin) • analogWrite(pin, value) - PWM

Advanced I/O

• shiftOut(dataPin, clockPin, bitOrder, value) • unsigned long pulseIn(pin, value)

Time

• unsigned long millis() • delay(ms)

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 88

• delayMicroseconds(us)

Math

• min(x, y) • max(x, y) • abs(x) • constrain(x, a, b) • map(value, fromLow, fromHigh, toLow, toHigh) • pow(base, exponent) • sqrt(x)

Trigonometry

• sin(rad) • cos(rad) • tan(rad)

Random Numbers

• randomSeed(seed) • long random(max) • long random(min, max)

External Interrupts

• attachInterrupt(interrupt, function, mode) • detachInterrupt(interrupt)

Interrupts

• interrupts() • noInterrupts()

Serial Communication

• Serial.begin(speed) • int Serial.available() • int Serial.read() • Serial.flush() • Serial.print(data) • Serial.println(data)

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 89

Descrizione del progetto software realizzato.

Il sistema che si deve automatizzare è il posizionamento del generatore fotovoltaico

nella migliore posizione possibile, in modo da avere che i raggi solari (o radiazione solare)

colpiscano i pannelli fotovoltaici sempre con un angolo di 90°.

Per fare questo il sistema calcola la posizione del sole, basandosi sulle coordinate geografiche

della latitudine e della longitudine, sulla data e sull’ora locali (posizionamento di tipo

astronomico); dopo aver calcolato la posizione il sistema invia, a seconda dei casi, i comandi

di marcia o arresto ai due motori: uno dedicato al puntamento relativamente all’altezza solare

e un altro relativo al puntamento dell’azimut (sistema biassiale). Questa operazione viene

eseguita una volta ogni 10 minuti e alla fine della giornata il generatore viene fatto ritornare

nella posizione in cui sorge il sole, in modo da essere pronto per il giorno seguente.

Dopo aver inviato i comandi di movimento ai due motori, il sistema non controlla la posizione

“reale” del generatore fotovoltaico, non avendo previsto per motivi di costo, l’impiego di

encoder da utilizzare come trasduttori di posizione; un modulo GSM opzionale, deve essere

previsto per l’invio di allarmi di “fuori posizione”, che si dovessero verificare quando il

sistema comanda ai motori di eseguire un certo numero di movimenti che non sono

ammissibili.

Prima di poter lavorare in modo automatico il sistema, in fase di installazione, ha bisogno di

essere resettato e sincronizzato. Il reset avviene posizionando il generatore nella posizione

corrispondente ad una altezza di 0° e un azimut di 135° (punto massimo in cui può sorgere il

sole); mentre il sincronismo della data, dell’ora e della posizione geografica viene fornito da

un ricevitore GPS collegabile al sistema. Tale sincronismo può, in alternativa, essere inserito

manualmente utilizzando la relativa funzione sulla scheda.

Il micro è progettato per elaborare le seguenti funzioni:

� reset del sistema con posizionamento iniziale del generatore fotovoltaico ad Est ed in

posizione verticale (punto dal quale sorge il sole);

� calcolo della posizione del sole di tipo astronomico (sensor-less) grazie alla sola

conoscenza della latitudine, longitudine, data e ora locale;

� funzione di protezione dal vento;

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 90

� Impostare l’angolo di tilt min e max, e l’angolo azimutale min e max;

� Inserimento della posizione di due ostacoli;

� posizionamento manuale dei generatori fotovoltaici;

� sincronizzazione del sistema con il GPS o manualmente con l’impostazione dei valori

attuali;

� invio allarmi con SMS.

SCENARI

Dall’analisi delle specifiche dei requisiti emergono cinque scenari che permettono di

descrivere l’intero sistema:

Main, SincronizzaGPS, Coordinate, Reset, Funzionamento automatico, Funzionamento

manuale, Salvataggio, Ostacoli, Allarme.

Il termine Scenario sta ad indicare una possibile situazione, o meglio un insieme di

operazioni, che devono essere gestite dal sistema. Un altro modo di definire il termine

scenario è quello di associarlo ad un possibile stato del sistema.

Main

Questo scenario è stato aggiunto per avere un modulo che gestisse le varie operazioni

disponibili.

Sincronizza GPS

L’installatore tramite il GPS fornisce al micro le coordinate geografiche del luogo nonché la

data e l’ora locale. Una volta sincronizzato il sistema viene resettato.

Coordinate

Questa funzione permette di sincronizzare il sistema manualmente; impostando tutti i valori

utili di tempo, data e coordinate geografiche.

Reset

All’atto dell’installazione del generatore oltre alla sincronizzazione si procede anche al reset.

Il micro può resettare il sistema, posizionando il generatore nella posizione corrispondente ad

una altezza di 0° e un azimut di 135° (punto massimo in cui può sorgere il sole).

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 91

Funzionamento automatico

Il sistema che si deve automatizzare è il posizionamento del generatore fotovoltaico nella

migliore, posizione possibile in modo da avere che i raggi solari ( o radiazione solare)

colpiscano i pannelli fotovoltaici sempre con un angolo di 90°.

Per fare questo il sistema (il micro o il PC) calcola la posizione del sole, basandosi sulle

coordinate geografiche della latitudine e della longitudine, sulla data e sull’ora locali

(posizionamento di tipo astronomico); dopo aver calcolato la posizione il sistema invia, a

seconda dei casi, i comandi di marcia o arresto ai due motori: uno dedicato al puntamento

relativamente all’altezza solare e un altro relativo al puntamento dell’azimut (sistema

biassiale). Questa operazione viene eseguita una volta ogni 10 minuti e alla fine della giornata

il generatore viene fatto ritornare nella posizione in cui sorge il sole, in modo da essere pronto

per il giorno seguente.

Funzionamento manuale

Il posizionamento manuale del generatore può essere utilizzato da un operatore addetto per

eseguire operazioni di manutenzione. Sul micro sono presenti due pulsanti: uno “avanti” e

uno “indietro” per movimentare i motori; inoltre è presente un commutatore per la scelta del

motore da far muovere (ovviamente sempre un motore alla volta.

Salvataggio

Questa funzione è molto importante e serve per posizionare il generatore fotovoltaico in una

posizione orizzontale, tale da offrire una minima resistenza all’azione del vento. E’ una

funzione di prioritaria rispetto a qualsiasi altro operazione; quando c’è vento forte il sistema è

fermo nella posizione di salvataggio.

Ostacoli

Con questa funzione si inseriscono le posizioni di due eventuali ostacoli che, con la loro

ombra, rendono vano il posizionamento preciso del generatore fotovoltaico; per tale motivo il

sistema quando si trova in presenza di questi ostacoli rimane fermo, in attesa che il sole li

superi.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 92

Allarme

Questa funzione serve per inviare un SMS in formato testo ad un numero di telefono

prestabilito, contenente l’indicazione dell’errore avvenuto e la richiesta di intervento da parte

di un operatore.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 93

DIAGRAMMA DEI CASI D ’USO

Il diagramma dei casi d’uso che scaturisce dall’analisi degli scenari è quello riportato

nella figura seguente, e mette in evidenza tutti i possibili modi di funzionamento del sistema e

i vari attori coinvolti.

fig. 3.30 “Diagramma dei casi d’uso”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 94

SPECIFICHE DI CASO D ’USO

Specifica di caso d’uso: Main

Attori:

micro

Breve descrizione:

Questa specifica di caso d’uso e il relativo DFD sono stati inseriti al fine di avere un modulo

che gestisse la sequenza delle operazioni richieste.

Flusso base:

1. Il micro legge per prima il valore sul pin analogico 4 per verificare se c’è troppo vento.

2. Se c’è vento richiama il caso d’uso salvataggio, altrimenti legge il selettore:

2.1 Se il selettore è impostato a manuale allora il micro richiama il caso d’uso manuale;

2.2 Se il selettore è impostato a sincronizzaGPS allora il micro richiama il caso d’uso

sincronizza GPS;

2.3 Se il selettore è impostato a automatico allora il micro richiama il caso d’uso

automatico;

2.4 Se il selettore è impostato a coordinate allora il micro richiama il caso d’uso

coordinate;

2.5 Se il selettore è impostato a ostacoli allora il micro richiama il caso d’uso ostacoli.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 95

DFD : main

begin

DFDsalvatag_

gio

leggoselettore

DFDsincro_

nizza gps

DFDreset

leggostato

pulsanti

DFDmanuale

dativalidi

DFDautoma_

tico

DFDcoordi_

nate

false

gps

automatico

manuale

validi

notvalidi

coordinate

pulsanti

entrambipremuti

un solo pulsantepremutoDFD

sms

gsm

leggoingresso

wind

true

dati

DFDostacoli

ostacoli

� pulsanti: i pulsanti sono collegati agli ingressi analogici 1 e 2; se sono entrambi

premuti il sistema viene resettato; se un solo pulsante è premuto il motore selezionato

ruota o in senso orario o antiorario.

� dati: il micro controlla che il sistema sia stato sincronizzato, andando a vedere se le

variabili contenenti i valori di data, ore, ecc.. contengano dati validi (devono

essere>=0).

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 96

Specifica di caso d’uso: Sincronizza GPS

Attori:

utente

Breve descrizione:

L’installatore (utente) tramite il GPS fornisce al micro le coordinate geografiche del luogo

nonché la data e l’ora locale.

Flusso base:

1. L’installatore sposta il commutatore “selezione” ,presente sull’interfaccia, in posizione

GPS.

2. L’installatore inserisce l’uscita seriale del GPS nel pin “0” (rx) della scheda di interfaccia.

Il GPS inizia a ricevere i dati dal satellite: data, ora, latitudine, longitudine.

3. I dati validi vengono registrati sulla memoria permanente dell’interfaccia.

DFD: sincronizzaGPS

datoseriale

presentebegin

end

controllodati

parsingdei dati

syncrotempo e

data

calcololatitud.

longitud.

disponibile

notdisponibile

validi

notvalidi

dataora

longitudinelatitudine

dati

DFDreset

� dati : i dati provenienti dal GPS sono validi se nel terzo campo della stringa è presente

il carattere ‘A’; se invece è presente il carattere ‘V’ i dati non sono validi.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 97

Specifica di caso d’uso: Coordinate

Attori:

utente

Breve descrizione:

La sincronizzazione del sistema può avvenire anche inserendo i valori della data, del tempo,

della longitudine e della latitudine del sito.

Flusso base:

1. Se il selettore è sulla posizione “sincronizzazione manuale” allora viene visualizzato sul

display lcd il giorno; premendo il pulsante avanti si ha l’avanzamento del giorno,

premendo invece next si conferma il valore impostato e si passa a registrare il mese, e così

via per impostare tutti i rimanenti valori.

2. Il sistema dopo essere stato sincronizzato viene resettato; il micro ruota i motori fino a

quando i fine corsa, sistemati nella posizione iniziale, non sono premuti.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 98

DFD : coordinate

beginleggo

pulsantenext

leggopulsanteavanti

premuto

not premuto

giorno++

premuto

not premuto

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

mese++

premuto

not premuto

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

anno++

premuto

not premuto

counter1 counter2 counter3

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

ore++

premuto

not premuto

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

minuti++

premuto

not premuto

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

secondi++

premuto

not premuto

counter4 counter5 counter6

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

gradilatitudine

++

premuto

not premuto

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

primilatitudine

++

premuto

not premuto

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

secondilatitudine

++

premuto

not premuto

counter7 counter8 counte9

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

gradilongitudine

++

premuto

not premuto

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

primilongitudine

++

premuto

not premuto

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

secondilongitudine

++

premuto

not premuto

counter10 counter11 counter12

endDFDreset

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 99

� counter da 1 a 12: viene eseguito il controllo sui vari contatori delle ore, dei minuti,

ecc… per permettere l’azzeramento degli stessi quando si raggiunge il valore limite.

Es: counter 1 verifica che una volta giunti alle ore 23, al prossimo passo il sistema

ricominci dalle ore 0.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 100

Specifica di caso d’uso: Reset

Attori:

micro

Breve descrizione:

All’atto dell’installazione del generatore oltre alla sincronizzazione si procede anche al reset.

Dal micro si può resettare il sistema il sistema premendo contemporaneamente i due pulsanti

usati per muovere avanti o indietro i motori; con il reset si posiziona il generatore nella

posizione corrispondente ad una altezza di 0° e un azimut di 135° (punto massimo in cui può

sorgere il sole).

Flusso base:

1. Se il selettore è sulla posizione “manuale”, premendo contemporaneamente i due pulsanti

per l’avanzamento in senso orario o in senso antiorario (i pulsanti devono essere premuti

fino alla fine dell’operazione), presenti sull’interfaccia il sistema si resetta; il micro ruota i

motori fino a quando i fine corsa, posizionati nella posizione iniziale, non sono premuti.

2. Al termine dell’operazione vengono anche inizializzate le variabili (array) che contengono

la posizione iniziale dei motori altezza e azimut.

DFD : reset

leggofc inizioaltezza

begin

motorealtezzaindietro

leggofc inizioazimut

azzeroposizione

motoreazimutindietro

endpremuto premuto

notpremuto

notpremuto

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 101

Specifica di caso d’uso: Funzionamento automatico

Attori:

micro

Breve descrizione:

Il sistema che si deve automatizzare è il posizionamento del generatore fotovoltaico nella

migliore, posizione possibile in modo da avere che i raggi solari ( o radiazione solare)

colpiscano i pannelli fotovoltaici sempre con un angolo di 90°.

Per fare questo il sistema (il micro o il PC) calcola la posizione del sole, basandosi sulle

coordinate geografiche della latitudine e della longitudine, sulla data e sull’ora locali

(posizionamento di tipo astronomico); dopo aver calcolato la posizione il sistema invia, a

seconda dei casi, i comandi di marcia o arresto ai due motori: uno dedicato al puntamento

relativamente all’altezza solare e un altro relativo al puntamento dell’azimut (sistema

biassiale). Questa operazione viene eseguita una volta ogni 10 minuti e alla fine della giornata

il generatore viene fatto ritornare nella posizione in cui sorge il sole, in modo da essere pronto

per il giorno seguente.

Nel posizionamento automatico gestito dal PC, all’atto del collegamento il PC riceve tutti i

dati utili dall’interfaccia: inoltre si ha la possibilità di fare una traccia grafica della posizione

del generatore (da confrontare eventualmente con quella della posizione del sole in un

qualsiasi giorno).

Flusso base:

1. Il micro calcola la posizione del sole, utilizzando le coordinate geografiche, la data e l’ora

attuale;

3. Il micro controlla che la posizione risultante dal passo precedente, sia compresa entro i

limiti impostati dall’utente (sheet 2/2);

2. Calcolata la posizione attuale la confronta con quella precedente e calcola lo spostamento

che i motori devono eseguire.

3. Le operazioni del punto 2 vengono eseguite una volta ogni 10 minuti.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 102

DFD : automatico (sheet 1/2)

controlloora

begin

end

22:00:00ogni

10 minuti

not ogni10 minuti

calcoloposizione

sole

altezza

altezza > 0

altezza <= 0

confrontoposizionealtezza

confronto

confronto = 0

confronto > 0

calcolan° passi

caricacontatore

leggofc finalealtezza

n°passi > 0DFDreset

premuto

motorealtezzaavanti

not premuto

aggiornoposizione

contatore- -

contatore > 0

leggofc inizialealtezza

premuto

motorealtezzaindietro

not premuto

aggiornoposizione

contatore++

contatore < 0

n°passi < 0passi

passi

confrontoposizione

azimut

confronto

calcolan° passi

endconfronto = 0

confronto > 0

caricacontatore

leggofc finaleazimut

n°passi > 0

premuto

motoreazimutavanti

not premutocontatore- -

passi

aggiornoposizione

leggofc iniziale

azimut

n°passi < 0

premuto

motoreazimutindietro

contatore++

passi

contatore = 0

contatore > 0

not premutoaggiornoposizione

contatore < 0

end

contatore = 0

controlloposizione

vedi sheetseguente

DFDallarme

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 103

DFD : automatico (sheet 2/2)

Il seguente DFD rappresenta in dettaglio i particolari dello stato “controllo posizione”

presente nello sheet precedente.

altezza > 0

azimut>

azimutOstacolo1

azimutOvest<

azimut<

azimutEst

azimut<

azimutOstacolo2

azimutOstacolo1

>azimutazimutOstacolo

2

altezza>

altezzaOstacolo1and

altezza>

altezzaMin

altezza>

altezzaOstacolo2and

altezza>

altezzaMin

altezza>

altezzaMin

confrontoposizionealtezza

end

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 104

Specifica di caso d’uso: Funzionamento manuale

Attori:

utente

Breve descrizione:

Il posizionamento manuale del generatore può essere utilizzato da un operatore addetto per

eseguire operazioni di manutenzione. Sul micro sono presenti due pulsanti: uno “avanti” e

uno “indietro” per movimentare i motori; inoltre è presente un commutatore per la scelta del

motore da far muovere (sempre un motore alla volta).

Flusso base:

1. Il selettore presente sulla scheda di interfaccia deve essere sistemato sulla posizione

“manuale”;

2. L’utente deve scegliere quale motore movimentare: quello relativo all’altezza solare o

quello relativo all’azimut agendo sull’apposito selettore presente nella scheda di

interfaccia;

3. Se il pulsante collegato all’ingresso analogico 1 viene premuto allora il motore selezionato

al passo precedente si sposta in senso orario.

4. Se il pulsante collegato all’ingresso analogico 2 viene premuto allora il motore selezionato

al passo precedente si sposta in senso antiorario.

5. Se i motori hanno raggiunto la posizione massima consentita allora i fine corsa sono

attivati e i motori si fermano.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 105

DFD : manuale

beginleggo

selettoremotore

leggostato

pulsanti

altezza

azimut

controlloposizione

leggofc finealtezza

motorealtezzaavanti

premuto

not premuto aggiornoposizione

segnalaerrore

corretto

not corretto

avanti

indietro controlloposizione

leggofc inizioaltezza

motorealtezzaindietro

premuto

not premuto aggiornoposizione

segnalaerrore

corretto

not corretto

leggostato

pulsanti

controlloposizione

leggofc fineazimut

motoreazimutindietro

premuto

not premuto aggiornoposizione

segnalaerrore

corretto

not corretto

avanti

indietro controlloposizione

leggofc inizioazimut

motoreazimutavanti

premuto

not premuto aggiornoposizione

segnalaerrore

corretto

not corretto

DFDreset

DFDreset

DFDreset

DFDreset

end

end

end

end

not premuti

not premuti

posizione 1

posizione 2

posizione 4

posizione 3

� posizione da 1 a 4: ogni volta che il sistema riceve il comando manuale di

spostamento dei motori in avanti o all’indietro, il sistema verifica se tale comando è

ammissibile e cioè il sistema non si deve trovare in una delle posizioni limite

individuate dalla pressione dei fine corsa relativi, oppure segnalate dal raggiungimento

dal superamento limite dei relativi contatori.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 106

Specifica di caso d’uso: Salvataggio

Attori:

vento

Breve descrizione:

Questo caso d’uso serve per posizionare il generatore fotovoltaico in una posizione

orizzontale, tale da offrire una minima resistenza all’azione del vento. E’ una funzione

prioritaria rispetto a qualsiasi altra operazione; quando c’è vento forte il sistema è fermo nella

posizione di salvataggio.

Flusso base:

1. Leggo lo stato dell’ingresso analogico 3.

2. Controllo il valore dell’ingresso analogico 3:

se il valore è maggiore di quello di soglia allora: ruoto il motore altezza all’indietro finché

non premo il fine corsa relativo alla posizione iniziale.

altrimenti: il sistema prosegue nel suo normale funzionamento individuato dal valore del

selettore (DFD: main)

DFD : salvataggio

leggowind

wind>

soglia

counter>0

motorealtezzaavanti

counter- -

end

leggofc altezza

inizio

motorealtezzaindietro

counter++

valorepin4

true

false

premutonot

premuto

true

false

begin

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 107

Specifica di caso d’uso: Ostacoli

Attori:

utente

Breve descrizione:

Attraverso questa funzione l’utente (installatore) può inserire i limiti di altezza minima, di

azimut minimo e massimo, e la posizione di due ostacoli.

Flusso base:

1. Se il selettore è sulla posizione “ostacoli” allora viene visualizzato sul display lcd l’altezza

minima; premendo il pulsante avanti si ha l’avanzamento dell’altezza, premendo invece

next si conferma il valore impostato e si passa a registrare il l’azimut minimo, e così via

per impostare tutti i rimanenti valori.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 108

DFD : ostacoli

beginleggo

pulsantenext

leggopulsanteavanti

premuto

not premuto

altezzaminima

++

premuto

not premuto

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

estazimut

++

premuto

not premuto

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

ovestazimut

++

premuto

not premuto

counter1 counter2 counter3

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

altezzaostacolo1

++

premuto

not premuto

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

azimutostacolo1

++

premuto

not premuto

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

altezzaostacolo2

++

premuto

not premuto

counter4 counter5 counter6

leggopulsante

next

leggopulsanteavanti

premuto

not premuto

azimutostacolo2

++

premuto

not premuto

counter7

end

� counter da 1 a 7: viene eseguito il controllo sui vari contatori dell’altezza, dell’azimut,

ecc… per permettere l’azzeramento degli stessi quando si raggiunge il valore limite.

Es: counter 1 verifica che una volta giunti all’altezza di 90°, al prossimo passo il

sistema ricominci da 0°.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 109

Specifica di caso d’uso: Allarme

Attori:

micro

Breve descrizione:

Questa funzione serve per inviare un segnale di allarme qualora il sistema, dopo aver

calcolato il numero di passi che un motore deve eseguire, si trovi in una posizione

incompatibile con il valore calcolato.

Flusso base:

1. Accendo il modem;

2. Invio il comando AT, per attivare il modem;

3. Scelgo il formato testo;

4. Compongo il numero di telefono (preimpostato);

5. Scrivo il messaggio: "Allarme fuori posizione. Impianto UNIVPM"

6. Chiudo il messaggio;

7. Spengo il modem.

DFD : allarme

accendomodem

begin

end

attivo ilmodem

scrivonumerotelefono

scelgo ilformato

testo

scrivosms

inviosms

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 110

L’algoritmo per il calcolo della posizione del sole.

[ http://www.ingegneriadelsole.it ]

Per individuare ad un certo istante dell'anno la posizione del Sole nel cielo in una

determinata località è necessario definire alcuni angoli caratteristici. Questi angoli sono:

- la latitudine L : è l'angolo che la retta passante per la località considerata ed il centro della

Terra forma con il piano dell'equatore; è positiva nell'emisfero settentrionale e negativa in

quello meridionale;

fig. 3.31 “Latitudine”

- la longitudine φ: l'altra coordinata sferica da definire è la longitudine φ che rappresenta la

misura angolare dell'arco di equatore o parallelo compreso tra il meridiano passante per il

punto considerato ed il meridiano di Greenwich.

Essa si misura da 0° a +180° verso Est e da 0° a -180° verso Ovest, fino all'antimeridiano di

Greenwich.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 111

fig. 3.32 “Longitudine”

- l'altezza o altitudine solare αααα: è l'angolo formato tra la direzione dei raggi solari ed il piano

orizzontale (complementare dell'angolo zenitale z);

fig. 3.33 “Altezza solare”

- l'azimut solare a: è l'angolo formato tra la proiezione sul piano orizzontale dei raggi solari e

la direzione sud (è positivo prima del mezzogiorno solare);

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 112

fig. 3.33 “Azimut”

- l'angolo orario h: è la distanza angolare tra il Sole e la sua posizione a mezzogiorno lungo

la sua traiettoria apparente sulla volta celeste; è anche pari all'angolo di cui deve ruotare la

Terra affinché il Sole si porti sopra il meridiano locale. Tale angolo è positivo nelle ore

antimeridiane. Esso risulta pari al numero di ore di distanza dal mezzogiorno moltiplicato per

15 (poiché la Terra ruota di 15 gradi all'ora alla velocità nominale di 360 gradi al giorno);

Per calcolare l'angolo orario in una qualunque ora di un giorno particolare è necessario

conoscere l'ora di passaggio del Sole sul meridiano locale, che è il mezzogiorno del fuso con

due correzioni: differenza di longitudine con il meridiano centrale del fuso orario (+4

minuti/grado ad ovest, -4 ad est) ed equazione del tempo. Quest'ultima correzione è dovuta

alla variazione della velocità orbitale della Terra durante l'anno.

fig. 3.34 “Equazione del tempo”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 113

In definitiva è, per l'angolo orario:

h = 15*(orario del fuso + ET + differenza longitudine - 12h)

Il grafico indica nei valori positivi che il sole è in anticipo e quindi nella formula il termine ET

è negativo, mentre la differenza di longitudine è positiva per i siti a ovest del meridiano Etneo

e negativa per i siti ad est.

Naturalmente l'orario convenzionale del fuso è da considerarsi solare (quindi, in periodo di

ora legale bisogna sottrarre un'ora).

- la declinazione solare δδδδ: è l'angolo che la direzione dei raggi solari forma a mezzogiorno,

sul meridiano considerato, col piano equatoriale; risulta anche pari all'angolo che i raggi solari

formano a mezzogiorno con la direzione dello zenit sull'equatore e coincide inoltre con la

latitudine geografica alla quale in un determinato giorno dell'anno il Sole a mezzogiorno sta

sullo zenit (il che può accadere solo fra i tropici); è positiva quando il Sole sta al di sopra del

piano equatoriale ed è negativa quando il Sole è al di sotto di esso .

fig. 3.35 “Declinazione solare”

La posizione istantanea del Sole, definita dall'altezza solare αααα e dall'azimut solare a, è

valutabile per mezzo delle relazioni:

cosh*cos*cos* δδα LsensenLsen +=

αδcos

*cos senhsena=

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 114

Poiché l'azimut solare può assumere valori maggiori di 90° (in valore assoluto), mentre la

funzione arcoseno fornisce per convenzione valori di a compresi tra -90° e +90°, è necessario,

in questi casi, apporre delle correzioni ai valori calcolati.

La declinazione solare δ può essere calcolata per mezzo della formula approssimata di

Cooper:

+=365

284*360*45,23

nsenδ

essendo n l'ennesimo giorno dell'anno e 284 il numero corrispondente all'11 ottobre e non al

23 settembre (δ(t)non è una sinusoide perfetta per l'ellitticità dell'orbita).

UTILIZZO DEI DIAGRAMMI POLARI E CIRCOLARI . [ArchBio]

La descrizione del moto apparente del sole nella volta celeste può avere luogo

mediante una carta polare proiettata sul piano orizzontale (diagramma polare) o sul piano

verticale (diagramma cilindrico).

Il sistema di coordinate impiegato è centrato nell'osservatore e usa come riferimento il piano

dell'orizzonte.

Su di esso sono definiti:

• β = altezza del sole, cioè l'angolo misurato tra l'orizzonte e la posizione del sole sopra

l'orizzonte (contata positivamente verso l'alto);

• α = azimut del sole, cioè l'angolo formato con la direzione sud dalla proiezione della

retta sole-terra, sul piano dell'orizzonte (contato positivamente in senso orario).

Il valore degli angoli (α) e (β) dipende dall'ora del giorno, dal giorno dell'anno e dalla

località.

Devono dunque essere noti l'angolo orario (t) del sole, la declinazione (d) del sole e la

latitudine (L) della località.

Le relazioni utilizzate sono le seguenti equazioni di trigonometria sferica:

sen (β) = cos (L) cos (d) cos (t) + sen (L) sen (d)

sen(α)= [cos (d) cos (t)]/ cos (β)

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 115

Il diagramma polare

fig. 3.36 “Il diagramma polare”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 116

Diagramma cilindrico

fig. 3.37 “Il diagramma cilindrico”

Ogni percorso solare è identificato da un valore di latitudine.

Quest'ultima determina sul diagramma una fascia di possibili posizioni del sole, delimitata

dalle tracce corrispondenti ai due solstizi d'inverno e d'estate.

Ogni mese, caratterizzato da una declinazione media, è rappresentato sul diagramma mediante

archi simmetrici rispetto all'asse nord-sud che si spostano verso nord a mano a mano che si va

dal solstizio d'inverno verso quello d'estate e viceversa.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 117

Questi archi sono solcati da linee che rappresentano l'ora.

Le declinazioni medie mensili corrispondono alle date qui riportate:

mese 1 2 3 4 5 6 7 8 9 10 11 12

giorno 17 16 16 15 15 11 17 16 15 15 14 10

La formula che permette di ricavare il valore di (d) in qualunque giorno dell'anno è la

seguente:

La volta celeste è l'emisfero visibile del cielo, sopra l'orizzonte, in tutte le direzioni.

Nel diagramma polare il reticolo originato dall'incrocio fra circonferenze concentriche e i

segmenti radiali consente di trasferire la posizione del sole dalla volta celeste alla carta solare

e l'incrocio tra una linea della data e una linea dell'ora corrisponde ad una coppia di valori di

(β) e (α).

fig. 3.38 “Il diagramma cilindrico”

Il reticolo del diagramma cilindrico rappresenta gli angoli verticali e orizzontali dell'intera

volta celeste e consente di trasferire la posizione del sole dalla volta celeste alla carta solare.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 118

L'incrocio tra una linea della data e una linea dell'ora corrisponde ad una coppia di valori

dell’angolo azimutale zenitale.

fig. 3.39 “Individuazione ddei punti tramite le coppie di valori Altezza e Azimut”

Una volta noti gli angoli dell'altezza e dell'azimut si può stabilire la posizione del sole nel

cielo e collegando i punti che rappresentano le posizioni dei sole nelle diverse ore del giorno,

si può tracciare il percorso del sole in quel giorno.

Il percorso del sole si può così tracciare per ogni giorno dell'anno.

Le linee rappresentano il percorso del sole per il ventesimo giorno di ciascun mese.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 119

Il percorso del sole è più lungo durante i mesi estivi quando esso raggiunge la sua massima

altezza sorgendo e tramontando con i massimi angoli azimutali misurati dal sud geografico.

Durante i mesi invernali il sole è molto più basso sull'orizzonte sorgendo e tramontando con i

minimi angoli azimutali.

fig. 3.40 “Percorso del sole nella volta celeste”

Se si collegano le ore del giorno su ciascun percorso solare si ottiene una linea tratteggiata che

rappresenta le ore del giorno."

fig. 3.41 “Percorso del sole nella volta celeste con l’indicazione delle ore”

Il diagramma solare risultante fornisce giorno per giorno e ora per ora la posizione del sole.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 120

fig. 3.42 “Esempio di diagramma solare cilindrico - latitudine 37°N”

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 121

IL LISTATO DEL PROGRAMMA .

Il listato del programma è disponibile a questo collegamento listato_ver2.doc .

#include <Stepper.h> #include <LiquidCrystal.h> #include <DateTime.h> //#include <NewSoftSerial.h> Stepper stepperAltezza(48, 7, 8); //motore altezza solare Stepper stepperAzimut(48, 9, 10); //motore azimut LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //NewSoftSerial serial=NewSoftSerial(rxPin,txPin); //int rxPin = 2; pin Rx della porta seriale software //int txPin = 3; pin Tx della porta seriale software int contatore = 0; //contatore della funzione safeMode() int byteGPS=-1; //variabile della funzione sincronizzaGps char linea[100] = ""; //variabile della funzione sincronizzaGps char comandoGPR[7] = "$GPRMC"; //variabile della funzione sincronizzaGps int cont=0; //variabile della funzione sincronizzaGps int bien=0; //variabile della funzione sincronizzaGps int conta=0; //variabile della funzione sincronizzaGps int indices[13]; //variabile della funzione sincronizzaGps int posizioneAltezza[2]; //posizione attuale [1] , posizione precedente [0] int posizioneAzimut[2]; //posizione attuale [1] , posizione precedente [0] int fcInizioAltezza = LOW; //fine corsa iniziale altezza pin 6 int fcInizioAzimut = LOW; //fine corsa iniziale azimut pin 13 int fcFineAltezza = LOW; //fine corsa finale altezza pin 6 int fcFineAzimut = LOW; //fine corsa finale azimut pin 13 int avanti = 0; //pulsante avanti nero int indietro = 0; //pulsanti indietro rosso / conferma introduzione coordinate int ore = -1;int minuti = -1;int secondi = -1; //inizializzazione tempo int giorno = 0;int mese = 0;int anno = 0; //inizializzazione data int lag = -1;int lam = -1;int las = -1; //inizializzazione latitudine ° ' " int logg = -1;int lom = -1;int los = -1; //inizializzazione longitudine ° ' " float latitudine = -1.0; //inizializzazione variabile della latitudine float longitudine = -1.0; //inizializzazione variabile della longitudine float meridiano = 15.0; //0.26179939 meridiano di riferimento 15°0'0" (Etna) boolean semaforoCoordinate = true; boolean semaforoGps = true; int soglia = 40; //limite vento: 10m/s corrispondono a 40 int wind = 0; //inizializza la variabile che contiene il valore del vento int altezzaMin = 0; //inizializza posizione in gradi della minima altezza int altezzaMax = 90; //inizializza altezza massima int azimutEst = 135; //inizializza l’angolo azimutale iniziale int azimutOvest = -135; //inizializza l’angolo azimutale finale int altezzaOstacolo1 = 0; //inizializza l’altezza dell’ostacolo1 int azimutOstacolo1 = 135; //inizializza l’azimut dell’ostacolo1 int altezzaOstacolo2 = 0; //inizializza l’altezza dell’ostacolo2 int azimutOstacolo2 = -135; ; //inizializza l’azimut dell’ostacolo2 float tempo = 0.0; float equazioneTempo = 0.0; float deltaLongitudine = 0.0; float mezzogiorno = 0.0; //sull'orologio dell'osservatore; considero l'ora solare float angoloOrario = 0.0; //angolo orario float declinazione = 0.0; //declinazione float altezzaSolare = 0.0; //altezza solare float azimut = 0.0; //azimut void setup(){ Serial.begin(4800); //inizializza la serila a 4800 per comunicare con il GPS

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 122

stepperAltezza.setSpeed(10); //imposto la velocità di movimento del motore stepperAzimut.setSpeed(10); //imposto la velocità di movimento del motore lcd.begin(2, 16); //imposto un LCD 2 righe, 16 colonne for (int i=0;i<100;i++){ // inizializza il buffer per ricevere i dati del gps linea[i]=' ';} posizioneAltezza[0]=altezzaMin; //posizione iniziale posizioneAzimut[0]=azimutEst; //posizione iniziale posizioneAltezza[1]=altezzaMin; //posizione attuale posizioneAzimut[1]=azimutEst; //posizione attuale } void loop(){ if (!safeMode()){ int selettore = analogRead(3); if (selettore <= 128){ //richiama la funzione automatico if ((giorno > 0)&&(mese > 0)&&(anno > 0)&&(ore >= 0)&&(minuti >= 0)&&(secondi >= 0)&&(lag >= 0)&&(lam >= 0)&&(las >= 0)&&(logg >= 0)&&(lom >= 0)&&(los >= 0)&&(DateTime.available())){ semaforoCoordinate = true; semaforoGps = true; automatico();} else { lcd.setCursor(0, 0); lcd.print("dati non validi!"); lcd.setCursor(0, 1); lcd.print(" sincronizzare "); delay(100); semaforoGps = true; semaforoCoordinate = true;}} if ((selettore > 128)&&(selettore <= 298)) { // richiama la funzione manuale lcd.setCursor(0, 0); lcd.print(" funzionamento "); lcd.setCursor(0, 1); lcd.print(" manuale "); delay(100); avanti = analogRead(2); // leggo lo stato del pulsante avanti indietro = analogRead(1); // leggo lo stato del pulsante indietro if ((avanti >=512)&&(indietro >=512)){reset();} else {manuale();}} if ((selettore > 298)&&(selettore <= 426)) { // richiama la funzione pc lcd.setCursor(0, 0); lcd.print("sincronizzazione"); lcd.setCursor(0, 1); lcd.print(" manuale "); //delay(2000); if (semaforoCoordinate == true){ digitaCoordinate();}} if ((selettore > 426)&&(selettore <= 768)) { // richiama la funzione gps lcd.setCursor(0, 0); lcd.print("sincronizzazione"); lcd.setCursor(0, 1); lcd.print(" con GPS "); sincronizzaGps();} if (selettore > 768) { // richiama la funzione ostacoli lcd.setCursor(0, 0); lcd.print(" inserimento "); lcd.setCursor(0, 1); lcd.print(" ostacoli "); ostacoli();}} } boolean safeMode(){ //funzione salvataggio int result = false; wind = analogRead(4); //ingresso analogico del segnale presenza vento if (wind > soglia){ int fcwind = digitalRead(6); if (fcwind == LOW) { stepperAltezza.step(-1); contatore++;} result = true; lcd.setCursor(0, 0); lcd.print(" vento forte "); lcd.setCursor(0, 1); lcd.print(" safety mode ");} else {

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 123

if (contatore > 0){ contatore--; stepperAltezza.step(+1); result = true; lcd.setCursor(0, 0); lcd.print(" vento nornale "); lcd.setCursor(0, 1); lcd.print(" return back ");} else {result = false;}} return result; } void sincronizzaGps(){ //funzione sincronizza con GPS while (Serial.available() && (semaforoGps == true)){ byteGPS=Serial.read(); linea[conta]=byteGPS; // If there is serial port data, it is put in the buffer conta++; if (byteGPS==13){ // If the received byte is = to 13, end of transmission cont=0; bien=0; for (int i=1;i<7;i++){ // Verifies if the received command starts with $GPR if (linea[i]==comandoGPR[i-1]){ bien++;}} if(bien==6){ // If yes, continue and process the data for (int i=0;i<100;i++){ if (linea[i]==','){ // check for the position of the "," separator indices[cont]=i; cont++;} if (linea[i]=='*'){ // ... and the "*" indices[12]=i; cont++;}} int ver = indices[1]; if (linea[ver+1]=='V'){ //dati validi lcd.setCursor(0, 0); lcd.print(" dati validi "); lcd.setCursor(0, 1); lcd.print(" OK! "); delay(1000); int j=indices[0]; char c=linea[j+1]; ore = 10*(c-'0');c=linea[j+2]; ore = ore + (c-'0')+1; c=linea[j+3]; minuti = 10*(c-'0');c=linea[j+4]; minuti = minuti + (c-'0'); c=linea[j+5]; secondi = 10*(c-'0');c=linea[j+6]; secondi = secondi + (c-'0'); j=indices[2]; c=linea[j+1]; lag = 10*(c-'0');c=linea[j+2]; lag = lag + (c-'0'); c=linea[j+3]; lam = 10*(c-'0');c=linea[j+4]; lam = lam + (c-'0'); c=linea[j+6]; las = 10*(c-'0');c=linea[j+7]; las = las + (c-'0'); las = round(las*0.6); j=indices[4]; c=linea[j+1];logg = 100*(c-'0');c=linea[j+2];logg = logg + (10*(c-'0'));c=linea[j+3];logg = logg + (c-'0'); c=linea[j+4]; lom = 10*(c-'0');c=linea[j+5]; lom = lom + (c-'0'); c=linea[j+7] ;los = 10*(c-'0');c=linea[j+8]; los = los + (c-'0'); los = round(los*0.6); j=indices[8]; c=linea[j+1]; giorno = 10*(c-'0');c=linea[j+2]; giorno = giorno + (c-'0'); c=linea[j+3]; mese = 10*(c-'0');c=linea[j+4]; mese = mese + (c-'0'); c=linea[j+5]; anno = 10*(c-'0');c=linea[j+6]; anno = anno + (c-'0'); semaforoGps = false; time_t sincro = DateTime.makeTime(secondi, minuti, ore, giorno, mese, anno ); DateTime.sync(sincro); latitudine = lag + (lam/60.0) + (las/3600.0);latitudine = radianti(latitudine); longitudine = logg + (lom/60.0) + (los/3600.0);//longitudine = radianti(longitudine); reset();}} conta=0; // Reset the buffer for (int i=0;i<100;i++){ linea[i]=' ';}} } } void manuale(){ //funzione manuale

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 124

lcd.setCursor(0, 0); lcd.print(" funzionamento "); lcd.setCursor(0, 1); lcd.print(" manuale "); int motore = analogRead(0); if (motore <= 512){ //seleziona motore altezza avanti = analogRead(2); // leggo lo stato del pulsante avanti indietro = analogRead(1); // leggo lo stato del pulsante indietro if (avanti >=512){ //richiesta avanti if ((posizioneAltezza[1]+1) <= altezzaMax){ //vedo se la richiesta è corretta fcFineAltezza = digitalRead(6); if (fcFineAltezza == LOW){ stepperAltezza.step(+1); delay(10); posizioneAltezza[0]=posizioneAltezza[1]; posizioneAltezza[1]=posizioneAltezza[1]+1; }else {lcd.setCursor(0, 0); lcd.print("errore posizione"); lcd.setCursor(0, 1); lcd.print(" resettare "); reset();} // segnala errore }*/else {lcd.setCursor(0, 0); lcd.print("errore posizione"); lcd.setCursor(0, 1); lcd.print(" resettare "); reset();}*/ // segnala errore } if (indietro >=512){ //richiesta indietro if ((posizioneAltezza[1]-1) >= altezzaMin){ fcInizioAltezza = digitalRead(6); if (fcInizioAltezza == LOW){ stepperAltezza.step(-1); delay(10); posizioneAltezza[0]=posizioneAltezza[1]; posizioneAltezza[1]=posizioneAltezza[1]-1; }else {lcd.setCursor(0, 0); lcd.print("errore posizione"); lcd.setCursor(0, 1); lcd.print(" resettare "); reset();} // segnala errore }/*else {lcd.setCursor(0, 0); lcd.print("errore posizione"); lcd.setCursor(0, 1); lcd.print(" resettare "); reset();}*/ // segnala errore } } else { //seleziona motore azimut avanti = analogRead(2); // leggo lo stato del pulsante avanti indietro = analogRead(1); // leggo lo stato del pulsante indietro if (avanti >=512){ //richiesta avanti if ((posizioneAzimut[1]-1) >= azimutOvest){ //>-135 corretto con >=-135 fcFineAzimut = digitalRead(13); if (fcFineAzimut == LOW){ stepperAzimut.step(-1); delay(10); posizioneAzimut[0]=posizioneAzimut[1]; posizioneAzimut[1]=posizioneAzimut[1]-1; }else {lcd.setCursor(0, 0); lcd.print("errore posizione"); lcd.setCursor(0, 1); lcd.print(" resettare "); reset();} // segnala errore }/*else {lcd.setCursor(0, 0); lcd.print("errore posizione"); lcd.setCursor(0, 1); lcd.print(" resettare "); reset();}*/ // segnala errore } if (indietro >=512){ //richiesta indietro if ((posizioneAzimut[1]+1) <= azimutEst){ fcInizioAzimut = digitalRead(13); if (fcInizioAzimut == LOW){ stepperAzimut.step(+1); delay(10); posizioneAzimut[0]=posizioneAzimut[1];

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 125

posizioneAzimut[1]=posizioneAzimut[1]+1; }else {lcd.setCursor(0, 0); lcd.print("errore posizione"); lcd.setCursor(0, 1); lcd.print(" resettare "); reset();} // segnala errore }/*else {lcd.setCursor(0, 0); lcd.print("errore posizione"); lcd.setCursor(0, 1); lcd.print(" resettare "); reset();}*/ // segnala errore }} } void reset(){ //funzione reset lcd.setCursor(0, 0); lcd.print(" reset in corso "); lcd.setCursor(0, 1); lcd.print(" wait "); fcInizioAltezza = digitalRead(6); //fine corsa iniziale motore altezza while (fcInizioAltezza != HIGH){ wind = analogRead(4); if (wind > soglia){break;} stepperAltezza.step(-1); delay(100); fcInizioAltezza = digitalRead(6);} int alCount = 1; while (alCount <= altezzaMin){ wind = analogRead(4); if (wind > soglia){break;} stepperAltezza.step(+1); delay(100); alCount++;} fcInizioAzimut = digitalRead(13); //fine corsa iniziale motore azimut while (fcInizioAzimut != HIGH){ wind = analogRead(4); if (wind > soglia){break;} stepperAzimut.step(+1); delay(100); fcInizioAzimut = digitalRead(13);} int azCount = 1; while (azCount <= (135 - azimutEst)){ wind = analogRead(4); if (wind > soglia){break;} stepperAzimut.step(-1); delay(100); azCount++;} posizioneAltezza[0]=altezzaMin; //reset posizione iniziale posizioneAzimut[0]=azimutEst; //reset posizione iniziale posizioneAltezza[1]=altezzaMin; //reset posizione attuale posizioneAzimut[1]=azimutEst; //reset posizione attuale lcd.clear(); } void automatico(){ //funzionamento automatico unsigned long prevtime = DateTime.now(); while( prevtime == DateTime.now() ); //attende un secondo DateTime.available(); lcd.setCursor(0, 1); lcd.print(" : : "); lcd.setCursor(0, 1); stampaData(DateTime.Hour); lcd.setCursor(3, 1); stampaData(DateTime.Minute); lcd.setCursor(6, 1); stampaData(DateTime.Second); if ((DateTime.Hour==22)&&(DateTime.Minute==00)&&(DateTime.Second==00)){ reset(); lcd.setCursor(0, 0); lcd.print(" good nigth "); lcd.setCursor(0, 1); lcd.print(" see tomorrow "); delay(3000); lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 1); lcd.print(" ");} else {

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 126

if (DateTime.Second==0){ tempo = float(DateTime.Hour) + (float(DateTime.Minute)/60) + (float(DateTime.Second)/3600); equazioneTempo = -(9.87*sin(2*2*PI*(progressivo()-81)/365.0)-7.67*sin(2*PI*(progressivo()-1)/365.0)); deltaLongitudine = meridiano - longitudine; mezzogiorno = 12.00 + (equazioneTempo/60.0) + (4/60.0)*(deltaLongitudine); //mezzogiorno del luogo angoloOrario = (mezzogiorno - tempo)*(2*PI)*15/360; //angolo orario declinazione = 0.4092797*sin((2*PI)*(284+progressivo())/365); //declinazione altezzaSolare = arcsin(sin(latitudine)*sin(declinazione)+cos(latitudine)*cos(declinazione)*cos(angoloOrario));

//altezza solare azimut = arcsin(cos(declinazione)*sin(angoloOrario)/cos(altezzaSolare)); //azimut if ((azimutOvest < gradi(azimut))&&(gradi(azimut)<azimutEst)){ if (gradi(azimut) > azimutOstacolo1){ if ((gradi(altezzaSolare) > altezzaOstacolo1)&&(gradi(altezzaSolare) > altezzaMin)){ posizione(); } else { lcd.setCursor(0, 0); lcd.print("altezza > "); lcd.setCursor(0, 1); lcd.print("altezzaOstacolo1");} } if (gradi(azimut) < azimutOstacolo2){ if ((gradi(altezzaSolare) > altezzaOstacolo2)&&(gradi(altezzaSolare) > altezzaMin)){ posizione(); } else { lcd.setCursor(0, 0); lcd.print("altezza > "); lcd.setCursor(0, 1); lcd.print("altezzaOstacolo2");} } if ((gradi(azimut)<azimutOstacolo1)&&(gradi(azimut)>azimutOstacolo2)){ if (gradi(altezzaSolare) > altezzaMin){ posizione(); } else { lcd.setCursor(0, 0); lcd.print("altezza > "); lcd.setCursor(0, 1); lcd.print("altezza minima ");} } } else { lcd.setCursor(0, 0); lcd.print("azimut fuori "); lcd.setCursor(0, 1); lcd.print("dai limiti ");} }} } void digitaCoordinate(){ //funzione inserimento manuale coordinate indietro = analogRead(1); // leggo lo stato del pulsante indietro lcd.setCursor(0, 0); lcd.print("dd | FW | NEXT"); lcd.setCursor(0, 1); lcd.print(" |black| red "); if (giorno == 0){giorno = 1;} giorno = ciclo(giorno,31,1,0,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("mm | FW | NEXT"); lcd.setCursor(0, 1); lcd.print(" |black| red "); if (mese == 0){mese = 1;} mese = ciclo(mese,12,1,0,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("yy | FW | NEXT"); lcd.setCursor(0, 1); lcd.print(" |black| red "); if (anno == 0){anno = 9;} anno = ciclo(anno,29,9,0,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("hh | FW | NEXT"); lcd.setCursor(0, 1); lcd.print(" |black| red "); if (ore == -1){ore = 0;} ore = ciclo(ore,23,0,0,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("mm | FW | NEXT");

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 127

lcd.setCursor(0, 1); lcd.print(" |black| red "); if (minuti == -1){minuti = 0;} minuti = ciclo(minuti,59,0,0,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("ss | FW | NEXT"); lcd.setCursor(0, 1); lcd.print(" |black| red "); if (secondi == -1){secondi = 0;} secondi = ciclo(secondi,59,0,0,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("la°| FW | NEXT"); lcd.setCursor(0, 1); lcd.print(" |black| red "); if (lag == -1){lag = 0;} lag = ciclo(lag,89,0,0,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("la' | FW | NEXT"); lcd.setCursor(0, 1); lcd.print(" |black| red "); if (lam == -1){lam = 0;} lam = ciclo(lam,59,0,0,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("la''| FW | NEXT"); lcd.setCursor(0, 1); lcd.print(" |black| red "); if (las == -1){las = 0;} las = ciclo(las,59,0,0,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("lo° | FW | NEXT"); lcd.setCursor(0, 1); lcd.print(" |black| red "); if (logg == -1){logg = 0;} logg = ciclo(logg,359,0,3,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("lo' | FW | NEXT"); lcd.setCursor(0, 1); lcd.print(" |black| red "); if (lom == -1){lom = 0;} lom = ciclo(lom,59,0,0,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("lo''| FW | NEXT"); lcd.setCursor(0, 1); lcd.print(" |black| red "); if (los == -1){los = 0;} los = ciclo(los,59,0,0,0); reset(); time_t sincro = DateTime.makeTime(secondi, minuti, ore, giorno, mese, anno ); DateTime.sync(sincro); latitudine = lag + (lam/60.0) + (las/3600.0);latitudine = 2*PI*latitudine/360; longitudine = logg + (lom/60.0) + (los/3600.0);//longitudine = 2*PI*longitudine/360; semaforoCoordinate = false; //} } void ostacoli(){ //funzione inserimento coordinate ostacoli indietro = analogRead(1); // leggo lo stato del pulsante indietro lcd.setCursor(0, 0); lcd.print("altezza minima "); lcd.setCursor(0, 1); lcd.print(" "); altezzaMin = ciclo(altezzaMin,90,0,0,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("azimut est "); lcd.setCursor(0, 1); lcd.print(" "); azimutEst = ciclo(azimutEst,0,135,3,1); indietro = 0; lcd.setCursor(0, 0); lcd.print("azimut ovest "); lcd.setCursor(0, 1); lcd.print(" "); azimutOvest = ciclo(azimutOvest,0,-135,33,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("altezza ostac.1 "); lcd.setCursor(0, 1); lcd.print(" ");

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 128

altezzaOstacolo1 = ciclo(altezzaOstacolo1,90,1,0,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("azimut ostac.1 "); lcd.setCursor(0, 1); lcd.print(" "); azimutOstacolo1 = ciclo(azimutOstacolo1,0,135,3,1); indietro = 0; lcd.setCursor(0, 0); lcd.print("altezza ostac.2 "); lcd.setCursor(0, 1); lcd.print(" "); altezzaOstacolo2 = ciclo(altezzaOstacolo2,90,1,0,0); indietro = 0; lcd.setCursor(0, 0); lcd.print("azimut ostac.2 "); lcd.setCursor(0, 1); lcd.print(" "); azimutOstacolo2 = ciclo(azimutOstacolo2,0,-135,33,0); indietro = 0; } int progressivo(){ //calcolo del numero progressivo corrispondente al giorno dell’anno int pro = 0; int anno = 1900 + int(DateTime.Year); int mese = int(DateTime.Month); int giorno = int(DateTime.Day); int bise = bisestile(anno); if (mese==1){pro=giorno;} if (mese==2){pro=0*30+1*31+giorno;} if (mese==3){pro=0*30+1*31+giorno+bise;} if (mese==4){pro=0*30+2*31+giorno+bise;} if (mese==5){pro=1*30+2*31+giorno+bise;} if (mese==6){pro=1*30+3*31+giorno+bise;} if (mese==7){pro=2*30+3*31+giorno+bise;} if (mese==8){pro=2*30+4*31+giorno+bise;} if (mese==9){pro=2*30+5*31+giorno+bise;} if (mese==10){pro=3*30+5*31+giorno+bise;} if (mese==11){pro=3*30+6*31+giorno+bise;} if (mese==12){pro=4*30+6*31+giorno+bise;} return pro; } int bisestile(int a){ //funzione per scoprire se l’anno in corso è bisestile int bis = 28; if(a%4==0){ if(a%100==0){ if(a%400==0) bis = 29; else bis = 28; } else bis = 29;} else bis = 28; return bis; } int gradi( float x){ //trasforma i radianti in gradi int gra = round(x*360.0/(2*PI)); return gra; } float radianti( float x){ //trasforma I gradi in radianti float rad = 2*PI*x/360.0; return rad; } float arcsin(float x){ //funzione arcsin() float rad = 2 *arctan(x/(1+sqrt(1-pow(x,2)))); return rad; } float arctan(float x){ //funzione arctan() float rad = 0.0; for (int i = 0 ; i <= 200 ; i=i+1 ){ rad = rad + (pow(-1,i)*pow(x,2*i+1))/(2*i+1);} // con |x|<1

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 129

return rad; } void stampaValore(int x){ //stampa sul display LCD if (x < 10){ lcd.setCursor(0, 1); lcd.print("0"); lcd.setCursor(1, 1); lcd.print(x); }else {lcd.setCursor(0, 1); lcd.print(x);} } void stampaValore3(int x){ //stampa sul display LCD if (x < 10){ lcd.setCursor(0, 1); lcd.print("00"); lcd.setCursor(2, 1); lcd.print(x); }else {if ((x >=10)&&(x < 100)){ lcd.setCursor(0, 1); lcd.print("0"); lcd.setCursor(1, 1); lcd.print(x); }else{lcd.setCursor(0, 1); lcd.print(x);}} } void stampaValore33(int x){ //stampa sul display LCD x=-x; if (x < 10){ lcd.setCursor(0, 1); lcd.print("-00"); lcd.setCursor(3, 1); lcd.print(x); }else {if ((x >=10)&&(x < 100)){ lcd.setCursor(0, 1); lcd.print("-0"); lcd.setCursor(2, 1); lcd.print(x); }else{lcd.setCursor(0, 1); lcd.print(-x);}} } void stampaData(byte digits){ if(digits < 10) lcd.print('0'); lcd.print(digits,DEC); } int ciclo(int a, int b, int c, int d, int e){ //funzione utilizzata dal caso d’uso inserisci coordinate while (indietro <= 512){ //se non è stato premuto il tasto di conferma wind = analogRead(4); if (wind > soglia){ break;} if (d == 0){stampaValore(a);} if (d == 3){stampaValore3(a);} if (d == 33){stampaValore33(a);} delay(200); // ritardo per la pressione del tasto avanti = analogRead(2); // leggo lo stato del pulsante avanti if (avanti >= 512){ if (e == 0){a++; if (a > b){a = c;}} if (e == 1){a--; if (a < b){a = c;}} } indietro = analogRead(1);} return a; } void posizione(){ //funzione utilizzata dal caso d’uso funzionamento automatico lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("Alt"); lcd.setCursor(4, 0); lcd.print(gradi(altezzaSolare)); lcd.setCursor(8, 0); lcd.print("Azi"); lcd.setCursor(12, 0); lcd.print(gradi(azimut)); if (posizioneAltezza[1] != gradi(altezzaSolare)){ //la posizione attuale è diversa da quella precedente int passi = gradi(altezzaSolare) - posizioneAltezza[1]; if (passi>0){ //devo incrementare la posizione fcFineAltezza = digitalRead(6); boolean uscitaRegolare = true;

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 130

while ((fcFineAltezza == LOW) && (passi > 0)){ //il finecorsa non è premuto oppure ho fatto tutti i passi richiesti stepperAltezza.step(+1); fcFineAltezza = digitalRead(6); passi--; posizioneAltezza[0] = posizioneAltezza[1]; //registro la posizione attuale dell'altezza solare posizioneAltezza[1] = posizioneAltezza[1]+1; if ((fcFineAltezza == HIGH) && (passi > 0)){uscitaRegolare = false;} delay(100);} if (uscitaRegolare == false) { invioSMS(); reset();}//segnala l'errore che il sistema comanda il movimento ma il generatore è già arrivato a finecorsa } else{ if (passi<0){ //devo decrementare la posizione fcInizioAltezza = digitalRead(6); boolean uscitaRegolare = true; while ((fcInizioAltezza == LOW) && (passi < 0)){ //il finecorsa non è premuto oppure ho fatto tutti i passi richiesti stepperAltezza.step(-1); fcInizioAltezza = digitalRead(6); passi++; posizioneAltezza[0] = posizioneAltezza[1]; //registro la posizione attuale dell'altezza solare posizioneAltezza[1] = posizioneAltezza[1]-1; if ((fcInizioAltezza == HIGH) && (passi > 0)){uscitaRegolare = false;} delay(100);} if (uscitaRegolare == false) { invioSMS(); reset();}}} //segnala l'errore che il sistema comanda il movimento ma il generatore è già arrivato a finecorsa } if (posizioneAzimut[1] != gradi(azimut)){ int passi = posizioneAzimut[1] - gradi(azimut); if (passi>0){ //devo incrementare la posizione fcFineAzimut = digitalRead(13); boolean uscitaRegolare = true; while ((fcFineAzimut == LOW) && (passi > 0)){ //il finecorsa non è premuto oppure ho fatto tutti i passi richiesti stepperAzimut.step(-1); fcFineAzimut = digitalRead(6); passi--; posizioneAzimut[0] = posizioneAzimut[1]; //registro la posizione attuale dell'altezza solare posizioneAzimut[1] = posizioneAzimut[1]-1; if ((fcFineAzimut == HIGH) && (passi > 0)){uscitaRegolare = false;} delay(100);} if (uscitaRegolare == false) { invioSMS(); reset();}//segnala l'errore che il sistema comanda il movimento ma il generatore è già arrivato a finecorsa }else{ if (passi<0){ //devo decrementare la posizione fcInizioAzimut = digitalRead(13); boolean uscitaRegolare = true; while ((fcInizioAzimut == LOW) && (passi < 0)){ //il finecorsa non è premuto oppure ho fatto tutti i passi richiesti stepperAzimut.step(+1); fcInizioAzimut = digitalRead(6); passi++; posizioneAzimut[0] = posizioneAzimut[1]; //registro la posizione attuale dell'altezza solare posizioneAzimut[1] = posizioneAzimut[1]+1; if ((fcFineAzimut == HIGH) && (passi > 0)){uscitaRegolare = false;} delay(100);} if (uscitaRegolare == false) { invioSMS();

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 131

reset();}//segnala l'errore che il sistema comanda il movimento ma il generatore è già arrivato a finecorsa } } } } void invioSMS(){ //invio sms per il caso d’uso allarme // accendo il modem .... non implementato per mancanza di uscite digitali libere /*lcd.setCursor(0, 1); lcd.print(" formato testo "); lcd.setCursor(1, 1); lcd.print(" per gli SMS "); delay(1000); serial.print("AT+CMGF=1\r\n"); lcd.setCursor(0, 1); lcd.print(" done! "); lcd.setCursor(1, 1); lcd.print(" "); delay(1000); lcd.setCursor(0, 1); lcd.print("compongo numero"); lcd.setCursor(1, 1); lcd.print(" telefonico "); delay(1000); serial.print("AT+CMGS="); delay(300); serial.print("3398414215\r\n"); lcd.setCursor(0, 1); lcd.print(" done! "); lcd.setCursor(1, 1); lcd.print(" "); delay(1000); lcd.setCursor(0, 1); lcd.print(" scrittura "); lcd.setCursor(1, 1); lcd.print(" messaggio "); delay(1000); serial.print("Allarme fuori posizione. Impianto UNIVPM"); delay(300); serial.print(0x1A,BYTE);// End the SMS with a control-z lcd.setCursor(0, 1); lcd.print(" done! "); lcd.setCursor(1, 1); lcd.print(" "); delay(1000); */ // spengo il modem .... non implementato per mancanza di uscite digitali libere }

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 132

Capitolo 4

Fasi operative.

I° fase (necessaria)

Non inserire la spinetta nel selettore

Accensione dell’interfaccia tramite una

alimentazione di 5V.

ACCENSIONE:

Appena accesa l’interfaccia si deve

sincronizzare il sistema; il display mostra la

scritta indicata qui a fianco, invitando l’utente

ad inserire i dati occorrenti con la procedura

manuale o con il GPS.

SELETTORE NELLA POSIZIONE 3:

Con il selettore in posizione 3, compare la

scritta “sincronizzazione GPS”;

si procede alla sincronizzazione con il GPS nel

seguente modo. Occorre inserire il pin tx del

GPS nel pin Rx (0) di Arduino e attendere la

validazione dei dati;

dopo tale fase sul display verrà visualizzato

“dati validi” e poi “reset, wait please “ ad

indicare che il sistema sta procedendo al

posizionamento iniziale del generatore

fotovoltaico;

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 133

la procedura a termine dopo che sono stati

premuti i finecorsa (vedi a lato) che indicano

l’avvenuto posizionamento.

SELETTORE NELLA POSIZIONE 2:

Con il selettore in posizione 2, si procede alla

sincronizzazione manuale.

Sul display viene visualizzato

“sincronizzazione manuale”.

Sul display viene visualizzato il valore del

primo dato da inserire: il giorno (gg).

Premendo il tasto nero si aumenta il giorno di

uno, mentre premendo il tasto rosso si

conferma il valore visualizzato e si prosegue

con la scelta del mese (mm), dell’anno (aa),

dell’ora (hh), dei minuti (mm), dei secondi (ss),

dei gradi (la°), primi (la’) e secondi (la’’) della

latitudine, per finire con i gradi (lo°), primi

(lo’) e secondi (lo’’) della longitudine.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 134

Al termine dell’inserimento dei dati il sistema

procede con il reset;

l’operazione ha termine dopo che sono stati

premuti i finecorsa (vedi figura a lato) che

indicano l’avvenuto posizionamento.

II° fase automatica

Non inserire la spinetta nel selettore.

Dopo la fase iniziale di sincronizzazione il

sistema visualizza sul display l’ora corrente e

trascorsi 10 minuti inizia a calcolare la

posizione del sole.

Se la posizione del sole è congruente con i

limiti impostati, il sistema visualizza sul

display l’altezza e l’azimut attuali e invia i

comandi ai motori per il corretto

posizionamento;

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 135

altrimenti segnala che la posizione calcolata è

“fuori dai limiti” impostati, e non invia nessun

comando ai motori.

Funzionamento manuale

Inserire la spinetta nella posizione indicata in

figura.

Sul display compare la scritta “funzionamento

manuale”.

Selezionare il motore da movimentare agendo

sul selettore; nella posizione uno si seleziona il

motore “altezza”, nella posizione due si

seleziona il motore “azimut”.

Sul display compare la scritta “funzionamento

manuale”.

Premendo ora sul pulsante rosso il motore

selezionato si muove di un passo in avanti;

premendo sul pulsante nero il motore

selezionato si muove indietro di un passo.

Sul display compare la scritta “funzionamento

automatico”.

Premendo contemporaneamente i due pulsanti

(il rosso e il nero) il sistema attiva la procedura

di reset, che ha termine solo quando vengono

premuti i due fine corsa, ad indicare che il

generatore ha raggiunto la posizione iniziale.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 136

Sul display compare la scritta “reset, wait

please”.

l’operazione ha termine dopo che sono stati

premuti i finecorsa XX e YY che indicano

l’avvenuto posizionamento.

Inserimento ostacoli

Inserire la spinetta nella posizione

indicata in figura.

Sul display viene visualizzato il valore

dell’altezza solare minima, sotto la quale

il generatore fotovoltaico non si muove.

Premendo il tasto nero si aumenta il

valore dell’altezza di un grado, mentre

premendo il tasto rosso si conferma il

valore visualizzato e si prosegue con la

scelta del minimo azimut verso Est, del

minimo angolo verso Ovest, dell’altezza

del primo ostacolo, dell’azimut massimo

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 137

del primo ostacolo, dell’azimut massimo

del primo ostacolo, dell’altezza del

secondo ostacolo e dell’azimut massimo

del secondo ostacolo.

Riguardo le coordinate degli ostacoli è

bene fare riferimento alla figura seguente

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 138

Capitolo 5

Conclusioni.

Dato che l’obiettivo principale è stato quello di realizzare un dispositivo dal basso

costo, in questo capitolo analizzo i costi delle varie configurazioni possibili dell’interfaccia,

facendo riferimento anche al margine di guadagno proponibile.

I costi di seguito riportati si riferiscono al prototipo realizzato quindi, possono essere

ulteriormente ridotti in fase di produzione vera e propria quando i quantitativi dei componenti

sono di decine o addirittura centinaia di unità.

MODELLO BASE

Per fare una valutazione dei costi, basta prendere un prodotto equivalente presente sul

mercato e metterlo a confronto con l’interfaccia realizzata. Il prodotto si chiama SunFollower

ed è offerto alla cifra di 299.00 Eur.

Da una prima sommaria analisi è possibile vedere che il prezzo del prototipo dell’interfaccia è

uguale a quello del prodotto in commercio e che il margine di guadagno realizzabile è di

134.54 Eur (vedere tabella seguente).

Descrizione Acquistato presso Prezzo

(IVA esclusa)

Arduino Duemilanove www.smartprj.com 24.00 Eur

Display 2x16 LCD seriale Antratek 19.96 Eur

Pulsanti, selettore, resistenze,

connettori, cavi, ecc…

Electronic Fitting 15.00 Eur (circa)

Sensore velocità del vento www.futuraelettronica.it 25.00 Eur

Contenitore con grado di protezione

all’acqua e alla polvere IP65

265x185x95

www.futuraelettronica.it 22.50 Eur

Circuito stampato www.pcbfacile.com 23.00 Eur (circa)

Saldatura e assemblaggio (1 ora) 35.00 Eur (circa)

Margine di guadagno 134.54 Eur

TOTALE 299.00 Eur

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 139

Proseguendo con un’analisi più accurata ci si accorge però che per lo stesso prezzo,

l’interfaccia costruita offre delle migliori caratteristiche, riassunte nella tabella di confronto

seguente.

Caratteristiche Arduino SunFollower

reset si si

Posizionamento automatico biassiale si --

Posizionamento automatico monoassiale si si

Sincronizzazione manuale si si

Sincronizzazione con GPS opzional --

Funzione protezione del vento si si

Posizionamento manuale si si

Inserimento manuale dei limiti si si

Inserimento manuale posizione ostacoli si --

Inizializione/memorizzazione dati su SD opzional --

Invio allarmi/dati tramite SMS/GPRS opzional --

Il punto di forza dell’interfaccia è offerto allora, dalla possibilità di aggiungere degli

elementi opzionali di grande rilievo ed efficacia: il GPS e il GSM/GPRS.

MODELLO BASE + GPS

Con il GPS è possibile snellire le procedure di installazione, in relazione

all’introduzione automatica dei dati dell’altitudine, longitudine, data e ora del luogo. Inoltre è

anche possibile utilizzare il GPS per sincronizzare l’ora esatta (ottima precisione), in

alternativa al calcolo dell’ora esatta da parte del microprocessore (bassa precisione).

La seguente tabella mostra che il costo di questa soluzione è pari a 376.00 Eur con un margine

di guadagno possibile di 154.54 Eur.

Descrizione Acquistato presso Prezzo

(IVA esclusa)

Arduino Duemilanove www.smartprj.com 24.00 Eur

Display 2x16 LCD seriale Antratek 19.96 Eur

GPS –41mlr RS 61.00 Eur

Pulsanti, selettore, resistenze,

connettori, cavi, ecc…

Electronic Fitting 15.00 Eur (circa)

Circuiti stampati + connettori www.pcbfacile.com 44.00 Eur (circa)

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 140

Contenitore con grado di protezione

all’acqua e alla polvere IP65

265x185x95

www.futuraelettronica.it 25.00 Eur

Saldatura e assemblaggio (1.5 ora) 52.50 Eur (circa)

Margine di guadagno 154.54 Eur

TOTALE 376.00 Eur

MODELLO BASE + GPS + GSM/GPRS

Oltre alle caratteristiche di base unite a quelle del GPS, la versione dell’interfaccia più

professionale è in grado di inviare in automatico degli SMS (Short Message System)

contenenti o l’indicazione in formato testo di qualche allarme, o un insieme (ridotto) di dati

utili rilevabili durante il normale funzionamento dell’interfaccia (ad esempio il livello della

batteria di alimentazione).

Con il GPRS installato è invece possibile aprire delle connessioni TCP/IP nella rete Internet e

fare il trasferimento dei dati; per tale motivo l’interfaccia può essere utilizzata anche in tutte

quelle occasioni dove sia necessario rilevare e trasmettere in rete dei dati (data logger).

La seguente tabella mostra che il costo di questa soluzione è pari a 499.00 Eur con un margine

di guadagno possibile di 170.04 Eur.

Descrizione Acquistato presso Prezzo

(IVA esclusa)

Arduino Duemilanove www.smartprj.com 24.00 Eur

Display 2x16 LCD seriale Antratek 19.96 Eur

GPS –41mlr RS 61.00 Eur

GSM/GPRS GM862 Telit www.tigal.com 49.00 Eur

Pulsanti, selettore, resistenze,

connettori, cavi, ecc…

Electronic Fitting 15.00 Eur (circa)

Contenitore con grado di protezione

all’acqua e alla polvere IP65

265x185x95

www.futuraelettronica.it 25.00 Eur

Circuiti stampati + connettori www.pcbfacile.com 65.00 Eur (circa)

Saldatura e assemblaggio (2 ora) 70.00 Eur (circa)

Margine di guadagno 170.04 Eur

TOTALE 499.00 Eur

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 141

Una nota importante da fare riguarda l’alimentazione dell’interfaccia. Nella versione

base ha bisogno di una alimentazione di 5Vcon consumi di correnti molto modesti dell’ordine

di alcune decine di mA.

Nella versione con GPS i consumi aumentano un pochino rispetto a quelli della versione base,

restando comunque sempre molto contenuti: il GPS ha un consumo di potenza di 110mW,

corrispondenti ad un assorbimento di corrente di 22mA (con tensione di alimentazione pari a

5V).

La versione professionale con GPS e GSM/GPRS richiede invece una doppia alimentazione:

5V per il l’interfaccia base e il GPS e 3.8V per l’alimentazione del GSM/GPRS; il consumo

di corrente complessivo è sempre contenuto nell’ordine delle decine di mA, ma questo

aumenta sensibilmente nella fase di instaurazione del collegamento e durante il trasferimento

dati, arrivando a toccare consumi dell’ordine di alcune centinaia di mA (con picchi di 2 A

come indicato nel manuale del Telit).

Per alimentare l’interfaccia è allora necessaria una batteria di apposite caratteristiche di

tensione e di corrente, e di un circuito per la sua ricarica (non implementato in questo lavoro).

La corrente di ricarica potrà essere prelevata dal generatore fotovoltaico o dall’inverter

associato, durante le ore diurne quando l’impianto fotovoltaico produce energia elettrica.

Un’ultima nota, prima di concludere, riguarda il fatto che per la simulazione dell’inseguitore

solare, sono stati utilizzati dei motori passo-passo, in quanto già disponibili in laboratorio. E’

utile ricordare a tale proposito, che l’interfaccia, con opportune modifiche, è in grado di

gestire anche altri tipi di motore, ad esempio in corrente continua o in alternata.

Il lavoro svolto è stato molto interessante e produttivo. Dal punto di vista tecnico, ho toccato

con mano le problematiche relative alla progettazione e realizzazione pratica di un sistema

complesso: dalla scelta dei componenti, al problema di far integrare l’hardware con il

software. Dal punto di vista didattico ho arricchito le mie conoscenze e competenze sui

“navigatori” GPS e i modem GSM/GPRS, che sono dei dispositivi entrati oramai diventati di

uso comune per quanto riguarda la localizzazione e il telecontrollo remoto.

UNIVERSITA’ POLITECNICA DELLE MARCHE

___________________________________________________________________________

Pag. 142

Bibliografia

Libri, manuali e documenti:

� [Enea1] = opuscolo n°18 “Noi per lo sviluppo sostenibile” della collana “Sviluppo

Sostenibile” edito dall’ENEA.

� [Enea2] = “Enea e-learn”, corso on-line (gratuito a seguito di registrazione) sugli

“Impianti fotovoltaici” disponibile all’indirizzo ufficiale dell’ENEA.

� [Energethics] = documento intitolato “Guida al fotovoltaico” disponibile in rete

all’indirizzo: www.energetics.it (libro_sul_fotovoltaico.pdf).

� [ArchBio] = “Manuale di architettura bioclimatica” - Cristina Benedetti – Maggioli

Editore (14_file.pdf).

� [DocWeb] = documento intitolato "Energia Solare” disponibile in rete (cap1.pdf).

� [DocWeb1] = documento intitolato “Sistemi fotovoltaici” reperibile in rete (sistemi

fotovoltaici.doc).

� [DocWeb2] = documento intitolato “Motori passo-passo” reperibile in rete (motori_p-

p.pdf), redatto dall’ITI OMAR di Novara (disciplina TDP Elettronica).

� [Ecoware] = quaderni di Ecoware n° 701 – Ing. Leopoldo Franceschini – 15

Novembre 2007 – rel 1.0, disponibile in rete (8--Quaderni Ecoware 701 rel 1 0.pdf).

� [EleIn] = “Tecnologia e apparati GPS” – Davide Scullino. Supplemento al n° 122 di

Elettronica In – Novembre 2007.

Internet:

� I siti internet consultati sono raggiungibili dai collegamenti nelle rispettive sezioni del

presente lavoro.

Data sheet:

� BC547 , BC847 , GPS , L293 , L297 , L298 , LM331 , SerialLcd , ATmega ,

GSM/GPRS GM862 Telit