Programme arduino + Processing

Bonjour, je suis actuellement en projet et j’aurais besoin d’un coup de pouce.
J’ai le programme arduino suivant qui permet de lire les valeurs d’un potentiomètre que j’ai converti en déplacement (ex : pour 1V sa correspond a tant de millimètre) ainsi que les valeurs d’un accéléromètre sur l’axe Y seulement(c’est celui qui m’intéresse).
Mon but est de représenter les valeurs de ces deux capteurs sur un graphique avec Processing. Sur le moniteur de série j’ai de bonne valeur que je voudrais mettre sous forme graphique donc j’ai essayé de faire un programme sous processing mais ça ne fonctione pas, et je ne suis pas trop à l’aise avec processing. Tous les programmes seront en fin de texte. Auriez vous d’autre logiciel lié avec Arduino me premettant de représenter ces valeurs sous forme graphique ? (Ma connexion entre Arduino et Bluetooth se fait par le port de série COM6).

Programme Arduino :

#include <Wire.h>
#include "MMA8452.h"
const int poten = 0; // le potentiomètre, branché sur la broche analogique 0
int valeurLue; //variable pour stocker la valeur lue après conversion
float P; //on convertit cette valeur en une tension
float A=0;
void setup()
{
  Serial.begin(9600);
  Serial.println("Exemplo de uso do acelerometro MMA8452");
  Wire.begin();  // Initialise I ² C communication
  initMMA8452(); // Tests et initialise le MMA8452
}

void loop()
{  
  int acelCont[3];  // Variable qui stocke les valeurs des lectures de 12 bits
  readAccelData(acelCont);  // Lecture de tous les axes du capteur (Seulement Y nous interesse)
  float acelG[3];  // Variable pour stocker les valeurs de l'accélération en g (9,8 m / s ²)
  
 // Calculer l'accélération et sépare la acelG de matrice
  for (int i = 0 ; i < 3 ; i++)
  {
    acelG[i] = (float) acelCont[i] / ((1<<12)/(2*GSCALE));  
    A=acelG[1];
}
  {
        //on convertit en nombre binaire la tension lue en sortie du potentiomètre
    valeurLue = analogRead(poten);

   //on traduit la valeur brute en tension (produit en croix)
    P = (valeurLue * 5.0 / 1024)*12;    
    
    //on affiche la tension calculée
    Serial.print("deplacement = ");
    Serial.print(P,2);
     //On l'envoie à Processing
    Serial.print("mm"); 
    Serial.println();
    
    
    Serial.println(); //on saute une ligne entre deux affichages
    delay(100); //délais d'attente pour  l'affichage 
  }
  // Imprimi os valores na Serial
  for (int i = 1 ; i < 2 ; i++)
  {
    //On l'envoie à Processing 
    Serial.print("accelerometre");
    Serial.print("=");
    Serial.print(A,4);
    Serial.println();
  }
  Serial.println();
  Serial.println();
  Serial.print("--------------------------------------------------");
  Serial.println();
  // Saut à la ligne

  delay(100);  // Delais pour la visibilité des valeurs.
}

Ce que j’obtient comme valeur dans le port de série :

Programme processing :

import processing.serial.*;
    
static final int WIDTH  = 1000;
static final int HEIGHT = 800;

Serial myPort;


int[] Acc = new int[WIDTH];
int[] Pot = new int[WIDTH];



float P;
float A;

void setup() {
  
  size(WIDTH, HEIGHT);
  
  noSmooth();
  
  P= 0;
  A=0;
  
  println(Serial.list()[1]);  //list of available serial ports
  String portName = Serial.list()[1]; //replace 0 with whatever port you want to use.
  myPort = new Serial(this, portName, 57600);
   myPort.bufferUntil('\n');
}

void draw() {
  
  // shift all data by one position
  for (int i=0; i<WIDTH-1; i++) {

    Acc[i] = Acc[i+1];
    Pot[i] = Pot[i+1];

 
    Acc[WIDTH-1] = int(A);
    Pot[WIDTH-1] = int(P);


  }
  
  // clear screen
  background(0);
  
  // draw graphs
  for (int i=0; i<WIDTH-1; i++) {

    stroke(0, 255, 0);
    line(i, Acc[i], i+1, Acc[i+1]);
    line(i, Pot[i], i+1, Pot[1+i]);

  }
}


void serialEvent(Serial myPort) {

  String line = myPort.readStringUntil('\n');
  
  if (line!=null) {     
    // split incoming line into tokens   
    String[] q = splitTokens(line);    
    if (q.length == 3) {        

      A = HEIGHT/2 - HEIGHT/2 * float(q[1]);
      P = HEIGHT/2 - HEIGHT/2 * float(q[1]);
   
    }               
  }
}

Si tu n'es pas attaché à Processing, alors c'est une opportunité d'essayer Python. Il y a des modules pour lire le port série (pyserial) et pour la représentation graphique (mathplotlib entre autre). De plus tu pourras faire des interfaces avec plus de souplesse que sur processing.