Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - DDEFF

Pages: 1 ... 40 41 [42] 43 44 ... 50
616
J'ai bien conscience que ça va "polluer" ton exposé, mais je me pose quelques questions :
#ifdef __AVR__
#include <avr/pgmspace.h>
#endif

#ifndef __AVR__
#include <iostream>
#define F(string) string
#define PROGMEM
Je ne connais pas ___AVR__ ?

Le simple fait de mettre #define DEBUG au début suffit pour pouvoir afficher les essais ?
Tu mets les sorties Serial.print() entre #ifdef DEBUG .... #endif et elles sont affichées et si tu dévalides le #define DEBUG pour ne plus les afficher.
C'est sympa, ça.

J'ai adoré le :
void afficheLigne(byte nb)
{
  while(nb--) {
    Serial.print('-');
  }
  Serial.println();
}
C'est tout bête, mais marrant.

Et, dans mes efforts pour comprendre les pointeurs, je choisis "venantDe". Exemple :
bool Aiguillage::creeCheminVers(byte identifiant, byte dir, Voie *venantDe)
{
  if (idVoie() == identifiant) return true;
  else {
    if (direction() == dir) {
      if (mVoieSortantDroit != NULL) {
        if (mVoieSortantDroit->creeCheminVers(identifiant, dir, this)) {
          afficheNomVoie(idVoie());
          Serial.println(F(": droit"));
          return true;
        }
        else if (mVoieSortantDevie != NULL) {
          if (mVoieSortantDevie->creeCheminVers(identifiant, dir, this)) {
            afficheNomVoie(idVoie());
            Serial.println(F(": devie"));
            return true;
          }
          else return false;
        }
        else return false;
      }
      else return false;
    }
    else {
      if (mVoieEntrant != NULL) {
        if (mVoieEntrant->creeCheminVers(identifiant, dir, this)) {
          afficheNomVoie(idVoie());
          if (venantDe == mVoieSortantDroit) {
            Serial.println(F(": droit"));
          }
          else {
            Serial.println(F(": devie"));
          }
          return true;
        }
        else return false;
      }
      else return false;
    }
  }
}

Au début, il y a une étoile : Voie *venantDe
J'en déduis que c'est un pointeur ?

Puis, un peu plus loin dans un test, tu as : if (venantDe == mVoieSortantDroit)
Et là, c'est le contenu de la variable ?

Peux-tu m'expliquer la nuance ? C'est là que je bute.
Dommage, c'est une notion fondamentale.
Pour moi, si *venantDe est un pointeur, pour avoir le contenu, tu mets &venantDe...

D'avance, merci  :D


617
C'est d'une limpidité de cristal !  ;D
Et tu utilises des noms en clair pour les voies, pas des bytes. C'est un progrès aussi.  C'est beaucoup plus parlant ;D

Quelques bugs en lançant, mais c'est un programme non déverminé. Donc, rien de grave.

