mercredi 3 août 2016

Programmer l'Arduino en ligne grâce à Arduino Create

Après un premier faux départ, je vous présente aujourd'hui une première exploration de l'Arduino Web Editor, une importante composante du site Arduino Create récemment lancé par l'équipe Arduino.

De quoi s'agit-il?

Arduino Create comporte un outil qui vous permet de programmer n'importe quelle carte Arduino en utilisant un simple fureteur web (Chrome, Explorer, Firefox, etc), sans que l'IDE ait été installé sur votre ordinateur.  Arduino Create comporte également un espace de stockage pour vos sketches, des tutoriels, un endroit pour voir des projets réalisés par d'autres utilisateurs, des outils pour faciliter la réalisation de projets IoT (internet des objets) etc.

Pour le présent article, je me limite à l'inscription au service et à l'utilisation de l'Arduino Web Editor.

Inscription à Arduino Create

J'espère que ce n'est que temporaire, mais l'inscription à Arduino Create me semble inutilement compliquée:  vous devez demander qu'on vous envoie une invitation par email (qui devrait vous parvenir dans un délai de 24 heures) avant de pouvoir faire quoi que ce soit.  Pas question, donc, de vous mettre à programmer dans les minutes suivant votre inscription:  vous devez patienter plusieurs heures.

Vous commencez par accéder au site d'Arduino Create.


Vous devez tout d'abord avoir un compte sur le site arduino.cc.  Si vous en avez déjà un (par exemple, parce qu'il vous arrive de participer au forum de discussion), tout est parfait.  Sinon, cliquez sur le bouton "SIGN IN" en haut à droite de la page.

Vous accédez à la page qui permet d'ouvrir une session quand vous avez déjà un compte.  Pour créer un nouveau compte, vous cliquez sur "Sign Up".


...Et vous remplissez le formulaire en choisissant un nom d'utilisateur et un mot de passe.




Maintenant, vous retournez sur la page d'accueil d'Arduino Create et vous cliquez sur le bouton "Arduino Web Editor".  Vous devriez voir le formulaire illustré ci-dessous, qui vous permet de demander qu'on vous envoie une invitation par email.  Vous y consignez le nom d'utilisateur que vous avez choisi à l'étape précédente, et votre adresse email.




On vous confirme que vous recevrez votre invitation à la même heure le lendemain.



Lorsque vous recevez l'email d'invitation, vous cliquez sur le bouton "Join Now!" de cet email.


On vous présente un très long texte énumérant les conditions d'utilisation du site.  Il faut bien sûr cliquer sur le bouton "AGREE".



Installation du plugin

