Cartes de développement
Présentation générale
Une carte de développement possède, dans un format très compact la puissance de calcul que délivrait un microprocesseur quelques décennies en arrière. Mais son but n’est absolument pas de remplacer votre ordinateur dans ses usages les plus courants (bureautique, navigation sur Internet, jeux vidéo, etc.).
Généralement, ce type de carte est simplement composée de connecteurs reliés à un circuit intégré programmable (avec, malgré tout, un peu d’électronique pour gérer l’alimentation et la communication).
Si vous l’allumez pour la première fois, vous verrez (dans le meilleur des cas) une simple LED qui clignote. La suite, c’est à vous de l’inventer...
Vous entrez dans un monde merveilleux où vous avez la possibilité de créer de nouveaux objets issus de votre imagination.
Reliez un buzzer et quelques boutons poussoirs à la carte de développement et vous pouvez construire un instrument de musique ou un juke-box qui jouera différentes musiques programmées. Mais ce n’est qu’un exemple, parmi d’autres. Avec des centaines de modules susceptibles d’être reliés à la carte et en modifiant la programmation, les possibilités de création sont quasiment infinies.
Les cartes de développement actuelles sont extrêmement faciles à utiliser. Elles laissent souvent le choix entre différents langages de programmation. Elles conviennent donc parfaitement aux débutants (enfants ou adultes), mais également aux personnes plus expérimentées.
1. Types de cartes
Il existe de nombreuses cartes de développement, mais elles peuvent se répartir en deux grandes familles.
a. Cartes à microcontrôleur
Elles sont construites autour d’un circuit intégré qui assure à lui seul les principales fonctions de la carte, c’est-à-dire les calculs (interprétation et exécution du programme), la mémoire vive, le stockage des données et, bien sûr, la communication avec l’extérieur (entrées et sorties). Mais elles possèdent souvent aussi un port de communication (USB ou micro-USB) et un système de gestion...
Programmation
Un programme informatique est constitué d’une suite d’instructions. Il explique à l’ordinateur comment réaliser une tâche précise.
Il est généralement écrit dans un langage de programmation de haut niveau, c’est-à-dire proche du langage humain (code source). Mais il faut ensuite le traduire en binaire (langage machine) pour que l’ordinateur puisse comprendre les instructions à exécuter.
Cette traduction (assurée par un autre programme informatique) peut être effectuée une fois pour toutes avant l’exécution du programme (compilation) ou au fur et à mesure (interprétation).
1. Algorithme
Le principe de l’algorithme (utilisé dans la plupart des langages de programmation), existe depuis très longtemps. Le mathématicien Al Khwarizmi fit connaître au IXe siècle, en occident, cette méthode de résolution. Elle est non seulement applicable à un problème mathématique, mais également à de nombreux autres domaines.
L’algorithme détaille toutes les étapes permettant de résoudre un problème complexe, de prendre une décision ou d’automatiser la réalisation d’une tâche.
Voici quelques exemples d’utilisation de l’algorithme dans notre vie courante :
-
Diagnostiquer une panne ou une maladie (en mécanique ou en médecine).
-
Prendre une décision impartiale (calcul d’allocations, justice).
-
Établir une procédure standardisée (recette de cuisine, organisation du travail).
a. Exemple concret
Pour mieux comprendre le principe de l’algorithme, détaillons l’exemple d’une recette de cuisine extrêmement simple. Pour expliquer à un ami, comment préparer un œuf à la coque, vous devrez décomposer toutes les opérations à réaliser :
Faire bouillir de l'eau dans une casserole.
Plonger l'œuf dans l'eau.
Attendre 3 minutes.
Sortir l'œuf de l'eau.
Mais, même si l’on parle parfois d’intelligence artificielle, il ne faut pas oublier (pour le moment), que l’ordinateur n’est qu’une simple machine. Il faut non seulement tout lui expliquer...
Langages de programmation par blocs
La programmation par blocs (popularisée par Scratch) reprend le principe de l’organigramme. Elle est parfaitement adaptée aux enfants (à partir de huit ou neuf ans) ou aux débutants qui découvrent la programmation. Elle est très intuitive et nécessite très peu d’apprentissage. Il suffit simplement de déplacer des blocs colorés, rangés par catégorie. Mais ce type de langage n’est pas adapté aux programmes volumineux (un code composé de milliers de blocs serait extrêmement difficile à gérer).
1. MakeCode
C’est le principal langage utilisé avec le micro:bit. Mais il permet aussi de programmer d’autres cartes (comme le Circuit Playground Express d’Adafruit, les Legos Mindstorms Education EV3, les cartes Chibi Chip, les robots Cue et même Minecraft). Sa simplicité, son interface familière ainsi que son simulateur de carte (qui permet de tester immédiatement le code) lui ont permis de s’imposer.
a. Installation
MakeCode pour micro:bit est utilisable en version online (depuis un navigateur Internet), sans inscription et sans installation, ou en version offline, à télécharger et installer sur un ordinateur équipé de Windows ou Mac OS (64 bits). Comme vous pouvez le constater, l’interface est presque identique.
MakeCode online et offline
MakeCode online est intéressante si votre système d’exploitation n’est pas compatible ou si vous subissez des restrictions pour installer un programme. Mais MakeCode offline ne nécessite pas une connexion permanente à internet et permet de transférer le code directement dans le micro:bit (sans l’enregistrer auparavant sur disque dur). Il existe également une application MakeCode pour Windows 10 (disponible dans Microsoft Store). Elle possède les mêmes...
Langages de programmation par lignes de code
Ce type de langage est un peu plus austère. Il demande aussi plus d’effort pour apprendre le vocabulaire et la syntaxe. Mais vous n’avez pas besoin de connaître toutes les instructions pour commencer à programmer. Au contraire, il est beaucoup plus facile d’apprendre progressivement (en fonction de vos besoins).
Les lignes de texte rendent le code plus concis et offrent beaucoup plus de possibilités que les langages de blocs. L’ordinateur est naturellement conçu pour manipuler du texte, vous n’avez donc pas besoin d’accès Internet ou d’installer un logiciel spécifique pour coder. N’importe quel système d’exploitation fournit un éditeur de texte capable de gérer du code (écrire, modifier, copier/coller, imprimer, sauvegarder, envoyer par e-mail...).
Si vous avez l’habitude des blocs, le passage à un langage sous forme de texte peut être un peu intimidant. Mais finalement, la structure du programme est identique. Chaque bloc peut être remplacé par une ligne de code.
Comparaison entre MakeCode et MicroPython
1. MicroPython
Le langage Python, créé en 1991, sous licence libre, fonctionne sur toutes les plateformes. Il est très apprécié dans le milieu de l’éducation, notamment pour sa clarté et sa concision. Il est donc devenu le langage phare du Raspberry Pi.
Le MicroPython est une version simplifiée de Python. Ce langage est donc adapté aux microcontrôleurs (d’une puissance de calcul plus faible que les ordinateurs). Créé à l’origine pour programmer...
Autres langages
1. Vitta Science
Pour faciliter la transition entre les langages de blocs et MicroPython, le site Vitta Science (https://fr.vittascience.com/microbit) propose un éditeur de code en ligne (aussi intuitif que MakeCode). Il génère automatiquement le code MicroPython à partir des blocs, prend également en charge de nombreux composants ou modules courants et permet d’afficher des informations provenant d’un micro:bit connecté (température, luminosité, entrées analogiques...).
De plus, l’interface est en français, sans installation et sans inscription obligatoire sur le site, alors n’hésitez pas à le tester.
Vitta Science
2. JavaScript
Comme Vitta Science, MakeCode permet de passer très facilement des blocs au texte, mais avec le langage JavaScript.
Passage des blocs au JavaScript avec MakeCode
3. mBlock
Le logiciel mBlock est une adaptation de Scratch créée au départ par la société chinoise Makeblock pour piloter les robots pédagogiques mbot. Mais il peut aussi programmer un Arduino et/ou un micro:bit. Il permet de travailler en local, sans connexion Internet, d’envoyer directement le code dans le micro:bit et intègre aussi un éditeur Python. Malheureusement, les deux langages semblent indépendants. Contrairement à Vitta Science, mBlock ne traduit donc pas les blocs en instructions...