Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

Windows 10 IoT Partie 3 : les communications série (SPI, I2C, UART…)

Tout est communication, ne pensez pas juste à des câbles pour relier un PC à un Modem, mais pensez aux chips, aux sondes qui doivent communiquer sur un circuit IoT… tout cela se fait via des protocoles série qu’il faut connaître ! Voici les clés pour tout comprendre…

Les communications série

Quand un informaticien entend l’expression “communications série” il pense certainement en premier à tous ces câbles qui peuvent servir à relier un PC à des machines outils, voire à des Modem ancienne génération, cela évoque très vraisemblablement en lui les ports COM1 et COM2 qu’on trouvait systématiquement à l’arrière de tous les PC jusqu’il n’y a pas si longtemps… Cela doit aussi lui faire penser aux Protocoles, ces réglages un peu ésotériques de type nombre de “stop bits”,  “bit de parité”, etc…

C’est bien normal, c’est ce que tout informaticien voyait de la partie émergée de cet Iceberg : des câbles, des ports physiques, des réglages bizarres.

Mais les temps changent…

Et le monde des IoT s’impose par des milliards de machines connectées dans le monde et ce n’est qu’un début.

Or qui dit machines connectées, dit d’abord “machines”. Sous ce terme se cache à la fois du hardware (moteurs, sondes, vannes…) et de l’électronique de commande ! Et pour commander cette dernière des microcontrôleurs, voire des mini PC comme le RaspBerry ou un peu moins sophistiqué mais de même nature des Arduino et plein d’autres composants de ce type…

Et qui dit microcontrôleur ou mini pc dit … Programmation !

Et la boucle est bouclée !

Le maillon faible c’est vous

… Non pas vraiment… Le maillon faible de cette magnifique chaîne c’est vous, l’informaticien scotché à son langage et ses OS purement virtuels, des champs magnétiques représentant des 0 et 1 sans consistance physique, manipulés par des langages compilés ou non, un monde où tout est possible puisque rien n’est matériel…

Or, pour programmer rien de mieux qu’un informaticien..

Mais pour programmer de l’IoT ?

Côté électronique un électronicien est certainement le mieux placé, et son background lui permet bien entendu de programmer aussi, la logique fait partie de son apprentissage. Mais il n’est pas un spécialiste du développement, s’il connait et comprend les ordres de base pour programmer un microcontrôleur, il n’a pas l’expérience de l’informaticien dans le maniement des frameworks, dans la recherche d’une UX affinée, dans la conception des UI, le jonglage avec les notions d’objets, de layers, etc…

Donc ni l’informaticien ni l’électronicien ne sont les mieux placés… Fin de l’histoire ?

Devenez le maillon fort !

Non, ce n’est pas la fin de l’histoire, car vous allez devenir le maillon fort !

Le chaînon manquant c’est vous !

Et cela vous rendra beau, sexy, désirable, et plus surement vous rendra plus attrayant pour de futurs employeurs …

En effet, en vous intéressant dès aujourd’hui à l’IoT, à sa partie électronique en particulier, vous pouvez acquérir un savoir-faire unique car comme nous l’avons vu personne ne l’a ! Il n’existe pas de diplôme d’informaticien-électronicien aussi bon dans l’un et l’autre domaine, sachant architecturer une application complexe en MVVM tout en maniant le fer à souder et les lois de Kirchhoff avec autant de dextérité !

Nous sommes dans la même position que nous étions il y a fort longtemps, quand dans ma jeunesse j’ai choisi l’électronique car il n’y avait pas encore de diplôme d’informaticien bien balisés… Et que j’ai du ensuite complété cela quand les Art & Métiers ont ouvert un enseignement à l’informatique scientifique (la seule qui me plaisait car pour l’essentiel des cours de physique, je me voyais mal écrire des comptas ou des softs de facturation toute ma vie… ce qui l’a quand même bien occupé car on programme ce qu’on vous demande et pas ce qu’on veut !).

Le profil n’existait pas mais le marché existait. Les systèmes éducatifs peinaient à se mettre au diapason d’une demande allant croissante et qui bientôt deviendrait un raz de marée ! L’informatique à envahi toute notre vie ! Et les diplômes en informatique tout comme les écoles l’enseignant se sont multipliés comme des petits pains !

Il en va de même aujourd’hui avec les machines connectées. Et vous êtes à cette croisée des chemins. A vous de faire le premier pas, à vous de vous lancer dans cet apprentissage qui vous fait défaut pour devenir le profil que toute l’industrie s’arrachera bientôt !

Devenez le maillon fort !

Et les communications série alors ?

