multiwii
Discussion fermée
Page 1 sur 4 12 3 DernièreDernière
Affichage des résultats 1 à 30 sur 112

multiwii



  1. #1
    invite3329a62b

    multiwii


    ------

    bonjours
    j'utilise multiwii avec une manette de wii nunchuck et je ne vois pas ou connecter les quatres fils de la nunchuk
    je sais que pour les 2 fils des données , je les met sur les broches A4 et A5
    et le fil GND sur la broche GND de la arduino

    mais pour le fils 3.3v je ne vois pas . J'ai essayé le 3.3v de la carte arduino mais je n'obtiens rien
    J'obtiens quelque chose ( un signal périodique) quand j'utilise la broche 8 de la arduino mais lorsque je bouge la manette , le signal ne varie pas

    toute aide sera utile
    merci

    PS ; si vous avez une idée ,de comment obtenir un oscilloscope à partir de l'interface arduino se serait sympa

    -----

  2. #2

  3. #3
    invite3329a62b

    Re : multiwii

    Non malheureusement , Nous ne fessons pas la même chose et de plus cette personne n'utilise pas multiwii .
    Contrairement à elle , j'essaye de réaliser une centrale inertielle pour un drone en utilisant les manettes de wii: wiimote et nunchuk

    Si quelqu'un aurait une idée , je serais à votre disposition .
    Merci

  4. #4
    invite1d577638

    Re : multiwii

    Et bien fait comme lui, étudie les datasheets des composants de ta manette, étudie les signaux de sortie, les protocoles et tu devrais comprendre comment fonctionne lesdits capteurs...

    PS ; si vous avez une idée ,de comment obtenir un oscilloscope à partir de l'interface arduino se serait sympa
    C'est vraiment marrant, l'autre intervenant à exactement la même problématique. C'est fou non ? Et on a été nombreux à tenter de lui venir en aide ! Lis les nombreux posts, je lui avait tout expliqué (en utilisant Processing par exemple...). Ne fait pas comme lui, pose des questions précises si tu veux vraiment avancer...

  5. A voir en vidéo sur Futura
  6. #5
    invite274e2619

    Re : multiwii

    Salut ,

    Si tu veux avoir les informations que l'on m'a donné sur Processing
    je croix que c'est dans le post filtre kalman et courbe

  7. #6
    invite1d577638

    Re : multiwii

    Bah relit tout les messages qu'on a échangés...

  8. #7
    invite3329a62b

    Re : multiwii

    avez-vous obtenu quelque chose d'exploitable sur Processing?

  9. #8
    invite274e2619

    Re : multiwii

    En faite , j'ai eu du mal a coder donc ce que j'ai fait ,c'est prendre les valeurs recueilli sur le moniteur série d'arduino et d'utiliser un tableur .
    Mais cela est compliqué et pas représentatif car on ne voit pas les variations au cours du temps

    J'ai seulement utilisé processing avec un code open-source .


    Tu veux utilisé Multiwii ??
    Pourquoi

  10. #9
    invite3329a62b

    Re : multiwii

    J'ai voulu utilisé multiWii car j'utilise un quadricoptère (fait maison) .

    Bon je vais essayé de relire tes postes, comme me la indiqué Yoruk


    Merci

  11. #10
    invite3329a62b

    Re : multiwii

    voila j'utilise un code sur processing et j'obtiens des courbes qui ne varient pas au cours du temps LORSQUE JE BOUGE MA MANETTE
    je ne vois pas pourquoi . J'ai remplacé le Serial.list()[0] par "COM3" mais sa ne change pas ??


    //


    import processing.serial.*;

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

    int counter = 0;

    float roll;
    float pitch;
    float yaw;

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

    // List all the available serial ports
    println(Serial.list());
    // I know that the first port in the serial list on my mac
    // is always my Arduino, so I open Serial.list()[0].
    // Open whatever port is the one you're using.
    myPort = new Serial(this, "COM3", 9600);
    // don't generate a serialEvent() unless you get a newline character:
    myPort.bufferUntil('\n');
    // set inital background:
    background(0);
    }
    void draw () {

    stroke(255,255,0);
    line(xPos, (height/2), xPos, (height/2)-0 - roll/12);

    stroke(0,255,255);
    line(xPos, (height/2)-150, xPos, (height/2)-150 - pitch/12);

    stroke(255,0,255);
    line(xPos, (height/2)+150, xPos, (height/2)+150 - yaw/12);

    if (xPos >= width) {
    xPos = 0;
    background(0);
    } else {
    // increment the horizontal position:
    xPos++;
    }

    }


    void serialEvent (Serial myPort) {

    // get the ASCII string:
    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;
    case 1:
    pitch = inByte;
    counter++;
    break;
    case 2:
    yaw = inByte;
    counter = 0;
    break;
    }

    }
    // at the edge of the screen, go back to the beginning:
    }

  12. #11
    invite1d577638

    Re : multiwii

    Comme expliqué une bonne dizaine de fois sur les innombrables autres sujets, il faut, pour tracer quelque chose, que la carte arduino ENVOIE effectivement des données. Vu que le code arduino est aux abonnés absents, encore une fois il est impossible de conclure. Il est toutefois facile de vérifier que la arduino envoie des données, en utilisant un terminal logiciel quelconque.

    Vu que je n'ai pas envie de repartir sur 10 pages d'échanges inutiles, je sens que je vais m'arrêter là.

  13. #12
    invite3329a62b

    Re : multiwii

    Bonjours ,

    Voici mon code arduino et merci pour ta réponse .

    #include <Wire.h>
    #include <Servo.h>

    Servo myservo;
    Servo myservo2;

    byte data[6];
    int val;
    int yaw, pitch, roll;
    int yaw0, pitch0, roll0;
    int deltapitch = 0;
    int deltayaw = 0;



    void wmpOn()
    {
    Wire.beginTransmission(0x53);
    Wire.write(0xfe);
    Wire.write(0x04);
    Wire.endTransmission(); }

    void wmpSendZero()
    {
    Wire.beginTransmission(0x52);
    Wire.write(0x00);
    Wire.endTransmission();
    }

    void calibrateZeroes()
    {
    for (int i=0;i<10;i++)
    {
    wmpSendZero();
    Wire.requestFrom(0x52,6);
    for (int i=0;i<6;i++)
    {
    data[i]=Wire.read();
    }
    yaw0+=(((data[3]>>2)<<8)+data[0])/10;
    roll0+=(((data[4]>>2)<<8)+data[1])/10;
    pitch0+=(((data[5]>>2)<<8)+data[2])/10;
    }

    }

    void receiveData()
    {
    wmpSendZero();
    Wire.requestFrom(0x52,6);
    for (int i=0;i<6;i++)
    {
    data[i]=Wire.read();
    }
    yaw=(((data[3]>>2)<<8)+data[0]-yaw0)-2;
    roll=(((data[4]>>2)<<8)+data[1]-roll0);
    pitch=(((data[5]>>2)<<8)+data[2]-pitch0)-8;

    deltapitch = deltapitch + pitch;
    deltayaw = deltayaw + yaw;

    }

    void setup()
    {
    myservo.attach(9);
    myservo2.attach(10);
    Serial.begin(9600);
    Serial.println("WM+ tester");
    Wire.begin();
    wmpOn(); //turn WM+ on
    calibrateZeroes(); //calibrate zeroes
    delay(1000);
    }

    void loop()
    {

    Serial.print("yaw:");
    Serial.print(yaw);
    Serial.print(" pitch:");
    Serial.print(pitch);
    Serial.print(" roll:");
    Serial.print(roll);
    Serial.print(" delta pitch:");
    Serial.print(deltapitch);
    Serial.print(" delta yaw:");
    Serial.println(deltayaw);

    myservo.write(pitch);
    myservo2.write(yaw);
    delay(100);
    }

  14. #13
    invite1d577638

    Re : multiwii

    Ok, va maintenant (avec processing fermé) dans la fenêtre série de l'éditeur arduino, et regarde si les valeurs qui défilent changent. (Fait un screenshot)

  15. #14
    invite3329a62b

    Re : multiwii

    J'ai du louper une subtilité car J'ai lu tout ce que vous avez écrit et suivi un tutoriel !

  16. #15
    invite3329a62b

    Re : multiwii

    J'ai déjà observé le moniteur série au cours de l'utilisation de processing et les valeurs variaient bien !

  17. #16
    invite1d577638

    Re : multiwii

    Réponds juste à ma question SVP... Et pour le cas actuel ! (Pas sur de précédents essais)

    J'ai déjà observé le moniteur série au cours de l'utilisation de processing
    Cette phrase ne veut rien dire. Tu ne peux pas faire les 2 en même temps. Le port série n'est "lisible" que par un seul soft à la fois (moniteur série arduino OU processing.)

  18. #17
    invite3329a62b

    Re : multiwii

    Je voulais dire :

    Je téléverse le code arduino sur la carte et ouvre le moniteur série et observe les valeurs qui défilent (elles varient).
    Puis je ferme le moniteur série et ouvre Processing .
    Je lance et là des courbes apparaissent mais ne varient pas au cours du temps ?

    Le moniteur série et Processing ne peuvent pas être lancé en même temps .( je l'ai remarqué)

  19. #18
    invite1d577638

    Re : multiwii

    Screenshot svp du moniteur série arduino ?

    Le problème semble alors venir du code Processing.

  20. #19
    invite3329a62b

    Re : multiwii

    Le problème semble alors venir du code Processing.
    J'ai utilisé 3 codes dont un open-source (sur le site arduino : le code cube pour nunchuck )et il ne marche pas car j'obtiens la fenètre avec un cube et celui-ci ne bouge pas lorsque je bouge la manette ??

    Nom : process pain.jpg
Affichages : 76
Taille : 47,5 Ko


    pour un des codes , j'obtiens cela

    java.net.ConnectException: Connection refused: connect

  21. #20
    invite3329a62b

    Re : multiwii

    Le problème semble venir de la réception des données de la carte arduino par Processing .

  22. #21
    invite1d577638

    Re : multiwii

    Citation Envoyé par Yoruk Voir le message
    Screenshot svp du moniteur série arduino ?
    Je met trop de mots dans mes phrases ?

    PS : mélanger des codes pris au hasard sur le net c'est faire preuve de bêtise... Il faut que le code arduino envoie des données dans un format compréhensible par le code Processing. Mélanger les torchons et les serviettes (deux codes différents sans aucun rapport) ne sert à rien.

    Citation Envoyé par Yoruk
    Le problème semble alors venir du code Processing.
    Citation Envoyé par Khalil_
    Le problème semble venir de la réception des données de la carte arduino par Processing .
    Au moins là tu as compris... C'est le code Processing qui semble buter sur l'interprétation des données entrantes.

  23. #22
    invite3329a62b

    Re : multiwii

    dans un format compréhensible par le code Processing
    Que me recommande tu de faire ?

  24. #23
    invite1d577638

    Re : multiwii

    1-prendre un couple code arduino/processing qui semble faire exactement ce que tu veux (tracer des courbes, et pas jouer avec un cube).
    2-tester l'ensemble, vérifier sur le moniteur série de la arduino que cette dernière envoie des infos cohérentes (qui varient)
    3-tester le code processing, et s'il ne marche pas, analyser comment il fonctionne, comment il récupère les données, et surtout comment il les sépare afin de tracer les différentes courbes. Au besoin, lire les infos sans doute présentes à l'endroit où tu as récupéré les codes. RTFM comme on dit vulgairement.

    A ne pas faire : prendre un autre code sur le net pour en remplacer un des 2 au pif, faire des copier-coller bêtes, ne pas utiliser son petit cerveau.

    EDIT : Euhhh... Il me semble tout de même que le screenshot du moniteur montre des valeurs... constantes.... ?

  25. #24
    invite3329a62b

    Re : multiwii

    Bonjours,

    J'ai réalisé ce que vous m'avez dit mais malheureusement je n'obtiens rien (des courbes qui ne varient pas ) .
    Si quelqu'un aurait une idée d'ou cela cloche .

    Merci , je suis encore là

  26. #25
    invite1d577638

    Re : multiwii

    Citation Envoyé par Khalil_ Voir le message
    J'ai réalisé ce que vous m'avez dit mais malheureusement je n'obtiens rien (des courbes qui ne varient pas ) .
    Évidemment, dans le screenshot que tu as envoyé, les valeurs étaient toutes constantes ! C'est donc du coté arduino qu'il faut chercher. Vérifier le montage, les alims, les branchements... bref, tout.

    Et vu qu'on a rien...

  27. #26
    invite3329a62b

    Re : multiwii

    les valeurs étaient toutes constantes
    non , cela était une erreur de ma part .J'ai utilisé une nuchuck wii alors qu'il fallait utiliser une motion plus wii car le code est celui d'une motion plus
    J'ai refais le moniteur série et les valeurs varient .C'est le code processing ou il y a un souci !

    yaw:-2 pitch:-8 roll:-3 delta pitch:-784 delta yaw:657
    yaw:9 pitch:-1 roll:-10 delta pitch:-785 delta yaw:666
    yaw:-6 pitch:-11 roll:-13 delta pitch:-796 delta yaw:660
    yaw:-2 pitch:-4 roll:-2 delta pitch:-800 delta yaw:658
    yaw:1 pitch:-1 roll:-8 delta pitch:-801 delta yaw:659
    yaw:4 pitch:-5 roll:-9 delta pitch:-806 delta yaw:663
    yaw:1 pitch:-5 roll:-3 delta pitch:-811 delta yaw:664
    yaw:5 pitch:3 roll:-14 delta pitch:-808 delta yaw:669
    yaw:5 pitch:-6 roll:-9 delta pitch:-814 delta yaw:674
    yaw:-8 pitch:-8 roll:-7 delta pitch:-822 delta yaw:666
    yaw:12 pitch:5 roll:-9 delta pitch:-817 delta yaw:678
    yaw:2 pitch:-5 roll:11 delta pitch:-822 delta yaw:680
    yaw:20 pitch:-6 roll:-3 delta pitch:-828 delta yaw:700
    yaw:4 pitch:2 roll:-7 delta pitch:-826 delta yaw:704
    yaw:1 pitch:-7 roll:-2 delta pitch:-833 delta yaw:705
    yaw:9 pitch:-10 roll:-16 delta pitch:-843 delta yaw:714

    car si les valeurs ne variaient pas ce serait logique d'obtenir sur processing des courbes qui ne varient pas
    mais dans ce cas les valeurs varient mais sur processing , les courbes non.

  28. #27
    invite1d577638

    Re : multiwii

    Donc, tu postes les deux codes, et le lien d'où tu as tout trouvé.

  29. #28
    invite274e2619

    Re : multiwii

    salut ta pas encore trouvé

    Il faut télécharger Processing à nouveaux

    ce n'est probablement pas ton code qui ne marche pas mais la liaison entre arduino et processing

  30. #29
    invite3329a62b

    Re : multiwii

    comme vous l'avez dit mon souci c'est
    Processing qui semble buter sur l'interprétation des données entrantes.
    donc réaliser le code depuis le début ne résoudra pas mon problème car les donnés d'arduino ne sont probablement pas reçu par processing d'ou pouruoi je n'obtiens des courbes constantes .

    j'ai remplacé

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

    par

    myPort = new Serial(this, "COM3", 9600);


    mais cela ne fonctionne pas
    Je suis entrains de voir des tutoriels sur processing avec arduino

    Je reviendrais probablement vers vous pour vous faire part de mes évolutions

    Merci de votre aide

  31. #30
    invite1d577638

    Re : multiwii

    Donc, tu postes les deux codes, et le lien d'où tu as tout trouvé.
    C'est agréable d'être lu...

Page 1 sur 4 12 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...