mercredi 27 mars 2019

Programmer un Raspberry Pi avec Arduino Create

Depuis quelques mois, il est possible de contrôler les broches GPIO d'un Raspberry Pi grâce à un sketch Arduino réalisé sur l'éditeur en ligne "Arduino Create". Malgré les quelques réserves que j'entretiens à l'égard cet IDE en ligne, j'étais curieux de savoir comment ça fonctionne, et j'ai donc décidé d'en faire l'essai.

Nous supposerons que vous disposez déjà d'un compte sur Arduino Create. Si ce n'est pas le cas, vous trouverez quelques directives dans ce vieil article (qui date de l'époque où le service était encore en version beta: je suppose que la procédure d'inscription est plus simple maintenant).

Une fois dans mon compte Arduino Create, je clique sur le bouton "Device Manager":


La page "Device Manager" comporte une partie intitulée "My Linux Devices", réservée aux cartes fonctionnant sous Linux. J'ai cliqué sur le bouton bleu  "Add New Device".


On me présente alors une liste des cartes supportées. Évidemment, je clique sur "Set up a Raspberry Pi".

La page suivante m'explique qu'on va installer le plugin "Arduino Create" sur mon ordinateur (dans mon cas, c'est déjà fait), ainsi que le logiciel "Arduino Connector" sur mon Raspberry Pi.  J'ai cliqué sur le bouton "Next", au bas de la page.


On me demande ensuite de m'assurer que le Raspberry Pi est connecté sur le même réseau local que l'ordinateur que j'utilise actuellement.


On m'offre ensuite deux options pour identifier mon Raspberry Pi. J'ai choisi celle qui consiste à entrer son adresse ip.


Il faut ensuite entrer le nom d'utilisateur et le mot de passe qui permet d'ouvrir une session sur le Raspberry Pi.



Arduino Create établit une connexion avec mon Raspberry Pi, et y installe "Arduino Connector".


Je choisis ensuite un nom pour identifier mon Raspberry Pi (ce sera particulièrement utile si mon réseau en comporte plusieurs).



Mon Raspberry Pi est maintenant visible dans le "Device Manager".
En cliquant sur le bouton associé à mon Raspberry Pi, quelque chose a mal tourné. On m'a avisé que le package "NetworkManager" est absent de mon système (ma version de Raspbian n'a pourtant rien d'exotique, et elle est raisonnablement à jour). J'ai cliqué à quelques reprises sur le bouton "INSTALL", ce qui ne semble pas avoir eu le moindre effet. J'ai fini par me résigner et cliquer sur le bouton "NEVER MIND". Comme nous le verrons par la suite, ça ne semble pas avoir entraîné d'inconvénient majeur.



Je me suis ensuite dirigé vers l'Arduino Web Editor, car c'est là que les choses deviennent intéressantes: mon Raspberry Pi est figure maintenant dans la liste des cartes que je peux programmer.


Ce n'est pas le moment d'être original: je branche une LED à la broche GPIO18 du Raspberry Pi, dans l'espoir de la faire clignoter.


Il ne me reste qu'à écrire le classique sketch qui fait clignoter une LED. Une chose qu'il est important de savoir, c'est qu'on utilise le mode de numérotation "BOARD" plutôt que "BCM": la broche GPIO18 porte donc le numéro 12.


Le téléversement du sketch est un succès...


Et bien entendu, la LED se met à clignoter!

Dans la page Device Manager, lorsque je clique sur le dessin de mon Rasbperry Pi, j'accède à une console qui affiche la liste des sketches que j'y ai téléversés. Un bouton me permet de démarrer ou d'interrompre chaque sketch de la liste. Plusieurs sketches peuvent être exécutés simultanément.



On peut donc constater que je suis parvenu à contrôler une broche GPIO du Raspberry Pi grâce à un sketch Arduino tout ce qu'il y a de plus classique, en utilisant les fonctions digitalWrite() et delay(). Tout ce processus s'est déroulé à l'intérieur d'Arduino Create, sans que j'aie à ouvrir moi même une session sur le Raspberry Pi.

Cette façon de programmer le Raspberry ne conviendra pas à tout le monde, mais on peut facilement imaginer que tout ceci puisse plaire à quelqu'un qui est déjà familier avec la programmation d'un Arduino, et qui ne connaît rien à Linux.

Ça demeure un peu étrange que je sois obligé d'aller sur internet pour contrôler un Raspberry Pi qui se trouve devant moi. Une fois le sketch Arduino téléversé dans le Raspberry Pi, ce serait chouette de pouvoir l'exécuter par une commande tapée dans le terminal, sans être obligé de recourir à Arduino Create. Est-ce faisable? Pour l'instant, je n'ai malheureusement pas la réponse à cette question.

Il me reste aussi à vérifier si les principales bibliothèques de l'univers Arduino sont supportées. S'il est possible de transposer au Raspberry Pi, sans trop de modifications, un sketch Arduino relativement complexe impliquant quelques capteurs SPI ou I2C , un afficheur, etc., ça pourrait devenir vraiment intéressant.

Je prévois donc continuer à expérimenter ça encore un peu...

Lire la suite

Yves Pelletier   (TwitterFacebook)


Aucun commentaire:

Publier un commentaire