Arduino et Processing Page très ancienne ... |
Maj : 19/06/2024
Abstract :
Résumé : |
J'ai pratiqué sans discontinuer le langage machine depuis l'Apple 2 (1977), les premières calculatrices scientifiques Hewlett Packard (HP 28 en 1987), puis tous les microcontrôleurs du marché. Je me suis retrouvé avec des boîtes pleines de prototypes utilisant tous les types de microcontrôleurs du marché (mais principalement sur famille 8051 et un peu de Pic). Tout avait été développé avec de nombreux langages assembleurs et compilateurs variés, ce qui rend impossible de ressortir une ancienne carte et l'associer à son bon environnement de l'époque pour reprendre le développement.
Je suis arrivé à des situations bloquantes pour lesquelles l'assembleur montrait ses limites. Il devenait extrêmement pénible de gérer les cartes SD, les disques durs, l'Ethernet, l'Internet, le Wi-Fi, le Bluetooth, le Xbee...
Pour sortir de cette impasse et changer de stratégie, il n'y avait d'autre solution que de tout jeter et de repartir sur de nouvelles bases.
Après de longues réflexions, j'ai définitivement basculé sur Arduino, pour diverses raisons :
° L'environnement Arduino est totalement ouvert, toutes les sources et hardwares sont parfaitement bien documentés.
° Il existe une multitude de bibliothèques qui facilitent le développement d'innombrables périphériques.
° La communauté Arduino est très active, la diffusion est très grande.
°
Il est possible de développer son code source capable de tourner à la fois sur une carte très puissante (DUE, AT Mega 2560, Pic32,...) et sur un très petit circuit 8 pattes (ATtiny85). Il suffit de déclarer sa cible au compilateur et évidemment de n'utiliser que ce dont dispose le contrôleur choisi.
° Le langage principal est le très classique C (et C++), universel et rigoureusement indémodable, ce qui assurera la pérennité des développements.
Vous trouverez ici plus de détails : Choisir entre le C et l'assembleur
Partie hardware
Une carte Arduino est tout simplement constituée d'un microcontrôleur monté sur un circuit imprimé qui comporte des dizaines de petites prises directement reliées à tous les ports disponibles du circuit. L'environnement minimal est implanté :
° Alimentation par un régulateur acceptant de 6 à 20 V, découplage et quartz.
° Interface USB permettant le dialogue avec le PC, avec un terminal natif et le chargement du logiciel.
Les premières cartes utilisaient la famille AVR, mais la société Expressif a créé une révolution en lançant les familles ESP32 qui sont beaucoup plus puissantes et apportent le WiFi et le Bluetooth.
Ce sont maintenant des circuits incontournables en développement Arduino. Il en existe de très variés et Expressif documente très bien ces produits complexes.
Vous trouverez tous les autres détails sur les site officiels Arduino et Expressif.
Pour débuter, le plus simple est d’utiliser l’IDE de base contenu dans Arduino.
Il est toutefois limité et il faut faire l’effort de passer sous PlatformIO qui est un peu déroutant les premiers temps, mais s’avère bien plus performant et agréable pour du développement sérieux.
Firmware implanté
Tous les outils sont fournis pour permettre de démarrer très vite en s'inspirant des exemples.
Le circuit est simplement programmé définitivement avec un "loader", petit morceau de logiciel résident permettant de charger son programme.
Quelle carte Arduino choisir ?
Il existe (Ebay.com) de multiples clones des cartes Arduino/Genuino officielles à des prix plusieurs fois inférieurs aux originaux. J’en ai testé beaucoup et eu de nombreux problèmes de compatibilité en particulier avec l’interface USB. Les faussaires ne payent pas la licence au fondeur FTDI et montent n’importe quoi à la place. La carte est vue de manière aléatoire et si l’on n’a pas d’original sous la main pour identifier la cause du plantage on ne comprend plus rien.
Si vous avez déjà plusieurs vraies cartes, il est tentant de pendre des faux en complément, mais en ayant conscience du risque. J’ai un petit tas de cartes chinoises pas chères abandonnées …
Après avoir programmé plusieurs années sur les cartes Arduino AVR du début, Mega Uno, Mini et Tiny, puis DUE, je les ai abandonné, j'en ai de pleins cartons...
Il vaut mieux maintenant oublier les cartes Arduino AVR du d ébut et se lancer directement sur l'ESP32!
Exemple: Carte ESP32 vers Nextion
Le problème de cette page est que depuis que le l’ai commencée, j’ai développé une centaine d’applications Arduino mais que je n’ai pas le courage de présenter sous forme d’une page Web exploitable, ce qui prend beaucoup de temps que je préfère consacrer au développement.
Je n’ai mis pour le moment ici que me premiers exercices de débutant qui me font sourire aujourd’hui, car on peut faire beaucoup mieux. J’espère trouver la motivation de lâcher de temps en temps mon addiction au C pout compléter ce chapitre par des sujets plus pointus.
Tout ce qui est décrit est dans le fichier zip. Je n'introduirai de futures pages qu'à doses homéopathiques...
En première approximation Processing est indépendant d'Arduino. Il s'agit d'un langage de programmation ouvert pour les plate-formes Windows, Linux et Mac OSX.
Il est d'une puissance considérable et dispose d'une très grande collection de bibliothèques orientées en particulier graphismes et sons.
Il s'interface parfaitement avec l'Arduino au travers de la liaison série USB.
Découvrez le site Processing, il contient de nombreux exemples pour débuter simplement, vous serez vite conquis et épatés !
J'utilisais auparavant Visual Studio pour interfacer mes automates au PC, mais mon premier projet "radar" m'a fait découvrir la puissance de Processing et l'adopter définitivement.
Il utilise aussi le langage C. Dans mon application, je me suis efforcé d'utiliser variables et portions de code identiques sur Processing et Arduino.
Essayer Processing, c'est l'adopter !
Choisir entre le C et l'assembleur
En fouinant vous trouverez une infinité de liens Arduino, mais il faut commencer par les incontournables !
Le point d'entrée en français : arduino.cc
Le forum : Vous y trouverez réponses à vos questions, pourvu qu'elles ne soient ni débiles ni formulées en charabia SMS bourré de fautes d'orthographe
Il vous sera facile ensuite de trouver les vendeurs de cartes en France est pour les moins pressés et les plus économes sur eBay ou chez les chinois.
Attention, il y a de très mauvaises imitations, ce n'est pas cher mais les délais de livraison depuis la Chine sont variables.
J'en ai de plein cartons plus ou moins en en panne.
Mon analyseur logique, parfaitement bien adapté à l'Arduino : Salae Logic 8 channels
Du côté ordinateur, l'indispensable site qui vous fera découvrir un nouvel univers : processing.org
Réaliser simplement des shields de qualité : fritzing.org
Un des nombreux sites à explorer dans l'immense univers Arduino : dangerousprototypes...arduino
Page Arduino 2/2 : "radar" à ultrasons Centrale d'acquisition Arduino / Bluetooth< Toutes mes sources sont disponibles dans ce fichier zippé d'archives : |