UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko...

63
UNIVERSITÀ DEGLI STUDI ROMA TRE

Transcript of UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko...

Page 1: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

UNIVERSITÀ DEGLI STUDI

ROMATRE

UNIVERSITÀ DEGLI STUDI ROMA TRE

Dipartimento di IngegneriaCorso di Laurea in Ingegneria Informatica

Tesi di Laurea

Progettazione e sviluppo diun'applicazione Java per il monitoringambientale di un sistema di acquisizione

dati

Laureando

Mirko Bastianini

Matricola 445151

Relatore

Prof. Francesco Benedetto

Anno Accademico 2013/2014

Page 2: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali
Page 3: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

You think you have a limit. As soon as you touch this limit, something happens

and you suddenly can go a little bit further. With your mind power, your

determination, your instinct, and the experience as well, you can �y very high.

Ayrton da Silva Senna

Page 4: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali
Page 5: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

Indice

Indice delle �gure vii

Indice delle tabelle ix

Premessa 1

Capitolo Uno: Raggi Cosmici e rilevatori di particelle 5

.1 De�nizione di Raggi Cosmici . . . . . . . . . . . . . . . . . . . . . 5

.2 Rilevatori di particelle: dove e perche' . . . . . . . . . . . . . . . . 7

.3 Contatore Geiger . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

.4 Contatore Proporzionale ad He3 . . . . . . . . . . . . . . . . . . . 10

Capitolo Due: Studio del Contatore Proporzionale ad He3 14

.1 Arduino Mega2560 . . . . . . . . . . . . . . . . . . . . . . . . . . 14

.1.1 Arduino e gli Shield . . . . . . . . . . . . . . . . . . . . . . 18

.2 Sensori utilizzati . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

.2.1 Sensore di temperatura: TMP121 . . . . . . . . . . . . . . 21

.2.2 Sensore di pressione: MPL115A1 . . . . . . . . . . . . . . 22

.2.3 ADC converter: AD7689 . . . . . . . . . . . . . . . . . . . 23

.2.4 DAC converter: AD5668 . . . . . . . . . . . . . . . . . . . 25

.2.5 Modulo alta tensione . . . . . . . . . . . . . . . . . . . . . 25

.3 Codice sorgente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

v

Page 6: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

vi

Capitolo Tre: Applicazione Java per il monitoring del rilevatore 28

.1 Ambiente di sviluppo utilizzato . . . . . . . . . . . . . . . . . . . 28

.2 Java Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

.3 Gestire la comunicazione seriale . . . . . . . . . . . . . . . . . . . 30

.4 MySQL e la persistenza dei dati rilevati . . . . . . . . . . . . . . . 33

.5 JfreeChart: gra�ci in Java . . . . . . . . . . . . . . . . . . . . . . 37

.5.1 Di�erenze dell' applicazione nei principali sistemi operativi 39

Capitolo Quattro: Visione globale dell' applicazione 41

.1 Organizzazione package e risultato �nale . . . . . . . . . . . . . . 42

.2 Sezione Database e di Log . . . . . . . . . . . . . . . . . . . . . . 44

.3 Gra�ci di pressione e temperatura . . . . . . . . . . . . . . . . . . 45

.4 Sezione comunicazione e avvio acquisizione . . . . . . . . . . . . . 47

.5 Funzioni disponibili . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Capitolo Cinque: Conclusioni e sviluppi futuri 50

Bibliogra�a 53

Page 7: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

Indice delle �gure

.1 Flusso dei raggi cosmici. . . . . . . . . . . . . . . . . . . . . . . . 6

.2 Cosmic shower. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

.3 I principali rivelatori. . . . . . . . . . . . . . . . . . . . . . . . . . 11

.4 Zona di lavoro del contatore proporzionale. . . . . . . . . . . 12

.1 Connessione SPI tra un master e tre slave. . . . . . . . . . . . 21

.2 Sequenza di lettura del sensore di temperatura. . . . . . . . . 22

.3 Comandi sensore di pressione. . . . . . . . . . . . . . . . . . . . 23

.4 CFG del convertitore analogico-digitale. . . . . . . . . . . . . . 24

.5 Struttura interna del DAC. . . . . . . . . . . . . . . . . . . . . . 25

.6 Modulo High Voltage. . . . . . . . . . . . . . . . . . . . . . . . . 26

.7 Organizzazione codice sorgente di Arduino. . . . . . . . . . . . 27

.1 Di�erenze tra Swing e AWT. . . . . . . . . . . . . . . . . . . . . 30

.1 Contatore in acquisizione. . . . . . . . . . . . . . . . . . . . . . . 41

.2 Organizzazione in package del progetto. . . . . . . . . . . . . . 42

.3 Main panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

.4 Database. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

.5 Log Area. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

.6 Gra�co della temperatura. . . . . . . . . . . . . . . . . . . . . . . 45

.7 Gra�co della pressione. . . . . . . . . . . . . . . . . . . . . . . . . 46

.8 Comunicazione seriale. . . . . . . . . . . . . . . . . . . . . . . . . 47

vii

Page 8: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

Indice delle �gure viii

.9 Inizio e �ne acquisizione. . . . . . . . . . . . . . . . . . . . . . . . 47

.10 Funzioni disponibili. . . . . . . . . . . . . . . . . . . . . . . . . . . 48

.11 About us. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

Page 9: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

Indice delle tabelle

.1 Versioni di Arduino. . . . . . . . . . . . . . . . . . . . . . . . . . . 14

.2 Speci�che tecniche Arduino Mega 2560. . . . . . . . . . . . . . 16

.3 Led Wi-Fi Shield . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

.1 Tabella della pressione. . . . . . . . . . . . . . . . . . . . . . . . . 34

.2 Tabella della temperatura. . . . . . . . . . . . . . . . . . . . . . . 34

ix

Page 10: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali
Page 11: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

Premessa

Non si commette certamente nessun errore nell' a�ermare che in quest' ultimo

decennio la branca dell'elettronica, in particolare l' elettronica digitale, ha subito

una trasformazione radicale tutt' ora in atto. Nel mercato vengono proposte

costantemente nuove tecnologie e nuove schede di programmazione, molte ad un

costo relativamente basso.

La rappresentazione realistica di quanto sopra a�ermato si puo' osservare

avendo bene in mente un qualsiasi tipo di circuito combinatorio: �no ad una

decina di anni fa per realizzarlo era necessario avere a disposizione vari inte-

grati, un saldatore, molta pazienza e manualita'. Ad oggi lo stesso risultato lo

si puo' ottenere scrivendo poche linee di codice su un ambiente di sviluppo ded-

icato, facendo un rapido controllo degli errori di logica commessi (poiche' quelli

di sintassi sono corretti automaticamente), e inviando il programma alla scheda

elettronica per ottenere un risultato immediato.

Nascono quindi schede FPGA (Field Programmable Gate Array) come la Vir-

tex 7 della Xilinx, oppure la Cyclone della Altera; schede che hanno assunto ormai

un ruolo cruciale sia nell' elettronica industriale, sia nella ricerca scienti�ca. I due

principali linguaggi di programmazione per questo tipo di hardware, Il VHDL ed

il Verilog, nati originariamente da progetti militari, sono ormai a�ermati anche

per l' utilizzo casalingo. Purtroppo pero', queste FPGA hanno ancora un costo

relativamente alto rispetto alla tecnologia ASIC.

1

Page 12: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. PREMESSA 2

Ecco allora che, in tempi piu' recenti, sono entrati nel mercato dell' elettronica,

ma anche in quello dell' informatica, dei microcontrollori a basso costo adatti in

maniera speci�ca a progetti di media complessita' computazionale. Uno fra tutti

e' Arduino, una scheda programmabile creata nel 2005 da un progetto interamente

italiano ideato e realizzato da Massimo Banzi.

In breve, Arduino e' un microcontrollore che monta a bordo un processore

Atmel, i cui pin sono collegati a porte di Input/Output general purpose. In-

oltre e' presente un' elettronica di contorno che permette l'interfacciamento USB

(Universal Serial Bus) con un computer, un oscillatore a cristallo a 16MHz, un re-

golatore di tensione a 5 Volt, ed un IDE (Integrated Development Environment)

multipiattaforma con cui programmare la scheda attraverso un linguaggio che

potremmo de�nire C-Like.

E' proprio in questo scenario di costante sviluppo tecnologico che l' Istituto

Nazionale di Fisica Nucleare, rimanendo al passo con i tempi, ha deciso di pro-

