Auteur Sujet: Un Arduino par module....ou pas.  (Lu 103121 fois)

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1717
    • Voir le profil
Re : Un Arduino par module....ou pas.
« Réponse #15 le: février 02, 2015, 08:59:07 pm »
Pas de pb avec le sans fil :) tu y vas un peu fort Hubert. J'aurais plutôt dit l'inverse : le filaire est plus fiable.

La solution des modules sans fil à base de nrf24 est séduisantes. Mais c'est aussi un domaine où tous les emmerdements restent à decouvrir :). Le CAN a le mérite d'être largement déployé industriellement. 
« Modifié: février 02, 2015, 09:22:37 pm par Jean-Luc »
Cordialement

Hubert

  • Global Moderator
  • Newbie
  • *****
  • Messages: 35
  • J'y crois donc je fais.
    • Voir le profil
Re : Re : Un Arduino par module....ou pas.
« Réponse #16 le: février 03, 2015, 12:11:29 am »
Pas de pb avec le sans fil :) tu y vas un peu fort Hubert. J'aurais plutôt dit l'inverse : le filaire est plus fiable.

La solution des modules sans fil à base de nrf24 est séduisantes. Mais c'est aussi un domaine où tous les emmerdements restent à decouvrir :). Le CAN a le mérite d'être largement déployé industriellement.

j'aime le risque et nous sommes entrés dans l'aire du sans fil.  :P

Le but du jeu est aussi de découvrir pour le bien de notre hobby.
les deux valent le coup d'être testé.

Filaire VS Wifi

on fait et on compare après ( prix , facilité de mise en œuvre, fiabilité, ...) qu'en penses-tu.

j'ai fais ma commande chez Minilnthebox.com (première commande) et j'attends les pièces ( plus quelques fournitures et des nouvelles cartes Arduino).


« Modifié: février 03, 2015, 12:19:42 am par Hubert »
Le bonheur est une trajectoire et non pas une destination.

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1717
    • Voir le profil
Re : Un Arduino par module....ou pas.
« Réponse #17 le: février 03, 2015, 05:13:17 am »
Mmmmmh

J'ai des nrf24 sur les cartes de mes radiateurs. Parce que je ne me voyais pas passer des fils dans toute la maison pour les piloter. Sur le réseau c'est différent c'est déjà plein de fils partout et c'est pas un rj11 de plus qui va changer la donne. Par contre pour les poste de conduite je pensais effectivement utiliser des nrf24. Mais je n'en prévois que trois.

Je n'ai pas fait des tests de performance avec les nrf24 mais pourquoi pas, pas seulement le débit mais egalement la latence et sa dispersion. Je me doute déjà du vainqueur ;) pareil pour la fiabilité. Quoiqu'il en soit mes cartes servo, traction et TCO utilisent déjà du CAN, une cinquantaine de nœuds en tout.

Le sans fil oui mais là où il est utile  :)
Cordialement

Hubert

  • Global Moderator
  • Newbie
  • *****
  • Messages: 35
  • J'y crois donc je fais.
    • Voir le profil
Filaire VS Wifi
« Réponse #18 le: février 03, 2015, 11:25:35 am »
Mmmmmh

J'ai des nrf24 sur les cartes de mes radiateurs. Parce que je ne me voyais pas passer des fils dans toute la maison pour les piloter. Sur le réseau c'est différent c'est déjà plein de fils partout et c'est pas un rj11 de plus qui va changer la donne. Par contre pour les poste de conduite je pensais effectivement utiliser des nrf24. Mais je n'en prévois que trois.

Je n'ai pas fait des tests de performance avec les nrf24 mais pourquoi pas, pas seulement le débit mais egalement la latence et sa dispersion. Je me doute déjà du vainqueur ;) pareil pour la fiabilité. Quoiqu'il en soit mes cartes servo, traction et TCO utilisent déjà du CAN, une cinquantaine de nœuds en tout.

Le sans fil oui mais là où il est utile  :)

Je suis d'accord avec toi pour le sans fil la ou il faut  :D  et le fait de tirer des cables un peu partout, chez moi, dans la maison familial, j'ai mis du CPL (Courant Porteur en Ligne) sur deux étages et pas mal de M², pas mal de domotique et de transport de données notamment pour l'internet et la télé et la sécurité. ;)
Je pense même si le vainqueur  :P peut déjà sabler le champagne, que ma méthode est une alternative et qu'elle mérite d'être proposée.
Dans le cas d'un branchement filaire en série ou les cartes communiquent entre elles comme le propose Petittrain, l'utilisation du wifi est gagnant sur le fait qu'il s'adresse à toutes les cartes en même temps et ou celles concernées répondent uniquement. Si dans le mode filaire série, une carte est HS, tout le dispositif en amont tombe à moins de prévoir un anneau de secour et redondant. Dans le mode Wifi, uniquement celle en défaut est touchée.

