1 Dernière modification par clement60200 (24-02-2013 11:15)

Sujet : Communication partie Opérative-Commande

Bonjour à tous smile

Tout d'abord je me présente, je m'appel clément et je suis en 4ème année d'école d'ingé (UTC) et je suis tout nouveau dans le monde de l'électronique et de l'Arduino.

Même si ma formation de base est la mécanique, j'ai déjà un peu d'expérience en programmation. (C/C++)

Voila je crois que pour la présentation c'est fait, on peut passer aux choses sérieuses.

Je travail sur un projet de dolly, qui "en gros" revient à un robot sur lequel on vient fixer une petite caméra pour faire de belles images ;P

Comme un beau schéma vaut mieux qu'une longue explication, voici un petit récapitulatif (d'un point de vue électronique) du projet.

http://img15.hostingpics.net/pics/166858Prsentation1zzz.jpg

Mon problème est donc cette communication sans fil. En effet deux soucis se posent :

1- communication bidirectionnelle : en effet, la partie opérative à t'elle réellement besoin de remonter des informations à la partie commande ? Personnellement je ne pense pas, je pense que la partie commande peut simplement filer des ordres et la partie opérative se débrouiller pour les exécuter correctement. Mais j'attends vos avis sur ce point smile

2- Quelle serait le moyen de communication le moins cher pour réaliser cette communication (dans les cas de l’unidirectionnelle et du bidirectionnelle) ? Parce que pour le moment j'ai jeté un coup d'oeil aux shields XBEE mais il y en a quand même pour 40 euros par shield XBEE + XBEE !  Donc encore une fois je souhaiterais avoir vos avis smile

Merciiiiiiii ;Pui

2

Re : Communication partie Opérative-Commande

Salut

Pour l'unidirectionnel on est en train de voir une solution à 5 euros en radio 433 mhz. Des libs Arduino existent.

Pour le bidirectionnel on verra si on peut en mettre deux mais risque d'interférence. C'est aussi ça l'explication du prix du XBee.

Une Dolly doit travailler dans des conditions électromagnétiques particulières donc avoir des interférences dans les micros de la production ou pire dans la prise de son est un problème à prendre en compte.

40 euros ou même 100 euros ne sont rien en regard de l'objectif.

Re : Communication partie Opérative-Commande

Ok ok ça marche smile

Et bien je ne me pose pas trop de questions d'un point de vue des interférences la prise son car elle ne se fait
pas sur la chariot... C'est uniquement pour prise vidéo....

Concernant le prix c'etait vraiment histoire de savoir si il n'existe pas moins cher pour un eventuel developement a plus grabde echelle smile

Re : Communication partie Opérative-Commande

Par contre, j'ai lu le tuto avec la nunchuck sur le site et il est d'ailleurs assez sympa mais des doutes persiste :

1- il y a t'il des manips a faire sur les arduino UNO pour les faires communiquer ?

2- Suis je obligé de passer par ce shield ou existe t'il d'autres solutions :
http://www.lextronic.fr/P4134-platine-s … duino.html

3- Quelles sont les différences entre les différentes puces XBEE et laquelle me conseillez vous ?
(sur le meme lien que ci-dessus)

5

Re : Communication partie Opérative-Commande

Les modules XBee se répartissent sur plusieurs gammes, et plusieurs modèles par gamme.

- séries XBee S1 et XBee Pro S1:
+ communication 2.4GHz
+ protocole 802.15.4
+ point à point ou point à multipoint
+ la série Pro dispose d'une puissance d'émission plus élevée (60mW au lieu de 2mW)
+ se décline en 3 types d'antenne : patch céramique, whip, 1/4 onde externe sur connecteur UFL

- série XBee ZB et  XBee Pro ZB :
+ communication 2.4GHz
+ protocole Zigbee en mode mesh
+ la série Pro idem ci-dessus
+ se décline en 3 types d'antenne : patch céramique, whip, 1/4 onde externe sur connecteur UFL