cedere alla modernizzazione di un vecchio esperimento di �sica particellare, in

particolare di un Contatore Proporzionale ad Elio 3.

Quest'ultimo, le cui caratteristiche sono descritte in maniera dettagliata nel

successivo capitolo Tre, e' un rilevatore di particelle a gas; se volessimo azzardare

una de�nizione lo potremmo paragonare ad un discendente del contatore Geiger.

Il suo funzionamento, anch' esso dettagliato nel successivo capitolo Tre della pre-

sente, e' relativamente semplice: le molecole di gas che si trovano all' interno del

tubo presente nel rivelatore vengono ionizzate al passaggio della particella, pro-

ducendo cosi' una carica, la quale e' direttamente proporzionale all' energia della

particella che ha attraversato il tubo. Fin qui �sica pura. Il problema diventa

di natura ingegneristica quando bisogna gestire ed immagazzinare in maniera op-

portuna "l' informazione" che il tubo a gas produce. Inoltre cosa non banale, l'

evento e' completamente random, avviene quindi in maniera statisticamente non

Page 13: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. PREMESSA 3

prevedibile a livello temporale. Potrebbe dunque veri�carsi un passaggio di carica

ogni mezz' ora, cosi' come tre passaggi in dieci minuti o nessuno nell'arco di un'

intera giornata.

Si rende quindi necessario avere un dispositivo costantemente in funzione, che

riesca a memorizzare l' evento �sico del passaggio della particella, salvando anche

alcuni dati utili, ad esempio la temperatura e la pressione attuale, data e ora dell'

evento ed il numero di conteggi avvenuti �no a quel momento. Inoltre, poiche'

la macchina e' stata pensata per una installazione in condizioni poco agibili (si

ricorda che i Raggi Cosmici da rilevare sono meno rari e piu facilmente osservabili

salendo di altitudine), e' necessario che il download dei dati avvenga attraverso

una rete wireless.

Analizzando queste speci�che progettuali, la scelta del microcontrollore da

utilizzare per questo esperimento e' ricaduta su Arduino. I risultati dei test

iniziali sono stati immediatamente rassicuranti; il microcontrollore, corredato di

una elettronica di front-end, si e' rivelato sin da subito adatto alle nostre esigenze.

Per comprendere al meglio l' innovazione proposta e' su�ciente pensare che la

vecchia macchina utilizzata per il funzionamento e il controllo dell' esperimento

occupava una intera stanza, mentre grazie ad Arduino, l'esperimento e' divenuto

facilmente trasportabile da una singola persona e prossimamente sara' installato

nei Laboratori Nazionali del Gran Sasso.

Al termine dei primi test funzionali la comunicazione con il dispositivo era

gestita in maniera seriale attraverso l'IDE di Arduino oppure attraverso un qual-

siasi programma di comunicazione free, come ad esempio HyperTerminal. Stante

l'impossibilita' di garantire un know-how sui comandi da impartire alla macchina

ad ogni singola persona che interagiva con essa, e' nata l' esigenza di una appli-

cazione gra�ca da eseguire su personal computer, compatta e di facile utilizzo.

Questa applicazione doveva avere caratteristiche utili per leggere eventuali mes-

Page 14: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. PREMESSA 4

saggi della macchina, per inviare e ricevere comandi di controllo, per e�ettuare

lo storage dei dati ricevuti su Database e per fornire dei gra�ci in tempo reale.

Java, in collaborazione con MySQL ed alcune altre librerie gratuite da me

utilizzate, si e' rivelato il linguaggio adatto allo scopo. Anche in questa fase i

test del pannello avviato con la macchina in acquisizione sono stati positivi, for-

nendo inoltre un' ampio margine su alcuni sviluppi futuri dell'applicazione stessa.

In questo mio lavoro di tesi cerchero' quindi di racchiudere alcune nozioni di

�sica elementare tra cui de�nizioni di Raggio Cosmico e Contatore Proporzionale

(Capitolo Uno e Capitolo Due), entrero' nel vivo del progetto, di cui in questa

premessa ho accennato, descrivendo a livello hardware e software la macchina e i

sensori ad essa connessi (Capitolo Tre), descrivero' le speci�che richieste sulla base

delle quali ho sviluppato la mia applicazione e i singoli passaggi atti a realizzarla

(Capitolo Quattro e Capitolo Cinque), ed in�ne terminero' accennando ad alcuni

interessanti sviluppi futuri.

Page 15: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

Capitolo Uno: Raggi Cosmici e

rilevatori di particelle

.1 De�nizione di Raggi Cosmici

I raggi cosmici sono delle particelle cariche, per lo piu' protoni, che viaggiano a

velocita' prossime a quelle della luce. Individuare la loro origine e soprattutto

ricostruire i meccanismi che riescono ad accelerarle a velocita' cosi' elevate non

e' pero' semplice perche' le loro traiettorie possono subire facilmente deviazioni

nel passare attraverso i campi magnetici interstellari. Risalire quindi al punto di

provenienza e a tutto cio' che hanno attraversato prima di arrivare sino a noi e'

quindi una vera impresa.

Esistono tuttavia alcuni metodi indiretti che in parte permettono di aggirare

l' ostacolo. Ad esempio quando i raggi cosmici colpiscono il gas interstellare pro-

ducono emissioni di energia gamma che ne tradiscono la presenza. Alcune di

queste emissioni sono state captate dal telescopio spaziale Fermi grazie al suo

Large Area Telescope (LAT). Dopo anni e anni di osservazioni, i dati raccolti dal

Fermi hanno dimostrato che una di queste regioni gassose di intensa emissione

gamma coincide proprio con la supernova Tycho, segno che esiste un legame tra

raggi cosmici e le supernove. Guadagna cosi' attendibilita' l' ipotesi secondo la

5

Page 16: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO UNO: RAGGI COSMICI E RILEVATORI DI

PARTICELLE 6

Figure .1: Gra�co esplicativo del �usso dei raggi cosmici in funzione

della loro energia. Nello sfondo giallo sono rappresentati i raggi cosmici

di origine solare,in blu quelli di origine galattica, mentre nella parte

restante quelli di origine extragalattica.

quale il campo magnetico tipico di una supernova intrappolerebbe le particelle

cariche, facendole rimbalzare dentro al campo stesso in una sorta di ping pong che

aumenta progressivamente la loro velocita', sino a quando non riescono a sfuggire

a quella trappola magnetica, e ad arrivare a noi. [Nob11]

E' bene ricordare che fuori dall' atmosfera i raggi cosmici sono costituiti da

protoni (per circa il 90%) e da nuclei di elio (quasi il 10%). Esiste anche una

presenza di elettroni ed altri nuclei leggeri, fotoni, neutrini ed in minima parte

antimateria (positroni ed antiprotoni). Giunte nell'atmosfera terrestre, tali par-

ticelle interagiscono con i nuclei delle molecole dell'atmosfera formando cosi', in

Page 17: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO UNO: RAGGI COSMICI E RILEVATORI DI

PARTICELLE 7

un processo a cascata, nuove particelle proiettate in avanti, che prendono il nome

di raggi cosmici secondari.

La composizione e lo spettro in energia sono stati dettagliatamente studiati

per la radiazione cosmica primaria. Il �usso relativo all' Idrogeno e' poco piu' del

90%, un po' meno del 10% per l'Elio, 7 ∗ 104 per gli elementi leggeri come Litio,

Berillio e Boro, e 5 ∗ 103 per altri elementi dal Carbonio al Neon.

