View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Outils > Processing

Processing : Fichiers : Enregistrer la position de la souris à intervalle régulier dans un fichier texte

Explication

  • Ce programme utilise un objet PrintWriter que l'on initialise avec un fichier existant ce qui va permettre d'ajouter les données au fichier sans l'effacer lors de la création comme le ferait l'instruction createWriter()
  • Un message est écrit dans le fichier à intervalle régulier, posant la base du datalogging avec stockage dans un fichier texte. Le format des données est ici "CSV like" ce qui permet de les utiliser immédiatement dans un tableur par simple copier-coller.

Ressources utiles

  • Aucune

Le programme


// Par X. HINAULT - Juin 2011
// www.mon-cub-elec.fr

PrintWriter output = null; // initialise un objet PrintWriter pour stocker le flux de donnée à écrire dans le fichier
//PrintWriter output;

String cheminAbsoluFichier="/home/hinault/Bureau/trans/positions.txt";
// le fichier doit exister - chemin entier obligatoire

long seconde0=0, comptSeconde=0; // variables des secondes

void setup() {
  // Create a new file in the sketch directory - fichier vide !
  //output = createWriter("positions.txt");

   output=ouvreFichier(cheminAbsoluFichier);   // ouvre le fichier existant dans un PrintWriter- le fichier doit exister - chemin entier obligatoire
   output.println("------------ Debut Nouvel enregistrement -------------"); // Ajoute la ligne au fichier
   output.println("------------ Format CSV  -------------"); // Ajoute la ligne au fichier
   output.println("secondes; valeur1; valeur2;"); // Ajoute la ligne au fichier
}

void draw() {

  if (second()!=seconde0) { // si une seconde écoulée

    seconde0=second(); // retient dernière seconde prise en compte

    comptSeconde=comptSeconde+1; //incrémente la variable de comptage seconde

    point(mouseX, mouseY); // trace un point dans la fenetre Graphique

    output.print(comptSeconde+";"); // Write the coordinate to the PrintWriter
    output.print(mouseX+";"); // Write the coordinate to the PrintWriter
    output.print(mouseY+";"); // Write the coordinate to the PrintWriter
    output.println(); // Ajoute saut de ligne

    output.flush(); // Writes the remaining data from PrintWriter to the file

  } // fin if

}

void keyPressed() {
  //output.flush(); // Writes the remaining data to the file
  output.close(); // Finishes the file
  exit(); // Stops the program
}


PrintWriter ouvreFichier( String cheminAbsoluFichier) {

  // ouvre le fichier existant dans un PrintWriter- le fichier doit exister - chemin entier obligatoire

  PrintWriter pw=null;

  try //obligé ici...
  {

   // ouvre le fichier existant - le fichier doit exister - chemin entier obligatoire
    pw = new PrintWriter(new BufferedWriter(new FileWriter(cheminAbsoluFichier, true))); // true means: "append"

   }
  catch (IOException e)
  {
    // Report problem or handle it
  }

  return (pw); // renvoie l'objet pw

   // adapté de la source suivante : http://processing.org/discourse/yabb2/YaBB.pl?num=1267767630

} // fin de ouvreFichier
 

Voir ici :