Si tout va bien (ce qui n'est pas toujours le cas), on devrait maintenant vous offrir la possibilité de télécharger le plugin.  L'Arduino Web Editor vous permet de programmer l'Arduino sans avoir installé l'IDE, mais vous devez quand même installer certains fichiers localement sur votre ordinateur, sinon vous serez incapable de téléverser quoi que ce soit sur votre carte.

Alors vous cliquez sur le bouton "NEXT"...




... puis sur le bouton "DOWNLOAD PLUGIN"


Trouvez le fichier d'installation dans le répertoire de téléchargement de votre ordinateur (il s'intitule "ArduinoCreateAgent-1.1-windows-installer") et exécutez-le (quelques boîtes de dialogues apparaîtront pour vous permettre de confirmer l'installation de divers composants).

Au bout d'un certain temps, votre fureteur web devrait confirmer que le plugin a bel et bien été détecté.



Il faut ensuite redémarrer le fureteur (dans mon cas, le bouton "RESTART NOW" n'a pas du tout fonctionné).



Utilisation de l'Arduino Web Editor

Donc je ferme Chrome, je le démarre à nouveau, j'accède à la page d'accueil d'Arduino Create, je clique sur le bouton "Arduino Web Editor" et me voici finalement dans l'éditeur en ligne!


Pas exactement la même interface que l'IDE, mais on s'y retrouve quand même.

Je branche une carte au port USB (un clone chinois...si ça fonctionne avec ça, ça fonctionnera avec n'importe quoi!), je clique sur "-- Select Board or Port --" dans le haut de l'écran, une liste des modèles de cartes disponibles apparaît...



Dans la section "Examples", je sélectionne "Blink", je clique sur le bouton qui a la forme d'une flèche vers la droite...


Ça marche, la LED intégrée à la carte se met à clignoter.

Essayons maintenant le moniteur série (bouton "Serial Monitor").  Dans cette interface, le moniteur série s'affiche dans la même fenêtre que tout le reste.  J'écrit un petit sketch qui affiche des nombres croissants dans le moniteur série:  ça fonctionne très bien aussi.




Qu'en est-il des bibliothèques?  Je clique sur le bouton "Libraries" pour constater que les bibliothèques habituelles sont présentes.  Je vois aussi un bouton "ADD .ZIP LIBRARY" qui devrait permettre d'installer des bibliothèques spécialisées de la même façon qu'on le fait dans l'IDE conventionnel.



Je m'arrête là pour l'instant.

Donc, premières impressions:

- Ça semble fonctionner correctement.
- C'est en anglais seulement, pour l'instant.
- Il faut quand même installer un plugin sur l'ordinateur qu'on utilise (mais c'est beaucoup moins volumineux que l'IDE).
- Il faut patienter plusieurs heures afin de recevoir l'email d'invitation
- Ce n'est pas une très bonne nouvelle pour les créateurs de Codebender.



Yves Pelletier   (TwitterFacebook)

dimanche 31 juillet 2016

Première tentative d'utilisation d'Arduino Create

Il y a quelques jours, j'ai décidé de faire l'essai d'Arduino Create.  Il s'agit en gros de la version en ligne de l'IDE Arduino:  ça vous permet de programmer votre carte à partir de n'importe quel ordinateur sans qu'il soit nécessaire d'installer l'IDE sur l'ordinateur en question.  De plus, un espace de stockage permet de conserver vos sketches pour que ces derniers soient également accessibles à partir de n'importe quel ordinateur.  Les lecteurs attentifs se souviendront peut-être de mon court article sur Codebender, qui est un outil similaire (ou encore de mbed et MPLAB XPress, qui permettent de programmer respectivement les cartes STM32 Nucleo et les microcontrôleurs PIC).

1)  On accède au site d'Arduino Create.



2)  On ouvre un compte sur arduino.cc, si on n'en a pas déjà un.  S'il vous arrive de publier des questions ou des commentaires sur le forum d'arduino.cc, vous avez déjà ce compte.  Sinon, il s'agit de créer un compte, c'est gratuit (bouton "SIGN IN" en haut à droite de la page).

3)  J'ignore si ce sera toujours comme ça, mais lorsque vous cliquez sur le bouton "Arduino Web Editor", on vous propose d'inscrire votre nom d'utilisateur et votre adresse email:  vous recevrez une invitation (en anglais) par email dans les heures suivantes.



4)  Lorsque vous recevez l'email d'invitation, vous cliquez sur le bouton "Join Now!" de cet email pour pouvoir enfin avoir accès à l'outil.


5)  Ça nous envoie à un très long texte (toujours en anglais) énumérant les conditions d'utilisation du site.  Il faut bien sûr cliquer sur le bouton "Agree".



6)  ...ce qui nous retourne à l'écran initial, celui où on demandait de recevoir une invitation par email!


J'en suis là.  Je suis coincé dans une boucle infinie dans laquelle ma seule option semble consister à demander qu'on m'envoie l'invitation que j'ai déjà reçue!