Pour mes 4 m, je ne suis pas inquiet. Il y a plein de solutions. Mais je vais essayer sans la tordre (j'aime bien les 2 x 2 diagonales bien droites).
Merci de t'en soucier.  ;)

618
Merci Jean-Luc,

Sur le bras que ça va me coûter, c'est sûr. Je m'y suis déjà préparé psychologiquement   :( :(
Tu comprends aussi pourquoi je suis particulièrement motivé pour que ce soit commandé par du tout-Arduino, très bon marché  ;D

Sur la longueur, en employant des éléments Peco classiques, je vais sur les 4,20m, c'est vrai aussi. :( :(

En fait, le problème vient des 3 croisements.
Comme ils sont reliés aux TJD, si on les laisse tels quels, cela définit un écart de voie qui se répercute sur les autres écarts de voie, même sans croisements.
Il faut donc, pour raccourcir la gare, quasiment ne laisser du croisement que le croisement lui même (sans les petits bouts de droite qui l'accompagnent) et faire de même pour les TJD.
Comme je n'ai pas les 4,20 m (on s'en doutait), je pense ainsi réduire la longueur totale de la gare.
Y'a du boulot, du charcutage, mais je tiens à la caser quelque part.
A priori, j'ai une pièce de 3,42 m x 2,57 m et j'aurais bien tort de me plaindre.

Ta démarche m'intéresse au plus haut point, évidemment.
D'autant que je vais pouvoir comparer avec ma solution SGDD qui a été inventée pour cette gare. Et qui fonctionne.
Mais elle utilise une méthode vraiment ... non-conventionnelle (voir SGDD (1) et (2) )
J'ai le programme, pour les curieux.

J'appelle le sens "normal" sens "horaire", mais c'est un détail.
On peut peut-être s'éviter les zones genre "voie 0" en disant que ce n'est jamais que la partie de rails qui fait partie de l'aiquille 0 ? (quand la zone est très courte)

Bon courage !
Et merci pour le plan à l'échelle  ;D ;D

619
Bibliothèques / Re : Souris DCC
« le: mars 06, 2016, 12:31:23 pm »
Désolé, mais si.

Nicolas le dit lui même dans le readme sur le github :
https://github.com/nzin/xpressnet_arduino

Cela n'enlève rien à l'intérêt de sa bibliothèque.

620
Bibliothèques / Souris DCC
« le: mars 05, 2016, 07:01:53 pm »
Voilà un sujet qui m'interpelle, comme on disait avant... :D

Une souris DCC qui marche avec le protocole XpressNet !
http://forum.e-train.fr/viewtopic.php?f=63&t=81074

Digital Modellbahn a eu la bonne idée de faire une bibliothèque XPressNet qui commande aussi les locos.
La bibliothèque XPressNet de Nicolas Zin, elle, ne s'occupant "que" des aiguillages. Je dis "que", mais je suis gonflé : c'est déjà formidable.  ;D

Voilà la bibliothèque :
https://sourceforge.net/projects/pgahtow/files/Arduino%20%28v1.0%29%20libaries/XpressNetMaster.zip/download
A partir de ça, le club de Nevers a développé une souris qui permet de conduire les trains.
Il y a quelques limitations (adresses courtes, p. ex.), mais c'est un grand pas en avant.  ;)
Si j'ai bien compris (bien que je ne voie pas pourquoi), cette souris ne peut être qu'esclave de la souris de la centrale (ex : multimaus).

Je cherche à développer un système tout Arduino, mais je pense aussi à ceux qui, nombreux, on déjà une centrale.  :)

621
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: mars 05, 2016, 11:48:41 am »
J'ai vu toutes les vidéos.
Encore une fonction vraiment pas courante : à l'écran, on choisit la couleur de l'éclairage du réseau, sur un cercle coloré (16 millions de couleurs !)
Et donc, faire le jour, la nuit, les éclairs, l'orage, etc,... n'est qu'un jeu d'enfant.

Il a vraiment pensé à tout !  :-*

622
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: mars 04, 2016, 11:39:18 am »
Je viens de regarder les premières vidéos (je conseille fortement de les regarder dans l'ordre).
Elles sont extrêmement bien faites (pour qui comprend l'américain, malheureusement).

Disons qu'on se rapproche vraiment de productions commerciales ("gold", pour ne pas citer de marque) :

La première vidéo est assez impressionnante : conduite aléatoire de 6 trains qui ne font donc pas toujours la même chose, ni dans le même ordre.
Et, pour autant, un vrai décor, typiquement américain.
Décor qui fait souvent cruellement défaut à ceux qui s'intéressent à la technique et qui le feront "plus tard"  ;D ;D ;D

1°) On a besoin d'un ordi, souris, clavier pour commander les trains

2°) Suit le programme en processing, assez costaud, pour commander le réseau, les CV sur la voie de programmation, les aiguilles, les circuits pré-enregistrés, ...
C'est bien fait.
Je ne l'ai pas implémenté complètement car il faut implanter d'abord certaines autres bibliothèques java avant. Mais je le ferai, maintenant que je commence à tâter de processing  ;)
Il y a aussi un certain ordre à suivre pour les ouvrir.

3°) Des bibliothèques Arduino pour gérer le DCC. Là, je ne connais pas. Mais tout y est (28 (!) fonctions par loco, 128 crans, ...) et assez costaud pour 6 trains simultanés.

On a même une fonction que je n'avais jamais vu (mais je ne suis pas spécialiste) : affichage, avec graphique historique (!) du courant consommé  :-*

Vraiment un sacré projet, complet. Chapeau l'artiste !

623
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: mars 03, 2016, 10:32:46 pm »
C'est vrai que j'ai eu un choc en voyant ça pour la première fois.
Et je n'avais pas tout vu, juste la partie github...(du 10/01/2016)

Je pense vraiment qu'on a intérêt à creuser, ça paraît prometteur.  ;D

624
Shields et Modules / Re : Carte Servomoteurs DCC + CAN
« le: mars 02, 2016, 07:43:23 pm »
Superbe, comme d'hab'
Et on ne la confondra pas avec celle pour le CAN, parce qu'elle est rouge  ;D ;D ;D

625
Shields et Modules / Re : Carte Pont tournant
« le: février 29, 2016, 08:12:42 pm »
Au passage, pour bern69, si tu as des question sur la façon dont SGDD marche, n'hésite pas à me poser la question.
Je suis très heureux qu'on s'intéresse à mes "élucubrations"  :D

626
Présentez vous ! / Re : Salut à tous
« le: février 29, 2016, 07:39:31 am »
Bienvenue à toi !
Content d'avoir un acteur supplémentaire. Tu ne seras pas le premier ancien d'Orange...  ;)
Et beau projet : une manette sans fils.

627
Vos projets / Re : arduino gare cachee
« le: février 22, 2016, 12:23:49 pm »
C'est sûr que le sujet des gares cachées peut occuper quelques articles.

