Auteur Sujet: Rétrosignalisation/Bus Can  (Lu 18876 fois)

jacques68

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Rétrosignalisation/Bus Can
« le: août 16, 2017, 03:59:50 pm »
Bonjour à tous!!

     Merci de déplacer mon sujet s'il ne se trouve pas dans la bonne section. :(

J'ai entrepris ce jour de tester la rétrosignalisation avec le Bus Can présenté ici: http://www.locoduino.org/spip.php?article180

Malheureusement je ne suis pas allé encore très loin car lors de la compilation pour réaliser le Gateway j'ai un message d'erreur que voici:
Citer
Arduino : 1.6.11 (Windows 10), Carte : "Arduino/Genuino Uno"

sketch\CAN_S88_Gateway.cpp: In function 'void Setup(unsigned char)':

CAN_S88_Gateway.cpp:88: error: no matching function for call to 'MCP_CAN::begin(const int&)'

         if (CAN_OK == can.begin(baudrate)){break;}

                                         ^

sketch\CAN_S88_Gateway.cpp:88:41: note: candidate is:

In file included from sketch\CAN_S88_Gateway.cpp:9:0:

C:\Users\jack\Documents\Arduino\libraries\MCP_CAN_lib-master/mcp_can.h:108:11: note: byte MCP_CAN::begin(byte, byte, byte)

     INT8U begin(INT8U idmodeset, INT8U speedset, INT8U clockset);       // Initilize controller prameters

           ^

C:\Users\jack\Documents\Arduino\libraries\MCP_CAN_lib-master/mcp_can.h:108:11: note:   candidate expects 3 arguments, 1 provided

sketch\CAN_S88_Gateway.cpp: In function 'void Loop()':

CAN_S88_Gateway.cpp:105: error: 'class MCP_CAN' has no member named 'readMsgBufID'

                 can.readMsgBufID(&Id,&Len,Buf);

                     ^

exit status 1
no matching function for call to 'MCP_CAN::begin(const int&)'

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