Lo spettro (numero di raggi incidenti per unita' di energia, per unita' di tempo,

per unita' di super�cie per steradiante) dei raggi cosmici primari e' ben descritto

da una legge a potenza nella forma:

Φ ∝ E−α

con α = 2.7 per valori dell'energia inferiori a ≈ 1015 eV. Per valori superiori

dell'energia si ha un irripidimento, con α che diviene pari a 3. Il punto in cui tale

cambio di pendenza ha luogo viene denominato ginocchio. Per energie ancora piu'

alte (≈ 1018 ÷ 1019 eV) lo spettro dei raggi cosmici torna ad essere meno ripido,

dando luogo ad un ulteriore cambio di pendenza che viene chiamato caviglia.

[Leo94]

.2 Rilevatori di particelle: dove e perche'

Quando i Raggi Cosmici entrano nell' atmosfera terrestre collidono con i nuclei

di cui essa e' composta. In queste collisioni vengono prodotte un gran numero di

particelle che a loro volta interagiscono o decadono creandone delle altre. Il risul-

tato e' quello che comunemente in gergo viene chiamato "shower", ossia doccia

di particelle. Molte di esse quindi, soprattutto elettroni, muoni, fotoni e neutrini

riescono a superare l'atmosfera ed arrivano �no alla super�cie terrestre in una

di�usione capillare. Quest' ultime vengono de�nite come raggi cosmici secondari

per distinguerli da quelli primari che hanno colpito l' atmosfera.

Page 18: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO UNO: RAGGI COSMICI E RILEVATORI DI

PARTICELLE 8

Figure .2: In �gura e' rappresentato il fenomeno del "cosmic shower".

Proprieta' dell' immagine: INFN.

Se vogliamo rivelare i raggi cosmici primari, dobbiamo usare esperimenti posti

su satelliti in orbita, che riescono a "catturare" i raggi cosmici prima che essi

interagiscano con l' atmosfera. Con questo metodo si riescono a rivelare bene i

raggi cosmici �no ad energie non troppo elevate. Se invece l' energia aumenta

e il �usso di raggi cosmici diventa molto basso, bisogna avere esperimenti di

grande super�cie, che per ovvi motivi non possono essere montati su satelliti.

Per raggi cosmici di energia elevata si usano esperimenti sulla super�cie terrestre

o in laboratori sotterranei. Questi esperimenti rivelano i raggi cosmici secondari

prodotti nell' interazione del primario con l' atmosfera. Dalle caratteristiche dello

Page 19: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO UNO: RAGGI COSMICI E RILEVATORI DI

PARTICELLE 9

"shower" di particelle si puo' ricavare l' energia e la direzione del raggio cosmico

primario. [LNF04]

Entra quindi in gioco il cosidetto rilevatore di particelle, che viene usato per

tracciare ed identi�care particelle, come quelle prodotte per esempio da un decadi-

mento nucleare, dalla radiazione cosmica, o interazioni in un acceleratore di par-

ticelle (ad esempio Large Hadron Collider).

.3 Contatore Geiger

Il contatore Geiger, inventato nel 1913 da Hans Wilhelm Geiger (1882 - 1945)

e perfezionato nel 1928 insieme a Walther Muller (contatore Geiger-Muller) , e'

uno strumento che misura radiazioni di tipo ionizzante, in particolare le radi-

azioni provenienti da decadimenti di tipo Alfa, Beta e Gamma (nuclei di Elio,

elettroni e fotoni ad alta energia). Questo strumento, assimilabile ad un antenato

del contatore proporzionale, e' composto da un tubo contenente un gas a bassa

pressione (per esempio, una miscela di argo e vapore di alcool alla pressione di

0,1 atmosfere). Lungo l' asse del tubo e' teso un �lo metallico, isolato dal tubo

stesso. Tra il �lo e il tubo si stabilisce una di�erenza di potenziale di circa 1 000

V, attraverso una resistenza di valore dell'ordine del miliardo di ohm.

Il contatore Geiger e' una camera a deriva utilizzata nel limite in cui la tensione

satura (ovvero in modo che la tensione prodotta dal passaggio della particella

ionizzante non dipenda dall'energia rilasciata da questa e quindi dal numero delle

coppie ione-ione prodotte).

Infatti quando una radiazione attraversa il tubo e colpisce una molecola del

gas, la ionizza, creando una coppia ione-elettrone. Ma in questi dispositivi la car-

ica raccolta e' indipendente dalla ionizzazione primaria: come nelle altre camere

a deriva, gli ioni primari vengono accelerati a su�cienza da creare ionizzazioni

secondarie, urtando con le altre molecole di gas; ma la peculiarita' del contatore

Page 20: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO UNO: RAGGI COSMICI E RILEVATORI DI

PARTICELLE 10

geiger e' che il campo elettrico e' talmente intenso che anche le ionizzazioni secon-

darie creano a loro volta ulteriori ionizzazioni. Questo processo e' detto moltipli-

cazione a valanga. L' impulso elettrico risultante sara' testimone dell' avvenuto

contatto con una radiazione ionizzante, e sara' contato da un circuito elettronico.

A seconda del numero di conteggi fatti in un' unita' di tempo, riusciamo a capire

se siamo in presenza di una sorgente radioattiva, e la sua pericolosita'.

Si ricorda che il contatore Geiger non e�ettua una misura operativa della

grandezza esposizione/kerma in aria, ma si limita a mettere in relazione il numero

di conteggi con la grandezza dosimetrica. Per questo la sensibilita' dello strumento

varia signi�cativamente al variare dell' energia della radiazione incidente. L'

e�etto negativo del tempo morto puo' esser corretto compensando la risposta via

software. E' possibile fare cio' solo se e' nota la larghezza d' impulso del segnale.

Viste le sue ridotte dimensioni, puo' essere usato anche per dosimetria personale.

La dinamica di questi rivelatori e' abbastanza ridotta, a causa del tempo

morto durante il quale avviene un conteggio (ordine dei millisecondi). [Wik]

.4 Contatore Proporzionale ad He3

Un contatore proporzionale e' un rivelatore di particelle a gas, che come tutti

i rivelatori con principio di funzionamento a gas rivela le particelle misurando

la carica prodotta dalla ionizzazione delle molecole di un gas provocata dal pas-

saggio della particella. Questa carica prodotta e' direttamente proporzionale all'

energia che ha rilasciato la particella. La sua caratteristica e' quella di usare ten-

sioni abbastanza alte (siamo nell' ordine dei 1500-2000 Volt) che consentono agli

elettroni prodotti dalla particella primaria di creare altre ionizzazioni con un pro-

cesso che si ripete a valanga. In questo modo i segnali risultanti hanno un buon

rapporto segnale-rumore. Il rivelatore usa lo stesso principio dei contatori Geiger-

Muller, ma con una tensione inferiore, ovvero nel regime proporzionale. Quando

Page 21: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO UNO: RAGGI COSMICI E RILEVATORI DI

PARTICELLE 11

Figure .3: Panoramica sui vari tipi di rivelatori.

la particella ionizzante con un' energia su�ciente interagisce con le molecole del

gas, produce delle coppie ione positivo - elettrone, chiamata coppia ionica. Con-

tinuando a muoversi nel gas la particella interagente forma altre coppie ioniche

lungo la sua traiettoria. Gli elettroni che si vengono a creare subiscono una

migrazione verso l' elettrodo positivo, l'anodo, sotto l' in�uenza di un campo

elettrico. Un contatore proporzionale di�erisce da una camera a ionizzazione in

quanto il potenziale applicato e' su�cientemente alto per far si' che un elettrone

possa guadagnare abbastanza energia lungo un libero cammino medio per creare

durante una collisione con le molecole neutre del gas ulteriori coppie ioniche. Gli

elettroni creati in questi eventi secondari migrano anche loro verso l' anodo e

creano altre coppie ioniche. In questo modo si produce una cascata, chiamata

valanga Townsend. Se il potenziale e' scelto accuratamente, ogni valanga avviene

Page 22: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO UNO: RAGGI COSMICI E RILEVATORI DI

PARTICELLE 12

Figure .4: Zona di lavoro del contatore proporzionale.

indipendentemente dalle altre valanghe che hanno origine dalla stessa particella

primaria iniziale. Di conseguenza, anche se il numero totale di elettroni creati

incrementa esponenzialmente con la distanza, la carica elettrica totale prodotta

rimane proporzionale alla carica iniziale creata nell' evento originario. [Kno]

Se la tensione e' minore di un valore critico, gli elettroni non raggiungono un'

energia su�ciente per creare ulteriori coppie ioniche e il rivelatore e' una camera a

ionizzazione. Se invece la tensione e' troppo alta, inizialmente la carica prodotta

non e' linearmente proporzionale all' energia, e con tensioni ancora piu' elevate si

arriva al regime di Geiger, nel quale tutti gli impulsi hanno la stessa ampiezza, e

Page 23: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO UNO: RAGGI COSMICI E RILEVATORI DI

PARTICELLE 13

quindi si perde l' informazione sull'energia. In questo modo funzionano i contatori

Geiger-Muller, descritti nel paragrafo precedente.

La geometria quasi sempre usata e' quella cilindrica, che consente di raggiun-

gere campi elettrici abbastanza alti per dar origine alle valanghe usando tensioni

ragionevoli (migliaia di volt). L' anodo centrale, verso il quale migrano gli elet-

troni, e' un �lo molto sottile, mentre il catodo e' la parete del cilindro, che di

solito e' tenuta a massa. In questa con�gurazione il campo elettrico ha direzione

radiale e (considerando il rivelatore in�nitamente esteso nella direzione assiale)

ha modulo:

E =V

r log(b/a)

dove V e' la di�erenza di tensione tra anodo e catodo, a il raggio dell' anodo,

b il raggio del catodo, r la distanza dal centro.

Si nota che la regione dove avviene la valanga, ovvero dove il campo elettrico

e' abbastanza intenso, risulta essere una regione sottilissima attorno all'anodo.

Page 24: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

Capitolo Due: Studio del Contatore

Proporzionale ad He3

.1 Arduino Mega2560

Come gia' accennato nella premessa di questo lavoro di tesi, il microcontrollore che

ha fatto da chiave primaria per questo esperimento e' stato Arduino. Nello speci-

�co, Arduino e' una scheda low cost con a bordo un microprocessore Atmel (la

versione esatta del microprocessore dipende da quale Arduino si sta utilizzando).

Al seguito riporto una tabella in cui sono presenti le varie versioni presenti sul

mercato, con relative caratteristiche tecniche:

Table .1: Versioni di Arduino.

Arduino Microcontrollore Flash KiB Pin digitali Pin PWM Pin InputDiecimila ATmega168 16 14 6 6

Due Atmel SAM3X8E 512 54 12 12Duemilanove ATmega168/328P 16/32 0,5/1 14 6

Uno ATmega328P 32 14 6 6Leonardo Atmega32u4 32 20 7 12Mega ATmega1280 128 54 14 16

Mega2560 ATmega2560 256 54 14 16Fio ATmega328P 32 14 6 8Nano ATmega168 16/32 0,5/1 6 8LilyPad ATmega168V 16 14 6 6

14

Page 25: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO DUE: STUDIO DEL CONTATORE

PROPORZIONALE AD HE3 15

Interessante notare come esistano versioni molto diverse tra loro che si adat-

tano a qualsiasi tipo di progetto si desideri realizzare. Ad esempio Arduino Nano

e' sicuramente indicato per progetti di bassa complessita' computazionale dato

che possiede poca memoria e pochi pin di comunicazione; viceversa, il punto di

forza di questo modello e' sicuramente da ricercare nelle dimensioni della scheda,

che non superano il palmo di una mano.

Per quanto riguarda l' esperimento del contatore proporzionale il microcon-

trollore che piu si avvicina alle nostre speci�che e' sicuramente il modello Mega

2560. Arduino Mega 2560 e' un microcontrollore basato sul chip ATmega2560.

Questo microprocessore ha le seguenti caratteristiche:

• 256 kB di memoria (�ash) per il programma

• Set di istruzioni esteso

• Grande numero di periferiche disponibili (presenza di una o più linee se-

riali, PWM, ecc.)

• Contenitori con pin da 28 a 100

Arduino Mega 2560 possiede 54 pin di input/output digitali (di cui 14 hanno

la possibilita' di essere usati come uscita PWM), 16 pin analogici, 4 hardware

serial ports (UART) e un oscillatore al cristallo a 16 MHz. Inoltre si interfaccia

al pc attraverso una connessione USB, si alimenta con un jack standard a 5 Volt o

in alternativa puo sfruttare l'alimentazione del computer stesso. In caso di blocco

ha la possibilita' di esser resettato attraverso l' apposito pulsante. Nella tabella

seguente le speci�che tecniche fornite direttamente dal sito del produttore:

Page 26: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO DUE: STUDIO DEL CONTATORE

PROPORZIONALE AD HE3 16

Table .2: Speci�che tecniche Arduino Mega 2560.

Caratteristica ValoreMicrocontroller ATmega2560

Operating Voltage 5VInput Voltage (recommended) 7-12V

Input Voltage (limit) 6-20VDigital I/O Pins 54

PWM Digital I/O Pins 14Analog Input Pins 16

DC Current per I/O Pin 40 mADC Current for 3.3V Pin 50 mA

Flash Memory 256 KBFlash Memory for Bootloader 8 KB

SRAM 8 KBEEPROM 4 KBClock Speed 16 MHz

Lenght 101.52 mmWidth 53.3 mm

Per quanto riguarda l' aspetto software e l'upload del codice nella board,

Arduino possiede un suo Integrated development environment (IDE) multipi-

attaforma, scritto interamente in Java e derivato dal linguaggio di program-

mazione Processing; questo editor o�re alcune interessanti feature tra cui il syntax

highlighting, il controllo delle parentesi, e l' indentazione automatica. Non e' pre-

sente alla versione attuale l' autocompletamento del codice. L'editor e' inoltre

in grado di compilare e lanciare il programma eseguibile in una sola passata e

con un solo click. In genere non vi e' bisogno di creare dei Make�le o far girare

programmi dalla riga di comando. L'ambiente di sviluppo integrato di Arduino

e' fornito di una libreria software C/C++ chiamata "Wiring" (dall' omonimo

progetto Wiring): la disponibilita' della libreria rende molto piu' semplice im-

plementare via software le comuni operazioni di input/output. I programmi di

Arduino sono scritti in C/C++, ma all' utilizzatore, per poter creare un �le es-

eguibile, non e' richiesto di scrivere un programma standard in C, ma solo di

de�nire due funzioni principali:

Page 27: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO DUE: STUDIO DEL CONTATORE

PROPORZIONALE AD HE3 17

• Setup(): funzione invocata una sola volta all' inizio di un programma che

puo' essere utilizzata per i settaggi iniziali

• Loop(): funzione invocata ripetutamente, la cui esecuzione si interrompe

solo con lo spegnimento della scheda

Riporto quindi un esempio base presente nei tutorial di Arduino. In partico-

lare, questo esempio permette l' accensione e lo spegnimento di un led posizionato

�sicamente nel piedino 13 della board. Come si puo' notare le istruzioni sono sem-

pli�cate al massimo, e sono molto intuitive.

#define LED_PIN 13

void setup () {

pinMode (LED_PIN , OUTPUT); // abilita il pin 13 per

l'output digitale

}

void loop () {

digitalWrite (LED_PIN , HIGH); // accende il LED

delay (1000); // aspetta 1 secondo (1000

millisecondi)

digitalWrite (LED_PIN , LOW); // spegne il LED

delay (1000); // aspetta un secondo

}

