Le logiciel s'attend à ce que l'Arduino envoie des lignes de données (par Serial.println), les données étant séparées par des virgules, la première donnée étant le temps en microseconde (unsigned long de Arduino) qui sera placé en abscisse.
Le temps doit être celui de Arduino pour des problèmes de temps de réponse de la voie série.
La vitesse peut être réglée en accord avec Serial.begin(x).
Le bouton Options permet de choisir la voie série. Dans cette boite de dialogue, on indique également le nombre de points d'une acquisition. Dans cette boite de dialogue, on peut également demander un sur échantillonnage pour compenser les limites d'Arduino, mais bien sûr en respectant les contraintes liées au critère de Shannon.
Le choix du type de synchronisation déclenche l'envoi à Arduino de H0 pour le mode relaxé, H1 pour synchro sur seuil montant, H2 sur seuil descendant.
Attention, ces commandes ont désormais (à partir du 10/01/2018 version 1.6.4) un terminateur LineFeed (alias LF alias #10) pour assurer un meilleur contrôle de celles-ci.
La barre de défilement sur le côté gauche permet de régler le seuil de déclenchement, le déclenchement devant faire dans le sketch Arduino : la modification du seuil envoie à Arduino G+la valeur du seuil (entier positif sur 10 bits).
Un clic sur le bouton "acquisition" déclenche l'envoi à Arduino de Start.
Un clic sur le bouton Stop déclenche l'envoi à Arduino de Stop.
On a prévu une fréquence d'échantillonnage maxi de 100 kHz.
Attention, dans la cas de Arduino Uno, elle est limitée à 10 kHZ.
Les valeurs sont sensées être des entiers positifs sur 8, 10 (cas usuel), 12 (Due ou Zero) ou 14 bits (liste déroulante dans les options), ceci permettant d'avoir une vitesse suffisante.
Le cas 8 bits est prévu pour des acquisitions rapides (>10 kHz) à base d'Arduino Uno : voir le site de Frédéric Legrand
La conversion se faisant par la troisième ligne du tableau, la valeur entière étant noté V. Par exemple, une conversion en tension 0..5 V s'écrira V/1024*5
Un clic sur traitements envoie les données à Regressi.
Vous trouverez dans le sous-répertoire Arduino de Regressi trois exemples de logiciel pour Uno, Curie 101 ou Due, accessible par des boutons de la boite de dialogue Options.
Le logiciel s'attend à ce que Arduino envoie des lignes de données (par Serial.println), les données étant séparées par des virgules.
En mode point par point, la première donnée est supposée être l'abscisse.
En mode temporel, le temps est géré soit par Regressi, soit par Arduino (cocher la case correspondante, le temps sera donné en seconde comme première donnée). Le nombre de points maximal est de 2048.
Le bouton Options permet de choisir la voie série et d'indiquer éventuellement des commandes à envoyer au démarrage ou lors de l'arrêt.
On peut également définir trois commandes à envoyer à Arduino en réponse à un clic sur un bouton de la fenêtre principal (on peut envisager une remise à zéro, un étalonnage ...).
La vitesse de la voie série doit être réglé en accord avec Serial.begin(x). Si vous voyez apparaître des caractères cabalistiques, pensez à vérifier l'accord entre les deux vitesses.
L'acquisition étant a priori plus lente que dans le module oscilloscope, on s'attend à avoir des données "physiques" en volt par exemple.
Il y a trois modes de fonctionnement temporel : déclenché, relaxé, en rouleau (mode Roll des oscilloscopes). L'acquisition s'arrête lorsqu'on atteint la durée indiquée ou lorsqu'on clique sur le bouton Stop.
En mode point par point, le logiciel s'attend à ce que Arduino envoie des données en continu (ces données s'affichent en bas de la fenêtre), l'acquisition d'un point se faisant par clic sur le bouton correspondant.
Exemple de code Arduino :
Serial.print(millis()/1000.0,3); // 3 : précision ms
Serial.print(",");
Serial.print(data1);
Serial.print(",");
Serial.println(data2);
Vous trouverez dans le sous-répertoire Arduino de Regressi des exemples de logiciel Arduino, accessibles par des boutons Arduino de la boite de dialogue Options qui vont lancer l'IDE Arduino :
simplePoint : programme d'acquisition point par point
etalon : programme d'acquisition point par point avec une commande de mise à zéro
simpleTemps : programme d'acquisition temporelle
tempsArduino : programme d'acquisition temporelle avec gestion du temps par Arduino