Quelques astuces pour Arduino

Posted on 02 July 2014 in DIY • 2 min read

Voici astuces en vrac pour Arduino que j’ai découvertes ces derniers jours, en codant pour CitizenWatt et en particulier pour le capteur.

Stocker des données en Flash

Il peut arriver d’avoir pas mal de données statiques dans un programme et donc d’arriver à court de RAM disponible (2ko sur un ATMega 328p / Arduino Uno). Et quand ça arrive, c’est le drame (typiquement, le Serial se mettait à faire n’importe quoi dans mon cas)…

Par exemple, à chaque appel de Serial.println("Quelque chose");, la chaîne de caractères "Quelque chose" est chargée en RAM. Du coup, sur un code assez long, avec pas mal d’affichage verbeux sur la liaison série, on sature vite la RAM.

Qu’à cela ne tienne, il est possible de stocker la chaîne dans la Flash et de la charger directement depuis la Flash. Avant, c’était compliqué, il fallait utiliser PROGMEM, mais depuis la version 1.0 de l’IDE, il suffit d’entourer la chaîne de F(), par exemple Serial.println(F("Quelque chose"));. Source

Et au passage, un petit bout de code pour savoir combien il reste de RAM disponible.

Les préférences de l’IDE

Je n’avais jamais été faire un tour dans les préférences de l’IDE non plus, principalement par flemme. Qu’à cela ne tienne, c’est désormais chose faite, et j’y ai croisé quelques options vraiment vitales.

En particulier, “Afficher les résultats détaillés pendant compilation” qui permettra d’avoir un output plus verbeux pendant la compilation.

Mais la vraie révélation de cette soirée, c’est l’option “Utiliser un éditeur externe”. Vous ne supportez plus l’éditeur Arduino et son indentation pourrie, ses fonctionnalités dignes de notepad premier du nom et son non affichage des numéros de ligne (à part en bas dans un petit coin, inutilisable au possible pour débugger efficacement), cette option est faite pour vous ! En l’activant, Arduino ne lira plus le fichier. Vous pouvez l’éditer comme vous voulez dans un éditeur externe (Vim <3) et au moment d’uploader le code, l’IDE Arduino ira relire le fichier, le compiler et l’uploader.