Scritto in questo modo, il codice non verrebbe riconosciuto come programma

valido da un qualsiasi compilatore C++; per questo motivo, quando l' utilizzatore

seleziona il bottone di comando "Upload to I/O board" (presente nell' IDE), una

copia del codice viene automaticamente trascritta in un �le temporaneo con l'

aggiunta di un header extra all' inizio del codice e di una semplicissima funzione

Page 28: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO DUE: STUDIO DEL CONTATORE

PROPORZIONALE AD HE3 18

main() in basso. Anche attraverso questo piccolo esempio e' possibile capire la

semplicita' di utilizzo di Arduino, il quale permette di ottenere buoni risultati in

tempi relativamente brevi.

In ultima istanza, e' bene ricordare che sia l'hardware che il software di Ar-

duino sono in licenza CopyLeft, quindi e' possibile reperire in rete schemi elettrici

e IDE alternativi in maniera totalmente gratuita, e con un minimo di manualita'

e' possibile costruirsi il proprio microcontrollore.

.1.1 Arduino e gli Shield

Un altro punto di forza di Arduino e' quello di essere facilmente componibile

con gli Shield. Questi ultimi sono delle schede elettroniche atte a speci�che fun-

zioni, che vanno ad ampliare le funzionalita' di Arduino; si installano in maniera

semplice sul microcontrollore e vengono alimentati da quest' ultimo. L' unica ac-

cortezza necessaria e' sapere in anticipo quali pin lo shield da installare andra' a

sfruttare, perche' quest'ultimo potrebbe richiedere una comunicazione particolare

che potrebbe gia essere utilizzata da arduino per altri scopi. Esistono molti shield

in commercio, ciascuno con un preciso scopo. Principalmente possiamo realizzare

connessioni Ethernet e Wi-Fi, gestire piu motori in e servomotori in DC, creare

riproduttori audio, gestire rele' e qualsiasi altro dispositivo elettronico.

Nel nostro caso, per immagazzinare e trasmettere i dati wireless che il tubo salvava

in locale, e' stata utilizzata la Shield Wi-Fi. Questa shield e' in grado di connet-

tere Arduino ad un router attraverso una connessione 802.11b/g (purtroppo non

supporta la creazione di reti in modalita' ad-Hoc, ma solo in modalita' infras-

truttura), usando come chiave di criptazione la WEP oppure la WPA2 Personal.

Comunica con Arduino sfruttando il protocollo SPI (di cui parlero' in maniera

esaustiva nel paragrafo successivo). Sulla scheda e' presente uno slot microSD che

puo' essere utilizzato per e�ettuare lo storage dei �le in formato .txt. Accortezza

Page 29: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO DUE: STUDIO DEL CONTATORE

PROPORZIONALE AD HE3 19

necessaria e' che la comunicazione tra Arduino e questo shield in modalita' stor-

age imposta il pin 4 come Slave Select. Inoltre il pin digitale 7 viene utilizzato

per e�ettuare l' handshake tra lo shield e Arduino, e non deve essere controllato

in alcun modo dall' utente. Al seguito una tabella per riconoscere attraverso un

led presente sulla scheda lo stato della connessione wireless:

Table .3: Led Wi-Fi Shield

L9 (yellow) this is tied to digital pin 9LINK (green) indicates a connection to a networkERROR (red) indicates when there is a communication errorDATA (blue) indicates data being transmitted/received

.2 Sensori utilizzati

Ho deciso di dividere questo paragrafo in quattro sottosezioni per consentire una

rapida ma esaustiva spiegazione dei sensori utilizzati per l'esperimento. Innanzi-

tutto e' necessario speci�care che i sensori sono tutti digitali, e la comunicazione

con ciascuno di essi avviene sfruttando il protocollo SPI.

Il protocollo SPI (Serial Peripheral Interface) e' un sistema di comunicazione tra

un microcontrollore e altri circuiti integrati o anche tra piu' microcontrollori. E'

stato ideato dalla Motorola e sviluppato, in una sua variante, anche dalla National

Semiconductor con il nome di bus MicrowireTM.

Le tre caratteristiche principali sono:

• E' un protocollo di tipo seriale

• E' sincrono, per la presenza di un clock che coordina la trasmissione e

ricezione dei singoli bit e determina la velocita' di trasmissione

• E' full-duplex in quanto il "colloquio" puo' avvenire contemporaneamente

in trasmissione e ricezione.

Page 30: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO DUE: STUDIO DEL CONTATORE

PROPORZIONALE AD HE3 20

Per quanto riguarda la velocita' di scambio dei dati (in pratica la frequenza del

clock) non vi e' presente un limite minimo (i dispositivi sono statici: possono

