Il y a 25 ans, une petite entreprise britannique a décidé de développer un programme pour aider les étudiants à apprendre à programmer des microcontrôleurs : Flowcode. Lancé pour la première fois en l'an 2000. Au départ, il s'est bien vendu dans le secteur de l'éducation et, comme il était facile à utiliser, de nombreux amateurs et entreprises industrielles ont commencé à l'utiliser. Aujourd'hui Flowcode est très fonctionnel et compte des milliers d'utilisateurs.
 
Flowcode timeline
Chronologie de Flowcode.

Qui étaient les développeurs ?

En 1998, Matrix Multimedia Limited, fondée en 1993, était à l'avant-garde du développement du multimédia éducatif au Royaume-Uni et l'un des premiers éditeurs de contenu multimédia du pays. Après avoir développé plus de 20 CD ROM éducatifs en géographie, mathématiques et électronique, l'entreprise savait que l'émergence de la technologie Internet détruirait son activité de contenu éducatif et devait se diversifier. Matrix avait réalisé des CD ROM révolutionnaires pour l'enseignement de l'électronique, en utilisant des simulations de circuits étendues avec la modélisation SPICE, et la société a décidé d'utiliser son expertise en électronique pour pénétrer le marché émergent des microcontrôleurs dans un contexte éducatif. 

Conçu pour apprendre

L'objectif de la société était l'apprentissage et l'enseignement. Matrix savait que certains étudiants en ingénierie avaient des difficultés avec la programmation en C et que le processus de développement de programmes plus complexes à partir de rien prenait trop de temps. Matrix a donc décidé de simplifier la programmation en utilisant des organigrammes comme méthode de programmation, et en créant une vaste bibliothèque de routines prêtes à l'emploi pour de nombreux capteurs, écrans et composants électroniques. Tout le monde peut comprendre les organigrammes, ce qui facilite la programmation, et le système de saisie des commandes suppose que les étudiants ne font plus d'erreurs de syntaxe. La grande bibliothèque de composants a permis aux étudiants d'aller plus loin, plus vite, de réaliser des projets plus passionnants, d'accroître leur motivation c'était tellement plus facile que le C ou l'assembleur.

En outre, Flowcode a été développé avec des capacités de simulation complètes : La simulation est un outil d'apprentissage très efficace qui permet d'avoir une vision différente de ce qui se passe dans un programme, et qui présente l'avantage supplémentaire de raccourcir le processus de développement des programmes. Dans le logiciel, les étudiants peuvent choisir un microcontrôleur, y connecter des interrupteurs, des capteurs, des écrans et des actionneurs, et peuvent simuler et interagir avec le circuit à l'écran, avant de compiler le programme sur du matériel réel.

La première version de Flowcode a été publiée en l'an 2000, à l'époque où les microcontrôleurs en étaient à leurs balbutiements et incluaient les populaires PIC16F84 et ATMEGA8, et a connu un grand succès avec des ventes dans de nombreux pays. La facilité d'utilisation de Flowcode a également incité un grand nombre d'amateurs et d'ingénieurs industriels à l'utiliser, pour développer de véritables projets électroniques, et la base d'utilisateurs s'est agrandie.

 
Flowcode 10
Copie d'écran du premier Flowcode 5.

Paradigmes de code multiples

Lorsque les microcontrôleurs se sont diversifiés et devenaient beaucoup plus répandus au début des années 2000, Flowcode s'est développé pour pouvoir créer des programmes pour AVR, Arduino, ARM, DSPIC et bien d'autres. Flowcode était un excellent outil de programmation, mais de nombreux ingénieurs et étudiants avaient encore besoin d'apprendre le code C, et certains ont trouvé la transition de la programmation intuitive par organigramme difficile. Pour faciliter cette transition, Matrix a ajouté des interfaces de pseudocode et de code C à Flowcode, et chose unique, les étudiants peuvent passer en toute transparence d'une interface à l'autre et simuler le comportement d'un circuit dans l'une ou l'autre d'entre elles.

E-blocks

Flowcode avait introduit avec succès des concepts de programmation modulaire, dans lesquels les fonctionnalités de modules matériels spécifiques étaient regroupées dans des « composants » , mais le matériel physique se présentait presque exclusivement sous la forme de cartes de développement multifonctionnelles. Matrix souhaitait reproduire cette approche modulaire avec le matériel, et c'est ainsi qu'est né E-Blocks vers 2006. La gamme E-blocks comprenait un certain nombre de cartes « en amont » comme les PIC, AVR, ARM, FPGA, et de nombreuses cartes « en aval » telles que LED, interrupteurs, capteurs, écrans, actionneurs. Les blocs s'emboîtent les uns dans les autres à l'aide de connecteurs D à 9 contacts (robustes pour une utilisation éducative), avec une alimentation séparée. Les cartes comportaient des caractéristiques standard telles que le débogage en circuit, mais aussi une instrumentation embarquée avec un oscilloscope complet à deux canaux et un analyseur logique multicanal qui peut afficher les signaux sur n'importe quelle broche de l'appareil cible. Cela a permis à Matrix de développer des projets éducatifs innovants tels que des téléphones portables ou des récepteurs GPS entièrement fonctionnels, où les étudiants ont pu comprendre des concepts avancés tels que les protocoles de communication de commandes AT.

 
E-blocks
Cartes E-blocks II. 

