Les cartes de développement à microcontrôleur sont devenues un élément essentiel de la communauté des bricoleurs. Ces dispositifs programmables sont spécifiquement conçus pour traiter les signaux d’entrée et de sortie afin de contrôler divers modules et composants tels que les capteurs, les moteurs, les LED et les dispositifs d’entrée humaine (HID).
Mais avant cela, vous devrez apprendre un langage de script que le microcontrôleur peut interpréter pour programmer ces appareils. Les langages de microcontrôleur les plus populaires aujourd’hui sont MicroPython, CircuitPython, Arduino (C++ simplifié) et C. Chacun de ces langages a ses avantages et ses inconvénients.
MicroPython
MicroPython est une implémentation légère du langage de programmation Python 3 conçue spécialement pour les microcontrôleurs. Il a été publié en 2013 par le Dr. Damien George pour accélérer le prototypage et permettre aux personnes déjà familiarisées avec Python de programmer des microcontrôleurs avec un langage similaire.
Caractéristiques
MicroPython est un excellent langage de script pour les débutants qui souhaitent programmer des microcontrôleurs. Les débutants n’ayant aucune expérience du codage le trouveront facile à lire et à comprendre car il utilise des commandes lisibles par l’homme dans des structures simples. De plus, il utilise un environnement d’exécution REPL (read-evaluate-print-loop), ce qui permet une expérience de codage interactive.
Performance
Pour programmer un microcontrôleur à l’aide de MicroPython, le micrologiciel contenant l’interpréteur, les bibliothèques et diverses autres dépendances est flashé dans le microcontrôleur. Cela permet au code MicroPython d’être interprété et exécuté localement par le microcontrôleur, ce qui permet un prototypage rapide car un retour d’information en direct peut être fourni pendant le codage.
Cependant, en raison de la manière dont les processeurs exécutent le code, les langages interprétés comme MicroPython sont nettement plus lents que les langages compilés comme le C++. Ainsi, par défaut, bien que le prototypage puisse être beaucoup plus rapide, l’exécution du code lui-même est plus lente.
Compatibilité
Comme MicroPython utilise des ressources locales pour interpréter et exécuter les programmes, un microcontrôleur doit disposer d’un minimum de 256 Ko de mémoire flash et de 16 Ko de RAM. Malheureusement, certaines cartes de développement populaires comme l’Arduino Uno ne répondent pas aux spécifications requises. Il existe cependant de nombreuses cartes compatibles avec MicroPython.
Actuellement, MicroPython supporte officiellement les cartes de développement Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro:bit, STM32, et quelques cartes Arduino comme la Nano 33 BLE, la Nano RP2040, la Giga R1, et la Portenta H7.
Communauté et support
Depuis son lancement en 2013, MicroPython a acquis une popularité considérable. Les débutants devraient pouvoir apprendre facilement MicroPython grâce à sa documentation bien rédigée. Si vous avez besoin de plus d’aide, MicroPython dispose également d’un forum communautaire où les utilisateurs partagent des tutoriels, des idées et répondent à toutes sortes de problèmes que vous pourriez avoir concernant MicroPython.
Arduino
Arduino est une plateforme populaire à code source ouvert destinée principalement aux amateurs d’électronique et de bricolage. Le langage de programmation Arduino est basé sur les langages de programmation C et C++. Le langage Arduino a été lancé en 2005 par un groupe d’ingénieurs, d’artistes et de concepteurs italiens.
Caractéristiques
Le langage de programmation Arduino utilise une version simplifiée des langages C et C++, ce qui le rend facile à apprendre et à développer. L’exécution du code à l’aide d’Arduino est nettement plus rapide que celle de ses homologues en langage interprété en raison de sa nature compilée. En outre, Arduino ne nécessite qu’une petite quantité de ressources système pour fonctionner, ce qui le rend compatible avec de nombreuses cartes de développement et microcontrôleurs.
Performance
Contrairement à MicroPython et CircuitPython, Arduino est un langage de programmation compilé. Cela signifie que le code est d’abord compilé sur un compilateur (déjà inclus dans l’IDE Arduino) et ensuite exécuté comme un programme complet par le microcontrôleur.
Cela améliore considérablement l’exécution du code car le microcontrôleur n’a pas besoin d’utiliser des ressources pour interpréter chaque ligne de code. En outre, la compilation du programme le traduit également en code machine que le microcontrôleur peut exécuter nativement sans installer de dépendances.
Cela améliore considérablement la vitesse d’exécution du code car le microcontrôleur peut directement exécuter le programme sans avoir à consacrer du temps et des ressources matérielles à la traduction du code.
Cartes prises en charge
Puisque l’étape de compilation se fait à travers l’IDE, les microcontrôleurs peuvent avoir aussi peu que 32kB de mémoire flash et 2kB de RAM pour travailler. Ainsi, en dehors des cartes Arduino, il existe de nombreuses alternatives aux cartes Arduino que vous pouvez utiliser pour programmer avec Arduino. Beaucoup de ces cartes utilisent des microcontrôleurs tels que ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32, et STM32.
Communauté et support
En tant que plateforme open-source depuis 2005, Arduino dispose de l’une des meilleures documentations disponibles. La Fondation Arduino fournit activement des mises à jour, du support et de nouveaux produits passionnants chaque année. La communauté mondiale est également l’une des plus actives dans le partage de guides et d’idées et répond à tous les problèmes de dépannage que vous pouvez rencontrer. Avec Arduino, vous avez la garantie d’un bon niveau d’assistance.
CircuitPython
CircuitPython est l’implémentation de Python 3 par Adafruit, qui s’appuie sur MicroPython. Bien que dérivé de MicroPython, CircuitPython offre plusieurs améliorations pour rendre l’apprentissage des microcontrôleurs facile et amusant.
Caractéristiques
CircuitPython a été créé pour aider les débutants à apprendre à programmer des microcontrôleurs. Pour ce faire, CircuitPython propose plusieurs fonctionnalités, notamment un environnement de codage interactif, des bibliothèques intégrées, une syntaxe simple (plus simple que MicroPython), ainsi qu’une excellente documentation et d’excellents guides.
Performance
CircuitPython étant basé sur MicroPython, il en possède les mêmes forces et faiblesses. Le temps d’exécution du programme sera légèrement plus lent que MicroPython car CircuitPython offre plus de fonctionnalités et de bibliothèques supplémentaires. Cependant, la différence est probablement imperceptible car CircuitPython nécessite des microcontrôleurs plus performants pour fonctionner.
Cartes supportées
Avec des bibliothèques intégrées et une syntaxe encore plus simple, les cartes de développement à microcontrôleur ont besoin de plus de ressources pour utiliser CircuitPython. Au minimum, un microcontrôleur doit avoir un processeur 8-bit, 256kB de mémoire flash (512kB recommandé), et 32kB de RAM (64kB recommandé). Actuellement, CircuitPython prend en charge plus de 390 cartes de développement, répertoriées sur le site web officiel.
Communauté et support
Adafruit est connu pour fabriquer des produits adaptés aux débutants. En tant que tel, vous pouvez trouver de la documentation et des livres faciles à comprendre sur CircuitPython. Bien que le langage n’ait été introduit qu’en 2017, il a toujours un plus grand nombre d’adeptes que MicroPython, que vous pouvez atteindre via Discord et le forum officiel. Comme la Fondation Arduino, Adafruit fournit activement des mises à jour, du soutien et de nouveaux produits, ce qui signifie que le soutien devrait être facile à trouver.
C
Le langage C est un langage de programmation à usage général développé dans les années 1970 par Dennis Ritchie aux Bell Labs. Il s’agit d’un langage de programmation compilé que les ingénieurs et autres professionnels utilisent souvent pour programmer des microcontrôleurs avec un haut niveau d’efficacité.
Caractéristiques
Bien qu’il s’agisse d’un langage plus difficile à apprendre, le principal avantage du C par rapport à MicroPython, CircuitPython et Arduino est le niveau de vitesse, d’efficacité, de contrôle et de portabilité qu’il offre. Cela fait du C le meilleur langage pour programmer les microcontrôleurs qui seront utilisés dans les produits finis.
Performance
Outre sa grande portabilité, le langage C est réputé pour ses performances. Il peut exécuter des programmes plus rapidement qu’Arduino, MicroPython et CircuitPython, même avec un microcontrôleur aux ressources réduites. Cela s’explique par le fait que le C est un langage plus efficace, qui nécessite le moins de dépendances. Bien qu’un programme Arduino compilé puisse, comme un programme C, être exécuté sur du matériel nu, son code machine est pré-cuit avec des bibliothèques et des outils qui réduisent les performances.
Cartes supportées
Le langage C est tellement portable qu’il peut être utilisé pour programmer à peu près n’importe quel microcontrôleur basé sur Arm. En outre, il peut être utilisé sur des cartes basées sur les microcontrôleurs Atmel AVR, STM32, PIC et MSP.
Communauté et support
En raison de la robustesse de ses applications de programmation et du fait qu’il est déjà vieux de plusieurs décennies, le langage de programmation C dispose d’une vaste communauté en ligne. Vous pouvez facilement trouver de l’aide sur divers forums en ligne, salons de discussion et blogs dédiés à la discussion et au partage d’idées sur le langage C.
Quel langage utiliser pour programmer ?
Quel est donc le meilleur langage pour programmer des microcontrôleurs ? Cela dépend vraiment de la personne. Le langage C serait le meilleur pour les professionnels qui conçoivent des produits électroniques destinés à la production.
Ceux qui n’ont aucune expérience du codage pourraient bien vouloir commencer par CircuitPython, car ses caractéristiques et sa documentation rendent l’apprentissage facile et amusant. Ceux qui sont familiers avec Python trouveront facile de programmer des microcontrôleurs avec MicroPython.
Pour la majorité de la communauté des bricoleurs, Arduino reste le meilleur langage pour programmer les microcontrôleurs, car il offre un équilibre exceptionnel entre performance, portabilité, fonctionnalités et communauté.