mantenere, se alimentati, uno stato logico ben preciso per un tempo inde�nito)

ma e' presente un limite massimo che va determinato dai datasheet dei singoli

dispositivi connessi e dal loro numero in quanto ogni dispositivo collegato al bus

introduce sulle linee di comunicazione una capacita' parassita).

E' un sistema di comunicazione de�nito a quattro �li. Con questo si intende

che le linee di connessione che portano i segnali sono in genere quattro. Va pero'

tenuto conto che vi deve comunque essere una connessione di riferimento (0 Vdc

comunemente indicata con GND, nome che a rigore e' improprio) e che �sicamente

quindi i �li diventano cinque.

In particolare, riporto i �li utilizzati con la relativa convenzione utilizzata:

• SCLK - SCK: Serial Clock (emesso dal master)

• MISO: Master Input Slave Output (ingresso per il master ed uscita per lo

slave)

• MOSI: Master Output Slave Input (uscita dal master)

• CS: Chip Select (emesso dal master per scegliere con quale dispositivo slave

vuole comunicare)

Scendendo nel dettaglio, ll segnale SCLK e' il clock seriale che scandisce gli

istanti di emissione e di lettura dei bit sulle linee di dati. Viene emesso dal

master ed e' quindi quest' ultimo a richiedere di volta in volta la trasmissione

di una "parola". Il segnale MISO e' la linea attraverso cui il dispositivo (master

o slave) riceve il dato seriale emesso dalla controparte. Sullo stesso fronte di

commutazione del clock, il dispositivo emette, con la stessa cadenza, il suo output

ponendo il dato sulla linea MOSI.

Page 31: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO DUE: STUDIO DEL CONTATORE

PROPORZIONALE AD HE3 21

La presenza del Chip Select non e' de�nita indispensabile. Nel caso del conta-

tore proporzionale pero', e' presente la necessita' di collegare quattro sensori con

questo protocollo, quindi diventa obbligatoria la presenza di un CS per "avvisare"

il dispositivo corrente di una imminente comunicazione.

Nella �gura sottostante una schematizzazione della chain dei sensori:

Figure .1: Connessione SPI tra un master e tre slave.

.2.1 Sensore di temperatura: TMP121

Il sensore di temperatura TMP121 e' un sensore digitale, compatibile con lo

standard SPI. Ha una risoluzione a 12 bit e una accuratezza di 1.5 C su un range

compreso tra -25 C a +85 C. Non richiede nessun componente aggiuntivo e ha un

Page 32: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO DUE: STUDIO DEL CONTATORE

PROPORZIONALE AD HE3 22

basso consumo di corrente, stimato nell' ordine dei 10 mA. In uscita restituisce 16

bit, di cui i primi tre sono di alta impedenza �ssi a zero. I restanti compongono

in esadecimale la temperatura letta. Il tempo minimo che deve intercorrere tra

una lettura e la successiva e' di 100 nanoSecondi. Al seguito la sequenza dei bit

di lettura:

Figure .2: Lettura dei bit. Immagine presa dal datasheet del compo-

nente.

.2.2 Sensore di pressione: MPL115A1

Il sensore di pressione MPL115A1 e' un sensore barometrico compatibile con il

protocollo SPI. Possiede una modalita' standby che limita il consumo di corrente

a 1 uA, mentre durante il funzionamento consuma 5 uA. Garantisce una lettura

accurata da 50 KPascal �no a 112 KPascal. Possiede un ADC interno che e�ettua

la conversione, e come speci�cato sul datasheet, l' utente, per ottenere il valore

in KPascal, deve applicare semplicemente una proporzione matematica riportata

qui in basso:

Pressure(kPa)P = com ∗ 115− 50

1023+ 50

Per chiedere il valore rilevato si possono inviare al sensore sia sequenze in

binario che in esadecimale. Nella �gura sottostante sono presenti i possibili co-

mandi da inviare. E' possibile leggere la temperatura e la pressione sia partendo

dal LSB (Least Signi�cant Bit) che dal MSB (Most Signi�cant Bit).

Page 33: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO DUE: STUDIO DEL CONTATORE

PROPORZIONALE AD HE3 23

Figure .3: Possibili comandi sensore di pressione. Immagine presa dal

datasheet del componente

.2.3 ADC converter: AD7689

Il convertitore Analogico-Digitale AD7689, prodotto dalla Analog Devices, e' un

ADC a otto canali a singola alimentazione. Possiede una risoluzione di 16 bit ed

e' compatibile con il protocollo SPI. Quando il Chip Select viene portato a livello

logico basso, il dispositivo risulta pronto per leggere e scrivere dati sul master.

Nei successivi 14 fronti di salita del clock, il CFG(Con�guration Register) viene

aggiornato con il dato attuale rilevato. Al 15esimo fronte di salita del clock il

dato e' disponibile. Come speci�ca dal manuale, due letture dummy sono richieste

all' avvio della comunicazione. Per questo esperimento il convertitore ha i canali

settati in questo modo:

• Canale uno: Lettura High Voltage

• Canale due: Canale non utilizzato

• Canale tre: Canale non utilizzato

• Canale quattro: Canale non utilizzato

Page 34: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO DUE: STUDIO DEL CONTATORE

PROPORZIONALE AD HE3 24

• Canale cinque: Temperatura ADC

• Canale sei: Lettura 3.3 Volt

• Canale sette: Lettura 5 Volt

• Canale otto: Lettura complessiva

Nella �gura sottostante e' presente una visione d' insieme del con�guration

Register:

Figure .4: Con�guration register AD7689.

Ogni bit ha un signi�cato ben preciso, che riporto qui in questo elenco schematico:

• Bit 13: Aggiorna o meno il contenuto del registro

• Bit 12-10: Modalita' di lettura (bipolare,di�erenziale, pari, single-ended,

temperatura)

• Bit 9-7: Canale di Input

• Bit 6: Banda passante (1 intera, 0 14di banda)

• Bit 5-3: Reference interno/esterno

• Bit 2-1: Abilita o disabilita lo scanning dei canali

• Bit 0: Legge o meno il contenuto del vecchio CFG

