Pagina 1 van 1

VariableRandom

BerichtGeplaatst: 20 jan 2015, 01:37
door erik
/*********************************************************************************************\
* Deze plugin vult een variabele met een random waarde
*
* VariableRandom var,MAX vult var met een random waarde tussen 0 (incl) en MAX (excl)
* VariableRandom var,MIN,MAX vult var met een random waarde tussen MIN (incl) en MAX (excl)
*
* Middels PLUGIN_INIT wordt een random seed uitgevoerd, gebaseerd op de ruis op analoge input (0)
*
*
* Auteur : Erik Couzy
* Support : http://www.nodo-domotica.nl (erik)
* Datum : jan 2015
* Versie : 1.1
* Nodo productnummer : <Nodo productnummer. Toegekend door Nodo team>
* Compatibiliteit : Vanaf Nodo build nummer <build nummer>
* Syntax : VariableRandom Var, Max
* VariableRandom Var, Min, Max

https://www.dropbox.com/s/sd8fuafszz3hr ... 250.c?dl=0


analogread(0) geeft op mijn systeem een bescheiden doch acceptabele spread,
Als iemand een betere seed weet; graag!

Re: VariableRandom

BerichtGeplaatst: 20 jan 2015, 09:46
door Voyager
Hoi,

Volgens http://arduino.cc/en/Reference/randomSeed is dat hoe je randomseed zou moeten initialiseren op een Arduino.
Lijkt mij dat de Nodo basis code dat eigenlijk zou moeten regelen in het boot process zodat TimerRandom z'n werk goed doet.

Overigens, "TrueRandom library for Arduino" https://code.google.com/p/tinkerit/wiki/TrueRandom
lijkt nog een stapje verder te gaan met een von Neumann whitening algorithme.

How TrueRandom works
It is hard to get a truly random number from Arduino. TrueRandom does it by setting up a noisy voltage on Analog pin 0, measuring it, and then discarding all but the least significant bit of the measured value. However, that isn't noisy enough, so a von Neumann whitening algorithm gathers enough entropy from multiple readings to ensure a fair distribution of 1s and 0s.


~William