Je situe le problème : le traceur série de l'IDE Arduino avec ses malheureux 50 points de présentation ainsi que les traceurs série que j'ai vu ne me convainquent pas.
J'ai décidé, pour mon propre usage et, si cela fonctionne bien de vous en faire part, d'en réaliser un.
Pour l'instant, dans l'ensemble,cela fonctionne bien. Sauf que j'ai un problème d'accès à l'Arduino via le port USB.
Je fonctionne sous Windows (mais le problème semble le même sous Linux). Si, après le lancement de Windows, je lance mon application, mon interface USB se plante. Par contre, si je lance d'abord l'IDE Arduino, que je fasse fonctionner mon sketch dans cet environnement, puis que je ferme l'IDE, puis que j'ouvre mon appli, tout se passe bien, j'ai accès aux données de mon sketch.
Je ne comprends pas pourquoi. C'est comme si le fait de lancer l'IDE Arduino provoquait une modification dans les paramètres du port USB.
Dans mon appli, la configuration du port USB est :
Je pensais l'avoir dit, mais non : c'est avec l'IDE Lazarus donc du Pascal Objet.
Effectivement. Mais la mise en œuvre semble assez longue. Je suppose qu'il doit être possible de faire un "macro" qui fait toute la configuration.
Personnellement je ne dispose pas de "Excel".
"Excel" n'est pas disponible sous Linux. Est-ce que la manip est réalisable avec "LibreOffice" ?
Par ailleurs, je pensais qu'il n'était pas possible de lancer mon application en même temps que l'IDE Arduino. d'où mon problème.
En fait, je peux la lancer si dans l'IDE Arduino, je n'ouvre ni le traceur série ni le moniteur série. De ce fait, c'est bien mieux car je peux modifier mon sketch courant en même temps. Problème non résolu sous Linux, mais ça va venir
Oui, si le traceur ou le moniteur sont ouverts, le port série est "occupé" pour les autres utilisateurs.
Suivant l'état dans lequel tu as laissé ton IDE Arduino en le quittant c'est à dire si le moniteur était ouvert, si tu réouvres le même sketch, il va réouvrir la console.
Je l'ai installée sous Windows 10 et Ubuntu 24 LTS et j'ai bien suivi les instructions.
Je l'ai essayé avec Arduino 3.2.0 et le sketch "calibrate" pour un magnétomètre GY-511. (6 valeurs à afficher).
Sous Windows 10 : Impossible d'ouvrir le port
Sous Ubuntu 24 LTS : le port s'ouvre mais l'application ne trouve aucune donnée.
Peut-être que je n'ai pas tout compris
Je continue à développer mon application et je me permets de vous la soumettre : "LienCOM.exe" pour Windows et "LienCOM" pour Linux. LienCom.zip (2.9 MB)
Cela me ferait plaisir si vous vouliez bien la tester (il doit trainer quelques bugs) :
ça marche ou pas
si ça marche, vos remarques.
Installation :
placer l'exécutable dans un répertoire.
Utilisation :
Lancer l'IDE Arduino avec un sketch envoyant des valeurs sur le port série. Ne pas activer le moniteur série ni le traceur série.
Lancer l'application "LienCOM".
Choisir le port et la vitesse de transmission. Cliquer sur "Connecter" : les valeurs envoyées par le sketch doivent s'afficher.
Cliquer sur "Tracer les courbes. Un fenêtre d'affichage s'ouvre et les courbes son tracées.
Vous pouvez jouer sur le nombre de points à afficher, le facteur d'échelle vertical et la position de l'axe des temps.
Je n'ai pas eu beaucoup de succès avec ma proposition de vous demander d'essayer le "Traceur de courbes pour Arduino" que j'ai développé.
Je me permets d'insister en vous présentant une version plus finie et plus complète. LienCom.zip (3.0 MB)
Elle fonctionne sous Windows et Linux ( Windows 10 et Ubuntu 24 LTS chez moi.
Elle est autonome (fonctionnement indépendamment de l'IDE Arduino) ou avec L'IDE en fonctionnement mais avec son moniteur ou traceur série fermé. NOTA : certaines interfaces FDTI ( série <--> USB) nécessitent que l'IDE soit ouvert.
Elle permet, comme le traceur de 'IDE d'envoyer des messages au module Arduino en fonctionnement pour en modifier son comportement par exemple.
Voici une image de ce que cela donne sur le petit sketch suivant :
uint16_t i = 0;
uint16_t tD = 100;
String st;
float crb1, crb2, crb3, crb4;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available()) {
st = Serial.readString();
tD = st.toInt();
}
crb1 = random()/1e7+100;
crb2 = 150*sin(i/10.0);
crb3 = 200*cos(i/5.0);
crb4 = crb3+crb2+0.1*crb1-150;
i++;
if (i == 100)
i = 0;
Serial.print("Crb_A ");
Serial.print(crb1);
Serial.print(" Crb_B ");
Serial.print(crb2);
Serial.print(" Crb_C ");
Serial.print(crb3);
Serial.print(" Crb_D ");
Serial.println(crb4);
delay(tD);
}
je conserve le lien et télécharge ton logiciel.
Pour ma part tout mon matériel est rangé car je ne dispose actuellement d'aucun temps pour mes bricolages autour d'Arduino.
Je ferai un retour dès que je rependrai la main !
donc ce n'est pas parce que c'est "vous" et il n'y a rien de personnel.
Sinon être référencé dans une liste sur le forum maintenue par un jeune débutant (de 14 ans) lui aussi "anonyme" n'est pas forcément un gage de sécurité. On voit de tout malheureusement, y compris des comptes d'un forum qui peuvent être hackés etc...
ça m'arrive de tester des trucs, mais plutôt quand tout est open source et que je peux compiler moi même un truc récupéré sur GitHub par exemple.