Découvrir la PYBStick avant de débuter le projet #OuiAreSins

image principale Découvrir la PYBStick avant de débuter le projet #OuiAreSins

Difficulté:

Qu'est-ce que la PYBStick?

Nous voulions réaliser une carte MicroPython + Arduino suffisamment abordable, pratique et bien documentée en Français. Nous voulions une carte suffisamment abordable pour être incluse dans tous les projets sans devoir s'inquiéter du prix.
Nous l'avons fait! c'est la PYBStick en version Lite et standard, un projet commun de Garatronic (France) et MCHobby (Belgique).
Il est donc possible d'être compétitif... même en Europe!

La plateforme inclus un puissant processeur STM32, ce qui permet d'avoir une puissante plateforme supportant à la fois Arduino IDE et MicroPython.

La PYBStick coûte ~13 Eur là où un Arduino Uno Officiel en coûte environ 22 Eur.
Cependant, la PYBStick est bien plus puissante en terme de calcul, de fréquence d'horloge, de mémoire RAM disponible. C'est comme comparer une Porche (PYBStick) et une VW Coccinelle (Uno)... même si j'aime beaucoup la Coccinelle.

Pourquoi un tuto sur la PYBStick?

Nous avons le bonheur de voir la PYBStick au coeur du projet #OuiAreSins. Il serait peut être sympa d'avoir un mini tuto expliquant comment utiliser un bouton, une LED, un Buzzer, etc. Ce serait le bien venu et l'opportunité d'apporter notre soutien aux Makers.

Tout savoir sur la PYBStick et sur MicroPython

Ce tuto PYBStick pour #OuiAreSins est volontairement court tout en restant abordable.
Vous pourrez obtenir de nombreuses informations complémentaires sur les liens suivants:

Matériel :

Budget : 12€

  • 1 PYBStick Standard ou Lite
  • 1 LED Rouge
  • 1 Bouton poussoir
  • 1 Fils de raccordement
  • 1 breadboard (plaque de prototypage)
  • 1 Piezo Buzzer

Fichiers :

Etape 1 : Dialoguer avec la PYBStick

Au contraire des cartes Arduino, il n'est pas nécessaire d'avoir un compilateur installé sur votre ordinateur pour interagir avec la PYBStick.

La carte PYBStick expose un système de fichier dès qu'il est branché sur le port USB de l'odinateur. Il suffit d'ouvrir les fichiers Python dans un éditeur de texte et sauvegarder vos modifications.

La ligne de commande interactive (REPL) permet d'interagir l'environnement MicroPython présent sur la carte. REPL permet de saisir du code Python sur la PYBStick et de voir le résultat de son exécution.
REPL s'utilise à l'aide d'un logiciel terminal comme MiniCom, Putty ou des outils spécialisés comme RShell.

François Mocq (Framboise314)  à écrit un bel article expliquant comment programmer et interagir avec la PYBStick.
En utilisant un Raspberry-Pi bien entendu.

Etape 2 : Brancher une LED

Le schéma de raccordement suivant indique comment brancher une LED sur un GPIO. La LED s'illumine lorsqu'un courant passe dedans. Mais comme le courant implique également un dégagement d'énergie sous forme de chaleur, il est important de le limiter. C'est la raison de la présence de la résistance.

La LED est donc branchée en série avec une résistance de 1KOhms puis sur la broche S8 de la PYBStick.

Attention, une LED est polarisée... il est donc important de la brancher dans le bon sens (avec le pole + sur une tension positive et le pole - sur la masse / GND). Si la LED est branchée à l'envers, elle ne s'illuminera jamais.
Il y a une petite astuce mnémotechnique bien pratique qui consiste à regarder la broche la PLUS longue pour trouver la broche positive.

Donc, lorsque la broche S8 est au niveau haut (3.3V), il existe une différence de potentiel aux bornes de la LED et un courant peut la traverser. La LED s'illumine donc.

Lorsque la broche S8 est au niveau bas (GND, 0V), alors les deux broches de la LED sont aux mêmes même potentiel électrique. Il n'y a donc aucun courant qui y circule et la LED reste éteinte!

Le code ci-dessous montre comment activer la broche S8 en sortie et contrôler son niveau logique pour allumer / éteindre la LED.

>>> from machine import Pin
>>> p = Pin( "S8", Pin.OUT )
>>>
>>> # Sortie au Niveau Haut (3.3V) -> Allume LED
>>> p.value( 1 )
>>>
>>> # Sortie au Niveau Bas (0V) -> LED éteinte
>>> p.value( 0 )
Etape 3 : Utiliser un bouton poussoir

Après la manipulation d'une broche en sortie, le plus intéressant est d'utiliser une broche en entrée.

Une broche en entrée est capable de lire l'état logique de la broche (niveau haut, niveau bas) imposé par un montage externe. Il est donc possible de brancher un bouton poussoir sur une broche (en entrée), de presser dessus pour modifier l'état logique de la broche et avoir un programme MicroPython sur la carte permettant de lire cet état.

Voila... nous avons la base d'une interface Homme-Machine permettant d'envoyer des instructions au programme fonctionnant sur la carte PYBStick.

Voici quelques lignes de code permettant de détecter l'état du bouton.

