Outils pour utilisateurs

Outils du site


issue119:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
issue119:python [2017/04/10 09:23] auntieeissue119:python [2017/04/12 10:52] (Version actuelle) andre_domenech
Ligne 11: Ligne 11:
 Qu'est-ce donc que Firmata ? Qu'est-ce donc que Firmata ?
  
-Firmata est un protocole de communication série utilisé depuis longtemps pour les communications entre des micro-controlleurs et les programmes sur un autre ordinateur. Firmata donne un accès direct à la carte Arduino. Vous pouvez communiquer par le port série de l'ordinateur « hôte » en utilisant à peu près n'importe quel langage série, dont Python. Il est basé sur la spécif. MIDI.+Firmata est un protocole de communication série utilisé depuis longtemps pour les communications entre des micro-contrôleurs et les programmes sur un autre ordinateur. Firmata donne un accès direct à la carte Arduino. Vous pouvez communiquer par le port série de l'ordinateur « hôte » en utilisant à peu près n'importe quel langage série, dont Python. Il est basé sur la spécif. MIDI.
  
 En utilisant le script « Standard Firmata » inclus dans les exemples Arduino, vous pouvez avoir accès à, et piloter, n'importe quelle connexion analogique ou numérique de la carte Arduino, sans avoir à écrire du code spécifique. Si vous le voulez, vous pouvez écrire du code spécialisé en incorporant la bibliothèque Firmata pour l'Arduino qui réalise des fonctions spécialisées. En utilisant le script « Standard Firmata » inclus dans les exemples Arduino, vous pouvez avoir accès à, et piloter, n'importe quelle connexion analogique ou numérique de la carte Arduino, sans avoir à écrire du code spécifique. Si vous le voulez, vous pouvez écrire du code spécialisé en incorporant la bibliothèque Firmata pour l'Arduino qui réalise des fonctions spécialisées.
Ligne 77: Ligne 77:
 Notre premier exemple Python nécessitera un bouton-poussoir temporaire connecté à la broche 2 de l'Arduino. La disposition sur la plaque d'essai en Fritzing est ci-dessous. Notre premier exemple Python nécessitera un bouton-poussoir temporaire connecté à la broche 2 de l'Arduino. La disposition sur la plaque d'essai en Fritzing est ci-dessous.
  
-De base, nous connectons simplement le +5 VDC de l'Arduino à la borne digitale n°2 de l'Arduino en passant par le bouton-poussoir. À la place, si vous n'avez pas de petit bouton-poussoir disponible, vous pouvez faire une connexion brève avec un cavalier entre la broche +5 VDC et la borne digitale n°2.+De base, nous connectons simplement le +5 VDC de l'Arduino à la borne digitale n° 2 de l'Arduino en passant par le bouton-poussoir. À la place, si vous n'avez pas de petit bouton-poussoir disponible, vous pouvez faire une connexion brève avec un cavalier entre la broche +5 VDC et la borne digitale n° 2.
  
 Sur l'Arduino, compilez le fichier exemple DigitalRealSerial tiré du menu Fichiers|Exemple|01 Bases. Sur l'Arduino, compilez le fichier exemple DigitalRealSerial tiré du menu Fichiers|Exemple|01 Bases.
Ligne 99: Ligne 99:
 import serial import serial
  
-s = serial.Serial('/dev/ttyACM0',9600) # Vous devrez peut-être changer ceci à ACM1 ou à un autre endroit auquel votre Arduino est connecté+s = serial.Serial('/dev/ttyACM0',9600) # Vous devrez peut-être changer ceci à ACM1 ou à un autre endroit auquel votre Arduino est connecté.
 while True: while True:
    
Ligne 128: Ligne 128:
 Here we are setting up for 4 analogue pins to be handled, even though we are only going to use pin 0 for this example.** Here we are setting up for 4 analogue pins to be handled, even though we are only going to use pin 0 for this example.**
  