- série XBee Pro 868 :
+ communication 868MHz
+ longue portée (jusqu'à 80km avec l'antenne qui va bien)
+ point à point ou point à multipoint
+ antenne externe seulement (normal vue la portée visée wink

Le mieux pour avoir tous les détails, c'est d'aller à la source, c'est à dire de visiter le site web du fabricant (DIGI) : http://www.digi.com/xbee/

Pour ce qui est de laquelle conseiller, il faudrait en savoir plus sur le contexte d'utilisation prévu :
- portée à vue souhaitée ?
- obstacles entre les modules ou bien vue dégagée systématique ?
- environnement bruité (sur le plan électromagnétique) ou non ?

Re : Communication partie Opérative-Commande

Ok ok smile

Et bien concernant le contexte la portée sera d'environ 20m avec quelques obstacles du genre une personne
ou une batterie, un ampli...

Pour ce qui est de l'environnement, ce sera surement utilisé sur scène donc je ne sais pas si ce sont des éléments très perturbateur mais il y aura surement des amplis, des consoles, des projecteurs....o smile

7

Re : Communication partie Opérative-Commande

Si je résume :
- une portée de 20m,
- des gros perturbateurs :
-- enceintes (les aimants des HP sont redoutables smile,
-- amplis (ça rayonne, surtout à forte puissance),
-- la forêt constituée par les perches de micros et les divers pieds de cymbale et autres de la batterie (ben oui, je suis aussi batteur amateur wink,
-- d'éventuels blocs de puissance pour les éclairages

Je n'ai rien oublié ?

Histoire d'avoir de la réserve, je m'orienterais donc vers les XBee Pro (pas besoin de ZigBee car une topologie mesh est sans intérêt ici) avec des antennes externes 1/4 d'onde. Penser également à placer l'antenne du poste de contrôle en hauteur (ie > 1m) de manière à réduire l'atténuation causé par l'effet de plan de sol).

Dans l'absolu, si le rover ne fait que recevoir, on pourrait se contenter d'une antenne whip pour lui, mais s'il n'y a pas de problème d'encombrement et/ou d'esthétique autant faire pour le mieux, d'autant que le placement du Xbee devrait alors être choisi avec soin pour ne pas être d'ans l'ombre radio d'un autre équipement embarqué.

Si tu analyses les specs de portée des XBee tu vas penser que je suis pessimiste, mais il faut tenir compte des éléments suivants :
- plus on monte en fréquence et plus la propagation est perturbée, voire arrêtée, par les obstacles
- nous sommes en environnement ouvert, et on ne peut donc pas compter sur une réception indirecte du signal comme cela arrive en environnement indoor (réflexion de l'onde par des parois, phénomène que j'ai pu observer à titre professionnel avec les XBee)

Re : Communication partie Opérative-Commande

Oui de toute façon je pense que tu as tout as fait raison de prévoir large parce que comme ça au moins je pourrai réutiliser tout ça dans des conditions peut être plus rudes smile

Donc si je comprends bien il faut la platine *2 :

http://www.lextronic.fr/P4134-platine-s … duino.html

La puce XBEE avec connecteur UFL *2 /

http://www.lextronic.fr/P20171-module-r … i-001.html

et les antennes :

http://www.lextronic.fr/P18936-adaptateur-ufl--sma.html

C'est bien tout ça ? ou c'est pas le bon matos ? smile

9

Re : Communication partie Opérative-Commande

Pour ce qui est de la platine, si tu n'as pas encore l'Arduino, sache qu'il existe des modèles avec le socket XBee intégré (ce sont des compatibles Arduino, tels que ceux de DFRobots par exemple. Du coup ça fait l'économie du shield et c'est plus compact.

Tu as oublié les antennes. Le dernier lien concerne uniquement le câble UFL-SMA.

Attention d'ailleurs à ce propos au fait qu'il existe deux type de connecteurs d'antenne : SMA et RPSMA. Il faut donc s'assurer que les antennes et les câbles choisis sont bien du même type.

Re : Communication partie Opérative-Commande

Ok ok, bon et bien ça fait une solution à 150 euros tout compris mais c'est quand même pas mal du tout smile smile smile

De toute façon je travail prêt du magasin LEXTRONIC...est ce quelqu'un connait ?

Et concernant le taf, pour les faire communiquer et pour traiter la communication c'est comment ? chaud ? Infaisable pour un noob comme moi ?

11

Re : Communication partie Opérative-Commande

Lextronic est très bien (Alexandre si je me souviens bien) et cela fait des dizaines d'années qu'ils existent dans le milieu amateur.

Pour la programmation, avec les tutoriels du site www.pobot.org on s'en sort sans problème.

Re : Communication partie Opérative-Commande

Ok très bien smile j'irai acheter tout ça jeudi et je vous tiens au courant de mon avancement !

Merci pour vos conseils smile

13 Dernière modification par clement60200 (01-03-2013 11:29)

Re : Communication partie Opérative-Commande

Ok et bien c'est bon le matos est arrivé smile Maintenant il ne me reste plus qu'a tester tout ça et faire de belles choses.

Mais malgré le super tuto de commande à distance :

http://www.pobot.org/Commande-a-distanc … e=nunchuck

j'ai des doutes qui persistent, on ne déclare rien de spécial dans les boucles de setup ? Pas de déclaration de communication ni rien ?

Et concernant la communication, je comprends pas bien la démarche pour envoyer de linfo entre arduinos :

On fait un serial.print d'un côté et de l'autre côté on récupère l'info juste avec ça :

while (Serial.available()) {Serial.read()}

???

Re : Communication partie Opérative-Commande

Hello tout le monde smile

Bon je fais appel à vous parce que je suis carrément perdu :@

Malgré une après midi de tests, j'ai pas réussi à faire grand chose... sad

Voici une petite photo de mon matos :

http://img11.hostingpics.net/pics/12637920130303215914.jpg

15

Re : Communication partie Opérative-Commande

Bonsoir,

Si, un petit "Serial.begin(9600);" dans le setup est obligatoire, il faut toujours initialiser. J'ai mis à jour l'article.

Re : Communication partie Opérative-Commande

Hello smile

Bon et bien j'ai réussi à établir la communication entre mes deux arduinos smile (lorsque je bouge le joystick la led13 de l'autre carte s'allume...)

Première question lorsque que je charge un programme avec la platine shield sur l'arduino j'ai le code erreur suivant :

avrdude: stk500_getsync(): not in sync: resp=0x00

Je pense que que c'est parce que les bornes RX et TX sont déjà occupée par le shield...mais comment faire ?


De plus, vous allez me prendre pour un idiot mais j'ai touché un peu à droite et à gauche et ça ne fonctionne plus .... Vous avez une idée ?


Côté Manette :

 

void setup()
{
    Serial.begin(9600);
    nunchuck_setpowerpins();
    nunchuck_init(); 
    pinMode(M1, OUTPUT);
    pinMode(M2, OUTPUT); 

}

void loop()
{
    if( loop_cnt > 10 ) { 
        loop_cnt = 0;

        nunchuck_get_data();

        zbut = nunchuck_zbutton();
        cbut = nunchuck_cbutton(); 
        joyx = nunchuck_joyx(); 
        joyy = nunchuck_joyy(); 
a=(byte)joyx,DEC;
 
       if (a>150) {
                          Serial.print("R");
                          delay(10);
                          loop_cnt = 11;}
    loop_cnt++;
    delay(10);
}}

Côté led :

void setup()
{
    Serial.begin(9600);
    pinMode(led, OUTPUT);
}

void loop()
{
// réception des consignes  
  while (Serial.available()) {  
      switch (Serial.read())  
      
      { case 'R':  
        digitalWrite(led, HIGH); 
        delay(1000);
        break;}  
  }      
}

17

Re : Communication partie Opérative-Commande

Oui, si la carte et le port USB sont bien sélectionnés, la seule explication d'une erreur de communication stk500 est qu'il y a sur les pattes 0 et 1 (RX/TX) un périphérique qui ne lui plait pas, en l'occurrence le XBee.

Il faut donc enlever le shield (une fois éteint) avant de reprogrammer la carte Arduino.

18

Re : Communication partie Opérative-Commande

Pour ton problème de code, repart de ta sauvegarde précédente et pense à indenter ton code correctement (CTRL+T pour que le logiciel le mette en forme automatiquement), tu y verras plus clair.

Re : Communication partie Opérative-Commande

Aie ok, c'est bien ce que je pensais...et donc pas possible de faire autrement sans enlever le shield...ok sad

Euh ba...le problème c'est que tout bête que je suis je n'ai pas de sauvegardes...Je vais donc essayer de regarder ce qui peut foirer mais jvois pas du tout :@

Je vais essayer de regarder du côté des delay voir si il n'y en aurai pas à trop long ou trop court....

Re : Communication partie Opérative-Commande

Hello je suis de retour après avoir réglé mes petits problèmes ^^

C'était tout simplement un problème de parenthèse au mauvais endroit... Donc après une grosse heure de recherche, j'ai tout recodé...et bingo smile:):)

J'avance donc bien sur le projet cependant je suis confronté à un léger soucis...

Pour controler mes moteurs j'utilise un L298P MotorShield et j'ai donc mon shield XBEE, voir photo ci-dessous :

http://img11.hostingpics.net/pics/36891020130312222641.jpg

Le problème étant que je n'ai plus accès aux pins ICSP et que donc mon XBEE ne fonctionne plus... Je dois faire une prise et essayer de relier l'arduino (en bas) à la prise du shield XBEE en haut ?

Puis de manière générale, comment savoir que mon shield moteur ne va pas me prendre des pins indispensables au bon fonctionnement du shield XBEE ?

Merci smile

21

Re : Communication partie Opérative-Commande

Très bien expliqué ton shéma, ça m'a bien aider a comprendre merci !

22

Re : Communication partie Opérative-Commande

Merci pour ton explication, j'espére que tu arrivera a la fin de ton projet !

Débutant en robotique passionné par les objets connecté