Auteur Sujet: Le bus CAN  (Lu 55890 fois)

Snake 94

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : Le bus CAN
« Réponse #15 le: mars 12, 2017, 01:43:31 pm »
Bonjour à tous,
à moins que je ne trompe personne n'a évoqué la chose suivante :
http://openlcb.com/
... êtes-vous en mesure de m'en dire davantage ?
Cordialement,

DDEFF

  • Hero Member
  • *****
  • Messages: 738
    • Voir le profil
Re : Le bus CAN
« Réponse #16 le: mars 12, 2017, 02:03:26 pm »
Bonjour Snake 94,

Je viens de voir la vidéo, mais je n'ai pas vu le plus petit Arduino dedans...
Nous aussi, on utilise le bus CAN (voir les articles), mais on ne vend pas de matériel.

Denis
"Ce n'est pas le puits qui est trop profond, c'est ta corde qui est trop courte" (proverbe chinois)

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 904
  • HO avec DCC++
    • Voir le profil
Re : Le bus CAN
« Réponse #17 le: mars 12, 2017, 07:37:38 pm »
Bonsoir,

LCC ou openLCB n'est pas un bus mais un protocole avec un gros avantage, c'est qu'il est normalisé par le NMRA . Il peut fonctionner sur le bus CAN mais aussi ETHERNET et WIFI. A terme, ce qui est essentiellement visé c'est le WIFI très haut débit.

Désolé Denis mais nos ARDUINO vont s'accaparer ce protocole comme il ont merveilleusement su le faire par avec le DCC. Voir par exemple http://www.sumidacrossing.org/LayoutElectricity/microcontrollers/Arduinos/LCCforArduino/

Bien amicalement

PS : Lien sur la note technique du NMRA (100 pages environ) : http://openlcb.org/wp-content/uploads/2016/02/LCC-Adopted-2016-02-20-Complete-Set.zip

DDEFF

  • Hero Member
  • *****
  • Messages: 738
    • Voir le profil
Re : Le bus CAN
« Réponse #18 le: mars 12, 2017, 08:23:10 pm »
Bonsoir Christophe,

Je n'ai pas dit que ce n'était pas une bonne idée et je suis comme toi : le fait que ce soit normalisé NMRA est un énorme avantage.
C'est vraiment l'avenir, je suis d'accord.
Et surtout, ça nous changera des protocoles propriétaires des différents constructeurs. Enfin !  ::)

Par contre, heureusement que c'est "open" parce que tu ne me feras pas acheter les shields à 20 $ ou 25 $...
Quand je vois la vidéo, je ne vois que du matériel tout fait, avec uniquement des CMS, donc hors de notre portée si on veut les faire nous même.

Donc :
1°) Progrès certain, nette amélioration d'avoir un protocole universel.
2°) J'attends de voir ce que ça coûte. Je ne suis pas certain que ce soit moins cher que le DCC.

Le challenge va consister pour nous à analyser le protocole et à réaliser nous même des platines bon marché avec des composants soudables. :P

Bien amicalement
Denis
« Modifié: mars 12, 2017, 08:54:56 pm par DDEFF »
"Ce n'est pas le puits qui est trop profond, c'est ta corde qui est trop courte" (proverbe chinois)

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 904
  • HO avec DCC++
    • Voir le profil
Re : Le bus CAN
« Réponse #19 le: mars 12, 2017, 08:51:09 pm »
Oui Denis, je suis comme toi convaincu que nous avons affaire à une technologie d'avenir au moins aussi importante que ne l'a pu l'être le DCC. On commence à voir apparaitre un certain nombre de bibliothèques ARDUINO autour de LCC gage d'une maîtrise des dépenses.

Une précision importante, LCC n'a pas vocation à remplacer DCC. Il est au contraire conçu pour le compléter.

C'est un sujet dont LOCODUINO devra se saisir !

Bien amicalement
Christophe

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Le bus CAN
« Réponse #20 le: mars 12, 2017, 10:25:05 pm »
C'est intéressant de revoir Don Goodman-Wilson de RailStar, qui a conçu CmdrArduino (celui qu'on laisse au profit de DCC++). Don avait disparu du support de son produit, pour se consacrer à Open-LCB qui a finalement été choisi par NMRA comme standard qui s'appelle maintenant LCC. Bravo Don !

