Paso 2: código
#! / 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