• Aucun résultat trouvé

une carte Arduino ; deux fils.

Le logiciel Processing 1, logiciel libre de programmation graphique, sera nécessaire pour créer l'interface de visualisation. Vous pouvez parcourir le flossmanual 2 de ce logiciel. T outefois, vous serez guidé pour réaliser ce projet sans avoir besoin de l'étudier.

Montage électronique

Comme expliqué ci-dessus, le montage se résume à deux fils connectés à l'Arduino, qui vont servir à mesurer un autre montage soumis à une tension variable. Un des fils sera connecté au pin « GND », qui correspond au 0 V. Le second sera connecté au pin Analog in 0. Les

extrémités libres vont servir à faire les contacts avec le circuit à mésurer.

PREMIÈRE ÉTAPE

Copiez le programme suivant dans Arduino. /*

Ce programme consiste simplement à mesurer l'entrée analogique 0, et à transmettre le résultat via une communication série.

Il ressemble beaucoup au programme décrit dans la première étape du projet "la petite bête qui a peur".

*/

//déclaration des variables

//stockage du numéro de Pin où sera branché l'entrée de la mesure int PinDeM esure=0;

//conteneur pour stocker la mesure int tension=0;

// délai entre deux mesures int periodeDeM esure=20;

void setup(){ // Initialisation du programme // établir la connection série à 19200 baud Serial.begin(19200);

// définir le PinDeM esure comme une entrée pinM ode(PinDeM esure, INPUT);

}

void loop() { //boucle principale

tension = analogRead(PinDeM esure); // Lit la tension du pin DeM esure et stocke le résultat dans la variable tension

Serial.println(tension); // communique la valeur de la tension au port série delay(periodeDeM esure); //attendre jusqu'à la prochaine mesure

}

Après avoir compilé et téléchargé ce programme dans la carte Arduino, en ouvrant le moniteur sériel, on pourra voir apparaître les mesures successives défiler. Les valeurs varient entre 0 et 1023 quand la tension aux pointes de touches varie entre 0 et 5 V.

DEUXIÈME ÉTAPE

Après avoir téléchargé et installé Processing, copiez le programme suivant dans Processing. Vous ne devriez être pas trop dépaysé par l'interface, car Processing et Arduino sont des programmes frères.

/*

oscilloscope minimaliste avec un arduino récupère les valeurs via une liaison serie */

import processing.serial.*; // importation de la librairie de communication serie //variables

Serial maConnection; // Crée un objet de communication série int tension=0; // variable ou sera stockée la valeur de la tension //affichage

int fenetreTemps=12000; // temps pour parcourir la largeur de l'écran en millisecondes int x=0;

int y=0; void setup() {

size(650, 400); // taille de l'ecran

String NomDuPort = Serial.list()[0]; // récupère la première interface serie 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

retour = trim(retour); // enlever les espaces

tension = int(retour); // converti le texte en nombre entier }

//détermination du X actuel int oldx=x;

x=(millis()% fenetreTemps)*width/fenetreTemps; if (oldx>x) {

//reprise au debut de l'écran oldx=0;

background(255); //fond d'écran blanc }

//determination de la valeur de Y int oldy=y;

y=int(map(tension, 0, 1023, 380, 20)); // mise à l'échelle de la tension pour entrer dans l'écran

line(oldx, oldy, x, y); // dessine le trait }

Pour exécuter le programme, il suffit de cliquer sur le bouton « play ». Vérifiez auparavant que le moniteur sériel du programme Arduino est bien fermé, sans quoi la communication avec Processing ne voudra pas s'initialiser. En effet, la communication sérielle avec l'Arduino est exclusive, ce qui signifie qu'un seul programme à la fois peut ouvrir et communiquer sur un port sériel avec l'Arduino. En fermant le moniteur sériel, la connexion sérielle est fermée et ainsi libre pour une autre application. Il est possible d'utiliser plusieurs ports sériels différents (notamment avec les pin digitales de l'Arduino) pour établir plusieurs connexions avec différents logiciels.

Le programme, en s'exécutant affichera la fenêtre suivante :

La courbe affichée dépend du circuit que vous mesurez avec l'oscilloscope. Si vous n'avez rien de spécial à mesurer, vous pouvez essayer avec un potentiomètre, en prenant la mesure sur sa patte du milieu, et en reliant les deux autres bornes respectivement au GND et au 5 V.

POUR ALLER PLUS LOIN

Dans ce projet, vous avez compris comment transmettre une information de l'Arduino à un programme quelconque sur l'ordinateur. Vous avez réalisé un magnifique oscilloscope. On peut imaginer compliquer ce programme pour avoir :

Accès à plus d'entrées simultanément. Mémoriser les enregistrements de courbes. Faire des pauses.

Changer les échelles d'affichage. Etc.

Ces améliorations peuvent prendre du temps. En fait, grâce à la magie du logiciel libre, une âme charitable a déjà effectué tout ce travail, et l'a partagé. Il s'agit du projet arduinoscope :

http://code.google.com/p/arduinoscope/. Peut-être êtes vous déçu d'avoir travaillé pour rien ? En fait, cet exemple nous montre également qu'avant d'entamer un projet, il est toujours utile de se documenter sur internet pour voir les réalisations déjà existantes autour de la même problématique ; inutile de réinventer la roue !

1. http://processing.org^

21. PERROQUET

Dans ce projet nous allons réaliser un système qui permet d'enregistrer et répéter des séries d’impacts effectués sur un objet. Pour cela nous allons utiliser un capteur piézoélectrique qui permet de mesurer une vibration qui se propage dans un matériau. Pour information, ce capteur peut aussi servir de petite enceinte pour produire des sons. Pour afficher l'information enregistrée par le programme nous utiliserons une LED.

ÉLÉMENTS POUR NÉCESSAIRE

Documents relatifs