Actualités
Actualités
Introduction facile aux systèmes embarqués (1) - Qu'est-ce que MicroPython ?
2022-03-08 1223

Alors que Python est devenu le langage de programmation dominant, MicroPython est devenu de plus en plus populaire dans le domaine des systèmes embarqués, en particulier dans le populaire ESP32 et le module Pico basé sur un microcontrôleur RP2040 qui vient d'être publié par la Fondation Raspberry PI.

En tant que bannon incapable d'écrire une ligne de code, je me sentais très limité la plupart du temps et je me suis juré de trouver un bon moment pour apprendre un langage de programmation. Je me suis consacré à MicroPython pendant les 7 jours de vacances de la Fête nationale, et j'ai réalisé toutes les fonctions des périphériques de la carte sur la carte d'apprentissage de l'extension Pico conçue par moi-même :

  • Éclairage fantaisie - monochrome, RVB trois couleurs, toutes sortes de combinaisons, peut également être contrôlé par des boutons et des capteurs

  • L'écran OLED affiche du texte, des images et des formes d'onde

  • Le signal audio est collecté et affiché sur l'écran OLED, créant ainsi un affichage de forme d'onde sympa

  • Jouer à "Moi et mon pays" avec le buzzer sur le plateau

  • Portage du code de quelqu'un d'autre pour générer des formes d'onde arbitraires : changement de forme d'onde, changement de fréquence, changement d'amplitude, etc.



Ce qui m'a le plus IMPRESSIONNÉ au cours de cette "exploration" de 7 jours, c'est la facilité avec laquelle il était possible de démarrer avec les systèmes embarqués dans MicroPython - de riches ressources open source, diverses formes de référence, telles que des cours vidéo, des cas textuels, etc.

MicroPython est vraiment un excellent langage de programmation : orienté objet, flexible, simple, élégant !

Mon apprentissage personnel bénéficie du partage des autres (open source), et la meilleure façon de transmettre des connaissances est de partager ce que j'ai appris et ce que j'ai appris. Par conséquent, je prévois de lancer un didacticiel de programmation embarquée Micro Python basé sur Pico, qui sera officiellement lancé dans un mois. Bien sûr, Au début, il y aura 15 cours en direct sur la conception de PCB, qui vous amèneront à concevoir vous-même une carte d'apprentissage Pico. Après tout, dans l'environnement pratique d'une carte d'impression gratuite et d'une livraison gratuite, basée sur une carte centrale Pico, tout le monde peut concevoir des PCB pour créer diverses applications intéressantes à l'avenir. Apprendre à concevoir un PCB peut également être un avantage pour les ingénieurs en systèmes embarqués.

Désormais, il y aura une série d'articles techniques liés à ce cours. Aujourd'hui, c'est le premier :

1. Qu'est-ce que MicroPython

MicroPython est un petit interpréteur de langage de programmation Python open source qui s'exécute sur une petite carte de développement embarquée. Avec MicroPython, vous pouvez écrire du code Python propre et simple pour contrôler le matériel sans avoir à utiliser des langages sous-jacents complexes tels que C ou C++ (Arduino pour la programmation).


Logo MicroPython

La simplicité du langage de programmation Python fait de MicroPython un choix idéal pour les débutants en programmation et en matériel. MicroPython est très complet et prend en charge la plupart des syntaxes Python, de sorte que même les vétérans expérimentés de Python trouveront l'utilisation de MicroPython familière et amusante.

En plus d'être facile à utiliser, MicroPython possède des fonctionnalités uniques qui le distinguent des autres systèmes embarqués :

Utilisez un interpréteur interactif : REPL (Read Read- Evaluate Evaluate- Print Print- Loop Loop) - cela vous permet de vous connecter à une carte et de lui faire exécuter du code sans compiler ni télécharger - parfait pour un apprentissage et une expérimentation rapides avec le matériel !

Bibliothèques de logiciels riches - Comme le langage de programmation Python classique, MicroPython dispose d'un grand nombre de bibliothèques intégrées pour prendre en charge de nombreuses tâches. Par exemple, grâce aux bibliothèques intégrées de MicroPython, il est facile d'analyser les données JSON des services Web, de rechercher du texte à l'aide d'expressions régulières et même de programmer des sockets réseau.

