Arduino

Arduino

Calcolo di PI - greco

Questo progetto è stato pensato per il calcolo di PI greco con il metodo MONTECARLO basato su procedimenti probabilistici per risolvere problemi che presentano difficoltà analitiche.
Si prende un quadrato di lato L e si inscrive in esso un cerchio con diametro pari al lato.
Se si pensa che le aree delle due figure geometriche sono costituite da punti, per determinare PI greco con buona approssimazione bisogna fare il rapporto tra il numero di punti che ci sono dentro il cerchio e quelli dentro il quadrato (che contengono anche quelli del cerchio) e moltiplicare tutto per 4. Infatti:

Area cerchio = PI * L² / 4       Area quadrato = L²

Area cerchio / Area quadrato = k = PI / 4

da cui 4*k = PI 

Per avere un'idea di quello che succede ho creato uno sketch con Processing .
Esso consente di disegnare sulla lavagna grafica un punto con coordinate X ed Y , scelte casualmente da Arduino entro i limiti impostati ed inviate via seriale.
Ottenute le coordinate si verifica se esso si trova dentro o fuori dal cerchio calcolando la distanza tra il centro ed il punto: se D <= R allora il punto è interno, se D > R il punto è esterno.
Più sono questi punti, più preciso risulta il calcolo.

Per realizzare il progetto ho utilizzato:
1) un dsplay LCD 2004 che riporta i valori dei punti totali, di quelli che appartengono al cerchio ed ovviamente il valore di PI greco, aggiornati ogni 50 ms circa;
2) 2 LED, uno verde ed uno rosso, che hanno la seguente funzione: quello verde indica che il sistema è pronto per essere avviato mentre il rosso lampeggia quando i punti totali sono multipli di 2000;
3) 2 pulsanti, uno verde ed uno rosso, che hanno il compito, rispettivamente, di arrestare e avviare(o riavviare) il processo;
4) un buzzer che emette un beep  quando i punti totali sono multipli di 2000.

Collegamenti:
a) display LCD
Due terminali all'alimentazione (+5V e GND) e due ai pin analogici, rispettivamente, A5(SCL) ed A4(SDA);
b) LED
Essi sono collegati da un terminale al GND e dall'altro, tramite una resistenza di 220 ohm, ai pin digitali  8 (verde) e 7(rosso);
c) pulsanti
Essi sono collegati da un terminale al +5V e dall'altro, tramite una resistenza di 10 Kohm, al GND. Il terminale della resistenza non connesso al GND va al pin digitale 2 per il pulsante verde e al pin digitale 10 per il pulsante rosso;
d) buzzer
Il terminale negativo al GND mentre quello positivo al pin digitale 13.

Il codice relativo al progetto è disponibile al link PI greco mentre quello di Processing al link PI greco Processing.





Nessun commento:

Posta un commento