Une idée??? >:( >:(

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Rétrosignalisation/Bus Can
« Réponse #1 le: août 17, 2017, 11:37:50 am »
Ce n'est probablement pas la bonne bibliothèque mcp_can qui est chargée dans l'IDE.
Cordialement,
Dominique

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 745
    • Voir le profil
Re : Rétrosignalisation/Bus Can
« Réponse #2 le: août 17, 2017, 12:03:26 pm »
Et le répertoire de la librairie MCP_CAN_lib-master devrait s'appeler juste mcp_can en minuscules.

jacques68

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : Rétrosignalisation/Bus Can
« Réponse #3 le: août 17, 2017, 02:03:55 pm »
Bonjour
Merci pour vos réponses.
Pour la mauvaise librairie je vais regarder de ce coté voir si j'en trouve une autre.
J'ai pourtant prise celle indiqué dans le tuto.

jacques68

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : Rétrosignalisation/Bus Can
« Réponse #4 le: août 17, 2017, 09:15:30 pm »
Je ne vois pas d'autres librairies... :-[
La seule trouvée est celle du tuto: https://github.com/coryjfowler/MCP_CAN_lib
J'ai tenté une réinstallation mais idem je retombe sur le meme message

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Rétrosignalisation/Bus Can
« Réponse #5 le: août 17, 2017, 10:44:32 pm »
En cherchant un peu sur Locoduino :

http://www.locoduino.org/spip.php?article148

Mais, apparemment elle a changé.
Elle est aussi adaptée au 2515 à 8 MHz.

En regardant le .h il doit être facile de trouver la bonne syntaxe. Il n'y a pas toujours de mode d'emploi détaillé. Mais on fait comme ça aussi.

Je vais modifier l'article en conséquence dés mon retour à la fin du mois.
Merci d'avoir soulevé la question  ;)

Je peux poster ma version de référence pour l'article. Mais il faudra attendre un peu.
Dominique
« Modifié: août 17, 2017, 11:09:51 pm par Dominique »
Cordialement,
Dominique

jacques68

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : Rétrosignalisation/Bus Can
« Réponse #6 le: août 18, 2017, 07:43:36 pm »
Ok merci Dominique
Le lien que tu m'as fournit a fonctionné, j'ai pu compiler et plus de messages d'erreurs.
Je vais pouvoir avancer un peu plus. Par contre je viens de voir que mon quartz du 2515 est à 8 Mhz et je vois que dans le sujet du lien que tu as mi, il est à 16Mhz.
  Cela fonctionnera quand meme ou vaut mieux changer le quarz? J'ai dans mon stock des quartz 16Mhz :-*

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Rétrosignalisation/Bus Can
« Réponse #7 le: août 18, 2017, 07:50:55 pm »
Le fonctionnement à 8 MHz est indiqué sur le lien vers Seeedstudio. Ça doit être une evolution naturelle de la bibliothèque puisqu'on trouve des cartes CAN à 8 MHz maintenant.

Mais si toutes les cartes qui causent ensemble sont du même type, cela n'a pas d'importance !
À 8 Mhz les échanges risquent seulement d'être 2 fois moins rapide qu'à 16 MHz.

Cordialement,
Dominique

jacques68

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : Rétrosignalisation/Bus Can
« Réponse #8 le: août 20, 2017, 08:39:29 pm »
Aujourd'hui j'ai passé une journée de tests..... :-\
Pour l'instant pas concluant car aucun retour de rétro-signalisation.
Niveau cablage tout à l'air correct j'ai tout revérifié plusieurs fois.
J'ai testé juste avec 2 cartes Nano une utilisée comme Gateway et l'autre comme Detector. J'ai donc aussi 2 cartes Can. Sur les 2 cartes j'ai relié les 2 straps (j'ai testé aussi sans les reliés).
  Sur la carte Détector j'ai branché 6 fils un pour chaque canton de détection. Le 1er est branché sur la pin Rx du nano, le 2è sur la pin marqué 2 sur la carte le 3 sur 3 etc...
 Bilan:....pas de detection... >:(
J'ai passé la journée à chercher le pourquoi du comment en vain...
A première vue je dirai que cela vient du Gateway. En effet si je regarde ma carte Nano, une seule led est allumé. Sur la carte Detector les 2 leds sont bien allumées.
  Maintenant je peux me tromper, mais dans tous les montages que j'ai effectué, entre autre dans le domaine de la domotique ou j'utilise beaucoup de cartes Nano, les 2 leds sont allumées.
   Pour enlever le doute du Nano defectueux, j'ai téléversé le sketch dans un nouveau, mais aucune amélioration... :o
« Modifié: août 21, 2017, 02:13:08 pm par jacques68 »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Rétrosignalisation/Bus Can
« Réponse #9 le: août 21, 2017, 08:32:14 am »
D'après ce que je comprends, l'Arduino détecteur reçoit la rétro et la transmet sur le CAN. Ce sont 2 processus distincts à tester séparément.

Côté gateway c'est la même chose.

En décomposant ce qui fonctionne et ce qui ne fonctionne pas, je pense que tu vas trouver où se situe l'anomalie. Pour cela il faut écrire des programmes de test simples.

Bon courage.
Cordialement,
Dominique

jacques68

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : Rétrosignalisation/Bus Can
« Réponse #10 le: août 21, 2017, 08:48:06 pm »
 :) :)
A force de chercher on trouve...... 8)
  J'ai repris le programme en essayant de bien comprendre ce qui doit ce passer.  Pour moi comme tu le disais le Gateway ne fonctionnait pas correctement. En désespoir de cause j'ai chargé le programme dans un autre Arduino nano et du coup cela a fonctionner!!!
  Donc le soucis provenait de l'Arduino lui meme ou du programme mal chargé dans cet Arduino (je le testerai plus tard).

   Cela dit mon soucis n'est pas terminé un autre est apparu..... :'(
J'ai actuellement un circuit oval de test donc j'ai tout naturellement branché la détection via le bus can sur ce circuit. Je tourne avec une centrale z21 et le logiciel cdmrail.
   Quand le train passe dans une zone de détection je vois bien la detection sur l'ecran ......mais avec environ 4s de retard, le train est déjà sorti de sa zone quand la détection apparait à l'ecran.....Cela à vitesse réduite du train. Si le train tourne à pleine vitesse la pas de détection  du tout....

  Comme j'utilise un Can 8Mhz cela peut il provenir de celui-ci? Un 16 Mhz serait plus rapide. A moins que dans le programme l'on puisse augmenter la vitesse...

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2889
  • 100% Arduino et N
    • Voir le profil
Re : Rétrosignalisation/Bus Can
« Réponse #11 le: août 21, 2017, 11:00:34 pm »
Citer
  Comme j'utilise un Can 8Mhz cela peut il provenir de celui-ci? Un 16 Mhz serait plus rapide. A moins que dans le programme l'on puisse augmenter la vitesse...

À quelle vitesse est programmé le bus CAN ?
1Mb/s ? 500Kb/s ?

Je pense aussi qu'il faut bien relire mon article cite précédemment : il y a quelques précautions à respecter pour ne pas perdre des messages.
« Modifié: août 21, 2017, 11:05:03 pm par Dominique »
Cordialement,
Dominique

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1691
    • Voir le profil
Re : Rétrosignalisation/Bus Can
« Réponse #12 le: août 22, 2017, 08:49:17 am »
Même à 125kbits/s, il faut moins d'une milliseconde pour transmettre un message. Ce n'est donc pas La vitesse du bus et encore moins du quartz qui explique ce délai de 4s
Cordialement

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1691
    • Voir le profil
Re : Re : Rétrosignalisation/Bus Can
« Réponse #13 le: août 22, 2017, 09:02:19 am »
Quand le train passe dans une zone de détection je vois bien la detection sur l'ecran ......mais avec environ 4s de retard, le train est déjà sorti de sa zone quand la détection apparait à l'ecran.....Cela à vitesse réduite du train. Si le train tourne à pleine vitesse la pas de détection  du tout....

Je reviens sur cette dernière phrase : si le délai de 4s était dû à un délai de transmission de l'information dans le réseau ou la succession de réseaux, il n'y aurait pas d'absence de détection si La loco va vite.

Quel est le schéma du détecteur ?
Cordialement

jacques68

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : Rétrosignalisation/Bus Can
« Réponse #14 le: août 22, 2017, 08:48:11 pm »
J'ai refait des tests vite fait ce jour (pas eu le temps d'aproffondir) mais sans plus de résultats......
Pour le detecteur de courant c'est le meme que j'utilise avec la rétrosignalisation par Arduino. Fonctionnement impec. De plus mon détecteur est équipé d'une led et dès qu'un train pénètre dans un canton la led s'allume de suite et je vois simultanément à l'ecran la détection.
  Le shéma se trouve ici en milieu de page, avec un opto H11AA1: http://www.ho-ptit-train.be/Html/cablage_03.html
Je ne pense pas que le détecteur puisse etre responsable....