jeudi 8 novembre 2012

Automate DCC


Je vous présente un premier exemple d'automatisme que l'on peut réaliser avec un Arduino. Dans cette configuration, le micro-programme contenu dans l'Arduino effectue les étapes suivantes:
  • lorsqu'un évènement de présence est détecté dans une des deux zones d'extrémité du trajet, une commande de vitesse 0 est envoyée
  • attente de 5s
  • inversion du sens de marche et envoi d'une commande de vitesse 20.
Voici la vidéo du résultat (attention le son est un peu fort). Remarque: la longueur de la vidéo a été doublée au moment de l'envoi sur YouTube. Je ne comprends pas ce qui a pu se passer...


La programmation de ce genre d'automate est triviale (quelques minutes) et est basée sur les principes d'une machine à état. La combinaison de l'état courant et d'un évènement force le passage à un autre état en effectuant une action.

Ici, il y a deux états: "à l'arrêt" ou "en marche", deux évènements "détection zone 1" ou "détection zone 2", et enfin deux actions: "stop" ou "démarrage en sens inverse".

Ainsi: si l'état est "en marche" et qu'un évènement "détection" est capturé par l'Adruino, celui-ci envoi l'action "stop" et passe à l'état "à l'arrêt". Après une temporisation de 5s, l'action "démarrage en sens inverse" est effectuée et l'état devient "en marche"...

On peut facilement entrevoir la multitude d'automates qu'il est possible de réaliser: va-et-vient, manoeuvre, positionnement des aiguillages, signalisation, etc... Le plus important dans ce genre de montage est de pouvoir capturer des évènements sur le réseau et cela est rendu possible grâce aux détecteurs de courant.

Pour l'instant, cet exemple est très simple. Toutes les variables sont inscrites en dur dans le micro-programme. Cela signifie que l'adresse du décodeur, les identifications de zones et les vitesses ne peuvent être modifiées par des CV comme avec un décodeur... Au besoin, il faut reprogrammer l'Arduino. Dans mon cas, ce n'est pas un problème puisque l'ordinateur n'est pas loin, mais afin de rendre cet automate totalement autonome, il suffit d'ajouter quelques lignes de code pour prendre en considération une éventuelle configuration à l'aide de CV et sans ordinateur...

Pour conclure, la beauté de ce genre d'installation est qu'aucun autre câblage que celui du bus LocoNet/DCC est nécessaire... Il suffit de modifier le micro-programme au besoin et le tour est joué!

Si vous avez des questions, n'hésitez pas communiquer avec moi!!!


3 commentaires:

  1. Yo Patrick,

    Tout ça est vraiment intéressant, j'ignorais que ça offrait tant de possibilités!!!

    Demain, je retrouve JP à l'expo d'Orléans et je lui en parle ;-)

    Guy

    P.S. Je te communiquerai un lien pour les photos de l'expo.

    RépondreEffacer
  2. Salut Guy,

    Oui, ce petit Arduino est vraiment super. Certes, cela n'a rien à voir avec un contrôle complet par ordinateur, mais c'est très proche. Cela offre de nombreuses possibilités pour ceux qui veulent réaliser des automatismes. La capacité mémoire est suffisante pour implanter une logique très élaborée. En fait, c'est très intéressant lorsque justement on ne veut pas avoir à transporter un PC en expo ou qu'on a pas la place d'installer un PC à demeure près du réseau.

    Merci pour les photos! Dommage que je ne puisse pas aller à cette expo :(

    Patrick

    RépondreEffacer
  3. Bonjour
    Je suppose qu'il y a moyen de faire des démarrage en douceur et pareil pour le ralentissement?
    A+

    RépondreEffacer