Mon idée : le gare à gare (à ne pas confondre avec l'agar-agar  ;D)

On est dans une gare, sur une voie quelconque et on dit "je veux ranger le train dans telle gare cachée" et il se débrouille pour y aller, sur une voie libre.

Et, réciproquement, on est dans une gare cachée et on désigne la gare réseau vers laquelle on veut aller.
Mais là, on précise sur quelle voie, parce que le train de Reims, il va vers la voie du train de Reims et pas une autre.

En ce moment, je planche là dessus.
Le "il se débrouille" n'est pas aussi évident que ça parce que je ne veux pas expliquer au train tous les itinéraires possibles.

628
Vos projets / Re : Contrôle numérique des aiguillages
« le: février 21, 2016, 05:18:02 pm »
Salut Dominique,

Très intéressant comme démarche.   :D :D

J'aime plusieurs choses :
1°) au niveau programmation par des objets distincts, programmation propre et claire,
2°) que 2 aiguilles ne puissent pas être commandées en même temps => pas de surchauffe de l'alimentation,
3°) que l'impulsion soit calibrée => pas de surchauffe d'une bobine,
4°) le rattrapage toutes les 10s de la cohérence bouton <-> position aiguille (super idée  ;D),
5°) la gestion de la mise sous tension, avec double choix, en plus !

Ce qui me chagrine un peu (mais je dors la nuit, rassures-toi  ;)), c'est la centralisation qui amène des fils longs et, donc, les chances de perturbations puisque ce sont des intensités assez élevées.

Au niveau structure, j'aurais mis les relais à proximité des moteurs d'aiguille avec un bus 15V qui va de relai en relai (en regardant bien qu'il soit loin de tout).
Donc, des fils courts avec une forte intensité.
Et on ne balade plus que des courants très faibles pour alimenter les relais, alimentés souvent par des optos sur les cartes de relais. Donc des courants de commande faibles, diminuant les perturbations potentielles.

Par exemple, découper par barrette de 8 relais pour 4 aiguilles seulement. Et un bus CAN qui y va.

Mais, par contrairement à toi, je n'ai pas testé et je raisonne dans l'absolu. Quand j'aurais mon réseau, je centraliserai peut-être aussi, ça a aussi des avantages.

Et on exagère peut-être aussi lesdites perturbations ?...

629
Vos projets / Re : Arduino et Android via bluetooth
« le: février 19, 2016, 06:39:49 pm »
Salut Guillaume,

En ce moment, je suis un peu débordé (la préparation du déménagement, etc...).
Mais je pense que ce que tu proposes me titillera un jour prochain.
Je garde ça sous le coude pour te demander des précisions.  ;)

630
Vos projets / Re : TCO en processing
« le: février 13, 2016, 09:08:40 pm »
En ce moment, je suis un peu occupé à autre chose...
Je ne programme plus, mais j'ai des idées.  ;)

Programme à venir :
La vidéo précédente marche avec un onglet "_Train_01" qui fait partie du programme SGDD sur le DUE. Essai OK : on continue.

Étape suivante
: je prends un nano avec un potar et un inverseur.
Ce sera un "train". Le programme reprendra ce qui est actuellement dans _Train_01.

Il contient un programme qui fait un circuit :
byte    def_01[]  = { 105, 0, 109, 111, 113, 116, 118, 0, 127, 0, 130, 0, 105 };
ça, c'est que je rentre.

Il envoie les infos (occupation, position des aiguilles, ...) dans un bus CAN qui va vers le DUE.
En particulier il "appuie sur les boutons" pour demander les itinéraires.
ex : 105, 109.
Le DUE répond par la liste des aiguilles à bouger.

Le nano envoie l'info au DUE : les aiguilles sont en position.
Le DUE envoie au TCO la position des aiguilles.

Quand on bouge le potar, on fait varier le delai, ce qui simule la variation de vitesse.
Et donc, la rapidité avec laquelle les occupations de canton sont envoyées au DUE.
Puis affichées par le DUE au TCO (bus Série)

Comme l'horloge du Nano est différente de celle du DUE, on a une vraie simulation de train.

Au passage les couleurs des signaux sont gérées, avec l'orange cette fois.
En particulier, si on traverse une gare tout droit, on a le vert et si on est dévié, on doit avoir l'orange (ralenti 30 ou 60).
En changeant simplement la voie demandée pour traverser la gare, on va voir évoluer la signalisation.

Étape suivante :
Un autre nano (= un nouveau "train"), mais dans l'autre sens. On doit pouvoir tester les signaux et les ordres d'arrêt.

En gros, le programme du DUE sera prêt, sans scories de tests, etc.
Celui du TCO aussi.
Et, bien sûr, du bus CAN.

Étape suivante : ajouter la gestion de la position des aiguilles sur les nanos.

Étape suivante : gérer les gares cachées (choix d'une voie libre et dire, où qu'on soit "rentre le train en gare cachée 01, voie 02" en cliquant au TCO.

A suivre (quand je pourrais)  :(


Pages: 1 ... 40 41 [42] 43 44 ... 50