Una base de frambuesa Pi verdaderamente generador de números aleatorios (2 / 3 paso)

Paso 2: código

Este código tiene 6 parámetros configurables: longitud de los números al azar a la salida (en pedacitos), los tres pines, el pin de salida y el tiempo de sueño (tts) de entrada. Un TTS más corto acelera el generador pero reduce la entropía. TTS por defecto a 0,01 segundos.

#! / usr/bin/env python
#Uses flotante entradas GPIO4 GPIO17 y GPIO22 para generar números realmente aleatorios
#Outputs a 25 GPIO cuando un nuevo número se realiza y envía el número a STDOUT

importación RPi.GPIO como GPIO
Import sys
de importación sueño

GPIO.setmode (GPIO. BCM)

DEF getRBit (pin1, pin2, pin3, tts): #gets al azar puso de bits XOR, salidas y un poco al azar
albañilería1 = 0
BIT2 = 0
bit3 = 0
bitv = 0
GPIO.setup (pin1, GPIO. EN)
GPIO.setup (pin2, GPIO. EN)
GPIO.setup (pin3, GPIO. EN)
Sleep(TTS) #Sleep así que la CPU puede ensuciar y cambiar el entorno de EMF
albañilería1 = GPIO.input(pin1)
Si albañilería1:
albañilería1 = 1
otra cosa:
albañilería1 = 0
Sleep(TTS) #Sleep así que la CPU puede ensuciar y cambiar el entorno de EMF
BIT2 = GPIO.input(pin2)
Si bit2:
BIT2 = 1
otra cosa:
BIT2 = 0
Sleep(TTS) #Sleep así que la CPU puede ensuciar y cambiar el entorno de EMF
bit3 = GPIO.input(pin3)
Si bit3:
bit3 = 1
otra cosa:
bit3 = 0
#Now hacer algunos lógica XOR
bitv = albañilería1 ^ bit2
a = bitv ^ bit3
volver a

DEF getRInt (x, pin1, pin2, pin3, pin4, tts = 0. 01): número #get x bits pasando a través de una cadena un montón. Pin4 es LEDout.
GPIO.setup (pin4, GPIO. HACIA FUERA)
binstr = "" #Set hasta convertir a binario
rint = 0
rbit = 0
i = 0
para i en gama (0, x-1):
i += 1
rbit = getRBit (pin1, pin2, pin3, tts)
binstr = binstr + str(rbit)
#print(binstr) # para propósitos de depuración
rint = int (binstr, 2)
GPIO.output (pin4, True)
Sleep(0.2)
GPIO.output (pin4, False)
volver rint
Aunque la verdad:
Imprimir (getRInt (64, 4, 17, 22, 25, 0.01)) #bits, in1, in2, in3, hacia fuera, tts

Artículos Relacionados

Generador de números aleatorios verdaderos Arduino

Generador de números aleatorios verdaderos Arduino

esto es sólo un divertido proyecto que he estado trabajando en el último momento. Si te gusta este instructable, considerar votar por él en el Desafío de Arduino!Probablemente cualquier persona que tenga experiencia con la programación habrá utilizad
Cómo hacer un generador de números aleatorios utilizando Visual Basic 2012

Cómo hacer un generador de números aleatorios utilizando Visual Basic 2012

Hola en este instructable voy a mostrarte cómo hacer un generador de números aleatoriosabrir primero el programa de visual basiccontinuación, arrastre un botón al formularioy agregue un cuadro de textoa continuación haga doble clic en el botóny una v
Cómo hacer un generador de números aleatorios

Cómo hacer un generador de números aleatorios

este es un generador de números aleatorios que he creado en la escuela el año pasado, estoy poniendo en instructables a la gente puede compartir y aprender sobre cómo hice mi proyecto. Voy a describir lo mejor que pueda, ya que mi nota era sobre todo
Verdadero generador de números aleatorios capacitación (4 bits)

Verdadero generador de números aleatorios capacitación (4 bits)