3D

Au milieu des années 2010, une nouvelle tendance est apparue : tous les ingénieurs ont commencé à programmer des microcontrôleurs, y compris les ingénieurs en mécanique. La programmation est devenue une compétence essentielle de l'ingénieur, car peu de systèmes venant de l'ingénierie existent sans contrôle ou surveillance électronique. Autre tendance : toutes les pièces détachées de sociétés telles que RS et Farnell proposaient des modèles 3D de tous les composants que l'on pouvait télécharger. Matrix a donc décidé de rendre Flowcode entièrement compatible avec la 3D, afin que les ingénieurs puissent importer un système 3D de Solidworks dans le logiciel, et simuler le mouvement mécanique de leur projet en 3D, en plus des parties électroniques de leur projet.

Développeur d'applications Flowcode

En 2018, Matrix a lancé la version 8 de Flowcode App Developer. Le concept ici était de permettre aux utilisateurs de développer des applications  web ou PC en utilisant l'environnement de programmation Flowcode. Matrix a développé des API pour des technologies communes comme Arduino, afin que les clients puissent créer des programmes hautement fonctionnels, basés sur des interfaces matérielles à faible coût pour le test et le contrôle. Ainsi, les clients peuvent désormais développer des programmes pour le web, les PC et les microcontrôleurs.

 
Flowcode hardware simulation screen
Écran de simulation matérielle Flowcode typique.

Machines d'états et programmation de flux de données

Pour les éducateurs et les clients industriels, Matrix était conscient que dans le développement de systèmes électroniques, les paradigmes de programmation basés  uniquement sur des scripts ou des organigrammes avaient des limites. En 2018, Matrix a publié une nouvelle version de Flowcode qui intègre des systèmes graphiques permettant aux utilisateurs de saisir des programmes utilisant des machines d'état et la programmation de flux de données, et de les mélanger avec des programmes conventionnels. Les machines d'états sont idéales pour certaines applications, en particulier les systèmes de communication, et représentent la fonction d'un système en termes d'état à différentes parties d'un programme. La programmation du flux de données permet aux utilisateurs d'assembler des diagrammes fonctionnels, basés sur des blocs de traitement de signal standard et de compiler le système résultant sur un microcontrôleur : fantastique pour les systèmes DSP et de communication.

 
Flowcode 10
Flux de données et organigrammes mélangés dans un programme avec Flowcode 10.

Gratuit pour les makers

En janvier 2023, Matrix venait de publier la version 10 de Flowcode avec un certain nombre d'améliorations et un changement de licence important : le programme est désormais gratuit pour les makers et les amateurs en ciblant les microcontrôleurs populaires comme le PIC16F18877 et l'Arduino.

Et ensuite ?

Matrix continue de développer le programme et le matériel Flowcode qui peut aider les étudiants à apprendre l'ingénierie, et propose une grande variété de cours et de matériel pour l'électronique, la robotique, les communications numériques, le contrôle des processus et d'autres technologies dans son portefeuille. Matrix continue d'innover en matière de formation à l'ingénierie et de développement de systèmes électroniques. En 2023, l'entreprise lancera un nouveau système de développement matériel/logiciel important : Sysblocks. Sysblocks est basé sur le système de programmation de flux de données Flowcode, et sur un microcontrôleur DSPIC très rapide avec deux entrées et deux sorties analogiques. Cela permet aux ingénieurs et aux étudiants de construire un diagramme de traitement du signal en Flowcode et de le compiler sur un microcontrôleur pour des applications en technologie musicale, DSP, radio logicielle, modulation-démodulation, codage-décodage, étalement de spectre, etc. Matrix est convaincue que ce projet aura un impact significatif sur la manière dont les communications et d'autres matières sont enseignées dans les universités et espère que cette technologie trouvera également des applications dans l'industrie.

 
Sysblocks
Carte Sysblocks.
Flowcode 10 est gratuit maintenant pour les makers et les hobbyistes. Vous pouvez le télécharger gratuitement depuis :  www.flowcode.co.uk

Traduction : Laurent RAUBER