Je n'ai pas encore tout compris, à part le choix du bus CAN pour les échanges fiables et la câblage facile.

Ce que je peux en déduire (mais je vais surement me tromper), c'est que pour interconnecter autant de choses différentes que des aiguilles, des feux, des panneaux de led et boutons (TCO ?), des détecteurs d'occupation et Railcom, des manettes, des boosters (on dit centrale en général)... et un soft gestionnaire comme JMRI, ET TOUT CELA PLUG&PLAY, c'est forcément compliqué (tout ce qui est simple pour l'utilisateur est forcément une usine à gaz à l'intérieur).

L'expérience du Wifi et de TCP/IP ont donné lieu, finalement, à des choses simples à mettre en oeuvre, avec des composants pas cher (vu les millions d'unités produites) et des bibliothèques ad'hoc.

Mais ce ne sera pas à la portée du gars qui voudrait seulement faire clignoter un led 5 fois (joke), avant un bon moment.
Apparemment chaque "noeud" du réseau (connecté à un équipement) doit contenir un fichier de configuration qui semble ne pouvoir être construit et modifié que par JMRI. En tous cas c'est un fichier XML : ajouter un parser et un éditeur Wisiwyg dans un Arduino n'est pas une mince affaire !

Du coté des locos (la commande DCC++ par exemple), on imagine bien qu'un gros paquet de données sont stockées dans le noeud connecté à la centrale, de façon à piloter toutes les locos d'une manière standard (par exemple en leur donnant un ordre contenant la vitesse réelle à l'échelle, et non pas un cran DCC).

Cela dit, on va se faire un point d'honneur à Locoduino, à tenter de vous expliquer tout ça et de construire quelque chose.

Ca tombe bien, mon réseau est constitué de plusieurs éléments (à base d'Arduino) qui communiquent entre eux via un bus CAN  ;D ;D, sans JMRI, chaque élément (DCC booster, détecteurs d'occupations, contrôleur d'aiguilles, TCO, gestionnaire) a forcément sa configuration propre qui m'a valu une description sur papier, ainsi que les messages qui s'échangent entre modules.

Je ne me sens pas trop dépaysé, donc à suivre ...
« Modifié: mars 14, 2017, 09:17:30 am par Dominique »
Cordialement,
Dominique

DDEFF

  • Hero Member
  • *****
  • Messages: 738
    • Voir le profil
Re : Le bus CAN
« Réponse #21 le: mars 12, 2017, 10:30:35 pm »
Citer
tout ce qui est simple pour l'utilisateur est forcément une usine à gaz à l'intérieur

Je confirme  ;D ;D ;D
"Ce n'est pas le puits qui est trop profond, c'est ta corde qui est trop courte" (proverbe chinois)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Le bus CAN
« Réponse #22 le: mars 14, 2017, 09:20:17 am »
Cela veut dire que LCC est encore trop jeune !
Cordialement,
Dominique

gerard31

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Le bus CAN
« Réponse #23 le: septembre 10, 2017, 10:42:37 pm »
Bonsoir,

Je ressort ce fil pour parler installation logiciel CAN.
Aprés divers essais analogiques ou numeriques sur mes micros reseaux HO et N je me tourne vers le CAN.
 J'ai récupéré le logiciel  dans "Mise en oeuvre du Bus CAN entre modules Arduino (2)"   et commencé l'installation.
J'ai utilisé la biblothéque CAN préconnisée dans l'article.
Avec l'Arduino Mega et l'interface CAN trouvée ici http://www.ebay.fr/itm/311379482437 le programme
 me dit bien  CAN bus init OK.
Arduino UNO plus même interface toujours CAN bus init OK.
Arduino Nano, même interface et programme que le UNO (modification  broche CS) cela se corse avec
CAN bus init echec et la led TX du Nano clignote en permanence.
J'ai vérifié les cablages, changer de Nano, d'interface, de support de Nano (terminal adapter de Deek Robot),
de port USB, rien n'y fait toujours échec.
Quelqu'un a-t-il était confronté à ce problème ? Toute info sera la bienvenue pour solutionner (tenter de)
ce problème.

Avec mes remerciements anticipés et bonne nuit aussi

Gérard :(

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Le bus CAN
« Réponse #24 le: septembre 11, 2017, 12:03:54 am »
Le Nano mis à part, au delà du "CAN bus init Ok", est-ce que la communication entre le Mega et le Uno fonctionne ?

Étant donné que le Nano et le Uno ont le même contrôleur, il n'y a pas de raison que le Nano ne fonctionne pas, sauf erreur de câblage et d'initialisation.

Dominique
Cordialement,
Dominique

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1691
    • Voir le profil
Re : Le bus CAN
« Réponse #25 le: septembre 11, 2017, 08:27:03 am »
CAN bus init ok indiqué que la communication SPI entre l'Arduino et le MCP2515 fonctionne correctement.

Pourrait-on avoir le code du Nano ? Quelle broche est employée pour le CS ?

Pourquoi la led TX flashe-t-elle ? Le programme du Nano écrit-il en permanence sur la sortie série ?
« Modifié: septembre 11, 2017, 08:29:01 am par Jean-Luc »
Cordialement

gerard31

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Le bus CAN
« Réponse #26 le: septembre 11, 2017, 12:01:15 pm »
Bonjour et merci à tous les deux pour vos réponses,

Pour l'instant je ne me suis pas posé la question de la communication entre deux modules CAN.
Je débute et je m'en suis tenu au propos de Dominique :

On comprend bien ici que l'instruction CAN.begin(baudrate) démarre l'interface, avec un
compte-rendu "CAN_OK", sinon cela se répète car, à ce stade de l'initialisation (SETUP), si le bus CAN
ne démarre pas, il est inutile d'aller plus loin.
Personnellement je n'ai jamais vu d'échec sauf si la carte CAN n'est pas (ou est mal) branchée.

La broche employée pour CS est 10 comme indiquée ici http://www.locoduino.org/spip.php?article148

Pour le logiciel recopié et remis en forme (...???) voir le fichier joint.

Je ne suis pas posé encore la question pour la Led et le port série puisque j'ai toujours le message
"CAN échec sur le moniteur"

Merci pour votre aide en attendant de poursuivre mon apprentissage

Amitiés

Gérard
« Modifié: septembre 11, 2017, 12:06:16 pm par gerard31 »

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1691
    • Voir le profil
Re : Le bus CAN
« Réponse #27 le: septembre 11, 2017, 01:33:33 pm »
Essaye ceci pour voir où ça coince :

Ligne 56 de mcp_can_dfs.h (dans le répertoire où est la bibliothèque CAN), dans la directive :

#define DEBUG_EN        0

remplace le 0 par un 1 :

#define DEBUG_EN        1

La progression de l'initialisation apparaîtra sur la console
Cordialement

gerard31

  • Newbie
  • *
  • Messages: 18
    • Voir le profil
Re : Le bus CAN
« Réponse #28 le: septembre 11, 2017, 03:23:04 pm »
Bonjour Jean Luc,

Je viens de regarder la librairie MCP2515_lib-master et son fichier mcp_can_dfs.h.
Avant de faire une bêtise, je n'y ai pas trouvé le libellé indiqué dans votre message mais ceci :

#define MCPDEBUG        (0)
#define MCPDEBUG_TXBUF  (0)

juste aprés les instructions 8mhz. Il existe aussi celle-ci   #define CANDEBUG   1.

La question peut paraître naïve mais je préfére une confirmation sur la ligne à modifier
qui est, il me semble, #define MCPDEBUG       (0) a transformer en #define MCPDEBUG      (1)
Question subsidiaire quel editeur utlisez-vous pour afficher le numéro des lignes ?

Amitiés

Gérard

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1691
    • Voir le profil
Re : Le bus CAN
« Réponse #29 le: septembre 11, 2017, 04:51:17 pm »
Bonjour Gérard

Ah. On n'est pas sur la même version. J'ai regardé la version qui est ici : https://github.com/Seeed-Studio/CAN_BUS_Shield
D'où vient la votre ?

Concernant l'éditeur, j'utilise atom (https://atom.io) mais l'éditeur de l'IDE Arduino affiche également les numéros de ligne via une case à cocher dans les préférences.

Amicalement
Cordialement