blender-edutech-tutoriels/labyrinthe/6-jumeaux/test/servo-test.py

31 lines
1.4 KiB
Python
Raw Normal View History

2023-10-07 08:28:28 +02:00
import pyfirmata
###############################################################################
# servo-test.py :
# @title: Test de pilotage d'un servomoteur par pyFirmata
# @project: Blender-EduTech - Tutoriel : Tutoriel 6 : Labyrinthe à bille - Développement de jumeau numérique
# @lang: fr
# @authors: Philippe Roy <philippe.roy@ac-grenoble.fr>, Andre Nicolas <Nicolas.Andre@ac-grenoble.fr>
# @copyright: Copyright (C) 2023 Philippe Roy
# @license: GNU GPL
###############################################################################
# Communication avec la carte Arduino
2023-10-07 08:54:34 +02:00
# carte = pyfirmata.Arduino('COM3') # Windows
carte = pyfirmata.Arduino('/dev/ttyACM1') # GNU/Linux
2023-10-07 08:28:28 +02:00
print("Communication Carte Arduino établie")
servo = carte.get_pin('d:9:s') # Servomoteur sur la broche D9
2023-10-07 08:28:28 +02:00
try :
while True: # Boucle infinie
print ("Angle :", servo.read())
2023-10-07 08:54:34 +02:00
angle = int(input("Entrer un angle entre 10 et 170) : ")) # Demande à lutilisateur dentrer la valeur de langle
if angle < 10 : # Si la valeur entrée est inférieure à 10° on bloque le servomoteur à 10°
2023-10-07 08:28:28 +02:00
angle = 10
elif angle > 170 : # Si la valeur entrée est supérieure à 170° on bloque le servomoteur à 170°
2023-10-07 08:28:28 +02:00
angle = 170
servo.write(angle) # Ecrit cette valeur sur la broche du servomoteur
2023-10-07 08:28:28 +02:00
except :
carte.exit()