samedi 10 avril 2021

Rasbperry Pi Pico: programmation en micropython

Dans cet article, je fais l'essai de mon tout nouveau Raspberry Pi Pico en expérimentant quelques programmes simples en micropython (allumer une LED, lire un bouton poussoir, lire un potentiomètre).


Installation de Thonny sur l'ordinateur

Pour programmé le Pico, j'ai utilisé un ordinateur de bureau fonctionnant sous Ubuntu: l'IDE Thonny (version 3.2.7) y était déjà installé. Vous pouvez facilement installer Thonny sur Linux, Windows ou MacOS.


Installation de micropython dans le Pico

J'ai téléchargé le fichier micropython.uf2 sur cette page de la fondation Rasperry Pi (en cliquant sur le bouton vert "Download UF2 File").

(vous pouvez aussi trouver le fichier uf2 sur cette page du site micropyton.org)

En maintenant enfoncé le bouton "Bootsel" du Pico, j'ai branché le Pico au port USB de l'ordinateur, et j'ai attendu quelques secondes avant de relâcher le bouton. Le Pico est alors apparu comme une unité de stockage nommée RPI-RP2: j'ai glissé-déposé le fichier micropython.uf2 dans le volume RPI-RP2.



Réglages de Thonny pour programmer le Pico

Par défaut, Thonny est réglé pour exécuter nos scripts en python sur l'ordinateur où il est installé: nous devons plutôt lui demander de les transférer au Pico.

Dans le menu "Exécuter", j'ai choisi "Sélectionner l'interpréteur..."


Si votre liste comporte l'item "MicroPython (Raspberry Pi Pico)": sélectionnez-le! Sinon, "MicroPython (générique)" fait parfaitement l'affaire.


Le port série utilisé par le Pico devrait apparaître dans le menu déroulant "Port".


Au bas de la fenêtre, la console de Thonny confirme que je programme maintenant un Raspberry Pi Pico en MicroPython v1.14.



Un premier script: faire clignoter la LED embarquée

Le Pico comporte une LED connectée à la broche GP25 (elle se trouve tout près du connecteur microUSB).

Le script ci-dessous la fera clignoter:

-

'''
Programme qui fait clignoter la LED embarquée
du Raspberry Pi Pico.
Plus d'infos:
https://electroniqueamateur.blogspot.com/2021/04/rasbperry-pi-pico-programmation-en.html
'''
import machine # pour interagir avec les broches GPIO
import utime # pour le délai en secondes
# broche 25 définie en sortie
led_embarquee = machine.Pin(25, machine.Pin.OUT)
while True:
led_embarquee.value(1) # on allume
utime.sleep(1) # on attend 1 seconde
led_embarquee.value(0) # on éteint
utime.sleep(1) # on attend 1 seconde

-

Pour exécuter ce script, on clique sur le bouton "Run" de Thonny (ou on appuie sur la touche F5).

À la question "Where to save to?", je réponds "appareil MicroPyhton", en constatant que quelqu'un a inversé le "t" et le "h" dans "MicroPython".


Vous choisissez un nom de fichier qui vous plaît (et qui se termine par l'extension ".py").


... et la LED du Pico devrait se mettre à clignoter.


(vous pouvez interrompre le programme en cliquant sur le bouton STOP de Thonny).

Deuxième script: LED contrôlée par un bouton

Comme deuxième essai, j'ai branché une LED externe à la broche GP15 et un bouton poussoir à la broche GP16 (pour le bouton, j'ai utilisé une résistance de tirage vers le bas, mais il serait également possible d'activer la résistance de tirage interne du Pico dans le script).

(rappel: le nom des broches est imprimé au verso du Pico).




Lorsqu'on exécute ce script: la LED s'allume lorsque le bouton poussoir est enfoncé.

'''
Programme pour le Raspberry Pi Pico: une LED s'allume
lorsqu'on appuie sur un bouton.
Plus d'infos:
https://electroniqueamateur.blogspot.com/2021/04/rasbperry-pi-pico-programmation-en.html
'''
import machine
import utime
led = machine.Pin(15, machine.Pin.OUT) # broche 15 sortie
bouton = machine.Pin(16, machine.Pin.IN) # broche 16 entree
while True:
if bouton.value() == 1: # le bouton est enfoncé
led.value(1) # on allume
else: # le bouton n'est pas enfoncé
led.value(0) # on éteint
utime.sleep(.1)
-





Troisième script: lecture d'un potentiomètre

Trois des broches du Pico peuvent être utilisées comme entrées analogique.  Le prochain script affiche la valeur d'un potentiomètre branché à la broche GP26_ADC0 du Pico.

-
'''
Programme pour Raspberry Pi Pico:
lecture d'un potentiomètre
Plus d'infos:
https://electroniqueamateur.blogspot.com/2021/04/rasbperry-pi-pico-programmation-en.html
'''
import machine
import utime
pot = machine.ADC(26) # broche GPIO26 en entrée analogique
while True:
print(pot.read_u16()) # lecture du potentiomètre
utime.sleep(1)
-

Pendant qu'on tourne le bouton du potentiomètre, la console de Thonny affiche des valeurs s'échelonnant entre 0 et 65535. 




Quelques ressources complémentaires pour débuter:

Forum micropython

Sur Framboise 314, une présentation détaillée du Raspberry Pi Pico, et un guide pour programmer le Pico en micropython avec un Raspberry Pi.

Si vous comprenez l'anglais, le livre "Get Started with MicroPython on Raspberry Pi Pico" est très bien fait, et peut être obtenu gratuitement en format pdf. Il s'adresse aux débutants.

À lire aussi:


Yves Pelletier (TwitterFacebook)

Aucun commentaire:

Enregistrer un commentaire