Arduino 1.6.6 : beaucoup de corrections de bugs et quelques nouveautés

Hier sur le blog Arduino était annoncé la disponibilité de la version 1.6.6 de l’environnement de développement.

Cette version stable corrige quelques 723 problèmes signalés sur GitHub (issues) et fusionne 147 contributions (pull requests). Les chaînes de compilation ont été mises à jour (AVR 16.9 (Uno, Leonardo, Mega, etc), SAM 1.6.5 (Due) et SAMD 1.6.2 (Zero)).

Une refonte du support USB intégrant une grande modularité sous la forme du Pluggable USB core permettra d’écrire des bibliothèques transformant une carte Arduino compatible en n’importe quel périphérique USB. Les exemples USB HID clavier et souris ont d’ores et déjà été basculés sur cette nouvelle architecture. Il n’y a cependant pas d’autres implémentations disponibles pour l’instant, mais ce n’est qu’une question de temps avant que quelqu’un ne saute sur l’occasion pour ajouter un support Mass Storage ou USB MIDI.

Une autre nouveauté intéressante (mais plutôt moyennement intéressante après essai) concerne l’intégration dans l’IDE d’un outil en ligne de commandes : l’arduino-builder. Celui-ci permet, en effet, de compiler un croquis Arduino en ligne de commandes et d’obtenir un « .hex » et un « .elf » sans avoir à lancer l’environnement graphique.

Ceci peut être intéressant pour de l’intégration continue (il y a vraiment des gens qui font de l’intégration continue avec Arduino ?), mais cela reste relativement pénible à utiliser et ne vaut, à mon goût, pas un bon vieux Makefile. Jugez plutôt, voici la commande permettant de compiler croquis.ino pour Arduino Uno et de placer le résultat dans un répertoire cible, tout en prenant en compte les bibliothèques installées dans mon ~/sketchbook :

./arduino-builder -verbose -build-path \
/chemin/repertoire/de/destination -hardware ./hardware \
-tools ./hardware/tools/avr -tools ./tools-builder \
-libraries ./libraries -libraries ~/sketchbook/libraries \
-fqbn arduino:avr:uno /chemin/vers/croquis.ino

Un peu ragoûtant tout de même… d’autant qu’il faut ensuite, de toute façon, utiliser AVRdude pour enregistrer le résultat dans la mémoire de la carte. L’arduino-builder ne fait que compiler, il ne programme pas les cartes.

Enfin, j’ai laissé le meilleur pour la fin : s’ajoute maintenant en plus du moniteur série un traceur série ou serial plotter en anglais (pas de vannes lourdes SVP), également accessible depuis le menu « Outils ». Le principe est simple, chaque ligne reçue sur le port série contenant une valeur numérique représente un point placé en ordonnée du graphe, l’abscisse étant incrémentée au fil des lignes.

Bon, ce n’est sans doute pas très clair. Voici un exemple :

#include <math.h>
void setup() {
  Serial.begin(9600);
}

void loop() {
  double i;
  for(i = -1.0; i<1.0; i+=0.005) {
   Serial.println(sin(i * 2.0 * PI));
   delay(50);
   }
}

Ce code envoie sur le port série (à 9600 bps) le résultat d’un calcul de sinus, toutes les 50ms. En lançant le « traceur série », on obtient alors une fenêtre avec ceci :

singraph

Oui, je suis un peu contrarié parce que Hackable 9 contient justement un article sur l’utilisation de Processing pour tracer des graphiques en temps réel. Ceci dit, le traceur série ne sait dessiner qu’une donnée et ce dans une seule couleur. On est encore très très loin des fonctionnalités offertes par le duo Arduino + Processing.

À noter enfin différentes petites choses :

  • Un message popup apparaît si de nouvelles versions des chaînes de compilation ou des bibliothèques installées sont disponibles, un simple clic permet de sauter dans le gestionnaire et de faire la mise à jour,
  • Les menus encore en anglais ont été traduits, comme le « libraries manager »
  • Le nom « genuino » fait son apparition dans la liste des cartes utilisables
  • Le croquis ArduinoISP permettant de transformer une carte Arduino en un programmeur d’Atmel AVR a été massivement amélioré et est utilisable avec de nombreuses cartes (les détails sont par ici).

