Problème d'interface entre Arduino et port USB

Bonjour à toutes et à tous,

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 :

  • Nombre de bauds : celui qui va bien
  • Nombre de bit : 8
  • Sans parité
  • Bit de stop : 1
  • XON/XOFF handshake : Désactivé
  • CTS/RTS handshake : Désactivé.

Si vous avez une idée du problème ...

Cordialement.

Pierre.

Bonjour ChPr

Ton application est écrite en quoi?
Comme bon traceur, il y a Excel

Cordialement
jpbbricole

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 :slight_smile:

Cordialement.

Pierre.

Bonjour ChPr

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.

Cordialement
jpbbricole

Bonjour

Pour LibreOffice éventuellement avec Linux
OpenDaqCalc fera peut être l'affaire (je connais mais n'utilise pas encore....)
voir ici : III. OpenDaqCalc

Merci "al1fch" pour cette application.

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 :thinking:

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.

Cordialement.

Pierre.

Quelques documentations pour libre office :

http://p.loussouarn.free.fr/arduino/arduino.html#OpenDaqCalc

Jamais testés, mis sous le coude pour le cas où.

J'ai suivi les informations de ces documentations et, dans le post précédent, j'ai dit que je l'avais testé:

Je l'ai essayé avec L'IDE 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.

Voilà pourquoi je propose une solution.

Cordialement.

Pierre.

Bonjour à toutes et à tous,

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 vous serais reconnaissant de bien vouloir me dire si cela fonctionne chez vous et si vous avez des remarques, améliorations à faire .

Cordialement.

Pierre.

Merci @ChPr

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 !

Merci beaucoup.

Pierre.

Rares sont les utilisateurs qui vont faire tourner un soft venant d'un inconnu pris sur un forum...

Je ne me savais pas si inconnu sur le site. J'y suis même référencé dans la liste des sites :

Cordialement.

Pierre.

Personnellement je n'installe pas d'exécutables téléchargés depuis un forum - déformation professionnelle sans doute.

Je dis juste ce que je constate en pratique, vous n'êtes pas le premier à avoir fait ce genre de demande et il y a peu de retour.

Même quand Arduino demande de béta tester un truc, les retours sont faibles

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.

Si vous avez un IDE Lazarus, mes sources sont libres.

Cordialement.

Pierre.

C’est en pascal ?

Ça fait une éternité que je n’ai plus touché à cela !

Non je n’ai pas cela sous la main - mais c’est cool de savoir que le code est dispo

C'est du pascal objet.

Pour ceux que cela intéresserait, voici le code source :
Interface_COM.zip (9.3 KB)
Cela se compile à l'aide de l'IDE Lazarus.

Cordialement.

Pierre.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.