Étape 2: Code
#! / usr/bin/env python
#Uses flottant entrées sur GPIO4, GPIO17 et GPIO22 pour générer des nombres aléatoires
#Outputs à 25 GPIO lorsqu’un nouveau numéro est fait et envoie le nombre à STDOUT
importation RPi.GPIO comme GPIO
import sys
de temps importer sommeil
GPIO.setmode (GPIO. BCM)
def getRBit (pin1, pin2, pin3, tts): #gets un aléatoire définissez-les de bits XOR et fournit en sortie un peu au hasard
BIT1 = 0
BIT2 = 0
BIT3 = 0
BITV = 0
GPIO.setup (pin1, GPIO. JNJ
GPIO.setup (pin2, GPIO. JNJ
GPIO.setup (pin3, GPIO. JNJ
Sleep(TTS) #Sleep donc le CPU peut déranger et modifier l’environnement de l’EMF
BIT1 = GPIO.input(pin1)
Si bit1 :
BIT1 = 1
autre chose :
BIT1 = 0
Sleep(TTS) #Sleep donc le CPU peut déranger et modifier l’environnement de l’EMF
BIT2 = GPIO.input(pin2)
Si bit2 :
BIT2 = 1
autre chose :
BIT2 = 0
Sleep(TTS) #Sleep donc le CPU peut déranger et modifier l’environnement de l’EMF
BIT3 = GPIO.input(pin3)
Si bit3 :
BIT3 = 1
autre chose :
BIT3 = 0
#Now faire une logique XOR
BITV = bit1 ^ bit2
sortir = bitv ^ bit3
retour sur
def getRInt (pin1, pin2, pin3, pin4, x, tts = 0,01): nombre de #get un x-bit en effectuant une boucle à travers une chaîne un tas. Pin4 est LEDout.
GPIO.setup (pin4, GPIO. OUT)
binstr = "" #Set jusqu'à être convertie en binaire
Rint = 0
rbit = 0
J’ai = 0
car moi dans l’intervalle (0, x-1) :
J’ai += 1
rbit = getRBit (pin1, pin2, pin3, tts)
binstr = binstr + str(rbit)
#print(binstr) # à des fins de débogage
Rint = int (binstr, 2)
GPIO.output (broche4, True)
Sleep(0.2)
GPIO.output (broche4, False)
Retour à rint
While True :
imprimer (getRInt (64, 4, 17, 22, 25, 0,01)) #bits, in1, in2 in3, dehors, tts