Auteur Sujet: Début de projet !  (Lu 49580 fois)

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Début de projet !
« Réponse #15 le: avril 02, 2018, 07:28:27 pm »
Absolument d'accord, mais il faut s'adapter à l’expérience de ceux qui débutent (leur projet).

Mieux vaut commencer simple et procéder par étapes.
Cordialement

Sed

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
Re : Début de projet !
« Réponse #16 le: avril 24, 2018, 04:32:48 pm »
Bonjour,

nous voulions utiliser du 18v car l'idée est de faire un projet sur plusieurs années, avec plusieurs trains, et on avait compris que le 18v était donc beaucoup mieux, le 12V suffisant à un train et à vitesse non maximale.

Nous avons fini par faire fonctionner notre train via DCC++, on envoie des commandes via le moniteur série (<t 1 3 100 1>) et il roule simplement. (Y a-t-il une commande spécifique pour gérer l'éclairage d'un train également ?)

Par ailleurs, dans le cablâge qu'on doit faire sur le motorshield, il y a la voie principale et la voie de programmation. Nous n'avons fait que la voie principale et notre train tourne. Quel est le rôle de chaque voie ? Est-ce nécessaire d'en avoir deux tant qu'il n'y a qu'un train?

Si on veut coder un programme avec DCC++, et non juste taper une commande "en temps réel" sur le moniteur série, comment s'y prendre ? Il faut reprendre une partie du code DccppUno et inclure les librairies dcc++ utiles au début ?


Par souci de prix, on va commander les aiguillages via des servo-moteurs. Cependant, ça commence à faire beaucoup pour mettre sur une même carte arduino.

On a vu qu'il existait ce qu'on appelle "Master reader( ou writer)/ Slave sender" si on utilise une seconde carte. (est-ce intéressant / la meilleure option ? ou on peut utiliser un breadboard pour avoir plusieurs fils sur un 5V par exemple ?)

Encore merci pour toutes vos réponses et votre excellent site :)

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Re : Début de projet !
« Réponse #17 le: avril 24, 2018, 05:44:59 pm »
... et il roule simplement ...
Bravo, vous avez fait le plus difficile.

Y a-t-il une commande spécifique pour gérer l'éclairage d'un train également ?
revoir plus haut dans ce fil :
page 4 de Commands for DCCpp BaseStation.docx
CAB FUNCTIONS   3
To set functions F0-F4 on=(1) or off=(0): <f CAB BYTE1 [BYTE2]>   3
Cela dépend du décodeur de votre locomotive, potentiellement ce sont les fonctions F0 ou F4
Le document est la bible du DCC++, l'original est dans le git de DCC++.

voie principale et  voie de programmation
La voie de programmation ne sert qu'à programmer les décodeurs, à voir plus tard !

non juste taper une commande ... sur le moniteur série