Extensibilité - Pour les utilisateurs avancés, MicroPython peut être étendu avec des fonctions C/C++ de bas niveau, afin que vous puissiez mélanger du code MicroPython expressif de haut niveau avec du code de bas niveau plus rapide en cas de besoin.

MicroPython est une variante du langage Python 3. C'est l'idée originale de Darrien P. George, Ph.D., de l'Université de Cambridge, qui a travaillé avec une équipe de financement participatif pour développer une carte de développement matériel compatible microPython appelée PyBoard en 2013. MicroPython1.0 a été présenté à la conférence Python ( PyCon) en 2014. Le Dr George a également créé le site Web Micro Python.org (www.micropython.org) pour prendre en charge MicroPython et Pyboard.


Le logo officiel de MicroPython.Org

MicroPython.Org PyBoard, basé sur le contrôleur STM32.


2. Que peut faire MicroPython ?

MicroPython est conçu pour créer des programmes de contrôle de système embarqués rapidement et efficacement. Les systèmes embarqués peuvent simplement être définis comme tout projet nécessitant l’utilisation de microcontrôleurs pour répondre aux besoins d’ingénierie. Les systèmes embarqués typiques utilisent généralement des capteurs et parfois des actionneurs électromécaniques pour s'interfacer avec les microcontrôleurs. Ils peuvent être connectés à des dispositifs d'interface homme-machine pour une interaction facile, mais sont plus automatisés, pour un fonctionnement autonome ou un accès à distance au cloud.

Tout comme les cartes Arduino, MicroPython peut contrôler le matériel et les appareils connectés : vous pouvez contrôler les lumières clignotantes des broches GPIO, lire les commutateurs et bien plus encore ; Peut piloter le signal PWM qui peut piloter le serveur et la LED ; Les capteurs analogiques peuvent être lus et lus via un convertisseur analogique-numérique. Il est également facile de communiquer avec les appareils I2C ou SPI. Vous pouvez même trouver une prise en charge réseau et WiFi sur certaines cartes. MicroPython dispose même de bibliothèques pour contrôler d'autres matériels, tels que les NeoPixels et les bandes LED, les écrans OLED miniatures, etc. Bref, MicroPython peut faire beaucoup de choses !

Quelles sont les limites de MicroPython ?

MicroPython a très peu de limitations, et presque tout ce qu'Arduino peut faire peut être réalisé via les cartes MicroPython. Cependant, il est important de noter que le code MicroPython n'est pas aussi rapide et peut nécessiter plus de mémoire qu'un code similaire Arduino ou un autre code de bas niveau basé sur C/C++, bien que cela n'ait généralement pas d'importance car les différences de vitesse et de mémoire ne sont pas assez grandes pour affectent la plupart des applications. Sachez que le code critique en termes de temps ou de performances peut ne pas fonctionner dans MicroPython. Par exemple, utiliser entièrement un logiciel pour piloter les broches d'E/S afin d'implémenter certains protocoles de communication série à haut débit dans MicroPython n'est peut-être pas la meilleure idée. Cependant, il existe des moyens de mélanger MicroPython et du code C/C++ de bas niveau afin d'obtenir le meilleur des deux mondes : la logique principale est un code MicroPython propre et facile à comprendre, tandis que les parties critiques en termes de performances sont écrites en langage MicroPython. code de bas niveau plus rapide.

Le langage MicroPython implémente la plupart du langage Python 3 de base, mais MicroPython n'implémente pas l'intégralité de la bibliothèque standard Python 3. Python est connu pour disposer d'une bibliothèque standard étendue, mais il est impossible d'essayer de compresser une bibliothèque aussi volumineuse sur une petite carte avec seulement des kilo-octets de mémoire. Au lieu de cela, MicroPython implémente des versions plus petites de la bibliothèque standard Python, offrant ainsi une excellente expérience de développement.


Avertissement : cet article est réimprimé de « forêt électronique », cet article ne représente que les opinions personnelles de l'auteur, ne représente pas les opinions de Sakwei et de l'industrie, est uniquement reproduit et partagé, soutient la protection des droits de propriété intellectuelle, veuillez indiquer la source originale et auteur, en cas de contrefaçon, veuillez nous contacter pour supprimer.



whatsapp

Ligne d'assistance

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950