Il y a bien une adresse email permettant de signaler les problèmes de connexion (j'ai envoyé un message à cette adresse, bien entendu).

Je suis bien conscient que je suis victime d'une erreur temporaire qui sera probablement rapidement corrigée, mais...entre nous...pourquoi l'inscription à Arduino Create est-elle si compliquée?

Petite mise à jour (3 août 2016):  Problème finalement résolu. On m'avait envoyé par erreur une invitation qui avait déjà été utilisée par quelqu'un d'autre.  J'aurai donc bientôt l'occasion de vous parler d'Arduino Create d'une façon un peu plus positive.



Yves Pelletier   (TwitterFacebook)

jeudi 23 juin 2016

Fabrication d'un anémomètre (Arduino)

Un anémomètre est un appareil qui permet de mesurer la vitesse du vent.  C'est très facile de construire un anémomètre à coupelle, et de mesurer sa vitesse de rotation au moyen d'une carte Arduino et d'un capteur approprié.

L'anémomètre

J'ai construit un anémomètre à coupelles rudimentaire constitué de 3 petits bols de plastique (de forme vaguement hémisphérique) fixés à l'extrémité de 3 légères tiges de bois. L'extrémité opposée des tiges de bois est fixée à un axe de rotation:  quelque chose qui tourne facilement (dans mon cas:  un ventilateur d'ordinateur n'ayant plus de pales).

Visez la légèreté:  celui que j'ai fabriqué ne réagit pas du tout si la brise est trop légère.


Le capteur: un interrupteur reed

L'intérêt de notre montage d'un point de vue électronique, c'est qu'il comportera un capteur nous permettant de déterminer automatiquement la vitesse de rotation.  J'aurais pu compter les tours au moyen d'un système optique (un duo LED infrarouge/phototransistor, par exemple).  J'ai toutefois opté pour un capteur magnétique (qui demeure immobile), alors qu'un aimant est fixé à une des tiges de l'anémomètre.

Si j'avais eu besoin de mesurer avec précision le champ magnétique causé par l'aimant, j'aurais utilisé comme capteur un magnétomètre numérique (comme le HMC5883L) ou un capteur analogique à effet Hall (comme l'Allegro A1302).  Mais pour compter les tours effectués par l'anémomètre, je n'ai besoin que de détecter la présence (ou l'absence) d'un champ magnétique:  c'est pourquoi j'ai choisi d'utiliser un interrupteur reed.



L'interrupteur reed est constitué de deux lames conductrices qui entrent en contact uniquement lorsqu'elle se trouvent à l'intérieur d'un champ magnétique suffisamment intense (donc à proximité d'un aimant).

Pas d'aimant à proximité:  l'interrupteur reed ne laisse pas circuler le courant
Aimant à proximité:  l'interrupteur reed laisse circuler le courant

Ces deux contacts se trouvent à l'intérieur d'un petit tube en verre TRÈS FRAGILE:  je m'étais procuré un lot de 5 interrupteurs reed, et j'en ai cassé 3 lors de la réalisation de ce projet!

Le circuit

On branche l'interrupteur reed à l'Arduino de la même façon qu'on brancherait un bouton poussoir. Lorsque l'aimant (qui est fixé à une des tiges de l'anémomètre) passe au-dessus de l'interrupteur reed, la pin 8 de l'Arduino sera soumise à un niveau logique HAUT (5 V), alors qu'elle sera soumise à un niveau logique BAS (0 V) le reste du temps.

Une LED branchée à la pin 13 de l'Arduino (ou simplement la LED qui se trouve déjà sur la carte) s'allumera à chaque passage de l'aimant, ce qui nous aidera à vérifier que tout fonctionne correctement.


Calcul de la vitesse

Le temps écoulé entre deux passages successifs de l'aimant représente la période de révolution de l'anémomètre.

On peu ensuite calculer la vitesse des coupelles; puisqu'elles sont en mouvement circulaire, elle parcourent une distance égale à la circonférence pendant une durée correspondant à la période:

vitesse des coupoles = (2 * pi * rayon)/période

...où le rayon est mesuré de l'axe de rotation jusqu'au centre des coupelles (c'était 15 cm dans mon cas).


S'agit-il de la vitesse du vent?  Oui, dans l'hypothèse où les coupelles se déplacent aussi vite que le vent,  mais ce n'est malheureusement pas le cas.

Pour obtenir la véritable vitesse du vent, il faut ensuite multiplier le résultat par une fonction d'étalonnage qui dépend de la forme et des dimensions du dynamomètre et de sa vitesse de rotation! Pour trouver cette fonction, il faudrait donc mesurer le vent au même endroit et au même moment au moyen d'un anémomètre commercial correctement calibré, et produire une courbe de calibration.

Sinon, tout ce que nous mesurons représente une limite inférieure: nous savons que le vent va au moins aussi vite que les coupelles, dont nous connaissons la vitesse.

Un sketch

Voici un sketch qui affiche dans le moniteur série la période de rotation et la vitesse des coupoles.




Pour une utilisation sur une longue période, il sera utile d'emmagasiner nos données, par exemple sur une carte SD, ou grâce à un service en ligne.

Yves Pelletier   (TwitterFacebook)



Related Posts Plugin for WordPress, Blogger...