Arduino / python : documentation

Introduction

 

La carte, associée à la librairie python, permet de gérer:

  • 2 entrées digitales E0 et E1 reliées à des boutons poussoirs
  • 4 sorties digitales S0 à S3 connectées à des LEDS
  • 6 entrées analogiques de A1 à A6
  • 3 PWM pour servomoteurs, M0, M1 et M2

Pour utiliser la carte, il suffit de déclarer une variable de type Arduino, puis d’utiliser cette variable comme dans les exemples qui suivent.

Initialisation de la carte

Pour être connecté à la carte, il faut exécuter

a = Arduino()

Le constructeur prend un paramètre optionnel pour s’adapter au système.

Exemple sous linux

from pyduino import *
import time

a = Arduino('/dev/ttyACM0')
time.sleep(3)

Exemple sous Windows

from pyduino import *
import time

a = Arduino('COM10')
time.sleep(3)

La valeur par défaut est ‘/dev/ttyACM0’.
Vous pouvez modifier cette valeur par défaut dans votre fichier pyduino.py, elle
est facile à repérer.

Remarque : sous linux, cela peut être /dev/ttyACM1 , /dev/ttyUSB0
et soux windows COM11 , COM12

La connexion à la carte arduino par le port série  redémarre la carte.
Les 3 secondes sont là pour attendre que l’initialisation soit complète.

Les sorties digitales

Elles sont au nombre de 4, accessibles par les méthodes :
 a.S0(<valeur>),  a.S1(<valeur>), a.S3(<valeur>),  a.S4(<valeur>)

ou <valeur> vaut 0 ou 1 pour éteindre ou allumer la sortie correspondante

Exemple

from pyduino import *
import time

a = Arduino('/dev/ttyACM0') # à adapter
time.sleep(3)

i = 0
while True:
    if i%2 == 0:
       a.S0(1)
       a.S1(0)
    else:
       a.S0(0)
       a.S1(1)
    if i%3 == 0:
       a.S2(1)
       a.S3(0)
    else:
       a.S2(0)
       a.S3(1)
    i = i+1

.

Les entrées digitales

On peut en utiliser 2 à partir des boutons placés sur la carte:

v0 = a.E0()
v1 = a.E1()

v0 vaut 1 si le bouton E0 est enfoncé, et 0 sinon
v1 vaut 1 si le bouton E1 est enfoncé, et 0 sinon

Exemple


from pyduino import *
import time

a = Arduino('/dev/ttyACM0')
time.sleep(3)
while True:
   v0 = a.E0()
   v1 = a.E1()
   print(' v0 = '+ v0 + ' et v1 = ' + v1)

Les entrées analogiques

On peut en utiliser 6 (numérotées de 1 à 6).

val = a.A1() renvoie une valeur entière (entre 0 et 400), qui est une valeur numérisée proportionnelle à la tension renvoyée par le capteur.
On peut aussi écrire val = a.A(1) ce qui permet de traiter plusieurs entrées de capteurs dans une boucle.

Exemple


from pyduino import *
import time

a = Arduino('/dev/ttyACM0')
time.sleep(3)

while True:
    print(' A1 = ' + repr(a.A(1)))

Les sorties PWM pour les moteurs

Installez un moteur sur la sortie M0 (voyez le plan)


from pyduino import *
import time

a = Arduino('/dev/ttyACM0')
time.sleep(3)

while True:
    a.M0(0)
    time.sleep(1)
    a.M0(180)
    time.sleep(1)
    a.M0(90)
    time.sleep(1)