El objetivo de este pequeño proyecto era construir un generador de números al azar que no dependen de cálculos para proporcionar un número al azar, como ordenadores y tratan de obtener el número aleatorio o como cerca al azar como sea posible.Informa
Pantalla de 7 segmentos generador de números aleatorios (RNG SSD)

Pantalla de 7 segmentos generador de números aleatorios (RNG SSD)

Esta es mi segunda vez construido aplicación basada en arduino. Fácil y gratificante ver su programa de trabajo previsto.Paso 1: partesUtilicé para comenzar con las siguientes partes:-Uno Funduino (idéntico al arduino uno) (en mi opinión)-siete cable
Cómo hacer un generador de números de lotería en la calculadora

Cómo hacer un generador de números de lotería en la calculadora

esto es como hacer un generador de números aleatoriosque puede utilizar para escoger números de lotería para usteden una calculadora ti-83 o 84** Esto fue pensado y hecho por mitomar todo el crédito para este programa **Paso 1: Permite comenzar Prime
Cómo hacer una tarta de frambuesa con una frambuesa pi

Cómo hacer una tarta de frambuesa con una frambuesa pi

Como un ingeniero trabajando día y noche con programas y robots, estoy cansado de ser llamado "Cocina movilidad" por mi novia, así que decidí hacer una tarta de frambuesa real usando mi capacidad técnica con Raspberry Pi, 14/3, que es llamado el
¿Cómo gestionar las muestras con código QR y una base de datos sobre Raspberry Pi?

¿Cómo gestionar las muestras con código QR y una base de datos sobre Raspberry Pi?

Este tutorial paso a paso se hace aayudarle a hacer su propia base de datos en un Raspberry Pi.Nuestro trabajo era crear una página web para la empresa Materia Nova para codificar datos sobre muestras de sus productos. Una vez codificados, los datos
Mejorar su cerámica con Sugru (de una base a prueba de calor, antideslizante, no rasguña, decorativa)

Mejorar su cerámica con Sugru (de una base a prueba de calor, antideslizante, no rasguña, decorativa)

¿Por qué combinar estos dos materiales?Durante milenios la gente ha sido trabajo de cerámica, pero material súper moderno, Sugru, (un pegamento de silicona moldeable) es unos pocos años - qué cosa mejor que hacer que tratar de trabajar con ambos de e
Parte 5 de 5 como hacer una Base de Pizza - lanzar la Pizza

Parte 5 de 5 como hacer una Base de Pizza - lanzar la Pizza

pasar un buen rato en la cocina y aprender a lanzar una base de pizza con Mark Gill de pequeñas criaturas.
Adición de una base a una «tercera mano»

Adición de una base a una «tercera mano»

Cuando se trabaja en proyectos de electrónica, encontrar una "tercera mano" indispensable. Disponible en tiendas como puerto de carga, generalmente por debajo de $5.00, no una herramienta costosa. Desafortunadamente, la base de su montado, es pr
Cómo a la cama a una Base de alcance - Remington M700 AAC-SD.308 Rifle táctico

Cómo a la cama a una Base de alcance - Remington M700 AAC-SD.308 Rifle táctico

Te escribo una serie de artículos que pertenecen a accurizing el Remington 700, suscribirse y mantenerse al día como el trabajo en este progesses de rifle.La construcción incluirá:La base del alcance del lechoInstalar un gatillo derecho del mercado d
Construyendo una Base de la escultura

Construyendo una Base de la escultura

Has hecho un maravilloso widget para que todos puedan disfrutar. Ahora, ¿dónde poner este impresionante objeto? Bueno, podría ponerlo en un estante pero eso requeriría poner agujeros en la pared. ¿No es una opción? Podría hacer una escultura de base!
Diseño de una base de datos de llenado de formulario utilizando Microsoft access.

Diseño de una base de datos de llenado de formulario utilizando Microsoft access.

Todos tenemos que llenar un formulario en nuestro trabajo día a día, pero es un poco difícil llenar un diario forma si están haciendo un negocio o prestar un servicio. Si usted necesita llenar un formulario con el mismo formato como recibos de banco,