Page 1 of 1

Crée une interface de visualisation sur ti nspire

Unread postPosted: 12 Dec 2012, 19:58
by bart143b
Bonsoir,
Je suis un élève de Terminal S et dans le cadre de mon PPE je doit faire un petit sismomètre a l'aide d'un capteur de vibration piézoélectrique et une carte OLIMEXino-328.
Pour l'instant j'arrive a mesurer une tension sur une entrée analogique de ma carte olimex. La valeur est ensuite transmit à l'ordinateur via la communication série à travers le port USB. A l'aide du programme processing qui récupère la donnée transmise, j'arrive a visualiser sous forme d'une courbe sur mon pc, les variations de tension que délivre mon capteur dans le temps. Mon sismomètre fonctionne parfaitement et j'aimerais maintenant me servir de ma ti npire pour visualiser les courbes. j'aimerais qu'on m'aide a porter ce programme sur Ti nspire ou crée un qui fait la même chose.
Voici le code utiliser avec le logiciel processing pour visualiser mes courbes

Code: Select all
/*
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
}

void draw() { //boucle de dessin principale
    //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 retour=maConnection.readStringUntil('\n'); // lit la donnée jusqu'à la fin de ligne
    if (retour != null) { //si le retour n'est pas vide
        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
}


Je possède une Ti nspire cx cas avec Ndless 3.1 installer on pourra donc réécrire le programme ci dessus en c et crée une application.
PS : je précise que je ne connait rien en programmation mais je me débrouille plutot bien :D

Re: Crée une interface de visualisation sur ti nspire

Unread postPosted: 12 Dec 2012, 20:50
by Levak
Salut,
Juste pour retirer la carte qui tenait ton chateau, tu viens de poster du code fait pour l'API de l'arduino, c'est d'ailleurs même pas du C (ex : import).

Arduino est codé part des events que le code utilisateur doit redéfinir pour pouvoir les catcher.

Quelle interface comptes-tu utiliser ? l'USB ou le port série ?

Personnellement je ne me suis jamais intéressé aux "entrées" sur Nspire. Selon moi, il n'existerait que l'USB comme entrée/sortie, malheureusement son support dans Ndless en est encore à ses balbutiements (à moins que je n'ai loupé quelque chose).

Re: Crée une interface de visualisation sur ti nspire

Unread postPosted: 12 Dec 2012, 23:04
by bart143b
Levak wrote:c'est d'ailleurs même pas du C (ex : import).

J'ai mal exprimé mon idée. Le code que j'ai mis n'a rien avoir avec du c comme tu la dit.
En fait je cherche a faire un programme en c qui fasse la même chose que le code que j ai mis.
Le langage utiliser pour faire le même programme qu’il soit écrit en LUA ou en C, n'est pas important tant que le programme soit utilisable sur la TI et qu'il m'affiche en forme de courbe les vibrations détecté par mon capteur. C'est ce que fait d’ailleurs le code que j ai mis.

Levak wrote:Quelle interface comptes-tu utiliser ? l'USB ou le port série ?


l'USB

Levak wrote:Selon moi, il n'existerait que l'USB comme entrée/sortie, malheureusement son support dans Ndless en est encore à ses balbutiements (à moins que je n'ai loupé quelque chose).

je suis tout a fait d’accord avec toi :D