def tracer_grille(grille, agrandissement, angle, origine): n = 4000 calibre = 0.1 pwm_X = PWM(0) pwm_Y = PWM( 1) # il n'existe que 2 canaux pour implementer les PWMs (0 et 1) pwm_X.export() pwm_Y.export() pwm_X.period = 100000 # les unites sont en nanosecondes, ainsi dans cet exemple la periode vaut 100000*1ns = 100 us pwm_Y.period = 100000 GPIO.setmode( GPIO.BOARD) # On lit les pattes dans l'ordre classique en électronique GPIO.setup(35, GPIO.OUT) # La broche 35 est configurée en sortie ##La fréquence max du lever/baisser de stylo et 4Hz. Donc 250ms. ### Ecriture de la grille for i in range(0, len(grille)): for j in range(0, len(grille[0])): if (grille[i][j] != 0): seq_chiffre = choix(grille[i][j], i, j, agrandissement, angle) x = seq_chiffre[0] y = seq_chiffre[1] haut = seq_chiffre[2] for k in range(0, len(x)): x[k] += origine[0] * calibre y[k] += origine[1] * calibre stylo_haut() for k in range(0, len(x)): if (k != 0): lever_stylo(haut[k], haut[k - 1]) pwm_X.duty_cycle = int(x[k] * pwm_X.period / 3.3) pwm_Y.duty_cycle = int(y[k] * pwm_Y.period / 3.3) pwm_X.enable = True pwm_Y.enable = True stylo_haut() #Lorsque l'on a termine avec la table tracante pwm_X.enable = False # On desactive la PWM pwm_Y.enable = False pwm_X.unexport() pwm_Y.unexport() GPIO.cleanup( ) # A la fin du programme on remet à 0 les broches du Rasberry PI return (0)
def calibrage(): GPIO.setmode( GPIO.BOARD) # On lit les pattes dans l'ordre classique en électronique GPIO.setup(35, GPIO.OUT) # La broche 35 est configurée en sortie pwm_X = PWM(0) pwm_Y = PWM( 1) # il n'existe que 2 canaux pour implementer les PWMs (0 et 1) pwm_X.export() pwm_Y.export() pwm_X.period = 100000 # les unites sont en nanosecondes, ainsi dans cet exemple la periode vaut 100000*1ns = 100 us pwm_Y.period = 100000 GPIO.output(35, GPIO.HIGH) for i in range(0, int(pwm_Y.period / 5)): pwm_Y.duty_cycle = 5 * i pwm_Y.enable = True for i in range(0, int(pwm_X.period / 5)): pwm_X.duty_cycle = 5 * i pwm_X.enable = True for i in range(0, int(pwm_Y.period / 5)): pwm_Y.duty_cycle = pwm_Y.period - 5 * i pwm_Y.enable = True for i in range(0, int(pwm_X.period / 5)): pwm_X.duty_cycle = pwm_X.period - 5 * i pwm_X.enable = True pwm_X.enable = False pwm_Y.enable = False stylo_haut() time.sleep(1) pwm_X.duty_cycle = int(pwm_X.period / 2) pwm_X.enable = True time.sleep(1) camera = picamera.PiCamera() camera.capture('calibrage.jpg') time.sleep(1) pwm_X.enable = False pwm_X.unexport() pwm_Y.unexport() GPIO.cleanup() return 1