Partage
  • Partager sur Facebook
  • Partager sur Twitter

controller un robot avec un joystick

Joystick -> PC -> arduino -> robot

    14 mai 2014 à 18:00:02

    Bonjour,

    je travaille actuellement sur un robot capable de se déplacer grâce à un joystick, le joystick sera branché sur un Pc et enverra les informations par bluetooth au module arduino.

    nous avons déjà tout le matériel.
    joystick axes, boutons, ardu ino mega, shield et carte bluetooth Xbee , Pc sous Windows 7
    j'ai trouvé une multitude de tutoriaux sur internet qui explique comment interagir avec arduino a l'aide de bouton ou d'une manette, mais seulement si ceux-ci sont branchés directement à l'arduino la grosse différence ici c'est que notre joystick et branché au Pc par USB et que le Pc envoi les informations par bluetooth (ou par câble j'ai cru comprendre que le procédé était le même)à la carte arduino
    j'ai trouvé un programme sur le net qui explique la liaison bluetooth et si j'ai bien compris; Toutes les informations envoyées par le Pc seront stocké dans une seule variable ?

    mon collègue travaille actuellement sur l'interface qui permettra de piloter le robot, mais j'aimerai pouvoir tester mon programme avant qu'il finisse, et je ne comprends pas comment envoyer les informations du joystick à l'arduino en passant par le Pc, par bluetooth ou par câble , pouvez vous m'aider svp
    • Partager sur Facebook
    • Partager sur Twitter
      15 mai 2014 à 8:11:03

      carte bluetooth Xbee

      Non.

      Et sinon il te reste combien de temps pour tout faire ?

      • Partager sur Facebook
      • Partager sur Twitter

      Retrouvez moi sur mon blog et ma chaine Youtube !

        15 mai 2014 à 14:30:52

        2 mois , pourtant la personne qui travaillait sur le robot avant nous pouvait contrôler le robot avec son pc en passant par labview .

        • Partager sur Facebook
        • Partager sur Twitter
          15 mai 2014 à 14:45:25

          Gaets Brd a écrit:

          2 mois , pourtant la personne qui travaillait sur le robot avant nous pouvait contrôler le robot avec son pc en passant par labview .

          J'ai pas dit que c'etait pas possible, j'ai juste insinue que tu as pas encore passe assez de temps sur ton sujet vu que tu te plantes dans les termes...

          Apres le reste de ton message est confus et comme on a aucune references de composant ni rien ca facilite pas la tache pour faire le tri.

          • Partager sur Facebook
          • Partager sur Twitter

          Retrouvez moi sur mon blog et ma chaine Youtube !

            15 mai 2014 à 15:15:46

            difficile de savoir que tu veux insinuer a travers un "non" .

            mais je veux bien l’admettre arduino c'est pas du tout  mon domaine  donc il est fort probable que je mélange tout , le sujet  nous a etait plus ou moins imposé.

            oublions le Bluetooth , admettons juste que j'ai donc une manette branché sur mon pc en usb , et arduino branché aussi a mon pc par usb

            exemple, je veux allumer une led en pressant  un bouton de la manette , comment puis-je faire ?

            je veux juste comprendre comment transmettre les informations a arduino , sous quel forme il va les recevoir ? comment va t il les stocker, et comment va t il les lires ? 

            • Partager sur Facebook
            • Partager sur Twitter
              15 mai 2014 à 16:17:30

              je veux juste comprendre comment transmettre les informations a arduino , sous quel forme il va les recevoir ? comment va t il les stocker, et comment va t il les lires ?

              En lisant des tutos ! :)

              http://eskimon.fr/category/arduino/partie-3

              • Partager sur Facebook
              • Partager sur Twitter

              Retrouvez moi sur mon blog et ma chaine Youtube !

                15 mai 2014 à 21:36:28

                Salut,

                Pour commencer je te dirai que ta deux problemes :

                Communiquer entre un arduino et un pc avec un module xbee. Ca c'est pas infaisable car les modules xbee sont pas tres dur a utiliser et y'a beaucoup de tutoriel sur internet comme la souligner Eskimon ;)

                ton deuxième problème c'est d'utiliser un joystick pour ensuite envoyer les valeurs a l'arduino. Ce problème ne pressente pas de difficultés particulière si tu connais un peu la programmation en langage c, tu peux utiliser la SDL (tu trouveras une explication dans le tuto sur le langage c de se site) pour traiter facilement les informations d'un joystick.

                Si tu veux mener a bien ton projet et avoir une bonne note je te conseil de choisir une des deux problématique et d'oublier l'autre pour l'instant. Si au moins une des deux fonctions marche ton prof te mettra pas une bache, alors que)e si rien ne marche il pourra pas te mettre une bonne note... Donc dis nous la quelle tu choisis et on t'aidera en conséquences sachant que faire marche les module xbee entre ton ordinateur et un arduino je pense que ce sera plus impressionnant pour ton prof que de faire marcher un joystick...

                • Partager sur Facebook
                • Partager sur Twitter
                Electrical engineering Ph.D student - ETH Zurich
                  16 mai 2014 à 21:27:55

                  Ton problème pourrait se résoudre beaucoup plus simplement que tu ne le penses si tu t'efforcais de réfléchir aux outils que tu possèdes et crois moi tu en as. Je ne sais pas en quel classe tu es mais tu as du certainement faire un peu d'algorithme(variable, fonction, boucle while.. for etc.... et structure conditionnelle if..else if...)

                  On parle beaucoup plus de langage que d'algorithme alors qu'on devrais y réflechir dans l'autre sens.

                  Personnellement j'aurais vu une programmation en python pour ton problème pourquoi ? :

                  1) Programmer une simple connexion série (oui le joystick devrait être connecté en l'usb donc protocole série) en C est clairement plus compliqué qu'un "hello world"

                  2) programmer une simple connexion série en python = 2 lignes de code.....

                  import Serial  // chargement de la bibilothèque python serie
                  joy = serial.Serial('portCom', vitesseDeCommunication, [timeout:xx])  // création d'un objet joy lié au port serie connecté à portCom et qui communique à la vitesse = vitesseDeCommunication
                   

                  3) Communiquer avec un arduino sous python à partir d'un pc peut être aussi simple que de le faire sous processing avec l'atout graphique en moins(enfin si mais sous processing une appli graphique pour arduino est plus simple à réaliser quand on débute)

                  Après il te reste à te poser les bonnes questions ???? qu'envoie mon joystick au pc quand je penche à droite ou a gauche ou que j'appuye sur un bouton et comment je vais pouvoir m'en servir...

                  bon courage



                  • Partager sur Facebook
                  • Partager sur Twitter
                  Knowledge is free !!!
                    23 mai 2014 à 15:36:23

                    merci pour vos réponses ,

                    je veux bien un peu d'aide pour le module Xbee , pour faire la connexion entre le pc et arduino je pense aussi que c'est plus sage de commencer par la

                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 mai 2014 à 22:21:27

                      Aucun soucis si tu as déjà prévu des montages à tester tu peux nous les montrer.

                      N'oublies pas que généralement le xbee s'alimente en 3.3V et non 5v ça t’éviteras d'en griller un avant de l'avoir utiliser.

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Knowledge is free !!!
                        30 mai 2014 à 12:00:19

                        je ne peux pas vraiment vous montrer une partie du programme parce qu'ils sont plus ou moins dependant des autres donc, juste une partie du programme n'aurait aucun sens.


                        Dernièrement mon collègue qui travaille sur l'interface, a réussi à se connecter au module, à recevoir et a envoyé des informations à l'arduino ( il a allumé une led) bref, maintenant j'aimerai pouvoir récupérer les états des boutons du joystick et surtout pour les potentiomètres qui détermineront la vitesse des moteurs . ( le joystick fonctionne aussi, il peut lire l'état des boutons sur son interface)

                        Il souhaite m'envoyer ces informations sous forme binaire, est-ce que je peux faire un programme sous cette forme, ou la variable "c" correspond à un bouton, et non pas avec des ifs mais avec un switch ?


                        mais pour reprendre les thermes du tuto eskimon, il n'y a qu'une seule "salle d'attente" donc je peux stocker les données que dans une seule variable ?

                        void setup()
                        {
                          pinMode(7, OUTPUT);    
                          Serial.begin(9600); 
                        }
                         
                        void loop()
                        {
                          
                          
                           while (Serial.available() == 0); // wait for character to arrive
                           char c = Serial.read();
                           if(c =='1') {
                             digitalWrite(7, HIGH);   // set the LED on
                           }
                           if(c == '0'){
                             digitalWrite(7, LOW);  // set the LED off
                           }
                           delay(500);
                           
                        
                        }



                        • Partager sur Facebook
                        • Partager sur Twitter
                          30 mai 2014 à 12:06:35

                          C'est pas parce qu'il n'y a qu'une seule file que tu n'as pas le droit d'avoir plusieurs personnes dans la file... Du coup tu peux avoir plusieurs caracteres/commandes/variables dans une seule chaine et les traiter les uns a la suite des autres.

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Retrouvez moi sur mon blog et ma chaine Youtube !

                            3 juin 2014 à 13:19:59

                            rien a voir avec le titre mais j'ai un sérieux problème , pour gerer la vitesse de mes moteurs j utilise analogWrite et pour une raison totalement inconnu , je suis obligé de mettre la vitesse entre 200 et 255 sinon le moteur ne tourne pas  ,

                            je suis sur arduino mega

                            Serial.begin (9600);
                            }
                            
                            void loop() {
                             
                              int etat = digitalRead ( IN_SZ1_HOME); // codeur absolu
                              int etat1 = digitalRead (IN_SZ2_HOME );
                              int etat2 = digitalRead ( IN_SZ3_HOME);
                              
                              
                              if (etat != HIGH && front != 1 ) {
                                digitalWrite (orie_mot_en,HIGH ); // alim du shield
                                digitalWrite (orie_mot1_in1, HIGH); 
                                digitalWrite (orie_mot1_in2, LOW);
                                analogWrite (orie_mot1_speed, 250);
                               
                                
                            }
                            else {  
                            digitalWrite (orie_mot1_in1,LOW );
                            digitalWrite (orie_mot1_in2,LOW );
                             front =1;


                             

                            • Partager sur Facebook
                            • Partager sur Twitter
                              3 juin 2014 à 13:42:18

                              Probablement quand dessous il a pas assez de pèche pour bouger...

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Retrouvez moi sur mon blog et ma chaine Youtube !

                                10 juin 2014 à 15:41:14

                                digitalWrite (trac_mot_en,HIGH); // EN
                                digitalWrite (trac_mot1_in1,HIGH); // OUT1
                                digitalWrite (trac_mot1_in2,LOW); // OUT2
                                digitalWrite (trac_mot1_speed,HIGH); / PWM
                                analogWrite (trac_mot1_speed,255); // vitesse PWM


                                j'utilise ce shield :MC33926 , avec ce programme , je peux utilisé des valeur en dessous de 130 maintenant , mais je n'ai que 2 vitesses differentes, de 1 a 129 et de 130 a 255 , aucune variation entre 2 :/

                                • Partager sur Facebook
                                • Partager sur Twitter

                                controller un robot avec un joystick

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                • Editeur
                                • Markdown