Pyb-discovery-Intro-programmation2

De MCHobby - Wiki
Révision datée du 13 février 2016 à 12:04 par Admin (discussion | contributions) (Page créée avec « == Programmation Suite == Dans cette seconde partie, nous allons nous pencher sur les opérateurs et le contrôle des entrées/sorties de la PyBoard. Voyez [http://doc.mi... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche

Programmation Suite

Dans cette seconde partie, nous allons nous pencher sur les opérateurs et le contrôle des entrées/sorties de la PyBoard.

Voyez doc.micropython.org pour une référence complète (anglais).

Opérateurs de comparaison

Opérateurs utilisés pour des comparaisons logiques.

Opérateur Description
== (égal à)
Ex : 12 == 10 est faux (False) ou 12 == 12 est vrai (True)
!= (différent de)
Ex: 12 != 10 est vrai (True) ou 12 != 12 est faux (False)
< (moins que, inférieur à)
Ex : 12 < 10 est faux (False) ou 12 < 12 est faux (False) ou 12 < 14 est vrai (True)
> (plus grand que, supérieur à)
Ex : 12 > 10 est vrai (True) ou 12 > 12 est faux (False) ou 12 > 14 est faux (False)

Note: Il est possible de combiner les <,> avec le signe =. Ainsi, la combinaison >= (plus grand ou égal) permet d'écrire un test 12 >= 12 qui, cette fois, sera vrai (True). De façon similaire, vous pourrez écrire une comparaison <= (inférieur ou égal).

Structure de contrôle

L'ordre des séquences exécutées dépendent du programme, voici quelques éléments de contrôles élémentaires précisant au programme comment il doit fonctionner (il y en a bien plus de décrit sur le site).

Si Alors Sinon

if condition:
    instructions-A
elif condition2:
    instructions-B
else:
    instructions-C

Cela exécute le code indenté d'instructions-A "if" est vraie (True), sinon il va tester la condition2 de "elif" pour exécuter le bloc associé.

Si cette condition est également fausse alors il exécutera le code du bloc "else", soit instruction-C.

Boucle For

La boucle for permet d'itérer tous les éléments d'un ensemble de valeur (comme une liste).

for in range( 0, 4 ):
    print( i )

La fonction range permet de produit une liste de valeur de 0 à 3.

L'exemple produit les valeurs suivantes:

0
1
2
3

Cette syntaxe fonctionne avec tous les éléments dit itérable comme les listes, les dictionnaires, etc peuvent être utilisés avec une boucle for.

liste = ['un','deux','trois','quatre',5,6]

for element in liste:
    print( element )

ce qui produit ce résultat ci:

un
deux
trois
quatre
5
6

Contrôle digital

Votre carte PyBoard dispose de broches d'entrée/sortie, voici comment les contrôler.

p = pyb.Pin( 'X5', pyb.Pin.OUT_PP )
p.high();
p.low();

btn = pyb.Pin( 'Y10', Pin.IN, pull=Pin.PULL_UP )
valeur = btn.value()
print( valeur )

pyb.Pin

pyb.Pin(pin, mode, pull);

La classe Pin est utilisé pour obtenir un objet pour une broche donné de la PyBoard et initialiser cette broche en tant qu'entrée ou sortie.

  • pin : identifie la broche que vous voulez contrôler (tel qu'indiqué sur la sérigraphie).
  • mode : indique comment la broche sera utilisée, en entrée ou en sortie.
    • Pin.IN Broche configurée en entrée (vous pouvez préciser un paramètre complémentaire pull )
    • Pin.OUT_PP - configure la broche en sortie, avec contrôle push-pull. Donc le niveau sera soit forcé au niveau haut ou niveau bas)
    • Pin.OUT_OD - configure la broche en sortie, avec un contrôle à drain ouvert (open-drain). Cela signifie que vous pouvez forcer le signal au niveau bas... sinon la valeur du signal est flottante (en fait, à la tension imposée par le circuit que vous y avez raccordé)
    • Pin.AF_PP - configure la broche pour fonction alternative, pull-pull;
    • Pin.AF_OD - configure la broche pour fonction alternative, open-drain;
    • Pin.ANALOG - configure la broche pour opération analogique.
  • pull - Si vous utilisez une broche en entrée, ce paramètre permet d'activer les résistances pull-up, pull-down

digitalWrite

digitalWrite(pin,value);

Une fois la broche déclarée comme OUTPUT avec pinName, elle peut être mise soit à l'état HIGH (niveau logique haut, potentiel tiré à +5 volts) ou l'état LOW (niveau logique bas, potentiel tiré à la masse/ground).

  • pin: est le numéro de broche
  • value: le niveau logique désiré (soit HIGH ou LOW

digitalRead

int digitalRead(pin);

Une fois la broche déclarée comme INPUT avec pinMode, vous pouvez lire l'état de cette broche et savoir si elle est placée au niveau haut (HIGH, au potentiel +5 volts) ou niveau bas (LOW, potentiel de la masse/GND, soit 0 volt) par le montage.

Contrôle analogique

Arduino est une machine digitale mais elle est capable de fonctionner dans le monde analogique grâce à des astuces.

Voici comment gérer les cas non digitaux.

analogWrite

int analogWrite(pin,value);

Certaines broches d'Arduino supporte la modulation d'impulsion (3, 5, 6, 9, 10, 11).

Cela active et désactive la broche très rapidement, la faisant agir "comme" une sortie analogique. cela s'appelle un signal PWM.

La valeur utilisée est un nombre entre 0 (0% de cycle utile approximativement 0v) et 255 (100% de cycle utile ~5 volts).

analogRead

<noiki>int analogRead(pin);</nowiki>

Quand une broche analogique est déclarée comme entrée (INPUT) à l'aide de pinMode, vous pouvez y lire sa tension.

La valeur retournée est entre 0 (pour 0 volts) et 1024 (pour 5 volts).