Toutes les personnes ne sont pas non plus des spécialistes en cablage et électronique. un module tout fait (CAN ou WIFI) peut répondre au besoin et aux contraintes engendrées.

De notre côté, si nous pouvons proposer des solutions faciles en mettre en oeuvre en évitant de tirer des cables source d'anomalie, je te rappelle que la plupart des incidents et anomalies détectées sont à 80%, selon le principe de Pareto, d'origine filaire (oxydation, arrachement, faux contact, mauvaise soudure, échauffement, rayonnement électrique, ...).Ne pas oublié, dans ce cas, La loi de Murphy qui s'invite aussi à la fête et que l'on nomme aussi LEM (loi de l'emmerdement maximum) et sont des lois empiriques tirées de l'expérience, notre expérience.
JPEG - 30.2 ko
Chaque solution à son lot de points positifs et négatifs, chacun choissira la solution qu'il considère la mieux pour lui mais ne pas en parler ni l'évoquer ne peut que le dissuader de progresser voir le rebuter de s'y mettre et pour finir le bloquer.
Pour moi, je recherche différentes solutions à proposer, par la suite laissons le choix à celui qui devra faire.

Anecdote:
Au travail, je vois ce que mes techniciens réseaux infra souffrent pour maintenir les liaisons dans les locaux techniques et nos clients qui ralent sur les connexions filaires. Notre réponse, sur le fait que nous ne pouvons pas mettre du wifi partout et qu'au niveau sécurité,c 'est plus difficile à gerer que le réseau filaire blindé ne semble plus les satisfaire comme  auparavent, les gens changent et leur perception du monde électronique aussi. Ils sont plus demandeur qu'avant et la fatalité n'est plus une excuse pour eux "Avoir un fil à la patte n'est pas signe de liberté".

Tu es pro-filaire et je suis pro-wifi, deux opposés qui se complêtent pour former un ensemble cohérent. :D :D
 
Il est possible aussi que je me plante sur ce coup là, hé bien, j'apprendrai de mes erreurs et me releverai plus fort.

 
« Modifié: février 03, 2015, 11:48:11 am par Hubert »
Le bonheur est une trajectoire et non pas une destination.

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
Re : Un Arduino par module....ou pas.
« Réponse #19 le: février 03, 2015, 01:45:38 pm »
Juste une aparté pour vous parler  du fournisseur MiniInthebox.
J'ai pas mal commandé chez eux, les prix sont attractifs et beaucoup de référence.
Par contre, à chaque fois, le transporteur me présente une facture de taxe supplémentaire à payer, ce qui relativise la bonne affaire!!!
A la dernière commande,sur un afficheur 20*4 I2c, il y a une ligne qui me sort des messages farfelus, c'est la deuxième ligne, j'ai fini par afficher sur trois lignes seulement... pas de SAV comme chez electrodragon (post de Jean luc). Pour les Arduino, je n'ai pas eu de problème.
Finalement, je préfère me servir chez un petit détaillant à Cannes, qui est, certes plus cher, mais avec le service en plus, et j'ai l'impression de soutenir l'emploi en France.
J'attend les résultats de votre joute pour me décider!!!!

Guillaume

  • Global Moderator
  • Full Member
  • *****
  • Messages: 204
    • Voir le profil
    • Locoduino
Re : Un Arduino par module....ou pas.
« Réponse #20 le: février 03, 2015, 02:31:54 pm »
On fait les paris ; je mise sur Jean Luc.
Le wifi est imprécis, a des ratés, desfois on ne sait pas où il va mais il y va, plus les ondes qui merdouillent le signal. Plus lui en lui-meme qui font merdouiller des appareils, chez moi c'était le wifi qui faisait rebooter le terminal satellite, extrêmement désagréable.

Comme il le dit un fil de plus ne va pas changer la donne et on le connaît celui-là le CAN. Surtout que sans fil ne signifie pas entièrement sans fil tu es obligé d'amener le courant tout de même.
Par contre je ne comprends pas le fait qu'un module soit en panne fait merder tout le système. SI c'est un arduino terminal pas de souci c'est un bus qui distribue le CAN donc aucun pb si je ne me trompe pas comme l'i2c d'ailleurs sauf si bien sur c'est l'arduino TCO alors là que ce soit un système ou l'autre cela va tomber.

Chacun y voit son avantage, et ce sera à toi à choisir, le sans fil permet plus de libertés quant à certains choix, on peut placer après ou changer de plus sans retirer de fils etc...

Pour hubert, par contre j'ai bien aimé dans la même phrase cpl et sécurité ;)

Pour les douanes, commander chez un fournisseur américain garantit des frais de douanes. Les transporteurs le font automatiquement.
G.

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1717
    • Voir le profil
Re : Un Arduino par module....ou pas.
« Réponse #21 le: février 03, 2015, 02:52:52 pm »
Je ne suis pas spécialement pro-filaire et je pense qu'on est d'accord  :-* C'est juste que le sans fil a des temps de latence indéterminés qui dépendent de l'encombrement du médium de communication et la bande des 2,4Ghz est particulièrement encombrée (Bluetooth et wifi) et que ces conditions ne seront pas les même chez soi au calme radioélectrique (quoique en appartement...) et sur un salon où un tas de types vont se promener avec le Bluetooth de leur téléphone allumé et où plusieurs réseaux wifi seront déployés.

Tu ne peux pas faire reposer sur ce type de communication certains systèmes de contrôle où tu as besoin de connaître les temps de communication et d'être sûr de leur déterminisme pour assurer le bon fonctionnement du système. Ni sur des systèmes ou tu as besoin de la meilleure fiabilité de transmission possible.  Je ne dis pas que c'est le cas du système que veut construire petitrain. Je dis que les solutions ne sont pas uniquement à comparer quantitativement mais également qualitativement. Si le sans fil était aussi bien et universel, les constructeurs automobiles et les avionneurs n'hésiteraient pas une seconde à remplacer les dizaines ou centaines de kg de cuivre des fils par des modules radio. Ils gagneraient en coût et en simplicité de déploiement mais pas en fiabilité (pour ma part je ne monte pas dans un avion ou une voiture où les calculateurs sont interconnectés en sans fil  ::)).

C'est très différent des communications sur un réseau domestique ou entre micros où les latences sont gênantes mais ne mettent pas en danger le système. Où un clic souris qui ne passe pas n'est pas grâve. Dans ces applications, on cherche de la facilité, pas de la fiabilité et de la sûreté de fonctionnement.

En fait je pense que les deux solutions sont complémentaires. Ok pour le sans fil quand le fil est vraiment ennuyeux : manette, capteur à poser sur un module dont on n'est pas l'auteur pour prolonger un automatisme, systèmes non critique. Ok ce sont des petits trains mais pour moi les parties critiques sont les aiguillages (connaître avec de faibles chances de se tromper leur position), la détection (savoir où se trouve le matériel) et la traction (pouvoir arrêter une loco à coup sûr). Ces trois systèmes collaborent pour assurer l'anticollision. Il n'est pas souhaitable que ces systèmes soient en sans fil avec des temps de communication indéterministes.

En ce qui concerne les risques de pannes dues aux fils, il ne faut pas confondre le cas général où des fils sont déployés dans des lieux inappropriés et n'importe comment, humides, etc et le cas où c'est correctement déployé et la plupart des modélistes disposent soigneusement leur câblage. Par ailleurs, avec le CAN, on peut commencer par une séquence de « qui est là » ce qui permettra de connaître le fil ou le nœud en défaut.

Donc je ne suis pas pro-filaire ni pro-wifi, je suis pour utiliser les technologies là où elles font sens. J'ai utilisé le CAN extensivement sans rencontrer le moindre problème et avec des temps de communication parfaitement prédictibles et strictement réguliers. J'ai bricolé avec des nrf24 et je vais en utiliser là où c'est sympa et utile et je vais les soumettre à des tortures pour voir ce qu'on obtient. Donc les deux sont acceptés dans leur domaine de prédilection  ;)
« Modifié: février 03, 2015, 03:13:27 pm par Jean-Luc »
Cordialement

