Publié le 21 janvier 2021 - par

Utiliser le Raspberry Pi PICO avec Thonny et MicroPython

Thonny est un IDE (Integrated Development Environnement = Environnement de développement intégré) très utile pour développer en Python puisqu’il intègre un tas d’outils pour mettre au point et débugger vos programmes. On peut l’utiliser avec PICO moyennant le chargement du plugin dédié. Voici comment procéder pas à pas .

Utiliser le Raspberry Pi PICO avec Thonny et MicroPython

Connexion de la carte PICO au Raspberry Pi 4

Reliez la carte PICO au Raspberry Pi par un câble USB. C’est le Raspberry Pi qui va alimenter la carte PICO via la liaison USB. Cette liaison va également créer une liaison de données entre les deux cartes, pour que l’IDE Thonny puisse dialoguer avec la carte PICO.

Configurer Thonny

Sur le Raspberry Py, Thonny est préinstallé dans Raspberry Pi OS et accessible via le menu Programmation.

Pour l’ouvrir il suffit de cliquer dessus. Si vous ne l’avez jamais démarré, vous avez cet écran au démarrage de Thonny

Cliquez sur Switch to regular mode en haut à droite, puis sur le bouton OK. fermez Thonny puis rouvrez-le pour prendre les modifications en compte.

Vous obtenez maintenant cette fenêtre.Par rapport à la version de démarrage, vous remarquerez ici la présence d’une barre de menu.

Franciser Thonny

Comme de nombreux logiciels opensource, l’IDE Thonny bénéficie d’une traduction en français réalisée par des bénévoles.

Ouvrez le menu Tools et allez dans la rubrique Options

Dans la zone Language, ouvrez le menu déroulant et choisissez Français. Fermez à nouveau Thonny et redémarrez-le pour le passer en français.

Après le redémarrage vous obtenez cet écran avec les textes en français.

Installer la liaison avec PICO

Les dernières versions de Thonny dans Raspberry Pi OS intègrent la liaison avec PICO. Vous pouvez directement sélectionner la carte Raspberry Pi PICO dans Thonny sans rien installer.

Rendez vous sur la page https://github.com/raspberrypi/thonny-pico/releases/latest

C’est ici que se trouve la dernière version du fichier .whl. Cliquez dessus pour le télécharger. Vous le retrouverez dans le dossier Downloads.

Dans Thonny allez dans le menu Outils et cliquez sur Gérer les plugins…

Cette fenêtre s’ouvre. Cliquez sur le ici qui se trouve dans la rubrique  Installer depuis un fichier local, et allez sélectionner le fichier .whl que vous venez de télécharger.

Cliquez sur le fichier .whl et ensuite sur le bouton Valider en bas à droite de la fenêtre.

Thonny Installe le plugin qui va lui permettre de dialoguer avec votre carte PICO. Lorsque c’est terminé cliquez sur le bouton Fermer et redémarrez Thonny pour prendre le plugin en compte.

On va maintenant dire à Thonny d’utiliser le plugin Raspberry Pi PICO. Dans le menu Exécuter, cliquez sur Sélectionner l’interpréteur…

Ouvrez la liste déroulante et cliquez sur MicroPython (Raspberry Pi Pico) puis validez avec le bouton OK.

Cette fenêtre apparait, vérifiez que votre carte Raspberry Pi PICO est bien reliée au Raspberry Pi 4 via un port USB puis validez avec le bouton OK.

La fenêtre de Thonny vous montre dans la partie basse (Console) que Thonny s’est bien connecté à la carte PICO, puisque vous avez l’identifiant du MicroPython qui indique :

MicroPython v1.13-290-g556ae7914 on 2021-01-21; Raspberry Pi Pico with RP2040
Type « help() » for more information.
>>>

Le signe >>> est le prompt de MicroPython qui attend vos commandes. pour tester tapez dans la console print(‘Hello Pico!’) vous devriez obtenir ce résultat :

Si c’est le cas, tout va bien, votre Raspberry Pi est connecté à la carte PICO et Thonny dialogue avec la carte !

Allumer la LED embarquée manuellement