Plus problématique par contre, bon nombre d’utilisateurs ont remarqué un certain nombre de bugs et de régressions dans cette version et certains recommandent même de rester en 1.6.5-r5 pour l’instant, voire de reclasser la 1.6.6 en beta… Si vous rencontrez des problèmes, essayez la version hourly build.

Pour télécharger la 1.6.6 pour votre système (Windows, Mac OS X, GNU/Linux), c’est par là.

4 commentaires sur “Arduino 1.6.6 : beaucoup de corrections de bugs et quelques nouveautés

  1. Bonjour, juste un commentaire sur cette version : parmis les « bugs » recensés, il semble que la chaîne de compilation eps8266 ne fonctionne pas avec la 1.6.6. Mieux vaut donc rester sur la 1.6.5 pour ceux qui veulent développer avec l’IDE pour un esp8266 (présenté dans les 2 N°s précédents).

  2. Mettre un « serial plotter » n’est pas une idée trancendante… pas plus que processing, à mon avis (les deux sont excellents pour démarrer sans effort; mais ensuite, il faut fournir cet effort!) :
    python permet, par la chaine serial + Matplotlib, d’avoir (sous les yeux; possibilité d’identication interactive + stockage à la demande) des figures très jolies; on peut aussi stocker « à l’infini » -ce n’est pas le cas de matplotlib, qui est lent, obligeant à ne visualiser « que » k echantillons consécutifs- dans un fichier ce qui défile et surtout, de greffer des traitements simples (estimation du bruit blanc…).
    Par ailleurs, python est considéré comme le langage de choix sur RPi (qui a un très vieux -1.01 – environnement arduino, mais en parfait état de marche).
    Un autre avantage de python est qu’on peut transmettre du binaire pur (divis les volumes de transmission par 4 ) si besoin (la mise en ASCII étant alors à la charge du PC/RPi plus rapide) . https://balau82.wordpress.com/2011/03/26/capturing-an-analog-signal-with-arduino-and-python/

    Enfin, n’investir « que » sur arduino fait ignorer energia (ou des chaînes en C pur, pour les stm32 disons) où ce grapheur sériel n’est pas là….

    • Je suis d’accord, ce serial plotter n’est pas la panacée, pas plus que Processing est un environnement de développement en tant que tel. Je dirai qu’il s’agit de « solutions de prototypage » utiles pour obtenir les prémices d’un futur résultat « de production ».
      Je comprends tout à fait votre point de vue car pour ma part, l’implémentation « réelle » et finale d’un projet, ce fait en systématiquement en C que ce soit sous GNU/Linux ou dans un microcontrôleur.

      Arduino est ce que je pourrai considérer, comme la Raspberry Pi dans son domaine, comme la fleur de lance du domaine pour qui n’y a jamais touché. Leurs popularité est rassurante, « on est pas seul » mais, oui, c’est aussi et surtout une marche vers d’autres considérations comme le développement C, C++, Python, l’utilisation de microcontrôleurs autres comme le MSP430, les différents ARM Cortex-M ou encore des plateformes plus « embarquées » que « nano-ordinateur » comme la BeagleBone Black, les Cubies Boards, etc.

      Le travail de Hackable est d’initier et de fournir des bases saines pour asseoir ses connaissances, en donnant tantôt un aperçu des perspectives et « du reste des environnement et plateformes disponibles ». Si nous intégrons plus de langages et d’utilisation comme celles que vous évoquez, tout en faisant la part belle, aux plateformes embarquées et aux développement « finaux », Hackable risque non seulement de devenir un clone d’Open Silicium mais l’aspect « rassurant » des plateformes et des environnement populaires s’en trouverait amoindri, et certain lecteur trouveraient, à raison, le « ticket d’entrée », trop coûteux en temps et en effort.

      Donc en résumé oui, mais avec parcimonie :)

Les commentaires sont fermés.