Page 35: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO DUE: STUDIO DEL CONTATORE

PROPORZIONALE AD HE3 25

.2.4 DAC converter: AD5668

Il convertitore Digitale-Analogico AD5668, prodotto dalla Analog Devices, e' un

DAC ad otto canali con una risoluzione di 16 bit. Funziona a singola alimen-

tazione 5 Volt. Possiede una struttura interna a resistori pesati, un reference

anch'esso interno (con opportune modi�che puo' avvalersi anche di un reference

esterno) e un ampli�catore di uscita con guadagno pari a 2. La formula attraverso

la quale e' possibile calcolare la tensione di uscita e' la seguente:

V out = V ref ∗ D2N

In �gura e' illustrata la struttura interna del DAC, in cui sono presenti tutti

i componenti sopra citati:

Figure .5: Struttura interna del DAC

.2.5 Modulo alta tensione

Il modulo High Voltage utilizzato per alimentare il tubo e' uno Spellman Ms;

particolarmente indicato per una installazione su schede stampate, riesce a pro-

durre �no a 3 Watt in corrente continua. Richiede una alimentazione a 12 Volt,

e l'uscita in alta tensione viene controllata attraverso un DAC, che a fronte di

Page 36: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO DUE: STUDIO DEL CONTATORE

PROPORZIONALE AD HE3 26

un impulso in milliVolt, produce una tensione in KiloVolt (nello speci�co questo

modulo puo' arrivare �no a 2500 Volt, cioe' 2,5 KiloVolt).

Figure .6: Modulo HV utilizzato per l' esperimento del contatore pro-

porzionale.

.3 Codice sorgente

Il codice sorgente caricato nel microcontrollore e' strutturato in tre �le (un main

e due header) cosi' strutturati:

• Main.c

• FunzioniHardware.c

• FunzioniSoftware.c

Nel �le principale sono presenti varie de�nizioni di pin �sici e le inclusioni di

alcune librerie necessarie al funzionamento del progetto (tra cui SPI.h e SD.h).

Grazie alla funzione loop di Arduino, dopo un messaggio di benvenuto iniziale,

il processore si mette in attesa del comando digitato dall' utente (una semplice

comparazione tra stringhe). Nelle funzioni software e' de�nito un menu' help, sono

Page 37: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO DUE: STUDIO DEL CONTATORE

PROPORZIONALE AD HE3 27

de�nite tutte quelle funzioni che stampano valori letti dai vari sensori e inoltre

sono presenti funzioni che manipolano adeguatamente le stringhe digitate dall'

utente. In�ne, nelle funzioni hardware sono presenti tutti i metodi che agiscono

con i vari dispositivi collegati ad Arduino, mandando e ricevendo sequenze di bit

(quindi sequenze di impulsi).

Figure .7: Organizzazione del codice sorgente di Arduino.

Page 38: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

Capitolo Tre: Applicazione Java per

il monitoring del rilevatore

.1 Ambiente di sviluppo utilizzato

L'Integrated Development Environmemt utilizzato per realizzare l' applicazione e'

Netbeans versione 8.0. Questo software, a licenza GPL (General Public License)

e' sviluppato dalla Oracle e scritto interamente in Java. Rilasciato nel Giugno

2000, si e' subito imposto come alternativa ad Eclipse (rilasciato sempre dalla

stessa Oracle). Si tratta di un software multipiattaforma che permette la scrittura

e l' esecuzione di applicazioni scritte in vari linguaggi tra cui Java, C/C++, PHP.

Nella sua versione piu' recente supporta anche l' HTML5.

A di�erenza di altri prodotti simili presenta alcuni vantaggi sostanziali, tra

cui una gestione interna del database MySQL, una GUI per le applicazioni Swing

e i due application server principali per la gestione di siti internet scritti in Java:

TomCat e GlassFish. E' presente una versione tradotta parzialmente in italiano.

.2 Java Swing

L' aspetto gra�co del pannello e' curato dalle librerie Swing. Java Swing e'

de�nito come framework appartenente alle JFC (Java Foundation Classes) ed

28

Page 39: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO TRE: APPLICAZIONE JAVA PER IL

MONITORING DEL RILEVATORE 29

e' orientato allo sviluppo di interfacce gra�che per Java. E' un' estensione del