-Maintenant, nous allons faire quelque chose d'un peu plus compliqué. Nous allons « suivre » une tension analogique (contrôlée par un potentiomètre) sur l'entrée analogique A0 et, si la tension est au-dessus d'une certaine valeur (0,50), nous allumerons la LED connectée à la sortie digitale n°2. La plaque d'essai en Fritzing est ci-dessous.+Maintenant, nous allons faire quelque chose d'un peu plus compliqué. Nous allons « suivre » une tension analogique (contrôlée par un potentiomètre) sur l'entrée analogique A0 et, si la tension est au-dessus d'une certaine valeur (0,50), nous allumerons la LED connectée à la sortie digitale n° 2. La plaque d'essai en Fritzing est ci-dessous.
  
 En utilisant à nouveau le code StandardFirmata de l'Arduino, démarrez la carte Arduino. En utilisant à nouveau le code StandardFirmata de l'Arduino, démarrez la carte Arduino.
Ligne 136: Ligne 136:
 import pyfirmata import pyfirmata
  
-PORT = "/dev/ttyACM0"Modifier ceci pour refléter votre configuration+PORT = "/dev/ttyACM0"Modifiez ceci pour refléter votre configuration.
  
 board = pyfirmata.Arduino(PORT) board = pyfirmata.Arduino(PORT)
Ligne 203: Ligne 203:
 The board.pass_time command takes an integer of t number of whole seconds. It is a non-blocking call, so it does not block other processing.** The board.pass_time command takes an integer of t number of whole seconds. It is a non-blocking call, so it does not block other processing.**
  
-Maintenant, nous démarrons une boucle sans fin+Maintenant, nous démarrons une boucle sans fin :
  
 while True: while True:
Ligne 216: Ligne 216:
  pin2.write(0)  pin2.write(0)
  
-Dans cette boucle, nous lisons la borne analogique (souvenez-vous que la valeur sera entre 0,0 et 0,9) et, si elle est égale ou supérieure à 0,5, nous écrirons alors un 1 vers la sortie digitale de la broche n°2, allumant la LED. Une fois qu'elle est repassée sous 0,50, nous écrirons un 0 sur la borne, et éteignons la LED.+Dans cette boucle, nous lisons la borne analogique (souvenez-vous que la valeur sera entre 0,0 et 0,9) et, si elle est égale ou supérieure à 0,5, nous écrirons alors un 1 vers la sortie digitale de la broche n° 2, allumant la LED. Une fois qu'elle est repassée sous 0,50, nous écrivons un 0 sur la borne, et éteignons la LED.
  
  board.pass_time(1)  board.pass_time(1)
  
-La commande board.pass_time prend, sous forme d'entier, un nombre t de secondes entières. C'est un appel non-bloquant ; aussi, il ne bloque pas d'autre traitement.+La commande board.pass_time prend, sous forme d'entier, un nombre t de secondes entières. C'est un appel non bloquant ; aussi, il ne bloque pas d'autre traitement.
  
 **The Python source code is available on pastebin at http://pastebin.com/xG9VJ34i **The Python source code is available on pastebin at http://pastebin.com/xG9VJ34i
Ligne 234: Ligne 234:
 Maintenant que vous avez l'idée de départ, nous pouvons aller de l'avant. Maintenant que vous avez l'idée de départ, nous pouvons aller de l'avant.
  
-Vous aurez peut-être réalisé que cette solution ne marche qu'aussi longtemps que nous avons une communication série directe avec la carte Arduino. Cependant, que se passe-t-il si nous devons utiliser une connexion sans-fil avec l'Arduino ? Nous garderons ce sujet pour une autre fois.+Vous aurez peut-être réalisé que cette solution ne marche qu'aussi longtemps que nous avons une communication série directe avec la carte Arduino. Cependant, que se passe-t-il si nous devons utiliser une connexion sans fil avec l'Arduino ? Nous garderons ce sujet pour une autre fois.
  
 Amusez-vous bien ! Amusez-vous bien !
issue119/python.1491809010.txt.gz · Dernière modification : 2017/04/10 09:23 de auntiee