Hubert

  • Global Moderator
  • Newbie
  • *****
  • Messages: 35
  • J'y crois donc je fais.
    • Voir le profil
Re : Re : Un Arduino par module....ou pas.
« Réponse #22 le: février 03, 2015, 03:28:06 pm »
On fait les paris ; je mise sur Jean Luc.
Le wifi est imprécis, a des ratés, desfois on ne sait pas où il va mais il y va, plus les ondes qui merdouillent le signal. Plus lui en lui-meme qui font merdouiller des appareils, chez moi c'était le wifi qui faisait rebooter le terminal satellite, extrêmement désagréable.

Comme il le dit un fil de plus ne va pas changer la donne et on le connaît celui-là le CAN. Surtout que sans fil ne signifie pas entièrement sans fil tu es obligé d'amener le courant tout de même.
Par contre je ne comprends pas le fait qu'un module soit en panne fait merder tout le système. SI c'est un arduino terminal pas de souci c'est un bus qui distribue le CAN donc aucun pb si je ne me trompe pas comme l'i2c d'ailleurs sauf si bien sur c'est l'arduino TCO alors là que ce soit un système ou l'autre cela va tomber.

Chacun y voit son avantage, et ce sera à toi à choisir, le sans fil permet plus de libertés quant à certains choix, on peut placer après ou changer de plus sans retirer de fils etc...