Redescendons un peu sur terre… Avant d’être ce fameux profil tant recherché il va falloir bosser !

Un informaticien n’est pas un électronicien. Moi qui suit les deux je peux vous l’affirmer, en électronique vous n’y connaissez rien. Mais ce n’est pas grave, tout peut s’apprendre !

Surtout qu’ici on ne vous demandera pas de remplacer un véritable électronicien pour créer des plans complexes, non, soyons sérieux, le but est juste que vous en connaissiez assez pour savoir prototyper un circuit, pour créer une machine nouvelle. La mise en point, l’optimisation électronique, laissez cela à aux électroniciens, c’est leur job.

Mais pour collaborer avec eux, pour apprendre de leur expérience, pour savoir leur expliquer ce que vous voulez, ou comprendre ce qu’eux veulent pour faire marcher leur hardware, il vous faut un langage commun, des bases communes.

Avant tout vous devez être un facilitateur, un diplomate parlant sa langue et celle du pays dans lequel il est en mission, un émissaire œuvrant pour l’unité de l’équipe et la réussite du projet.

Pour cela pas besoin de comprendre au premier coup d’œil un schéma électronique ou de savoir concevoir un circuit intégré ni même calculer le taux d’ondes stationnaires de l’antenne d’un émetteur (enfin çà peut servir pour ceux qui font encore de la CB ou qui sont radio amateurs par exemple !).

Non, plus simplement vous devez acquérir un savoir-faire de “bricoleur averti”, j’en connais qui sont parfois meilleurs que des pros ! Alors soyons humbles dans nos quêtes. Placer la barre trop haut est source de frustration et d’abandon. Fixons un but raisonnable. Si vous l’atteignez il sera toujours temps de relever la barre…

L’humble chemin vers un respectable bricoleur averti

h46VWpHl0TgCe chemin, commence par savoir mettre en œuvre un microcontrôleur et son OS. Ici j’ai choisi le Raspberry avec Windows 10 IoT Core pour plein de raisons. Et ça c’est tout ce j’explique dans ma première vidéo ici : Introduction à Windows 10 IoT Core.

Il se poursuit en comprenant comment faire marcher ce type de machine sans clavier ni souris ni écran, avec des poussoirs, des leds, et de la programmation background. C’est l’objet de ma seconde vidéo ici : Les Apps en background.

Mais, nous y venons, pour faire des choses utiles il faut que les composants complexes puissent communiquer entre eux, il faut que le microcontrôleur puisse communiquer avec eux, il faut que votre programme puisse communiquer in fine avec toutes ces puces, ces sondes… Et ici règne en maître le Protocole Série. Enfin, les protocoles série car il en existe différentes saveurs…

Et c’est là que ma troisième vidéo vient à la rescousse en vous expliquant :

  • Ce que sont les protocoles série
  • Quels sont les différents protocoles utilisés
  • Comment mettre en œuvre une démo de station météo de base utilisant les communications I2C
  • Comment déboguer un circuit de ce type via un Analyseur Logique

Et bien d’autres choses que vous découvrirez en regardant cet épisode d’une heure qui tente en si peu de temps de vous expliquer tout cela !

C’est ici : Windows 10 IoT : les communications série

Conclusion

Il reste bien entendu des milliers de choses à dire, à expliquer, pour beaucoup ce sera votre boulot que d’aller chercher ces informations, d’acheter le matériel (voir mes articles à ce sujet) et d’expérimenter. Rien ne remplace l’expérimentation personnelle.

Mais vous disposez désormais d’une aide précieuse, je vous ai mis le pied à l’étrier, à vous de monter sur le cheval… Et ne louper pas le coche car demain il sera peut-être un peu tard pour s’y mettre.

Dans l’avenir je ferai d’autres vidéos sur les IoT, sur des problématiques plus pointues et moins généralistes, mais pour l’instant je vais vous laisser digérer tout ça. La première vidéo sur l’introduction à Windows 10 IoT rencontre un succès évident, on vient bien que la seconde, la programmation en background ne fait pas encore le même score, tout simplement parce que vous êtes nombreux à vous posez des questions sur le sujet mais encore très peu à avoir vraiment passé le cap.

Ne me dîtes pas que vous n’avez pas un budget de 100 ou 200€ pour acheter un Raspberry et les petites bricoles qui vont autour pour faire des circuits simples… je n’y crois pas. Manque de temps ou manque de volonté ? A vous de le savoir, je ne suis pas votre confesseur Smile 

Mais on ne pourra pas dire que je n’aurai pas fait le maximum pour vous aider (gratuitement) à passer à l’action !

Alors dans tous les cas :

Stay Tuned !

blog comments powered by Disqus