>>> from machine import Pin
>>> p = Pin( "S3", Pin.IN )
>>> # Ne pas presser le bouton
>>> p.value()
True
>>> # Presser le bouton
>>> p.value()
False

Voici comment cela fonctionne:

Si le bouton N'EST PAS pressé:

La broche étant en entrée, elle présente une très grande résistance interne... et de fait, il n'y a aucun courant (ou presque) qui circule à l'intérieur d l'entrée même si celle ci est raccordée au +3.3V.

SI le bouton n'est pas pressé ALORS la broche S3 est directement raccordé au +3.3V (même par l'intermédiaire de la résistance). Comme il n'y a pas de courant qui circule dans l'entrée, il n'y également aucun courant circulant dans la résistance... donc pas de chute de tension (ou négligeable). La tension à l'entrée S3 est donc de 3.3V, l'entrée est au niveau haut.... p.value() retournera True.

Si le bouton EST pressé:

Alors dans ce cas, la broche S3 est raccordée directement à la masse/GND et le potentiel est donc 0V sur l'entrée.... p.value() retournera FALSE.

Utilité de la résistance de 10KOhms

Cette résistance de 10K est dite "Pull-Up" (ou de rappel en Français) car elle permet de rappeler la tension de l'entrée à +3.3V.
Elle est utile lorsque le bouton n'est pas pressé.  

On serait en droit de se demander si elle est vraiment utile puisque l'on peut aussi raccorder directement l'entrée S3 sur la broche 3.3V!

Et bien, lorsque le bouton est pressé, cette résistance de 10KOhms evite de court-circuiter franc entre le +3.3V et la masse. Ce qui détruirait l'étage d'alimentation de la PYBStick. 

Etape 4 : Entrée avec Pull-Up interne

Le schéma précédent présentait le montage type d'un bouton poussoir sur un microcontrôleur.
Le montage typique met en place une résistance de rappel à +3.3V (aussi dite "Résistance Pull-Up").

De nos jours, de nombreux microcontrôleurs disposent de résistances pull-up interne qu'il est possible d'activer sur demande. C'est également le cas avec la processeur STM32 équipant la PYBStick.

Du coup, le schéma de raccordement d'un bouton poussoir peut devenir extrêmement simple et l'activation de cette résistance pull-up se fait à l'aide la constante Pin.PULL_UP 

>>> from machine import Pin
>>> from time import sleep
>>> p = Pin( "S3", Pin.IN, Pin.PULL_UP  )
>>> while True:
>>>     s = "..." if p.value() else "Pressé"
>>>     print( s )
>>>     sleep( 0.5 )
>>>
Etape 5 : Plus, plus et encore plus

Voici qui termine cette courte introduction à la programmation de la carte PYBStick sous MicroPython mais ce n'est pas tout.

Le GitHub PYBStick aborde de nombreux autres points très intéressants:

  • Différentes options d'alimentation de la PYBStick
  • Boutons et LEDs utilisateurs présent sur la carte PYBStick
  • Entrées analogiques (lecture d'une tension analogique sur un potentiomètre)
  • Sortie PWM (comme sur Arduino)
  • Utilisation d'un Piezo Buzzer
  • Utilisation de LEDs NeoPixels (LED intelligentes)
  • Contrôle de Servo Moteurs
  • Contrôle de moteur continu équipé de contrôleur servo
  • Lecture de la pression, température et humidité avec le BME280 (contrôle du bus I2C)
  • Ressource pour créer vos propres schéma avec Fritzing.

Le GitHub ESP8266-upy contient de très nombreux pilotes MicroPython multiplateforme (et donc utilisable avec la PYBStick).
Le fichier Readme du dépôt contient un tableau détaillé des pilotes et capteurs supportés par les bibliothèques.

  • lcdi2c - contrôle d'afficheur 2x16 caractères à cristaux liquide équipé d'un contrôleur I2C (comme utilisé dans le projet Sins

Le GitHub Pyboard-driver qui contient des pilotes spécifiques aux cartes MicroPython disposants de plus de ressources (comme la Pyboard, la PYBStick) et des extensions nécessitant des cartes avec plus de ressources. Ont y relèvera:

  • PYBStick-Hat-Face - interface HAT (Raspberry-Pi Hat) pour la PYBStick. En cours d'écriture.
  • PYBMation - créer un mini automate à base de PYBStick. Code achevé, Carte en développement.
  • UniPi-MicroPython-Automation - créer un vrai automate avec MicroPython. Code à 90%, Carte en développement.

Bonne lectures et heureuses aventures avec la PYBStick et MicroPython
Dominique

Ces tutoriels devraient vous plaire

vignette Montez facilement votre console de jeu rétrogaming avec RECALBOX !
Montez facilement votre console de jeu rétrogaming avec RECALBOX !
vignette fabrication de circuits imprimés facile
fabrication de circuits imprimés facile
vignette L’imprimante 3D pour 60€: EWaste
L’imprimante 3D pour 60€: EWaste
avaatar Dominique (MCHobby)

Dominique (MCHobby)

Suivre

Vues: 275
Mis en favoris: 5

Découvrez d'autres tutoriels de

Dominique (MCHobby)

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers