Quel langage de programmation devez-vous utiliser pour vos projets de microcontrôleur? Explorons les quatre meilleures options.

Les cartes de développement de microcontrôleurs sont devenues un incontournable parmi la communauté des fabricants. 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 des capteurs, des moteurs, des LED et des 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 d'aujourd'hui incluent MicroPython, CircuitPython, Arduino (C++ simplifié) et C. Chacune de ces langues a ses propres avantages et inconvénients.

MicroPython

MicroPython est une implémentation légère du langage de programmation Python 3 spécialement conçu pour les microcontrôleurs. Il a été publié en 2013 par le Dr Damien George pour un prototypage plus rapide et pour permettre aux personnes déjà familiarisées avec Python de programmer des microcontrôleurs avec un langage similaire.

instagram viewer

Caractéristiques

MicroPython est un excellent langage de script pour les débutants souhaitant programmer des microcontrôleurs. Les débutants sans expérience de 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 de lecture-évaluation-impression-boucle (REPL), permettant 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, permettant un prototypage rapide car un retour en direct peut être fourni lors du codage.

Cependant, en raison de comment les processeurs exécutent le code, les langages interprétés comme MicroPython seront beaucoup plus lents que les langages compilés comme 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é

Étant donné que MicroPython utilise des ressources locales pour interpréter et exécuter des 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. Cependant, il existe encore de nombreuses cartes compatibles avec MicroPython.

Actuellement, MicroPython prend officiellement en charge le Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, Cartes de développement STM32 et quelques cartes Arduino telles que Nano 33 BLE, Nano RP2040, Giga R1 et Portenta H7.

Communauté et assistance

Depuis son lancement en 2013, MicroPython a depuis attiré un public important. Les débutants devraient avoir du mal à apprendre MicroPython avec sa documentation bien écrite. 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 rencontrer concernant MicroPython.

Arduino

Arduino est une plate-forme open source populaire principalement destinée aux passionnés 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 designers italiens.

Caractéristiques

Le langage de programmation Arduino utilise une version simplifiée de C et de C++, ce qui facilite l'apprentissage et le développement. L'exécution de code à l'aide d'Arduino est nettement plus rapide que ses homologues en langage interprété en raison de sa nature compilée. De plus, 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), puis 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 à utiliser de ressources pour interpréter chaque ligne de code. De plus, 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 exécuter directement le programme sans allouer de temps et de ressources matérielles à la traduction du code.

Tableaux pris en charge

Étant donné que l'étape de compilation se fait via l'IDE, les microcontrôleurs peuvent avoir aussi peu que 32 Ko de mémoire flash et 2 Ko de RAM pour fonctionner. Donc, à part les cartes Arduino, il existe de nombreuses alternatives de cartes Arduino vous pouvez utiliser pour programmer avec Arduino. Beaucoup de ces cartes utiliseraient des microcontrôleurs comme ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 et STM32.

Communauté et assistance

En tant que plate-forme open source depuis 2005, Arduino possède l'une des meilleures documentations disponibles. La Fondation Arduino fournit activement des mises à jour, une assistance et de nouveaux produits passionnants chaque année. La communauté mondiale est également l'une des plus actives pour partager des guides et des idées et répondre à tous les problèmes de dépannage que vous pourriez rencontrer. Avec Arduino, vous avez la garantie d'un bon niveau de support.

CircuitPython

CircuitPython est l'implémentation d'Adafruit de Python 3, basée sur MicroPython. Bien que dérivé de MicroPython, CircuitPython propose 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 y parvenir, CircuitPython fournit plusieurs fonctionnalités, dont un codage interactif environnement, bibliothèques intégrées, syntaxe simple (plus simple que MicroPython) et excellente documentation et guides.

Performance

Étant donné que CircuitPython est basé sur MicroPython, il présente bon nombre des mêmes forces et faiblesses. Le temps d'exécution du programme sera légèrement plus lent que MicroPython car CircuitPython fournit plus de fonctionnalités et de bibliothèques supplémentaires. Cependant, la différence est probablement imperceptible puisque CircuitPython nécessite des microcontrôleurs plus performants pour fonctionner.

Tableaux pris en charge

Avec des bibliothèques intégrées et une syntaxe encore plus simple, les cartes de développement de microcontrôleurs ont besoin de plus de ressources pour utiliser CircuitPython. Au minimum, un microcontrôleur doit avoir un processeur 8 bits, 256 Ko de mémoire flash (512 Ko recommandés) et 32 ​​Ko de RAM (64 Ko recommandés). Actuellement, CircuitPython prend en charge plus de 390 cartes de développement, répertoriées sur le site officiel.

Communauté et assistance

Adafruit est connu pour fabriquer des produits adaptés aux débutants. En tant que tel, vous pouvez trouver une documentation et des livres faciles à comprendre sur CircuitPython. Bien que le langage n'ait été introduit qu'en 2017, il a toujours un public plus important que MicroPython, que vous pouvez atteindre via Discord et le forum officiel. Comme la Fondation Arduino, Adafruit fournit activement des mises à jour, une assistance et de nouveaux produits, ce qui signifie que l'assistance doit être facile à trouver.

C

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 des niveaux d'efficacité élevés.

Caractéristiques

Bien qu'il s'agisse d'un langage plus difficile à apprendre, le principal avantage de 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 deux microcontrôleurs à utiliser dans les produits finis.

Performance

Outre sa grande portabilité, C est connu pour ses performances. Il peut exécuter des programmes plus rapidement qu'Arduino, MicroPython et CircuitPython, même avec un microcontrôleur à faibles ressources. En effet, C est un langage plus efficace, nécessitant 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.

Tableaux pris en charge

Le langage C est si portable qu'il peut être utilisé pour programmer à peu près n'importe quel microcontrôleur basé sur Arm. De plus, il peut être utilisé sur des cartes basées sur les microcontrôleurs Atmel AVR, STM32, PIC et MSP.

Communauté et assistance

En raison de son application de programmation robuste et du fait qu'il a déjà plusieurs décennies, le langage de programmation C a une communauté en ligne massive. Vous pouvez facilement trouver de l'aide sur divers forums en ligne, salles de discussion et blogs dédiés à la discussion et au partage d'idées sur le langage C.

Avec quel langage devriez-vous programmer?

Alors, quel est 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 de l'électronique pour la production.

Ceux qui n'ont aucune expérience en codage voudront peut-être commencer avec CircuitPython car il possède des fonctionnalités et une documentation qui rendent l'apprentissage facile et amusant. Ceux qui connaissent Python trouveront facile de programmer des microcontrôleurs avec MicroPython.

Et pour la majorité de la communauté DIY/maker, Arduino serait toujours le meilleur langage pour programmer microcontrôleurs, car il offre un équilibre exceptionnel entre performances, portabilité, fonctionnalités et communauté.