Pour hubert, par contre j'ai bien aimé dans la même phrase cpl et sécurité ;)

Pour les douanes, commander chez un fournisseur américain garantit des frais de douanes. Les transporteurs le font automatiquement.
Bien sur que je suis certain du résultat, comme toi, il est évident que le filaire gagne. Pour autant, explorez un autre domaine fais avancer la science et la recherche.
Vu le prix du cuivre actuellement, une alternative est possible, maintenant nous n'en sommes qu'au début du sans-fil, nous en reparlerons dans une vingtaine d'année.
Une autre zone de recherche possible serait la fibre optique mais trop contraignante au niveau physique.
Quand je parlais de sécurité pour le CPL, je ne parlais pas de sécurité informatique ou de données mais de securité électrique et d'automatisation (volet,gestion d'appareil, ...) sans ajouter de fil supplémentaire .  ::)
Avec la continuité électrique hors zone, il est certain que n'importe qui se connectant au réseau peut savoir ce qui se proméne dessus, sauf à utiliser des filtres entrant et sortant mais bon. il en est de même pour les tuyau de cuivre des système de chauffages et de circuit d'eau qui transmettent aussi les signaux des cables non protégés se trouvant à proximité immédiate.

Nous sommes tous d'accord pour le CAN, voir pour l'I²C pour la fiabilité et la constance et du WIFI ou BLUETOOTH pour un système paliatif selon contraintes. 8)
 
« Modifié: février 03, 2015, 03:29:38 pm par Hubert »
Le bonheur est une trajectoire et non pas une destination.

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
Re : Un Arduino par module....ou pas.
« Réponse #23 le: février 18, 2015, 08:06:00 pm »
je reprends un peu mon projet, on verra plus tard pour la communication des arduinos entre eux....
j'essaye de coder mon éclairage (celui des modules) commandé finalement par un seul arduino. J'ai installé des rubans de leds(1m de leds blanc chaud et 1m de leds RVB) et un spot halogene par module. Est-il possible de commander mes 5 sorties PWM d'une manière indépendante les unes des autres, avec des montées d'éclairage, des paliers, des descentes  à différents moments ou
est-ce que c'est trop demander à l'Arduino?
Pour l'instant, j'ai créé des compteurs avec millis() pour chaque PWM. chaque compteur incremente ou decremente mes fonctions analogWrite, pour les paliers il suffit de mettre à 255 ou à 0. Puis j'ai fait à nouveau un compteur qui compte le temps qui passe 0 à 24h mais je n'arrive pas à mettre ça en harmonie; j'essaye de poster un petit dessin de ce que j'imagine, ça sera plus clair....

Guillaume

  • Global Moderator
  • Full Member
  • *****
  • Messages: 204
    • Voir le profil
    • Locoduino
Re : Un Arduino par module....ou pas.
« Réponse #24 le: février 18, 2015, 09:09:38 pm »
en quelque sorte ta limite d'imagination sera la limite de l'arduino ;)
Non tu peux imaginer tout à fait cela.
En harmonie c'est-à-dire ? Code soit disant fouilli ?
Poste ton code si tu veux un avis pas de souci pour le lire.

Je suis en quelque sorte en plein dedans ;) de ces animations lumineuses.
G.

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
Re : Un Arduino par module....ou pas.
« Réponse #25 le: février 18, 2015, 10:41:32 pm »
Merci, Guillaume de ta réponse rapide.
Non, en harmonie, c'est une façon de parler, je n'arrive à rien en fait....
J'ai fait un petit dessin de mon animation lumineuse....

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
Re : Un Arduino par module....ou pas.
« Réponse #26 le: février 18, 2015, 10:49:20 pm »
Voilà mon code, individuellement les PWM marchent bien, mais dans le switch plus rien ne marche, si t'as une piste....

Citer
unsigned long tempsDebut=0;
unsigned long tempsDebut1=0;
unsigned long tempsDebut2=0;
unsigned long tempsDebut3=0;
unsigned long tempsActuel1;
unsigned long tempsActuel2;
unsigned long tempsActuel3;
int a=0;
int x=0;
int y=0;
int z=255;
int interval=20;
int interval1=50;
int interval2=200;
int interval3=300;
byte led1=3;
byte led2=5;
byte led3=6;


void setup(){
  Serial.begin(9600);
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
}
void loop(){
  unsigned long tempsActuel= millis();       // le compteur pour le temps
  if(tempsActuel-tempsDebut>=interval){
    a++;
    tempsDebut=tempsActuel;
    Serial.println("a=");
    Serial.println(a);
    if(a==500){
      a=0;
    }
  }
  switch(a){
  case 10:
    tempsActuel1= millis();                    //La led blanc chaud
    if(tempsActuel1-tempsDebut1>=interval1){
      x++;
      tempsDebut1=tempsActuel1;
      Serial.println("x=");
      Serial.println(x);
      analogWrite(led1,x);
      if(x==255){
        x=0;
      }
    }
    break;
  case 30:
    tempsActuel2= millis();                   // L'Halogène
    if(tempsActuel2-tempsDebut2>=interval2){
      y++;
      tempsDebut2=tempsActuel2;
      Serial.println("y=");
      Serial.println(y);
      analogWrite(led2,y);
      if(y==255){
        y=0;
      }
    }
    break;

  case 50 :
    tempsActuel3= millis();                   // La led rouge
    if(tempsActuel3-tempsDebut3>=interval3){
      z--;
      tempsDebut3=tempsActuel3;
      Serial.println("z=");
      Serial.println(z);
      analogWrite(led3,z);
      if(z==0){
        z=255;
      }
    }
    break;
  }
}



Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1717
    • Voir le profil
Re : Un Arduino par module....ou pas.
« Réponse #27 le: février 18, 2015, 11:24:17 pm »
Bonsoir,

Qu'entends-tu par plus rien ne marche ?
Cordialement

Guillaume

  • Global Moderator
  • Full Member
  • *****
  • Messages: 204
    • Voir le profil
    • Locoduino
Re : Un Arduino par module....ou pas.
« Réponse #28 le: février 19, 2015, 10:36:23 am »
Je pense que j'ai trouvé le pb. Tu initialise à chaque début de loop ta variable tempsactuel avec millis(). La variable a ne s'incrémente jamais et le switch n'est jamais fait. D'où l'absence de résultat.
Une variable temps qui s'initialise avec millis() n'est à initialiser qu'après que la condition avec millis() soit effectuée.

Si j'ai un conseil à te donner c'est d'individualiser tes animations lumières avec des if séparées ou autre condition puis avec la création de fonctions, comme cela si tu changes ton code tu n'auras plus qu'une seule partie à changer. Et après tu fais une création d'objets et op tout bon ;) mais là c'est petit à petit.

Petite aparthée pour Jean-Luc, l'apport de ton article fonctions sera très appréciée par petit train je pense ;)
G.

petitrain

  • Jr. Member
  • **
  • Messages: 86
    • Voir le profil
Re : Un Arduino par module....ou pas.
« Réponse #29 le: février 19, 2015, 12:00:53 pm »
En observant le retour via la liaison serie, le compteur du temps"a" s'incrémente normalement et, à chaque fois qu'il trouve case 10:,il incrémente le compteur de la led blanc chaud"x" de 1, puis avec case 30:, le compteur "y" de 1 et enfin avec case 50:, le compteur"z" perd 1 et ainsi de suite. C'est tellement long sur les sorties(leds) on a l'impression que rien ne se passe.
J'ai essayé de faire des fonctions : monteeEclairage() et descenteEclairage() mais je n'ai pas plus de succès.
Je voudrais bien comprendre la logique de l'Arduino. Je pense que ce sera plus facile, pour moi,après, de faire les différentes fonctions.
Je vais essayé d'enlever le switch et de mettre à la place des if()....else if(), je vous tiens au courant
En tous cas, merci de votre aide.....  on se sent moins seul devant cette petite platine qui n'en fait qu'à sa tête!!!