Afin de déterminer si nous avons assez de mesures pour donner une valeur à l'utilisateur, nous devons calculer l'écart quadratique moyen de notre jeu de valeurs. Nous ferons cela en javascript, côté application.
moyenne=∑n≥i≥0vinecarti=(moyenne−vi)2ecartQuadratiqueMoyen=√∑n≥i≥0ecartin
Pour vérifier que tout fonctionne correctement, nous utilisons un arduino pour générer des impulsions aléatoires suivant la méthode Box-Muller :
void setup() { Serial.begin(9600); pinMode(13, OUTPUT); } void oneSecondPulse(int nbCoups) { int s = 500/nbCoups; for (int i=0 ; i<nbCoups ; i++) { digitalWrite(13, HIGH); delay(s); digitalWrite(13, LOW); delay(s); } } void loop() { float x, y; x = ((float) random(1000))/1000.0; y = ((float) random(1000))/1000.0; float z0, z1; z0 = sqrt(-2.0*log(x))*cos(2*PI*y); z1 = sqrt(-2.0*log(x))*sin(2*PI*y); oneSecondPulse(z0*5+20); //Serial.println(z0, DEC); }
Attention ! Le RFduino fonctionne en 3.6 V, tandis que l'arduino uno fonctionne en 5 V, il faut donc utiliser un pont diviseur de tension.