C'est le rôle des manettes (throttles), soit matérielles soit logicielles. On envoie les séquences DCC++ sur RX/TX (le serial) de la base.
Il vaut peut-être mieux commencer par reproduire ce qui a déjà été fait et qui marche : voir sur ce site ou ailleurs.
Dominique en a présenté une simple (logicielle) qui tourne sous processing (même IDE qu'Arduino)
Mais la solution immédiate, c'est JRMI soit sur PC ou Mac ou autre.
Avec possibilité d’utiliser un téléphone portable ou une tablette en wifi.
Voir le site JMRI. http://jmri.org/
Pour les aiguilles, il faut des décodeurs d'accessoires qui reçoivent leurs ordres des manettes ou des TCO.
La aussi voir sur le site Locoduino ou https://rudysmodelrailway.wordpress.com/software/
Bien à vous.


Cordialement

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : Début de projet !
« Réponse #18 le: avril 24, 2018, 07:11:39 pm »
Citer
Pour les aiguilles, il faut des décodeurs d'accessoires

Pas nécessairement : DCC++ peut commander directement les aiguilles.

Un Mega a 80 ports et peut donc faire beaucoup de chose.
Cordialement,
Dominique

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Début de projet !
« Réponse #19 le: avril 24, 2018, 07:35:54 pm »
Merci Dominique d'avoir rectifié, ce n'est pas parce qu'on utilise pas qu'il faut ignorer.
Je recopierai 100 fois Commands for DCCpp BaseStation ...
(avec Word Open Office)
Cordialement

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : Début de projet !
« Réponse #20 le: avril 24, 2018, 08:45:03 pm »
Merci Michel,

On peut remarquer aussi que la totalité du projet va-et-vient qui fait l’objet de mon dernier article est entièrement réalisé à partir de DCCpp.

Mais en dehors des commandes DCC envoyées par DCCpp, tout le reste des entrées sorties est réalisé directement à partir de l’Arduino.
Cordialement,
Dominique

Sed

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
Re : Début de projet !
« Réponse #21 le: avril 30, 2018, 11:47:06 am »
Bonjour, on a essayé d'utiliser JMRI, mais on a un message d'erreur (voir fichier ci-joint).

Auriez-vous par hasard eu des problèmes semblables ?

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : Début de projet !
« Réponse #22 le: avril 30, 2018, 12:54:11 pm »
Alors la réponse est dans l’image : JMRI ne trouve pas la connexion sur COM4, donc c’est là qu’il faut chercher.
Cordialement,
Dominique

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Re : Début de projet !
« Réponse #23 le: avril 30, 2018, 04:14:09 pm »
Auriez-vous par hasard eu des problèmes semblables ?
Oui, on a ce problème quand on oublie de brancher l'Arduino.
Une fois l'Arduino connecté et sous tension, vérifiez le port COM sur lequel cet Arduino est identifié (*) et si besoin, modifiez ce port COM dans les préférences de JMRI.
(*) Ouvrez l'IDE de l’Arduino et regardez si il communique sur le Serial Monitor et avec quel port COM. Puis refermez l'IDE avant de poursuivre.
Cordialement

Sed

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
Re : Début de projet !
« Réponse #24 le: mai 01, 2018, 11:08:05 am »
Merci, on va continuer là-dessus dès qu'on aura l'occasion.
Sinon j'avais une autre question :
si on veut écrire notre programme, faisant rouler le train, changeant d'aiguillages, ouvrant un passage à niveau, etc..  puis le téléverser et laisser tourner dans l'arduino sans connexion avec un pc, est-ce que le mieux est d'utiliser dccpp et commanders ?

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3039
  • 100% Arduino et N
    • Voir le profil
Re : Début de projet !
« Réponse #25 le: mai 01, 2018, 11:32:42 am »
Regardes donc ce que j'ai fait dans le va et vient automatique : il n'y a plus de PC/Mac connecté du tout !
Cordialement,
Dominique

Sed

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
Re : Début de projet !
« Réponse #26 le: mai 03, 2018, 09:43:06 am »
Bonjour,
 
je me suis inspiré du va et vient (merci!) pour faire un premier code, juste dans le but de faire rouler le train.
(J'ai joint le code à ce message)

Cependant on a quelques soucis :

quand on a lancé le code la première fois, on a eu un problème avec notre gLocofunctions, et DCC_SIGNAL_PIN_MAIN. En revenant sur l'article "Bibliothèque DCCpp", on a vu que le DCC_SIGNAL_PIN_MAIN venait du DCC++ original, que je n'avais pas sur mon ordinateur.

J'ai donc téléchargé le zip via ce lien : https://github.com/DccPlusPlus/BaseStation

Suite à cela, plus d'erreur pour gLocoFunctions ou DCC_SIGNAL_PIN_MAIN.
On sait compiler sans souci, mais quand on téléverse :

"Bibliothèque non valide trouvée dans C:\Users\sed\Documents\Arduino\libraries\BaseStation-master : C:\Users\sed\Documents\Arduino\libraries\BaseStation-master"

On a donc deux questions :
1) Mon code permettra-t-il bien de faire rouler le train ?
2) Auriez-vous une idée pour ce souci de bibliothèque ? Apparemment ça enlève notre souci avec DCC_SIGNAL_PIN_MAIN, mais elle est non valide?

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 810
    • Voir le profil
