mirror of
https://forge.apps.education.fr/blender-edutech/blender-edutech-tutoriels.git
synced 2024-01-27 09:42:33 +01:00
30 lines
1.3 KiB
Python
30 lines
1.3 KiB
Python
|
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
|
|||
|
carte = pyfirmata.Arduino('COM3') # Windows
|
|||
|
carte = pyfirmata.Arduino('/dev/ttyACM0') # GNU/Linux
|
|||
|
print("Communication Carte Arduino établie")
|
|||
|
|
|||
|
servo = board.get_pin('d:9:s') # Servo sur broche D9
|
|||
|
|
|||
|
try :
|
|||
|
while True: # Boucle infinie
|
|||
|
angle = int(input("Entrer un angle entre 10 et 170):")) # Demande à l’utilisateur d’entrer la valeur de l’angle
|
|||
|
if angle < 10 : # Si la valeur entrée est inférieure à 10° on bloque le servo moteur à 10°
|
|||
|
angle = 10
|
|||
|
elif angle > 170 : # Si la valeur entrée est supérieur à 170° on bloque le servo moteur à 170°
|
|||
|
angle = 170
|
|||
|
servo.write(angle) # Ecrit cette valeur dans le pin du servo moteur
|
|||
|
except :
|
|||
|
carte.exit()
|