Auteur Sujet: Informations sur BUS CAN pour commande centrale DCC arduino  (Lu 15827 fois)

racdavnathewe

  • Newbie
  • *
  • Messages: 27
    • Voir le profil
Informations sur BUS CAN pour commande centrale DCC arduino
« le: novembre 18, 2021, 04:36:08 pm »
Bonsoir,
Je ne vois pas, ne comprends pas, comment dire à ma centrale DCC de faire ralentir, et ou arrêter, une locomotive.
Une motrice est détectée sur un canton, sur le canton précédent, celle qui suit doit ralentir et s'arrêter au feu.
Pourriez-vous m'éclairer ?
Merci

Tony04

  • Hero Member
  • *****
  • Messages: 570
    • Voir le profil
Re : Informations sur BUS CAN pour commande centrale DCC arduino
« Réponse #1 le: novembre 18, 2021, 05:58:27 pm »
Bonsoir racdavnathewe,

tu vas attaquer la partie la plus "intelligente" d'un réseau commandé par Arduino.

Il va falloir fouiller sur Locoduino pour en apprendre d'avantage, mais pour commencer, voici l'instruction qui va commander la vitesse d'une loco en langage C dans DCCpp:

DCCpp::setSpeedMain(1, adresse_loco, 128, vitesse, sens);

où "adresse_loco" est un nombre qui sera l'adresse DCC de ta loco, "vitesse" la vitesse entre 0 et 126 (et non 127 comme stipulé),  et "sens" un 0 ou un 1 pour définir le sens de marche

Tu as toutes les instructions dans "c:\Program Files (x86)\Arduino\libraries\extras\Doc\index.html"

Bon courage car tu vas en avoir besoin je pense.

Cordialement
Antoine

racdavnathewe

  • Newbie
  • *
  • Messages: 27
    • Voir le profil
Re : Informations sur BUS CAN pour commande centrale DCC arduino
« Réponse #2 le: novembre 18, 2021, 07:33:32 pm »
Bonsoir Tony04,
Merci pour ta réponse.
Si je comprends ce que tu me dis, le capteur de présence envoi une variable à la centrale DCC.
Mais comment le détecteur sait-il qu'il s'agit de tel ou tel motrice ?

Tony04

  • Hero Member
  • *****
  • Messages: 570
    • Voir le profil
Re : Informations sur BUS CAN pour commande centrale DCC arduino
« Réponse #3 le: novembre 18, 2021, 09:07:27 pm »
Et voila l'une des questions que nous nous sommes tous posé, et chacun a sa réponse. En fait c'est tout le travail de l'Arduino gestionnaire dont tu trouveras une très bonne explication ici:
https://www.locoduino.org/spip.php?article153
https://www.locoduino.org/spip.php?article154
https://www.locoduino.org/spip.php?article271
https://www.locoduino.org/spip.php?article132

Petite question par curiosité, pourquoi as-tu mis ce fil dans "Bus CAN" ? Te doutais-tu déjà que ce serait un passage obligé ?




Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3050
  • 100% Arduino et N
    • Voir le profil
Re : Informations sur BUS CAN pour commande centrale DCC arduino
« Réponse #4 le: novembre 18, 2021, 10:34:04 pm »
C’est sans doute parce que les messages Can correspondant aux événement du réseau (détections de présence zone, détections ponctuelles des zones d’arrêt, détection d’identification par RFID) permettent de suivre la position de chaque train en temps réel et de marquer les zones qui suivent chaque train pour y faire appliquer les consignes de conduite aux suivants (ralentissements et arrêt, avec la mise à jour des signaux).

Le bus Can est le bon moyen de faire parvenir tous ces messages au gestionnaire de façon fiable. Ce dernier n’a plus alors qu’à commander les trains en conséquence avec la commande de DCCpp si le gestionnaire est dans la centrale.

Pour moi le gestionnaire est à part et il commande la centrale via Can aussi.

On s’amuse comme on peut  8)
Cordialement,
Dominique

Tony04

  • Hero Member
  • *****
  • Messages: 570
    • Voir le profil
Re : Re : Informations sur BUS CAN pour commande centrale DCC arduino
« Réponse #5 le: novembre 18, 2021, 10:44:58 pm »
Pour moi le gestionnaire est à part et il commande la centrale via Can aussi.
On s’amuse comme on peut  8)

