Entrée/Sortie

Il y a des bandes de métal sur le côté bas du BBC micro:bit qui lui font des sortes de dents. Ce sont les pin d’entrée/sortie (ou pin E/S pour faire court)

../_images/blue-microbit.png

Certains de ces pins sont plus gros que d’autres donc il est possible d’y accrocher des pinces crocodiles. Ce sont numérotés 0, 1, 2, 3V et GND (les ordinateurs comptent toujours à partir de zéro). Si tu branches une carte dédiée à ton micro:bit, il est également possible de relier des câbles aux autres pins (plus petits).

Chaque pin sur le BBC micro:bit est représenté par un objet appelé pinNN est le numéro du pin. Donc, par exemple, pour faire quelque chose avec le pin numéroté 0 (zéro), on utilise l’objet appelé pin0.

Facile!

Ces objets ont des méthodes variées qui leur sont associées en fonction de ce que ce pin particulier est capable de faire.

Python chatouilleux

L’exemple le plus simple d’entrée par les pins est de déterminer si ils sont touchés. Donc, tu peux chatouiller ton appareil et le faire rire comme ça:

from microbit import *

while True:
    if pin0.is_touched():
        display.show(Image.HAPPY)
    else:
        display.show(Image.SAD)

Avec une main, tiens ton appareil par le pin GND. Puis, avec ton autre main, touche (ou chatouille) le pin 0 (zéro). Tu devrais voir l’image affichée passer de grognon à content.

C’est une forme simpliste de mesure de l’entrée. On commence vraiment à s’amuser lorsque l’on connecte des circuits et d’autres appareils grâce aux pins.

Bip Bip

La chose la plus simple que nous puissions raccorder à l’appareil est un buzzer. Nous allons l’utiliser comme une sortie.

../_images/piezo_buzzer.jpg

Ces petits appareils émettent un bip aigü lorsqu’ils sont connectés à un circuit. Pour en relier un à ton micro:bit, tu dois raccorder une pince crocodile aux pins 0 et GND (voir ci-dessous)

../_images/pin0-gnd.png

Le câble partant du pin 0 doit être raccordé au connecteur positif du buzzer et celui partant du GND au connecteur négatif.

Le programme suivant fera émettre un son au buzzer:

from microbit import *

pin0.write_digital(1)

C’est marrant pendant à peu près 5 secondes et ensuite tu auras envie d’arrêter cet horrible couinement. Améliorons notre exemple en le faisant bipper par intervalles:

from microbit import *

while True:
    pin0.write_digital(1)
    sleep(20)
    pin0.write_digital(0)
    sleep(480)

Peux-tu comprendre comment ce script fonctionne ? Rappele-toi que 1 est « on » et 0 est « off » dans le monde digital.

L’appareil est mis dans une boucle infinie et met immédiatement le pin 0 sur « on ». Ce qui fait que le buzzer émet un son. Pendant qu’il fait du bruit, l’appareil dort pendant vingt millisecondes puis passe le pin 0 sur « off ». Cela donne l’effet d’un bip court (20ms). Enfin, l’appareil dort pendant 480 millisecondes avant de recommencer la boucle indéfiniment. Ce qui signifie que tu obtiens deux « bip » par seconde (un toutes les 500 millisecondes)

On a fait un métronome !