multiwii - Page 3
Discussion fermée
Page 3 sur 4 PremièrePremière 3 DernièreDernière
Affichage des résultats 61 à 90 sur 112

multiwii



  1. #61
    invite1d577638

    Re : multiwii


    ------

    Citation Envoyé par Khalil_ Voir le message
    Cela me gène que le 2 éme point a une coordonnées sur l'axe des abscisses 1 car elle devrais augmenté au cours tu temps ??
    Et tu le lit où ça ?

    EDIT : Grillé, et +1 pour les "batons"

    -----

  2. #62
    invite3329a62b

    Re : multiwii

    pour le 1er point j'ai compris mais pour le 2 ème point (1, x) je ne le comprends pas .

    Cela est due au faite que je n'ai pas encore compris quel est la droite qui est tracé .
    qu'elle est la lignes qui est tracé : est ce la largeur des barres du digramme à barre que j'obtiens

    EDIT : Grillé, et +1 pour les "batons"
    Je crois que j'ai compris les droites qui sont tracés sont verticales d'ou pourquoi (1, , 1 , )


    Oui , j'obtiens bien un diagramme à barre .
    Comment puis-je obtenir des courbes ?
    garder en mémoire tout les relevé du roll, et à chaque mise à jour, tu redessine toute la fenêtre en décalant
    .
    je vois pas vraiment comment réaliser cela sur java (processing)

  3. #63
    invite1d577638

    Re : multiwii

    Citation Envoyé par Khalil_ Voir le message
    pour le 1er point j'ai compris mais pour le 2 ème point (1, x) je ne le comprends pas .
    Sérieusement, tu vois ça ?

    Comment puis-je obtenir des courbes ?
    Tu enregistres les coordonnées du point précédent, et tu traces une ligne de coordonnées (point précédent)-(nouveau point)

    PS : Pas la peine de tout mettre en gras, on arrive à lire. Je te l'ai déjà expliqué avant que tu ne changes de nom...

  4. #64
    inviteda892854

    Re : multiwii

    Citation Envoyé par Khalil_ Voir le message
    pour le 1er point j'ai compris mais pour le 2 ème point (1, x) je ne le comprends pas .

    Cela est due au faite que je n'ai pas encore compris quel est la droite qui est tracé .
    qu'elle est la lignes qui est tracé : est ce la hauteur des barres du digramme à barre que j'obtiens
    Oui, ca ressemblera à un diagramme en barre, vu que la seule variation que tu va avoir, c'est en hauteur.

    pardon yoruk, je n'avais pas vu le lien que tu avais mis (il est très clair).


    Citation Envoyé par Khalil_ Voir le message
    Oui , j'obtiens bien un diagramme à barre .
    ????

    Je ne comprends pas tes premières phrase alors.
    Tu te demande ce que tu es censé obtenir, si c'est bien un diagramme en barre, et puis tu dis que tu obtient un diagramme en barre.
    Cela implique donc que tu réussi bien à récupérer des données, c'est un bon pas.



    Citation Envoyé par Khalil_ Voir le message
    Comment puis-je obtenir des courbes ?
    .
    je vois pas vraiment comment réaliser cela sur java (processing)
    Je ne vois pas non plus car je ne connait pas le langage, mais si tu veux VRAIMENT une courbe, voici une piste :

    Tu fais un tableau de "widht" case.



    A chaque fois que tu reçoit une valeur, tu fais :

    Décaler toutes les valeur du tableau à droite (tab[3] est copier dans tab[2], tab[4] est copier dans tab[3]).
    tableau[0] = nouvelle valeur

    Ensuite, il ne te reste plus qu'a utiliser le tableau pour afficher :

    Le numéro de la case, c'est "X", pour avoir le premier point de la ligne, c'est "tableau[indice]" et pour obtenir le deuxieme point, c'est "tableau[indice + 1]".

  5. #65
    invite3329a62b

    Re : multiwii

    J'ai (x1,y1,x2,y2) avec (x1,y1) et (x2,y2) 2 points permettant des tracés si je me trompe pas, les hauteurs des battons .


    line(1, (height/2), 1, (height/2)-0 - roll[i]/12) - line(1, (height/2), 1, (height/2)-0 - roll[i+1]/12) ??

  6. #66
    inviteda892854

    Re : multiwii

    Citation Envoyé par Khalil_ Voir le message
    J'ai (x1,y1,x2,y2) avec (x1,y1) et (x2,y2) 2 points permettant des tracés
    Oui, tracer une ligne.

    Citation Envoyé par Khalil_ Voir le message
    de tracés si je me trompe pas, les hauteurs des battons.
    Dans un certain sens, oui. La fonction trace une ligne, ligne qu'on peut interprété comme un bâton.

    Citation Envoyé par Khalil_ Voir le message
    line(1, (height/2), 1, (height/2)-0 - roll[i]/12) - line(1, (height/2), 1, (height/2)-0 - roll[i+1]/12) ??
    line est une fonction qui retourne un type "void".
    Si c'est comme en C, on ne peut appliquer aucune opération sur un type "void" ("void" AN -> "rien" FR).

    ecrire "line(...) - line(...)" revient a écrire, après exécution des fonctions, "void - void".
    Qu'est-ce que tu cherche à faire ? Une courbe ?

    Explique-nous avec des mots comment tu compte faire (l'algorithme) ?

    Le miens, je te l'ai déjà donné.

  7. #67
    invite3329a62b

    Re : multiwii

    Qu'est-ce que tu cherches à faire ? Une courbe ?
    oui , une courbe et non un diagramme bâton

    Je dois enregistrer à chaque fois mon point au cours du temps et tracer une ligne par la soustraction en fesant une soustraction entre mon mon nouveau point et mon point précédent .
    Mais après le langage C , je rencontre des difficultés à me l'approprier

  8. #68
    inviteda892854

    Re : multiwii

    Citation Envoyé par Khalil_ Voir le message
    oui , une courbe et non un diagramme bâton

    Je dois enregistrer à chaque fois mon point au cours du temps et tracer une ligne par la soustraction en fesant une soustraction entre mon mon nouveau point et mon point précédent .
    Je ne sais pas exactement ce que tu entends par "soustraire" (en réalité, tu as juste besoins d'utiliser deux point, pas besoins de soustraire ou faire une autre opération) mais ca ressemble à l'idée. tu enregistre tout les point et tu les utilises par pair pour faire des lignes.


    Citation Envoyé par Khalil_ Voir le message
    Mais après le langage C , je rencontre des difficultés à me l'approprier
    Le C, c'est le langage que je connais et avec lequel je fais mes supposition.
    J'ai regardé un peu "processing", et il semblerait que ce soit un langage à part (bien qu'il ressemble beaucoup au C).
    Je ne peux donc pas faire un code directement fonctionnel, et c'est pour cela que je t'invite à nous décrire ton algorithme (car un algorithme est indépendant d'un langage).

  9. #69
    invite3329a62b

    Re : multiwii

    Ok ,j"essayerais

    Sait tu as quoi sert le switch, le case et le break ??
    Lesn informations que je trouve sur les sites sont flous

  10. #70
    inviteda892854

    Re : multiwii

    A la condition que le switch-case de "processing" se comporte de la même façon que le C, je te recommande de lire ceci.

    L'explication se trouve vers la fin de la page.

  11. #71
    invite1d577638

    Re : multiwii

    Pour faire une courbe, je te l'ai déjà dit (mais c'est vrai que tu as des diffcultés à lire) qu'il te suffit simplement de conserver dans 2 variables les coordonnées du dernier point tracé et de tracer le suivant à partir de ce point. Après, si tu veux des courbes qui défilent sur l'écran, c'est un peu plus compliqué et il te faut effectivement un tableau.

    Après, il faut aussi choisir le pas en X qui correspond à une chose logique... Car là, avec un pixel de décalage à chaque fois suivant X, que tu traces une courbe ou des bâtons, le rendu visuel sera le même...

    Et allez, je suis sympa, je te donne le lien avec toute l'aide de Processing, dans laquelle il y a plein d'infos sur toutes les variables et fonctions : https://processing.org/reference/ .Le minimum à savoir !

  12. #72
    inviteda892854

    Re : multiwii

    Citation Envoyé par Yoruk Voir le message
    Après, il faut aussi choisir le pas en X qui correspond à une chose logique... Car là, avec un pixel de décalage à chaque fois suivant X, que tu traces une courbe ou des bâtons, le rendu visuel sera le même...
    Oui, c'est vrai, mais je suppose que seul des test pourront vraiment dire quel pas de X est le "meilleur".
    Si on part du principe que l'acquisition du roll se fait plusieurs fois par secondes, un pas de 1 sur X pourrait être cohérent (roll ne varie pas de 100 à -30 par exemple, mais de 100 à 102, 106, etc etc).
    Après, si l’acquisition ne se fait pas assez rapidement, on risque effectivement d'avoir juste un gros paté de ligne blanche lors de roll un peu trop rapide.

    A tester donc.

  13. #73
    invite3329a62b

    Re : multiwii

    Bonjours ,

    Voila j'obtiens un truc comme cela

    stroke(255,255,0);


    roll[0] = map(roll, 0 , 1 , height/4, height/8);
    for(int i = 1; i < roll.length; i++) {
    line(i, roll[i], i-1, roll[i-1]);

  14. #74
    inviteda892854

    Re : multiwii

    Mets toi à notre place, qu'est-ce que tu veux qu'on te dise ?

    On n'a pas d'image du résultat, on se demande si on a le code complet vu que la parenthèse du for n'est pas fermé, qu'on a pas la définition des variables, ...
    La en gros, on a juste une boucle qui parcours un tableau et qui fait des lignes selon les valeurs présentes dans le tableau, mais ces données, c'est n'importe quoi ...

  15. #75
    invite3329a62b

    Re : multiwii

    Je vais essayer de coder et je reviendrais vers vous .

    Oui , c'est vrai que j'ai oublié les variables .....etc .....

  16. #76
    invite3329a62b

    Re : multiwii

    Si quelqu'un pourrait m'aider se serait vraiment sympa

    Je suis vraiment à cours d'idée .
    Voila j'ai une partie que je doit rajouter à mon code ( il manque la classe String qui est dans mon code initial)
    mais je ne suis pas sur qu'elle marche ( et je doute vraiment que mon code coincidera avec mon code arduino)


    int rollValues[] = new int[3];
    int pitchValues[] = new int[3]


    float roll[] = new float[2];
    float pitch[] = new float[2];

    void setup() {

    // set the stage
    size(1000, 500);
    background(0);



    println(Serial.list());
    myPort = new Serial(this, Serial.list()[0], 9600);
    myPort.clear(); // clear the serial buffer:


    void draw(){

    stroke(255,0,0,180);
    line(-1, constrain(roll[1]/2, 0, 180) , 0 , constrain(roll[0]/2, 0, 180) )
    stroke(0,255,0,180);
    line(-1, constrain(pitch[1]/2, 0, 180) , 0 , constrain(pitch[0]/2, 0, 180) )


    roll[1] = roll[0];
    pitch[1] = pitch[0];

    for (int i = 0; i < 3; i++){

    roll[0] += rollValues[i];
    pitch[0] += pitchValues[i];

    roll[0] /= 3;
    pitch[0] /= 3;

  17. #77
    inviteda892854

    Re : multiwii

    Citation Envoyé par Khalil_ Voir le message
    Si quelqu'un pourrait m'aider se serait vraiment sympa
    Tu sais Khalil, dire ce genre de chose, ça revient à dire "les autres ne sont pas compétent et ne font que de la m*rd*".
    D'une part, c'est assez insultant pour ceux qui t'ont aidé (je n'aurait pas la prétention de parler à la place Yoruk, mais c'est mon ressentit), mais d'autre part cela n'engageras pas le reste à venir t'aider pour la simple raison que tu te permet de tacler les gens qui t'aide.

    Mais tu sais quoi ?
    Je suis moi aussi un gros noob dans un domaine (électronique) et j'ai eu la chance d'être aidé malgré le fait de mon manque flagrant de base.

    Alors je vais te laisser encore une chance.

    Voici donc mes conseils :

    "Les scies n'aiment pas les raies".
    Retient cette phrase, comme ca, la prochaine fois que tu comment une phrase par "Si", tu ne mettras pas le verbe avec "rrait" (Si quelqu'un pourrait m'aider se serait vraiment sympa).

    Ensuite, fait un code MINIMAL.
    Par exemple, concentre-toi uniquement sur le roll (laisse tomber le pitch).

    Commence par faire une fonction qui prends en argument un tableau et qui décale chaque valeur "à droite" (la case d'indice I prends la valeur de la case d'indice I - 1).
    Poste cette fonction.

  18. #78
    invite3329a62b

    Re : multiwii

    "les autres ne sont pas compétent et ne font que de la m*rd
    Non pas du tout . Merci pour votre aide à vous et à Yoruk . Je me suis fait mal comprendre .
    Je voulais dire que je voulais passer directement au but pour que vous m'indiqué ou cela cloche dans ce code

    Je me permettrait pas de dire que vous êtes incompétents car vous en savait probablement beaucoup plus que moi
    et certaines de vos explications m'ont vraiment permit de comprendre en peu de temps .


    Dans le domaine de l'éléctronique , je n'en connait pas mieux mais j'essaye de me demerder




    for(int i = 1; i < roll.length, i++) {
    line(i, roll[i], i-1, roll[i-1]);

    franchement là , je ne vois plus comment faire . C'est là ou je voulais en venir
    }

  19. #79
    inviteda892854

    Re : multiwii

    Commence par faire une fonction qui prends en argument un tableau et qui décale chaque valeur "à droite" (la case d'indice I prends la valeur de la case d'indice I - 1).
    Poste cette fonction.
    Penses-tu que la fonction que tu as posté corresponds à ce que je te demande ?

  20. #80
    invite3329a62b

    Re : multiwii

    Si vous me posez la question , c'est que non mais je ne vois vraiment pas comment faire ce que vous me dites .

  21. #81
    inviteda892854

    Re : multiwii

    Okay, poste le code de la boucle qui permet de parcourir un tableau de la première case a la dernière

    et ensuite poste le code de la boucle qui permet de parcourir un tableau de la dernière à la première case.

    utilise les balise code ou quote pour bien séparer le code de ce que tu écrit.

  22. #82
    invite3329a62b

    Re : multiwii

    parcourir un tableau de la première case a la dernière
    {
    int tableau[5], i = 0;

    tableau[0] = 10;
    tableau[1] = 23;
    tableau[2] = 505;
    tableau[3] = 8;
    tableau[4] = 66;

    for (i = 0 ; i < 5 ; i++)
    {
    print(tableau[i]);
    }




    parcourir un tableau de la dernière à la première case


    {
    int tableau[5], i = 5;

    tableau[0] = 10;
    tableau[1] = 23;
    tableau[2] = 505;
    tableau[3] = 8;
    tableau[4] = 66;

    for (i = 5 ; i > 0; i--)
    {
    print(tableau[i]);
    }

  23. #83
    inviteda892854

    Re : multiwii

    Attention, le deuxieme code est erroné.
    Si tu as 5 case, tu vas de 0 à 4.

    Donc

    for (i = 5 ; i > 0; i--)
    {
    print(tableau[i]);
    }
    Devient

    for (i = 4 ; i >= 0; i--)
    {
    print(tableau[i]);
    }
    Ensuite, il me semblait avoir vu une syntaxe de type "tableau.length".
    Est-ce que ce code fonctionne sous processing ?

    int i;

    for (i = tableau.length - 1; i >= 0; --i) {
    }
    Si oui, on sait maintenant partir de la fin d'un tableau.

    Le but maintenant, c'est de faire une/des opérations au sein de la boucle afin de décaler toutes les valeurs d'une case vers l'indice supérieur.
    On va donc partir de l'avant dernière case pour y mettre la valeur de la dernière case, et la boucle se chargera de faire la même opération dans tout le tableau.


    int i;

    for (i = tableau.length - 2; i >= 0; --i) {
    /* A TOI DE JOUER */
    }

  24. #84
    invite3329a62b

    Re : multiwii

    int i;

    for (i = tableau.length - 2; i >= 0; --i) {
    roll[i] =roll[i-1]; avec tableau=roll
    }


    ce sert à quoi de
    partir de l'avant dernière case pour y mettre la valeur de la dernière case
    (j'ai bien compris que c'est çà qui faut faire mais pourquoi?

  25. #85
    inviteda892854

    Re : multiwii

    Merci de mettre les code dans des balise code ou quote, ça m'est utile.

    Imagine que tu as ce tableau.

    0 1 2 3 4

    Le "but", c'est de décaler les valeur à droite afin de permettre l'insertion à gauche d'un nouveau nombre (au hasard, 5).
    Il faut donc dans un premier temps faire

    0 0 1 2 3

    (il y a un double zéro au début car la première case n'est pas modifié) et ensuite on insert

    5 0 1 2 3

    Il y a plusieurs manière de faire :

    soit on part de l'avant dernière case et on mets dans I + 1 la valeur de I
    soit on part de la dernière case et on mets la valeur de I - 1 dans I.

    Tu as fait un mixte des deux, ce n'est donc pas bon.
    Excuse-moi pour ne pas avoir été plus clair avant.

    Propose-moi donc un code (entre balise code ou quote).

  26. #86
    invite3329a62b

    Re : multiwii

    stroke( , , );

    for (int i = roll.length-1; i > 0; i--) {
    roll[i] = roll[i-1];
    }

    for(int i = 1; i < roll.length; i++) {
    line(i, roll[i], i-1, roll[i-1]);
    }

    je comprends à peux près ce que tu veux que je fasse mais je ne comprend pas à quoi sa sert
    Pourquoi parcourir le tableau dans un sens puis dans un autre

  27. #87
    invite3329a62b

    Re : multiwii

    au début , je dois avoir un truc comme ça
    float[] roll;

    roll = new float[width];

    float[] roll; indique quoi ?? toute les valeurs du tableau roll pouvant être décimales
    pour le new float[width] je ne coprends pas . cela indique un tableau de taille nouvelle??

  28. #88
    invite3329a62b

    Re : multiwii

    Non , malheureusement cela ne marche pas

  29. #89
    inviteda892854

    Re : multiwii

    Citation Envoyé par Khalil_ Voir le message
    stroke( , , );




    je comprends à peux près ce que tu veux que je fasse mais je ne comprend pas à quoi sa sert
    Pourquoi parcourir le tableau dans un sens puis dans un autre
    Non, on ne parcours pas le tableau dans les deux sens pour décaler, quand ai-je dit cela ?

    Tu me dis ne même pas savoir comment faire pour décaler les valeur d'un tableau à l'indice supérieur.
    Donc, je regarde ton code, je vois que tu sais faire une boucle pour parcourir un tableau, je te demande donc de refaire cela (histoire de voir si tu comprends un minimum) et ensuite, je te demande de faire cette boucle dans le sens inverse (si tu as compris, tu devrais savoir le faire).

    L'algo final, je te l'ai expliqué (décaler tableau -> insérer nouvelle valeur en début de tableau -> effacer écran -> redessiner toute les lignes qui compose la courbe).

    Tes deux boucles, de ce que je peux imager, sont bonnes.
    Hormis le fait que tu n'effaces pas l’écran (je ne sais pas si tu dois le faire, comment le faire), tu devrais avoir un résultat.

    Citation Envoyé par Khalil_ Voir le message
    au début , je dois avoir un truc comme ça
    Si c'est un type de base (je ne sais pas si les structure existe en processing), peu importe le type (int / float) du tableau, on décale les valeurs.


    Citation Envoyé par Khalil_ Voir le message
    float[] roll; indique quoi ?? toute les valeurs du tableau roll pouvant être décimales
    pour le new float[width] je ne coprends pas . cela indique un tableau de taille nouvelle??
    Je ne peux pas répondre !
    Je ne connais pas ce langage, c'est à toi de regarder la doc, de la lire, de la comprendre et de la digérer !

    Citation Envoyé par Khalil_ Voir le message
    Non , malheureusement cela ne marche pas
    poste le code complet, mais tu devrait avoir des résultat, même aberrant.
    Quand auront-nous ENFIN une image qui illustre le résultat du code actuel.
    MET TOI A NOTRE PLACE, comment veux-tu que l'on t'aide ?

  30. #90
    invite3329a62b

    Re : multiwii

    Voici le code que j'ai . Il y a des erreurs car aucune fenêtre ne souvre
    l'erreur que j'ai expected EOF, found 'if'



    import processing.serial.*;

    Serial myPort; // The serial port
    int xPos = 1; // horizontal position of the graph
    int j = 0;

    int counter = 0;


    float[] roll;

    roll = new float[width]

    void setup () {
    // set the window size:
    size(1000, 500);


    println(Serial.list());

    myPort = new Serial(this, Serial.list()[0], 9600);

    myPort.bufferUntil('\n');

    background(0);
    }
    void draw () {

    stroke(255,255,0);
    for (int i = roll.length-1; i > 0; i--) {
    roll[i] = roll[i-1];
    }

    line(i, roll[i], i-1, roll[i-1]);
    }



    if (xPos >= width) {
    xPos = 0;
    background(0);
    } else {

    xPos++;
    }

    }


    void serialEvent (Serial myPort) {


    String inString1 = myPort.readStringUntil('\n');

    if (inString1 != null) {
    //trim off any whitespace:
    inString1 = trim(inString1);
    // convert to an int and map to the screen height:
    float inByte = float(inString1);
    inByte = map(inByte, 0, 1023, 0, height/2);

    switch(counter){
    case 0:
    roll = inByte;
    counter++;
    break;

    }

    }

    }

Page 3 sur 4 PremièrePremière 3 DernièreDernière
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...