Arduino
l'avatar suisse de l'Arduino
L'Arduino est une plateforme de développement open-source bon-marché et facile à mettre en oeuvre. Tout le soft est en libre-service sur le net, le système de développement, des librairies et des milliers d'applications. Nativement la documentation de l'Arduino, dont les cartes sont développées/fabriquées en Italie, est en anglais. Mais on trouve des sites dans d'autres langues, par exemple le site Mon-club-elec.fr pour le français.
En Suisse, Jean-Daniel Nicoud a développé le 100% compatible Diduino (DIDel-ArdUINO) et le commercialise via son entreprise Didel. L'avantage de cette version, c'est son orientation "expérimentation", son prix et la disponibilité du hardware nécessaire pour développer des applications. Une version spécifique pour la robotique existe aussi. Tout ceci est décrit sur le site de Didel.
Par rapport à d'autres plateformes PIC, l'Arduino a l'avantage de ne pas de nécessiter de programmateur. La carte se relie à un PC par un câble USB et c'est tout. L'alimentation se fait par ce câble. Le programme est écrit en langage Arduino, proche du langage C, à l'aide de l'environnement de développement Arduino, librement téléchargeable sur le net.
En pratique, il faut écrire le programme sur le PC, le tester afin d'y déceler des erreurs de syntaxe, le compiler et le télécharger sur la carte Diduino (ou Arduino. Pour la suite nous emploierons indifféremment l'un ou l'autre terme). Une fois l'Arduino nourri, il démarrera automatiquement avec ce programme lors de chaque mise sous tension, le programme ne s'efface pas lorsqu'on dés-alimente la carte.
La documentation livrée avec le Diduino consiste en une page "Montage Diduino" et une page "Mise en route et premières expériences".
Le montage est fort simple car la carte est livrée fonctionnelle, avec les composants implantés. Il n'y a qu'à souder les connecteurs pour fils et fixer la plaque "sans soudures" à l'aide de 2 vis M1.6. Tout cela est bien documenté et décrit.
En plus de ces éléments-là, le Diduino est livré avec 4 fils colorés et une trentaine de composants destinés aux premières expériences. Les premiers pas du "Diduiniste" sont donc facilités au maximum.
Test:
Il faut tout d'abord télécharger l'environnement de développement Arduino ici: http://arduino.cc/forum/index.php?topic=61764.0 Sans autre indication, Windows téléchargera ce fichier ZIP dans le répertoire Favoris/téléchargements du disque C:. C'est là que tu retrouveras le répertoire arduino-1.0-windows.zip avec son sous-répertoire arduino-1.0. Il suffit alors de cliquer sur l'option "Extraire tous les fichiers" du menu Windows, en haut de la fenêtre, pour que ce répertoire se remplisse des fichiers décompressés. Tout est là.
Libre à toi, ensuite, de déplacer ce répertoire arduino-1.0 et son contenu à une autre place du disque C (ou autre) afin qu'il soit visible dans l'arborescence du disque. Il faut encore mettre un raccourci vers le fichier arduino.exe sur le bureau afin que l'environnement Arduino soit accessible par un simple clic sur cette icône. C'est tout.
Connecte maintenant le Diduino au PC avec le câble USB (déconnecte-le et reconnecte-le s'il était déjà branché). Le PC répond par le bip de connexion habituel et indique que le driver se charge.
Ceci fait, clique sur l'icône "Arduino" sur le bureau afin de démarrer l'environnement de développement. Là il faut lui indiquer le type de carte ainsi que le port de communication.
Ceci peut varier en fonction de la version du soft Arduino, mais c'est ce que j'ai en janvier 2012 avec ma version de Diduino. Tout est prêt maintenant pour passer à la phase de la première programmation !
Le driver Arduino peut poser quelques problèmes. Si c'est le cas, tu peux trouver des explications ici: http://www.ladyada.net/learn/arduino/lesson1.html
Pour ton premier programme, charge le code source celui qui est dans l'Arduino: blink.ino:
C'est le code source du programme qui se trouve présentement dans ton Diduino.
Dans le setup. on voit que la pin 13 est initialisée en tant que SORTIE (la Led du Diduino lui est déjà connectée sur la carte). Le programme principal, quant-à lui, de contente de mettre cette pin à un niveau HAUT, attend 1000ms, la met à l'état BAS, attend 1000ms, et recommence la boucle. En conséquence, la Led 13, rouge, clignote à une fréquence de 2 Hz.
Sans entrer dans les détails de cette programmation:
Il faudra maintenant se plonger dans la mini référence pour se lancer dans ses premières applications, puis, l'expérience venant, dans la référence étendue. Et bien-sûr piocher dans les exemples qui se trouvent dans ton répertoire Exemples ainsi que sur le net.
A suivre...
Afin de me faire la main, j'ai relié quelques composants à mon Diduino, en les programmant les uns après les autres. Au final. j'ai:
Ce programme se sert à rien, si ce n'est de me faire la main sur ce genre de composants.
Au démarrage, il affiche "Azimuth: sur l'affichage LCD ainsi que l'angle du servo-moteur (jusqu'à 180 degrés) de la dernière position avant la coupure du courant. Cet angle est mémorisé dans une mémoire flash non-volatile. En plus, les lettres "AZ" pour "Azimuth" est donné auditivement en code morse par le buzzer.
Sur la pression du bouton, le servo-moteur se déplace à la nouvelle valeur donnée par le potentiomètre. Cette dernière est affichée sur le LCD et mémorisé en mémoire flash.
Le programme
Première application
Le cours Arduino de Frédéric Benninger s'est bien passé et maintenant ça "arduine" dans les chaumières...
Après les exercices du cours, pilotage d'une Led en PWM, mesure de température en One-wire, alignement d'un servo-moteur sur un point lumineux grâce à deux photorésistances, communication série entre Arduino et PC, pilotage d'un moteur pas-à-pas avec accélérations-décélérations, mémorisation des données d'un capteur dans un fichier, etc., je me suis attaqué au pilotage en I2C d'un module Comtech (synthétiseur de fréquences 1200 MHz) afin d'en faire un émetteur ATV.
Mais je bloque depuis plusieurs jours sur le fait que je n'arrive pas à communiquer avec ce module. Son adresse est "0xC2" et mon Diduino refuse d'envoyer le bit de poids fort. Voir les 2 photos ci-dessous:
Je pense qu'on en rira d'ici quelques jours, lorsque cette question sera réglée. Mais pour le moment j'enrage... J'ai posé des questions sur la liste "Arduino-suisse" et reçu des solutions, mais pas encore définitives pour ce problème-là. Mais on voit là l'utilité d'une telle liste lorsqu'on est seul chez soi à sécher sur un problème. Il se trouve toujours quelqu'un pour proposer des solutions qui, si elle ne résolvent pas le problème, mettent sur la piste. De mon point de vue, dans un groupe d'actifs comme le nôtre, ce genre de liste est une aide indispensable.
Lorsqu'on développe quelque chose, et si on sèche à plus forte raison, la place de travail devient vite un gros capharnaüm... C'est le cas chez moi et je n'ai pas résisté à la tentation de l'immortaliser. Et comme d'habitude, un "malheur n'arrivant jamais seul et toujours au mauvais moment", loi de la tartine oblige, mon oscilloscope est tombé en rade (plus de trigger) et j'ai dû le dépanner. Ceci fut fait mais j'ai laissé le capot du Tektronix ouvert par précaution, on ne sait jamais...
Au fait, si quelqu'un a un Tektroniks analogique de course à vendre (2 canaux, 150 MHz minimum, pas trop gros, pas trop ancien (transistors et IC), éventuellement à mémoire mais pas tout numérique) , je suis preneur. Je sens que le mien ne va pas tarder à me lâcher (du moins je me méfie) et je ne voudrais pas prendre le risque de perdre "mes yeux électroniques".
Je vais le garder jusqu'à ma mort cet engin car il m'a servi sans faillir depuis mes débuts chez les Américains, il y a presque 35 ans (!), et je l'aime. Avec lui et de simples schémas, je dépannais des mini-ordinateurs sur site au niveau des composants. Ca ne peut plus se faire maintenant et cet engin est un vestige de ma "grandeur" passée.
Lorsque je raconte ça à des jeunes, ils n'arrivent même pas à comprendre que ce soit possible. Ouvrir un mini-ordinateur OEM dans une banque ultra-sécurisés de Genève, sur un système Swift (échanges électroniques d'argent entre banques) alors que les opérateurs piaffent d'impatience derrière mon dos (chaque seconde d'immobilisation leur fait perdre de l'argent), faire des mesures à l'oscillo, compulser les schémas, grailler dans sa caisse à malices à la recherche du composants de rechange, miraculeusement le trouver (on est obligé de croire en Dieu quelquefois...), le souder à la place du défectueux, contrôler que tout marche, faire un test (= passer les tests automatiques et me transférer un million de dollars sur mon compte pour voir si a marche (hélas seulement en mode test), refermer la bête et la remettre en mains du chef de service, le regard éperdu de reconnaissance (lui, pas moi).
Et pendant que le travail reprend, nettoyer toutes les traces de mon passage, vieux reste du scoutisme de mon enfance: "lorsqu'on quitte un camp, on laisse 1) un bon souvenir, 2) rien !".
Et ce n'est pas fini: reprendre ma voiture parquée n'importe-comment (sur le trottoir) sur le Quai des Bergues à Genève, récupérer le billet rose coincé sous l'essuie-glace, passer au commissariat pour tenter de parlementer et s'entendre dire par la contractuelle qui m'avait amendé: "Mais oui, je vous l'enlève votre amende, c'est la première fois que quelqu'un vient me le demander si gentiment !". Ca ne s'invente pas ! C'était ça le dépannage d'ordinateurs OEM dans les années 80.
Un mois après, tous les problèmes sont
résolus et l'
Le schéma et le logiciel de ce montage seront publiés dès que possible, mais pas dans l'immédiat car j'arrive dans une zone d'occupation maximum du point de vue professionnel. Je serai donc un Arduiniste un peu moins actif ces prochains temps.
20200123_ Teensy 4.0, un Arduino hyper rapide
Le Teensy 4 est le microcontrôleur le plus rapide à ce jour. Il comporte un processeur ARM Cortex-M7 à 600 MHz sur chip NXP iMXRT1062. C'est un processeur "cross-over" qui a les fonctionnalités d'un microcontrôleur mais qui a la puissance d'un microcomputer.
Le Teensy 4.0 est parfait si vous désirez une tonne de mémoire flash, de RAM et que vous désirez manipuler beaucoup de données, ou si vous avez besoin de deux ports USB hyper rapides. Il a également un processeur graphique qui peut être programmé au moyen de l'environnement (IDE) Arduino avec les adjonction Teensyduino.
Caractéristiques:
|
Copyright texte et photos Michel Vonlanthen