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 3 axes, 7 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;Toutesles informations envoyées par le Pc seront stocké dans une seule variable ?
mon collèguetravaille 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
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.
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 ?
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 ?
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...
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...
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);
}
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.
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;
× 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.
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !
Retrouvez moi sur mon blog et ma chaine Youtube !