Nous sommes bien d'accord Dominique, et maintenant à racdavnathewe de s'amuser "un peu".

Bonne nuit à tous

racdavnathewe

  • Newbie
  • *
  • Messages: 27
    • Voir le profil
Re : Informations sur BUS CAN pour commande centrale DCC arduino
« Réponse #6 le: novembre 19, 2021, 07:27:48 am »
Bonjour à tous,
Merci pour vos réponses, et à moi de répondre à ta question Tony04.
Oui, je sais que toutes les informations peuvent passer par le bus CAN. C'est le principe du BUS, non !
Ne maitrisant pas bien la programmation, je ne vois pas comment traiter les différentes informations ramenées par les capteurs ...

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3050
  • 100% Arduino et N
    • Voir le profil
Re : Informations sur BUS CAN pour commande centrale DCC arduino
« Réponse #7 le: novembre 19, 2021, 09:31:53 am »
Un message Can est constitué d’un identifiant (un nombre) et de 8 octets de données.

On peut choisir des identifiants correspondant à chaque type de message, par exemple 10 pour une détection de présence, 11 pour une détection ponctuelle. Et les données contiennent alors les détails comme le numéro de zone, l’occupation ou libération. Pour un capteur RFID les données contiendront le numéro de train.

Côté gestionnaire, une instruction “switch (identifiant)” va permettre de décortiquer chaque type de message et de les traiter ne conséquence.

Regardes les articles sur le CAN (plusieurs) et les exemples…
Bon courage.
Cordialement,
Dominique

racdavnathewe

  • Newbie
  • *
  • Messages: 27
    • Voir le profil
Re : Informations sur BUS CAN pour commande centrale DCC arduino
« Réponse #8 le: novembre 30, 2022, 06:34:20 pm »
Bonsoir,
Je reviens sur ce post. J’avance sur mon projet. J’y vais par petite petites touches.
J’ai posé mes détecteurs de présence, par consommation de courant, et opté pour un freinage de type ABC.
Pour l’instant, la gestion de mes cantons est faite par arduino uno et la carte Shields 4 relais.
C’est pour tester tout ça surtout.
Pour piloter mes logos, j’utilise JRMI et DCC++ avec un arduino mega.
Comme j’envisage de tout piloter en arduino qui dialoguent sur bus CAN, je me triture le cerveau pour savoir comment connecter mon PC sur le bus ?
Actuellement, il est directement connecter sur le port USB de mon arduino mega qui me sert de centrale DCC.
Pourriez-vous m’éclairer ?
Mzrci

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3050
  • 100% Arduino et N
    • Voir le profil
Re : Informations sur BUS CAN pour commande centrale DCC arduino
« Réponse #9 le: novembre 30, 2022, 11:00:46 pm »
Bonsoir,

Réponse facile !
Utiliser un Arduino avec une interface Can : c’est l’Arduino qui communique avec les autres Arduino via le bus Can et le PC communique via l’USB avec cette passerelle Can-usb.

A vous de définir un protocole de commandes/réponses sur l’USB.

PS: on trouve pas mal de passerelles de ce type sur internet. Exemple:
https://www.lextronic.fr/interfaces-bus-can-8451
Mais c’est plus sympa à faire soi-même et bien moins cher  ;D
« Modifié: décembre 01, 2022, 07:57:07 am par Dominique »
Cordialement,
Dominique

racdavnathewe

  • Newbie
  • *
  • Messages: 27
    • Voir le profil
Re : Informations sur BUS CAN pour commande centrale DCC arduino
« Réponse #10 le: décembre 01, 2022, 09:03:43 am »
Bonjour,
Merci pour ta réponse.
Je vais regarder tout ça, pas mal de boulot en perspective ...

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3050
  • 100% Arduino et N
    • Voir le profil
Re : Informations sur BUS CAN pour commande centrale DCC arduino
« Réponse #11 le: décembre 01, 2022, 04:21:19 pm »
On voit que vos recherches avancent bien et vous ouvrez un nouveau sujet :
https://forum.locoduino.org/index.php?topic=1477 :D :D

Ce qui n’est pas nécessaire si c’est seulement pour changer le titre. Le mieux est de regrouper ces deux sujets. :D
Cordialement,
Dominique