precedente AWT (Abstract Window Toolkit. La di�erenza principale tra i due

framework e' che i componenti di Swing sono scritti completamente in codice

Java.[Gea][JM]

A seguire alcune caratteristiche tecniche di Swing:

• Indipendente dalla piattaforma: indipendente sia in termini di linguaggio

(Java) sia della sua implementazione (applica una renderizzazione univer-

sale).

• Estendibile: le diverse parti della libreria Swing sono basate su determinate

interfacce che sono comunque facilmente collegabili tra loro.

• Orientata ai componenti: Gli oggetti Swing emettono eventi in modo asin-

crono, hanno caratteristiche legate ad essi stessi, e rispondono da un ben

preciso set di comandi (speci�co per componente). Quindi si rende neces-

sario de�nire per ogni componente una speci�ca proprieta'.

• Modi�cabile: La rappresentazione gra�ca di un componente swing e' data

da una combinazione di un set standard di elementi; in particolare, ad ogni

componente e' a�dato il disegno di default dei bordi, delle rientranze, delle

decorazioni. L'utente andra' a personalizzare queste caratteristiche ed il

componente, all'atto di disegnarsi, terra' conto di queste modi�che.

• Con�gurabile: Swing, facendo un uso pesante dei meccanismi di runtime e

dei percorsi di renderizzazione indiretta, ha la possibilita' di modi�care a

runtime cambiamenti anche fondamentali nei suoi settaggi. Questo richiede

molte risorse di calcolo.

• Leggera: La con�gurabilita' di Swing si ottiene "disegnando" i suoi controlli

costantemente, attraverso l'uso delle API 2D di Java.

Page 40: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO TRE: APPLICAZIONE JAVA PER IL

MONITORING DEL RILEVATORE 30

Figure .1: Componenti gra�ci in Swing e in AWT.

• MVC: La libreria Swing fa un forte uso del design pattern Model/View/-

Controller, il quale concettualmente disaccoppia i dati mostrati ed i controlli

dell' interfaccia utente attraverso i quali sono mostrati. Grazie a questo, la

maggior parte dei componenti Swing hanno associati modelli (speci�cati in

termini di Java interfaces), il programmatore puo' usare varie implemen-

tazioni di default o crearne di proprie. Il framework fornisce implemen-

tazioni di default di modelli per le interfacce per tutti i suoi componenti.

.3 Gestire la comunicazione seriale

La comunicazione seriale tra il personal computer e la macchina e' gestita da

una libreria Java per la comunicazione seriale. Sfortunatamente, la Sun non

ha prestato molta attenzione alla comunicazione seriale in Java; esiste una API

Page 41: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO TRE: APPLICAZIONE JAVA PER IL

MONITORING DEL RILEVATORE 31

de�nita per tale scopo, JavaComm, ma tale API non e' prevista all' interno della

Java Standard Edition. Questa situazione, e il fatto che la Sun originariamente

non ha proveduto ad un' implemntazione di JavaComm per Linux, ha diretto

verso lo sviluppo di una libreria gratuita RxTx. RxTx e' disponibile, non solo

per Linux, ma per diverse piattaforme. Puo' essere usata con o senza l' appoggio

della JavaComm(la RxTx fornisce i suoi driver speci�ci). Quando vengono uti-

lizzate assieme, il collegamento tra JavaComm e RxTx viene gestito dalla JCL

(JavaComm for Linux). La JCL fa parte della RxTx.

Una alternativa alla libreria sopra citata e' la JSSC (Java Simple Serial Con-

nector. Di facile utilizzo, permette di aprire, gestire e chiudere una comunicazione

seriale con qualsiasi dispositivo ed e' compatibile con i principali sistemi operativi.

Per utilizzarla nel proprio progetto basta importare il �le .jar come una normale

libreria Java.

A livello pratico e' importante de�nire un oggetto di tipo SerialPort nel pro-

prio codice sorgente; su questo oggetto creato andremo ad applicare i metodi per

gestire la comunicazione. Inoltre e' necessario chiamare il metodo .openPort()

che apre la connessione e il metodo .setParams() nel quale vengono de�niti i

parametri di connessione. La de�nizione dell'oggetto avviene come un qualsiasi

oggetto in Java:

public SerialPort serialPort;

serialPort.openPort ();

serialPort.setParams (9600 , 8, 1, 0); //baudRate ,

dataBits , stopBits , parity

Page 42: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO TRE: APPLICAZIONE JAVA PER IL

MONITORING DEL RILEVATORE 32

Di seguito riporto i metodi principali da me utilizzati sull' oggetto serialPort

per gestire la comunicazione, con una breve descrizione nei commenti:

String [] getListOfPorts (); // ritorna le porte seriali

disponibili

boolean isOpened (); // ritorna TRUE se la porta

corrente è aperta

String getPortName (); // ritorna il nome della porta

connessa

void closePort (); // chiude la porta seriale

int getLinesStatus (); // ritorna lo stato della

connessione

String readString (); // ritorna una stringa con i dati

della connessione seriale

String writeString (); // scrive una stringa sulla

connessione corrente

E' possibile anche leggere stringhe in esadecimale e in binario. Inoltre diventa

di vitale importanza gestire le speci�che eccezioni attraverso il metodo SerialPor-

tException().

Page 43: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO TRE: APPLICAZIONE JAVA PER IL

MONITORING DEL RILEVATORE 33

.4 MySQL e la persistenza dei dati rilevati

La gestione persistente dei valori misurati dal contatore proporzionale e' realizzata

attraverso un Database Locale gestendo i dati con MySQL. Quest'ultimo e' un

RDBMS (Relational database management system), sviluppato in linguaggio C e

C++, composto da un client a riga di comando e un server. E' un software libero

sviluppato sempre dalla stessa Oracle. In una de�nizione di base, possiamo dire

che un database e' un contenitore di dati, e un RDBMS e' uno strumento che ci

consente di accedere a uno o piu' database per e�ettuare recupero, inserimento o

modi�ca dei dati.

Per quanto riguarda MySQL, esistono anche alcuni "MySQL Manager" ad

interfaccia gra�ca, tra cui phpMyAdmin o anche HeidiSQL per la gestione dei

database presenti attraverso GUI. Interessante anche un tool relativamente re-

cente, dal nome MySQL Workbench, che integra il disegno, la modellazione, la

creazione e l'aggiornamento di un database in un unico ambiente di lavoro.

Page 44: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO TRE: APPLICAZIONE JAVA PER IL

MONITORING DEL RILEVATORE 34

Come gia accennato in precedenza, un punto di forza di Netbeans a dispetto

di altri IDE, e' quello di avere una integrazione locale di MySQL, quindi con

pochi passaggi di con�gurazione e' possibile avere un database perfettamente

funzionante a disposizione. In basso le tabelle presenti nel database di pressione

e temperatura:

Table .1: Tabella della pressione.

ID Pressione sonda 2 Pressione sonda 4 Data1 113.5 112.2 Jul 28 13:49:492 113.5 112.2 Jul 28 13:50:493 113.5 112.2 Jul 28 13:51:494 113.5 112.2 Jul 28 13:52:495 113.5 112.2 Jul 28 13:53:49

Table .2: Tabella della temperatura.

ID Temperatura sonda 1 Temperatura sonda 3 Data1 25.6 25.3 Jul 28 13:49:492 25.6 25.3 Jul 28 13:50:493 25.6 25.3 Jul 28 13:51:494 25.6 25.3 Jul 28 13:52:495 25.6 25.3 Jul 28 13:53:49

Utilizzando gli opportuni driver JDBC e' possibile gestire l'interazione tra il

database e l' applicativo Java. E'quindi necessario creare un oggetto Connection

e impostare alcuni parametri di connessione:

Connection connection;

Class.forName("com.mysql.jdbc.Driver");

con = DriverManager.getConnection("jdbc:mysql:

// localhost :3306/ ContatoreProporzionale", "root", "");

Nel caso di problemi durante la connessione bisogna gestire una eccezione:

Page 45: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO TRE: APPLICAZIONE JAVA PER IL

MONITORING DEL RILEVATORE 35

catch (ClassNotFoundException | SQLException s) {

graphic.logArea.append("--- Problem with the

DBEngine ---");

}

La query al database per e�ettuare il recuepero dei dati passati viene e�ettuata

all' apertura dell'applicazione, e si compone di pochi passi. De�nisco un vettore

di stringhe, preparo una query e la eseguo al database. Il risultato mi torna nella

variabile rs. Scorro quest'ultima e aggiungo i dati al vettore de�nito inizialmente:

Vector <Vector <String >> pressData = new

Vector <Vector <String >>();

Connection conn = dbConnection ();

PreparedStatement pre = conn.prepareStatement("SELECT

* FROM Pressure");

ResultSet rs = pre.executeQuery ();

while (rs.next()) {

Vector <String > press = new Vector <String >();

press.add(rs.getString (1)); // pressure 2

press.add(rs.getString (2)); // pressure 4

press.add(rs.getString (3)); //time

pressData.add(press);

Per quanto riguarda l' invio e il salvataggio su database dei valori rilevati, il

codice diventa leggermente piu' complesso. Come per il recupero dei dati, in-

izialmente si crea una connessione; dagli oggetti �eld di Swing si recuperano le

stringhe e le si trasformano in dei valori �oat attraverso la funzione parseFloat()

de�nita nelle API standard di Java. E' di interesse memorizzare anche la data

con l' ora in cui il valore viene inserito nel database, quindi si importa la libreria

Page 46: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO TRE: APPLICAZIONE JAVA PER IL

MONITORING DEL RILEVATORE 36

Date e si crea un oggetto Date, sulla base di un oggetto SimpleDateFormat(anch'

esso presente nella libreria Date). Attraverso il metodo toString() si ottiene il

valore testuale della data. Si creano due oggetti string in cui si inseriscono le

asserzioni che verranno e�ettuate nel database. In ultima istanza, si eseguono

entrambi gli update.

Class.forName("com.mysql.jdbc.Driver");

Connection con =

DriverManager.getConnection("jdbc:mysql:

// localhost :3306/ ContatoreProporzionale", "root", "");

Statement stmt = (Statement) con.createStatement ();

float temp1 = Float.parseFloat(temperature1Field

.getText ());

float temp2 = Float.parseFloat(temperature2Field

.getText ());

float temp3 = Float.parseFloat(temperature3Field

.getText ());

float temp4 = Float.parseFloat(temperature4Field

.getText ());

float press2 = Float.parseFloat(pressure2Field

.getText ());

float press4 = Float.parseFloat(pressure4Field

.getText ());

SimpleDateFormat sdf = new

SimpleDateFormat("yyyy.MM.dd 'at' HH:mm:ss ");

Date dateWithoutTime = sdf.parse(sdf.format(new

Date()));

Page 47: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO TRE: APPLICAZIONE JAVA PER IL

MONITORING DEL RILEVATORE 37

String timeDatabase;

timeDatabase = dateWithoutTime.toString ();

String substring = timeDatabase.substring(4, 19);

String insertTemp = "INSERT INTO Temperature VALUES("

+ temp1 + "," + temp2 + "," + temp3 + "," + temp4 +

",'" + substring + "')";

String insertPressure = "INSERT INTO Pressure VALUES("

+ press2 + "," + press4 + ",'" + substring + "')";

stmt.executeUpdate(insertTemp);

stmt.executeUpdate(insertPressure);

}

Anche in questo caso, ci sono alcune eccezioni che vanno necessariamente gestite.

Nello speci�co l' eccezione dello statement SQL e l' eccezione del parsing.

catch (ClassNotFoundException | NumberFormatException

| SQLException | ParseException e) {

JOptionPane.showMessageDialog(null ,

e.getMessage (), "Error", 1);

.5 JfreeChart: gra�ci in Java

La realizzazione dei gra�ci in 2d e 3d dei valori su database e' gestita attraverso

la libreria Java JfreeChart. JFreeChart e' un framework open-source per creare

una serie di gra�ci di vario tipo. Alcuni esempi di strategie realizzabili:

• Gra�co X-Y

• Gra�co a torta

• Gra�co Gantt

Page 48: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO TRE: APPLICAZIONE JAVA PER IL

MONITORING DEL RILEVATORE 38

• Gra�co a barre

• Gra�co a valore singolo

• Gra�ci speci�ci

Il disegno delle scale degli assi e la legenda e' realizzata in maniera automat-

ica. Anche la dimensione complessiva dei gra�ci e' realizzata di default basandosi

sulla risoluzione del computer corrente.

Nel riquadro sottostante il codice necessario per la realizzazione di un gra�co

3d a linee dei valori di pressione recuperati dal database. Si e�ettua una query

al database recuperando i dati voluti. Si crea una struttura base per il gra�co, si

impostano i valori degli assi, il font desiderato per il testo presente; in�ne si crea

un nuovo frame in cui racchiudere il gra�co e lo si rende visibile.

Class.forName("com.mysql.jdbc.Driver");

Connection con =

DriverManager.getConnection("jdbc:mysql:

// localhost :3306/ ContatoreProporzionale", "root", "");

Statement stmt = (Statement) con.createStatement ();

String query = "SELECT time ,press2 from Pressure";

JDBCCategoryDataset data = new

JDBCCategoryDataset(con , query);

JFreeChart chart =

ChartFactory.createLineChart3D("Line Pressure

Graph", "date", "pressure", data ,

PlotOrientation.VERTICAL , false , true , true);

CategoryPlot p = chart.getCategoryPlot ();

ValueAxis axis = p.getRangeAxis ();

Page 49: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO TRE: APPLICAZIONE JAVA PER IL

MONITORING DEL RILEVATORE 39

CategoryPlot pa = chart.getCategoryPlot ();

CategoryAxis axist = pa.getDomainAxis ();

Font font = new Font("Dialog", Font.PLAIN , 5);

axist.setTickLabelFont(font);

BarRenderer renderer = null;

CategoryPlot plot = null;

renderer = new BarRenderer ();

ChartFrame frame = new ChartFrame("query chart",

chart);

frame.setVisible(true);

frame.setSize (1920, 1080);

.5.1 Di�erenze dell' applicazione nei principali sistemi

operativi

Una delle caratteristiche dell' applicazione e' quella di essere multipiattaforma,

nello speci�co di essere compatibile con i tre principali sistemi operativi: Win-

dows, Linux e Mac OSX. L' unica di�erenza sostanziale tra questi O.S., per

quanto riguarda l' applicativo realizzato, e' il nome delle porte seriali del pc. Per

realizzare questa feature quindi si recupera il nome del sistema operativo utiliz-

zando il package java.System, presente nelle API di java. Recuperando il nome

del sistema operativo, e salvandolo in una stringa e' possibile de�nire il nome

della porta di comunicazione seriale di default, in questo modo:

public class SerialCommunication {

SerialPort serialPort;

String os="";

Page 50: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO TRE: APPLICAZIONE JAVA PER IL

MONITORING DEL RILEVATORE 40

public String getOperatingSystem (){

String osname=System.getProperty("os.name","")

.toLowerCase ();

if(osname.startsWith("windows")){

os="windows";

}

else if(osname.startsWith("linux")){

os="linux";

}

else if(osname.startsWith("mac")){

os="mac";

}

else{

System.out.println("Sorry your operating

system is not supported");

}

return os;

}

Page 51: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

Capitolo Quattro: Visione globale

dell' applicazione

Nella �gura in basso, che mostra la macchina in acquisizione con veri�ca dei dati

ricevuti attraverso oscilloscopio, e' possibile notare il particolare del computer

avviato con HyperTerminal in ricezione dati. Come gia' detto nel capitolo 4

questo richiede una conoscenza pregressa delle funzionalita' della macchina, il

mio lavoro di tesi e' stato proprio quello di rendere user-friendly l'interazione con

la macchina e con l' esperimento stesso.

Figure .1: Acquisizione dati prima della creazione dell' applicazione in

Java.

41

Page 52: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO QUATTRO: VISIONE GLOBALE DELL'

APPLICAZIONE 42

.1 Organizzazione package e risultato �nale

Alcune schermate sommarie riguardanti l' organizzazione del progetto in Net-

beans 8.0 e il risultato �nale dell'applicazione:

Figure .2: Organizzazione in package del codice applicativo.

Page 53: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO QUATTRO: VISIONE GLOBALE DELL'

APPLICAZIONE 43

Figure .3: Main panel in acquisizione dati.

Page 54: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO QUATTRO: VISIONE GLOBALE DELL'

APPLICAZIONE 44

.2 Sezione Database e di Log

Dettaglio di alcuni componenti principali presenti nel pannello:

Figure .4: Sezione database.

Figure .5: Sezione di log. E' presente il sistema operativo corrente e l'

ora con la data d' inizio della sessione.

Page 55: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO QUATTRO: VISIONE GLOBALE DELL'

APPLICAZIONE 45

.3 Gra�ci di pressione e temperatura

A seguire i gra�ci che e' possibile costruire e visualizzare in tempo reale grazie

alla libreria JFreeChart:

Figure .6: Gra�co a barre 3d della temperatura.

Page 56: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO QUATTRO: VISIONE GLOBALE DELL'

APPLICAZIONE 46

Figure .7: Gra�co a linee 3d della pressione.

Page 57: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO QUATTRO: VISIONE GLOBALE DELL'

APPLICAZIONE 47

.4 Sezione comunicazione e avvio acquisizione

Dettaglio della sezione atta all' apertura e alla chiusura della connessione e della

sezione per controllare l' acquisizione corrente:

Figure .8: Rilevamento della porta disponibile e possibilita' di aprire e

chiudere la connessione.

Figure .9: Dopo aver impostato il tempo di acquisizione in millisecondi

e' possibile dare lo start alla macchina.

Page 58: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO QUATTRO: VISIONE GLOBALE DELL'

APPLICAZIONE 48

.5 Funzioni disponibili

Ho ritenuto utile creare un sub-panel in cui inserire le principali funzioni disponi-

bili:

Figure .10: Sintetico elenco dei comandi disponibili per controllare la

macchina.

Page 59: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO QUATTRO: VISIONE GLOBALE DELL'

APPLICAZIONE 49

Figure .11: About us.

Page 60: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

Capitolo Cinque: Conclusioni e

sviluppi futuri

Cercare di racchiudere in queste poche pagine il mio lavoro di tesi non e' stato

certamente semplice, cosi' come non e' semplice raccontare in questo spazio i miei

due anni di collaborazione con l' Istituto Nazionale di Fisica Nucleare.

Due anni che mi hanno permesso di apprendere molte cose e di seguire con

una lente d' ingrandimento l' esperimento ERMES, che ha visto la creazione e

la realizzazione del contatore proporzionale ad Elio 3 con un microcontrollore a

basso costo, come Arduino.

Le nozioni ingegneristiche apprese in questi tre anni di studio universitario

sono state utili su ogni fronte: dalla conoscenza di un linguaggio ad alto liv-

ello come Java, alla gestione di un database relazionale come Postgres oppure

MySQL. Inoltre, la conoscenza delle nozioni di �sica base, di telecomunicazioni

e di reti di calcolatori, che mi hanno consentito di risolvere alcuni aspetti critici,

di competenza necessaria nell' ambiente di lavoro nel quale mi trovavo.

Ritengo che il mio lavoro di tesi, cosi' come l'esperimento con il quale mi sono

dovuto cimentare abbiano ampi margini di miglioramento e di sviluppo futuro.

Ad esempio, un obiettivo perseguibile potrebbe esser la realizzazione all' interno

dell' interfaccia gra�ca di una feature che permetta la connessione e il download

50

Page 61: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

. CAPITOLO CINQUE: CONCLUSIONI E SVILUPPI FUTURI 51

dei dati via Wi-Fi, che putroppo per motivi di tempo legati all' andamento del

tirocinio, non e' stato possibile realizzare.

Page 62: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

Ringraziamenti

52

Page 63: UNIVERSITÀ DEGLI STUDI ROMA TRE T R E - Mirko Bastianinimirkobastianini.altervista.org/bachelorthesis.pdf · Corso di Laurea in Ingegneria Informatica Tesi di Laurea ... principali

Bibliogra�a

[Gea] David M. Geary. Graphic java 2, volume 2. Prentice Hall.

[JM] Chris Adamson Joshua Marinacci. Swing hacks. O'Reilly.

[Kno] Glenn F. Knoll. Radiation detection and measurement.

[Lar05] C. Larman. Applicare UML e i pattern - Analisi e progettazione orien-

tata agli oggetti. Prentice Hall, 2005.

[Leo94] W.R. Leo. Techniques for nuclear and particle physics experiments.

1994.

[LNF04] LNF. I raggi cosmici. Laboratori Nazionali del gran Sasso, 2004.

[Nob11] Luca Nobili. Il segreto dei raggi cosmici: da dove prendono velocita'?

Media - INAF, 2011.

[Sch11] Herbert Schildtn. Java. La guida completa. McGraw-Hill Education,

2011.

[Wik] Wikipedia. http://it.wikipedia.org/wiki/Contatore_Geiger.

53