Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation
Test et application sur ECOS
. Par : JPClaude
Vous répondez à :
Bonjour,
tout marche chez moi avec les programmes proposés sur le site.
Vous n’auriez pas modifier la vitesse du CAN ? les seules valeurs possibles sont les variables suivantes de nom :
CAN_5KBPS
CAN_10KBPS
CAN_20KBPS
CAN_31K25BPS
CAN_33KBPS
CAN_40KBPS
CAN_50KBPS
CAN_80KBPS
CAN_83K3BPS
CAN_95KBPS
CAN_100KBPS
CAN_125KBPS
CAN_200KBPS
CAN_250KBPS
CAN_500KBPS
CAN_1000KBPS
Bien cordialement.
26 Messages
-
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 1er avril 2018 17:51, par BUSCH Christian
Bonjour,
est ce que cela fonctionne avec un arduino pro mini ?
merci.
Christian-
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 1er avril 2018 19:04, par Jean-Luc
Bonjour,
L’Arduino Pro Mini a le même micro-contrôleur que le Nano, l’ATMega 328. La seule différence entre les deux modèles est :
- l’interface USB série qui est présente sur le Nano et pas sur le Pro Mini
- AREF qui n’est pas câblé à une broche de la carte sur le Pro Mini
Donc oui, ça fonctionnera sur Pro Mini
-
-
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 16 octobre 2018 18:58, par Pierre
Bonjour,
Au niveau des "detectors", est-ce que le système de consommation de courant que l’on trouve dans l’article "La Retro-signalisation sur Arduino" peut-être utilisé tel quel ?
J’ai en effet réalisé ce projet avec 40 cantons, mais les détections ’fantômes" sont nombreuses et le bus CAN pourrait peut-être me résoudre ce problème.
Cordialement
-
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 18 octobre 2018 12:21, par dominique
Peut-être pouvez-vous regarder ce que nous faisons pour l’expo d’Orléans et venir en discuter avec nous sur place :
-
-
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 3 mars 2019 13:33, par BUSCH Christian
Bonjour,
en compilant cans88gateway, j’obtiens les messages suivants :In file included from sketch\CAN_S88_Gateway.cpp:3:0 :
C :\Users\Christian\Documents\Arduino\libraries\PinChangeInt-master/PinChangeInt.h:177:0 : warning : "INLINE_PCINT" redefined
#define INLINE_PCINT inline
^
In file included from sketch\CAN_S88_Gateway.cpp:3:0 :
C :\Users\Christian\Documents\Arduino\libraries\PinChangeInt-master/PinChangeInt.h:149:0 : note : this is the location of the previous definition
#define INLINE_PCINT
est ce bloquant ou je peux passer outre ?
je précise que je suis novice dans le monde Arduino
Cordialement Christian -
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 4 mars 2019 08:59, par Jean-Pierre Claudé
Bonjour,
Je n’ai pas ce problème. Cela ne devrait pas se produire car dans PinChangeInt on ne devrait pas passer par la ligne 177 qui correspond au fait que l’on utilise que les ports A ou B ou C ou D ce qui n’est pas notre cas ici. Cependant ce n’est pas un problème ce n’est qu’un "warning" donc ce n’est pas bloquant.(PinChangeInt version 2.402)
Cordialement. -
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 7 mai 2020 21:53, par Pol Petitjean
Bonjour,
Merci pour ce super projet. Je me permet de m’adresser à vous car lorsque je veux envoyer vers l’Arduino Nano(aussi bien pour les Gateway que pour les detectors), j’obtiens un message d’erreur, la ligne suivante se met en surveillance : if (CAN_OK == can.begin(baudrate))break ; et le message suivant apparait :
no matching function for call to ’MCP_CAN::begin(const int&)’
Pouvez-vous m’aider par exemple en m’envoyant un exemple de configuration des fichiers.
Merci
Bien à vous
Pol -
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 8 mai 2020 09:21, par JPClaude
Bonjour,
tout marche chez moi avec les programmes proposés sur le site.
Vous n’auriez pas modifier la vitesse du CAN ? les seules valeurs possibles sont les variables suivantes de nom :
CAN_5KBPS
CAN_10KBPS
CAN_20KBPS
CAN_31K25BPS
CAN_33KBPS
CAN_40KBPS
CAN_50KBPS
CAN_80KBPS
CAN_83K3BPS
CAN_95KBPS
CAN_100KBPS
CAN_125KBPS
CAN_200KBPS
CAN_250KBPS
CAN_500KBPS
CAN_1000KBPSBien cordialement.
-
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 8 mai 2020 12:11, par Petitjean Pol
Bonjour et merci pour votre répons,
Non je n’ai absolument rien modifié le programme est tel que je l’ai téléchargé sur le site, mais apparement sur les différents forums qui parle de cette erreur il s’agirait d’un problème de librairie qui aurait été modifiée ou adaptée dans le temps, ne sauriez vous pas m’envoyer un exemplaire de votre programme avec la façon de le paramétrer c’est peut-être aussi moi qui ne paramètre pas bien.Je suppose si j’ai bien compris qu’il n’y a rien à modifier dans le programme Arduino sinon l’adresse de la carte ?
Autre question, quand on, injecte dans l’arduino nano, vous me confirmez bien que l’Arduino n’a pas besoin d’être connecté au bus CAN à ce moment là je suppose que c’est une programmation classique d’Arduino via le mini USB ?
Merci pour votre aide
Bien à vous
Pol -
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 8 mai 2020 20:38, par Pol Petitjean
Bonjour, Après de nombreux tests, réinstallation du logiciel Arduino re-téléchargement des librairies sur le site, malheureusement rien n’y fait toujours le même message. Apparement il s’agit bien d’un problème de bibliothèque qui ne correspond plus au programme, lorsque je télécharge la bibliothèque sur le site (le fichier ZIP)le fichier porte le nom : " MCP_CAN_lib-master " lorsque je charge la bibliothèque ZIP dans le logiciel de compilation de l’Arduino et que je veux l’installer elle ne se trouve pas à l’endroit habituel dans le gestionnaire des bibliothèques. Par contre si je vais dans inclure Bibliothèque elle se retrouve bien dans le menu déroulant à un endroit qui se nomme " Contribué Bibliothèques " Si je fais par exemple inclure une bibliothèque et que je choisis celle notée MCP_CAN_lib-master il m’insère la ligne suivante dans le compilateur : " #include <mcp_can_dfs.h> " . Là vous comprendrez que cela devient un peu trop technique pour moi, je me débrouille assez bien habituellement avec Arduino, mais là c’est un peu trop poussé. C’est pour cela que je me permet de vous demander s’il est possible de m’envoyer les bibliothèque originale que vous avez utiliser lors du développement de ce programme afin que je puisse tester et voir si c’est bien de là que vient le problème .
Ici c’est donc dès que je veux compiler afin d’envoyer sur l’Arduino que j’obtient le message d’erreur.Merci pour votre aide
Bien à vous
Pol Petitjean
-
-
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 9 mai 2020 11:04, par JPClaude
Je viens de mettre la bibliothèque MCP_CAN utilisée par ce projet, icône juste avant la conclusion.
Bien cordialement. -
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 11 mai 2020 08:28, par pol petitjean
bonjour, j’essaye de télécharger la bibliothèque via le lien mais j’ai une boule qui tourne mais rien ne charge.
Désolé de vous embêter autant mais voilà tout mes circuit sont réalisé il est évident que je suis impatient de voir fonctionner l’ensemble.
Merci beaucoup pour votre aide
Bien à vous
Pol -
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 11 mai 2020 10:48, par JPClaude
Bonjour,
le problème semble venir de votre coté car je télécharge sans soucis depuis le site Locoduino.
Peut être rebouter votre box et/ou PC ?
cordialement. -
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 11 mai 2020 15:27, par polpetitjean
Bonjour monsieur,Tout d’abord merci pour la librairie je l’ai installée mais rien n’y fait… Je m’excuse de vous déranger encore je suis embêté mais y a t’il une adresse mail à laquelle je pourrais vous joindre en privé afin de vous envoyer les photos et le câblage que j’ai réalisé car je n’en sort pas je ne parviens pas à déterminer s’il s’agit d’un problème de programmation ou de matériel. Le bus CAN semble correct 60 ohms avec les 2 résistances à chaque bout tension sur le bus de 0,3 Volts entre H et L Tension, entre la masse et L 2,3 Volts et entre la masse et H 2,6 Volts. Malheureusement je ne dispose pas d’oscilloscope afin de contrôler si la communication passe bien. J’ai déjà changé tout les Arduino Nano ainsi que les interfaces CAN pour être certain mais rien ne se passe. Je fais les test avec une intellibox 1ère version.
Merci
Bien à vous
Pol-
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 30 juillet 2020 00:08, par aurelien
Bonjour,
lecteur régulier de Locoduino, curieux des réalisations qui y sont présentées, je tombe sur votre projet et sur le problème rencontré par PetitJean. Je suspecte pour ma part un problème de programmation.
Dans la bibliothèque, fichier mcp_can_dfs.h, les constantes donnant les vitesses du bus CAN sont définies ainsi : #define CAN_XXXXKPBS n. En déclarant de cette façon, n va être du type "const int". Sauf erreur de ma part, avec un compilateur C moderne, cela signifie que c’est un entier codé sur 16 bits.
Or la fonction begin() attend un entier de type INT8U. Ce type de donné est déclaré ainsi : #define INT8U byte. Donc il s’agit d’un octet simple, soit un entier codé sur 8 bits.Si vous donnez un entier codé sur 16 bits à la fonction begin, elle ne saura pas l’utiliser, ne sachant pas comment le transformer en un entier codé sur 8 bits. Et il me semble que c’est exactement l’erreur que vous obtenez : le compilateur se plaint de trouver un "const int".
J’espère être clair… Pour se persuader que c’est le problème, essayez, temporairement, de remplacer can.begin(baudrate) par can.begin(x) où x est la valeur correspondant au débit recherché. Par exemple, pour obtenir le débit de 500 KBPS recherché ici, essayez can.begin(15). Je pense que ça devrait compiler.
Si cela corrige le problème, il faudrait certainement réécrire la bibliothèque pour éviter d’utiliser des #define, souvent source de difficultés.
Bon courage et… dites-nous si j’ai visé juste.
-
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 30 juillet 2020 09:26, par Jean-Luc
Bonjour,
Vous avez raison de dire qu’un nombre entier donné littéralement est un int (donc 16 bits signé sur un Arduino AVR). Mais :- Du point de vue du compilateur, il n’y a pas de différence entre CAN_250KBPS et 15 car le préprocesseur remplace CAN_250KBPS par 15 et le compilateur verra de toutes façons le littéral 15. Votre proposition d’essai sera donc infructueuse car il n’y a aucune différence entre les deux façons de faire.
- Le compilateur applique les règles de coercion de type du C quand il traite des littéraux passés en argument à des fonctions (et de manière générale dans les expressions). Ici, l’int sur 16 bits sera interprété comme un non signé 8 bits, ce qui se passe bien car les valeurs possibles pour les constantes définissant la vitesse vont de 1 à 18 et ces valeurs sont tout à fait représentables sur un entier 8 bits. Pour vous en convaincre vous pouvez écrire un petit programme reproduisant le cas et affichant la valeur reçue dans la fonction.
-
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 30 juillet 2020 21:22, par aurelien
Bonsoir,
en premier lieu, je suis un peu confus. Obnubilé par le message d’erreur du compilateur, qui me faisait penser à un problème sur le type de l’argument, j’ai occulté que int et byte étaient, pour le dire simplement, compatibles. Vos remarques sont correctes. Et mon test ne montrera rien.
En fait, je pense avoir cherché trop loin. Restons-en au strict message du compilateur : il ne trouve pas la fonction. En relisant plus attentivement la discussion, il apparaît que deux versions de mcp_can sont installées, puisque, dans son message du 08 mai, M. Petitjean précise pouvoir sélectionner l’une ou l’autre. Du coup (j’exprime ici une hypothèse), il est probable que le compilateur trouve d’abord la version "MCP_CAN_lib-master", et non celle venant de ce forum. Or, je suis allé voir dans le code de cette version, la fonction "begin" attend 3 arguments, là où la version utilisée par JPClaude n’en attend qu’un seul.
Donc, toujours une hypothèse, il se pourrait que la solution soit simplement de désinstaller la version la plus récente de la bibliothèque (MCP_CAN_lib-master) et de n’en garder qu’une seule, celle, certes plus ancienne mais qui semble fonctionner, fournie sur ce forum.
Bien à vous.
-
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 31 juillet 2020 07:45, par pol petitjean
Merci beaucoup je regarde à cela dès que possible super grand merci pour votre aide
bien à vous
Pol
-
-
-
-
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 31 mai 2022 10:45, par Petitjean Pol
Bonjour à toutes et tous, je me permet de vous contacter car après 2 ans de travaux à la maison et chez mes filles, je peux enfin me remettre a ma passion qu’est le modélisme ferroviaire. Je reviens donc vers vous car j’aimerais vraiment réaliser cette passerelle S88 ⇔CAN or tout est prêt, tout est câblé contrôlé et recontrôlé mais sur le premier Arduino que je veux programmer erreur comme décrite ci dessus il y a 2 ans maintenant,
aussi bien pour la partie détector que la partie Gateway même message dans les 2 cas (ligne 89 dans cas du GATEWAY au niveau de la ligne : if (CAN_OK == can.begin(baudrate))break ; :le message d’erreur suivant apparait lors de la compilation :
no matching function for call to ’MCP_CAN::begin(const int&)’
Je ne comprends pas les bibliothèques sont apparement bien en place, j’ai désinstallé Arduino je l’ai réinstallé j’ai copié les bibliothèque comme expliqué dans la documentation mais blocage complet. pouvez-vous m’aider svp.
Merci beaucoup
Bien à vous
Pol Petitjean -
Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation 31 mai 2022 14:33, par Petitjean Pol
Excusez moi de vous déranger de nouveau, mais pour ceux qui ont réaliser ce montage et ou celui-ci fonctionne, pourriez-vous m’envoyer la bibliothèque d’origine que vous avez utilisé pour le réaliser car visiblement d’après plusieurs forum, ce serait un problème de version de bibliothèque qui ne serait plus correct.
Merci beaucoup très bonne journée
mon mail : petitjeanpol@gmail.com-
Bonjour,
Comme recommandé pour un dépannage, il faut poster sur le forum.https://www.locoduino.org/spip.php?article298
Cordialement
Voir en ligne : Dépannage pour Une Passerelle entre le bus S88 et le bus CAN
-
Bonjour, en ce qui concerne le problème de programmation des cartes Arduino évoqué ci dessus le problème semble résolu un membre du forum m’a donné un lien vers une bibliothèque à télécharger, j’ai effacer celle qui était chez moi et installé celle fournie. Dès le premier essais tout à été ok.
Je vais donc installer tout cela et tester, en espérant ne plus avoir de souci cette fois.
Merci à tous pour votre aide très rapide et votre sympathie.
Très bonne journée.
Pol
-
-