///////////////// Code Arduino /* Ce programme consiste simplement à mesurer l'entrée analogique 0, et à transmettre le résultat à l'ordinateur. */ ///////////////// déclaration des variables // variable pour stocker le numéro de la broche du capteur int PinDeMesure = 0; // variable pour stocker la valeur mesurée int tension = 0; ///////////////// initialisation void setup(){ // établir la connection série à 19200 bits par segondes Serial.begin(19200); // définir le PinDeMesure comme une entrée pinMode(PinDeMesure, INPUT); } ///////////////// boucle principale void loop() { tension = analogRead(PinDeMesure); // lecture de la tension de la broche et stocke le résultat dans la variable tension Serial.println( tension ); delay(50); } /* ///////////////// Code Prossecing Affichage des données captées par l'Arduino sous la forme d'un graphique en deux dimensions */ ///////////////// librairie import processing.serial.*; // importation de la librairie de communication série Serial maConnection; // création d'un objet de communication série ///////////////// variables int tension = 0; // variable ou sera stockée la valeur de la tension int fenetreTemps = 12000; // temps pour parcourir la largeur de l'écran en millisecondes int positionX = 0; // int positionY = 0; // ///////////////// initialisation void setup() { size(650, 400); // taille de l’écran String NomDuPort = Serial.list()[0]; // récupère la première interface série trouvée println("connection a " + NomDuPort); maConnection = new Serial(this, NomDuPort, 19200); // création de la connexion série background(255); // fond d'écran blanc smooth(); // lisser les dessins strokeWeight(2); // largeur de trait stroke(40); // couleur du trait gris } ///////////////// boucle principale de dessin void draw() { // rien ne s'y passe, tout est géré dans la fonction serialEvent } void serialEvent (Serial maConnection) { // si des données arrivent par la connexion série String donneesRecues = maConnection.readStringUntil('\n'); // lit la donnée jusqu'à la fin de ligne if (donneesRecues != null) { // si le donneesRecues n'est pas vide donneesRecues = trim(donneesRecues); // enlever les espaces tension = int(donneesRecues); // converti le texte en nombre entier } // détermination du X actuel int oldPositionX = positionX; positionX = (millis() % fenetreTemps) * width / fenetreTemps; if (oldPositionX > positionX) { // reprise au debut de l'écran oldPositionX = 0; background(255); //fond d'écran blanc } // calcul de la position Y int oldPositionY = positionY; positionY = int(map(tension, 0, 1023, height - 20, 20)); // mise à l'échelle de la tension pour entrer dans l'écran line(oldPositionX, oldPositionY, positionX, positionY); // dessine le trait }