Comme premier programme, le « Hello world » de la carte PICO, je vous propose d’allumer (et d’éteindre la LED embarquée.

Dans la partie basse de la fenêtre (Console), entrez les lignes suivantes une par une :

>>> from machine import Pin
>>> led = Pin(25, Pin.OUT)
>>> led.value(1)
>>> led.value(0)
>>>

Vous devriez voir la LED embarquée, connectée au GPIO 25, s’allumer puis s’éteindre. Vous venez de piloter manuellement la carte PICO.

Contrairement au Raspberry Pi Pico original, la LED embarquée sur le Pico W n’est pas connectée à une broche du RP2040, mais à une broche GPIO de la puce sans fil. MicroPython a été modifié en conséquence. Cela signifie que vous pouvez maintenant faire :

import machine
led = machine.Pin(« LED », machine.Pin.OUT)
led.off()
led.on()

Allumer la LED embarquée par programme

Dans la partie haute de la fenêtre entrez les lignes suivantes

from machine import Pin, Timer

led = Pin(25, Pin.OUT)
tim = Timer()
def tick(timer):
    global led
    led.toggle()

tim.init(freq=2.5, mode=Timer.PERIODIC, callback=tick)

Ce programme utilise un timer pour commuter (toggle) l’état de la LED et la faire passer d’allumée à éteinte en continu.

Vous devriez avoir ceci dans la fenêtre (sauf le blink.py de l’onglet qu’on va voir tout de suite…). Votre onglet s’appelle <untitled> et changera de nom quand vous enregistrerez le programme.

Cliquez sur le bouton vert pour exécuter le Script.

Thonny vous demande s’il doit exécuter le programme en local, sur le Raspberry Pi (Cet ordinateur) ou sur le Raspberry Pi Pico. Cliquez sur Raspberry Pi Pico.

Comme nous n’avons pas encore donné de nom à notre programme, il faut le faire ici. Le nom que vous donnerez apparaitra dans l’onglet du programme. Faites OK pour lancer le programme, la LED se met à clignoter.

Vous cliquerez sur le bouton rouge pour arrêter le programme. Vous pouvez rajouter un onglet et un programme en cliquant sur le signe + en haut à gauche de la fenêtre.

Vous pourrez enregistrer/rappeler les programmes avec les disquettes à droite de la croix. Par défaut l’enregistrement est proposé dans /home/pi, je vous conseille de créer une arborescence pour sauver les différents programmes de vos projets et de leur donner des noms significatifs car on a vite fait de ne plus s’y retrouver.

Conclusion

Cet article n’est pas un tutoriel MicroPython, il y a des tutoriels et des livres qui vous aideront à prendre ce langage en main.

Le but ici était de vous montrer comment configurer thonny sur un Raspberry Pi pour pouvoir dialoguer avec une carte Raspberry Pi PICO. Une fois que cette partie fonctionne… C’est à vous de jouer 🙂

 

 

 

 

 

 

 

 

 

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

23 réflexions au sujet de « Utiliser le Raspberry Pi PICO avec Thonny et MicroPython »

    1. François MOCQ Auteur de l’article

      bonjour
      En cliquant sur le lien en haut a droite « Switch to regular mode » et en redémarrant après il n’y a pas de menu Fichier, Edition… ?
      C’est la première manip au début de l’article

      Répondre
  1. Gordon

    Salut à tous.

    Ne trouvez-vous pas ce Raspberry Pi Pico fait double emploi avec une Raspberry Pi zero en mode Bare Metal ?
    Avec la RPi Zero, c’est un peu plus technique, mais le but reste le même, non ?

    @+

    Répondre
  2. Yoko

    Bonjour,
    Le lien pour l’installation de liaison sur le pico ne fonctionne pas …
    Cela affiche erreur 404.
    Existe t’il un autre lien, ou faut il faire differemment ?
    Merci

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Yohann
      ce lien était utilisé lors des premiers jours de PICO
      Normalement aujourd’hui si vous installez Raspberry Pi OS ou si vous mettez votre carte SD à jour, la nouvelle version de Thonny intègre déjà cette liaison
      cdt
      françois

      Répondre
  3. Ping : Utiliser les extensions Pimoroni avec Raspberry Pi Pico - Framboise 314, le Raspberry Pi à la sauce française....

  4. Jean-Marc

    Bonjour François,

    J’utilise Thonny sur PC. Je cherche à téléchaarger les  librairires nécessaire et ça ne fonctionne pas. Je le fais via l’interface Thonny, par « gérer les plugins ».

    Merci de me renseigner sur la bonne façon et où ranger une librairire (quel fichier ?).

    Cdt

    Jean-Marc

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Jean Marc
      j’utilise Thonny exclusivement sur Raspberry Pi avec Raspberry Pi OS
      quand vous dites ça ne fonctionne pas… ça ne donne pas d’info
      quelles librairie ? quels messages d’erreur ?
      cdt
      françois

      Répondre
      1. jean-marc

        Merci de votre réponse.

        Même si les message dient le contraire et paraissent normaux, rien est téléchargé ? du reste dans quel ficher devrais je les retrouver ?

        Répondre
        1. François MOCQ Auteur de l’article

          Je vais insister mais donnez moi un exemple de ce que vous voulez faire :
          Quel interpréteur utilisez vous ?
          Quelle librairie voulez vous ajouter ?
          Comment procédez vous exactement ?
          Que disent les messages ?
          Comment se traduit le fait que les librairies ne soient pas chargées ?
          pour reproduire ce que vous faites et essayer de comprendre il faut des infos… le fait de dire que les messages disent le contraire et paraissent normaux ne me donne aucune information…
          C’est comme si vous appeliez votre garagiste en lui disant que la voiture ne démarre pas mais que les voyants sont bons… Pensez vous qu’il devine la panne ?
          J’avais fait un article là dessus jetez y un coup d’oeil… m^me si on n’est pas sur du Raspberry Pi, ça s’applique aussi
          https://www.framboise314.fr/depanner-un-raspberry-pi-ce-nest-pas-de-la-voyance/

          Répondre
  5. francis

    bonjour,

    Je découvre le Pico et j’ ai pour projet de créer une alarme maison (dans les deux sens du terme).

    J’ ai réussi à créer un script micropython avec détecteur de mouvement (HC-SR501) et un autre avec détecteur de vibration .

    Je souhaite que main.py lance simultanément ces deux scripts (et bientôt d’ autres à venir).

    Mon problème est que  je suis novice en programmation, même les propositions de script de ChatGPT ne fonctionnent pas (avec moi).

    Je vous demande donc une petite aide pour me faire avancer dans dans mon projet.

    merci par avance

    Francis

    Répondre
      1. francis

        bonjour,
        j’ ai appliqué votre conseil en utilisant les « def ».
        tout fonctionne bien avec deux capteurs et 4 LED (2 par capteur)
        avec messages (sur écran lcd 16X2) différents à chaque détection.
        merci donc pour cela.
        en revanche j’ ai un problème qui commence à énerver le patient que je suis…
        depuis Thonny sur mon raspberry pi,je n’ ai plus accès au Pico.
        je ne peux lire le contenu du Pico,fichier main.py .
        lorsque je stoppe t’ interpréteur,le message suivant apparait :

        PROBLEM IN THONNY’S BACK-END: Internal error (ValueError: bad marshal data (invalid reference)).
        See Thonny’s backend.log for more info.
        You may need to press « Stop/Restart » or hard-reset your MicroPython device and try again
        .

        Process ended with exit code 0.

        si vous avez une idée à me soumettre,je suis preneur 🙂
        merci par avance
        FRancis

        Répondre
        1. François MOCQ Auteur de l’article

          Bonjour
          a priori si vous avez appelé votre programme main.pi il est exécuté automatiquement par micropython et c’est normal que vous ne repreniez pas la main car main.py tourne en boucle.
          Et c’est normal car le but c’est d’exécuter automatiquement ce programme…
          Si vous voulez reprendre la main il faut prévoir dans main.py un sortie du programmae en appuyant sur un bouton poussoir par exemple et faire un exit(0)
          Sinon il n’y a aucune raison que le programme s’arrête

          Sinon pour tester donnez à votre programme un nom qui ne soit PAS main.py
          Eventuellement il faudra reinitialiser le pico pour reprendre la main sur ce prog sui tourne…
          cdt
          francois

          Répondre
  6. francis

    bonjour,

    j’ ai appliqué votre conseil et mon script fonctionne bien.

    j’ utilise les « def » pour les 2 capteurs ,4 led avec différents affichages sur écran lcd 16X2,ce qui me donne un script court et lisible (pour moi 🙂 )

    merci pour cela.

    en revanche, j’ ai un gros problème qui est le suivant :

    dans Thonny,je n’ ai plus accès au Pico,impossible de lire le contenu de ce dernier (fichier main.py etc…).

    voici le message que Thonny m’ affiche:

    PROBLEM IN THONNY’S BACK-END: Internal error (ValueError: bad marshal data (invalid reference)).
    See Thonny’s backend.log for more info.
    You may need to press « Stop/Restart » or hard-reset your MicroPython device and try again.

    Process ended with exit code 0.

    si cela vous ai déjà arrivé ou si vous avez une idée de la cause, je suis preneur.

    merci par avance.

    cdlt

    Francis

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.