Re : Début de projet !
« Réponse #27 le: mai 03, 2018, 10:01:53 am »
Bonjour

Dans DCCpp, DCC_SIGNAL_PIN_MAIN existe bien, il n'y a pas de raison d'utiliser le code original... La seule raison pour qu'il n'existe pas, c'est de compiler votre .ino pour autre chose qu'un Uno, un Nano ou un Mega2560. Ce sont les seuls trois versions d'Arduino compatibles. Dans le code original, il n'y avait même pas le Nano...

Ce code original BaseStation issu de Github n'est pas une bibliothèque, c'est pour ça que j'ai créé DCCpp. Si on veut l'utiliser, il faut le mettre comme un projet Arduino classique et modifier plein de fichiers pour obtenir le même résultat en moins clair que DCCpp.

Sed

  • Newbie
  • *
  • Messages: 16
    • Voir le profil
Re : Début de projet !
« Réponse #28 le: mai 05, 2018, 05:29:20 pm »
il est probable qu'on aie branché le motorshield par erreur sur une m0.
J'ai enfin pu réessayé et il semble tout reconnaître sans souci.

Cependant, le train ne roule toujours pas.

Voici ce que j'obtiens désormais lorsque je compile :



"Les options de compilation ont été modifiées, tout sera recompilé
C:\Users\sed\Documents\Arduino\libraries\DCCpp\src\Outputs.cpp:315:8: warning: extra tokens at end of #endif directive

 #endif USE_OUTPUT

        ^

C:\Users\sed\Documents\Arduino\libraries\DCCpp\src\Turnout.cpp:301:8: warning: extra tokens at end of #endif directive

 #endif USE_TURNOUT

        ^

Le croquis utilise 14106 octets (43%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 562 octets (27%) de mémoire dynamique, ce qui laisse 1486 octets pour les variables locales. Le maximum est de 2048 octets.
"


Est-ce que ces warnings sont importants et peuvent être la raison pour laquelle mon train ne roule pas ?


Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 810
    • Voir le profil
Re : Début de projet !
« Réponse #29 le: mai 05, 2018, 05:56:56 pm »
Non, ce n'est pas important, mais je pousserai une correction à ce sujet pour la prochaine mise à jour...
Il y a quantité de raisons qui peuvent faire échouer la génération du signal DCC. Pour comprendre le problème, il faut tester les différents éléments un par un.
Un bon moyen est d'utiliser l'exemple minimaliste SerialDCC. Une fois le même comportement que la version basestation obtenu (votre message du 24 à 16h32) à partir de messages série, cela validera la partie DCCpp logicielle comme matérielle.
Ensuite il faut vérifier que le code avec la structure Train fonctionne. Je vois déjà un problème, c'est que le premier argument de setSpeedMain devrait être un nombre entre 1 et 10, différent pour chaque train. Ca permet de gérer dix trains différents. Tel que codé actuellement, lorsque le second train recevra un ordre de vitesse, l'ordre du premier train n'existera plus que dans le décodeur de la loco, et dès qu'un court circuit ou une perte de courant va arriver la loco va s'arreter sans repartir.
Avez vous lu l'article à propos de DCCpp http://www.locoduino.org/spip.php?article228&var_mode=calcul? C'est essentiel à la bonne compréhension du fonctionnement de basestation (je n'ai pas changé le fonctionnement de base) et donc de DCCpp. S'y trouvent les explications sur les fonctions (l'éclairage des locos), les registres (dont je viens de parler), les accessoires (dont vous semblez avoir besoin), l'utilisation et le câblage des shields moteur (qui semble vous poser des problèmes), etc...