bandeau

MacGyveriser l'IDE arduino


D'un avis général l'interface de développement arduino n'est pas follichonne, pour ne pas dire carrément moche. J'ai essayé comme tout le monde d'utiliser un éditeur externe, l'IDE arduino le permettant en cochant la bonne case dans le menu Préférences. J'en ai testé plusieurs, Notepad++, Atom, Context, JEXT, etc. Tous ces éditeurs sont bien beaux mais finalement on se contente juste de rajouter un tuyau de plus à l'usine à gaz. Cà n'apporte pas grand chose à part une coloration syntaxique plus agréable que celle de l'IDE d'origine, il faut toujours garder l'IDE arduino ouverte en parallèle pour uploader le code dans l'arduino. En plus çà oblige à sauvegarder systématiquement le code avant d'uploader, ce qui est bien en soi mais que je ne fais pas systématiquement pour de petites modifs du code. Bref, je trouve que c'est une perte de temps.
J'ai testé aussi SublimeText , très à la mode en ce moment dans le milieu des codeurs. Il existe un pluguin à rajouter (STINO) pour pouvoir avoir les mêmes conditions de travail que l'IDE arduino. Je n'ai pas été vraiment convaincu, çà a marché un moment et au nième redémarrage de SublimeText çà commencait à bugger et je ne pouvais plus compiler ni uploader. J'ai désinstallé/réinstallé Sublime et Stino plusieurs fois, toujours pareil, fonctionnement stable éphémère, de plus la compilation était bien plus longue qu'avec l'IDE arduino. Peut-être cela vient-il de mon système, d'autres ont l'air d'en être satisfait. Je retenterai peut-être l'aventure le jour ou j'aurai réinstallé un W7 propre, pour l'instant je trouve que c'est bien se compliquer la vie pour ce que çà apporte vraiment. La révolution ce sera quand un de ces éditeurs permettra le déboguage d'un programme arduino, avec points d'arret et visualisation des variables en temps réel, en attendant je préfère rester simple.
Mais j'ai quand même bien aimé la coloration syntaxique du thème "Sunburst" de SublimeText , background noir, couleurs pastels, commentaires en italique, etc. . Je me suis dit que le plus simple c'était encore de retravailler celle de l'IDE d'origine pour la mettre à mon gout. Je suis donc allé bidouiller dans le thème arduino pour le transformer en SublimeText like.



Télécharger le thème FCOdark, le décompresser et remplacer le thème dans C:\Program Files(x86)\Arduino\lib\theme.


FCOdark.zip



IDE






Aide au débuggage: insertion de points d'arrets et visualisation des variables sur écran PC.




En attendant que les développeurs officiels se rappellent qu'il manque un vrai système de débuggage dans l'IDE officielle arduino je me débrouille avec un poussoir externe connecté sur une pin libre pour placer des points d'arrets dans mes programmes. Ne pas oublier de câbler la résistance de pullup sur le poussoir et de le déclarer en INPUT dans le Setup(). Ne pas oublier non plus le Serial.begin(9600); pour avoir accès à l'interface série. Sur l'exemple j'ai choisi la pin A0 mais n'importe quelle autre fera l'affaire. Le programme se met en pause à la ligne insèrée, on scrute les variables documentées dans la ligne et on peut reprendre ensuite l'éxécution du programme par un appui poussoir.

Code à intégrer dans les déclarations:




Il suffit ensuite d'insérer la ligne "debug;" aux endroits ou on veut placer un point d'arret et quelques Serial.print() pour en profiter pour visualiser l'état des variables, on peut même créer un #define spécialisé dans ce sens.
Ici le poussoir est connecté sur A0 mais on peut le mettre ou on veut en modifiant la première ligne.



Si on a un grand nombre de variables à visualiser on peut aussi l'écrire de cette façon pour plus de clarté dans le code:



etc. etc. Dans le programme tout cela se traduira par une simple ligne "debug;" et ne grévera pas la lisibilité du code. Arrivé au point d'arret la liste de variables se déroulera dans l'interface série et on aura le temps de l'étudier jusqu'à un appui poussoir qui reprendra le déroulement du programme. On peut placer autant de points d'arrets que nécessaire.


Code du point d'arret

Point.zip





retour