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 - Dominique

Pages: 1 ... 104 105 [106] 107 108 ... 187
1576
Vos projets / Re : RFID 13.56 Mhz & 125 Khz
« le: février 27, 2019, 11:46:10 am »
Mon cher Christophe,

J'irai même jusqu'à écrire que je ne t'ai pas attendu pour abonder dans le même sens que toi, notamment ici, le 18 avril, 2015, à 09:56:32 : http://forum.locoduino.org/index.php?topic=72.msg480#msg480  ;D


1577
Vos projets / Re : RFID 13.56 Mhz & 125 Khz
« le: février 27, 2019, 11:19:27 am »
Cher Christophe,

Je suis d’accord avec toi, tu as bien écrit que les détections ne sont liées qu’au niveau du programme.
Je faisais juste un rappel de l’indépendance entre le gestionnaire et les satellites.

Le système de Marcel est certainement très intéressant : il faudrait le décrire prochainement quand il sera bien avancé.

Quand à la « norme » du suivi des trains, il n’y a probablement pas de norme, mais il y a pas mal de litérature sur le sujet dans et hors Locoduino, notamment dans le dossier « modélisation... ».

1578
Vos projets / Re : RFID 13.56 Mhz & 125 Khz
« le: février 27, 2019, 10:49:26 am »
J’ai 2 remarques :

1) il n’y a aucun lien entre détecteur de consommation et détecteur RFID au niveau du satellite et même de la topologie du réseau. Le gestionnaire gère les messages indépendamment l’un de l’autre.
Là, Christophe nous donne un exemple où la perte de detection de présence signifie libération du canton, ce qui n’est pas conforme à une vraie gestion du suivi des trains (sauf si tous les véhicules sont graphités).

2) la possibilité d’avoir 2 détecteurs RFID I2C par carte fille est intéressante pour les doubles voies notamment et aussi à la frontière entre 2 cantons.
Mais on devrait pouvoir équiper la carte fille avec un seul détecteur si c’est possible (en omettant le multiplexeur).

1579
Merci Jean-Luc,

Cela a pour conséquence que je ne peux pas décrire les 2 boucles en sens inverse l’une de l’autre, à partir du moment où il y a une liaison entre les deux.

Donc sur une boucle un train circulera en marche avant et sur l’autre boucle un autre train circulera en marche arrière.

1580
C'est parti !

J'ai repris le schéma de mon réseau que je joins ici : les aiguilles ne changent pas de numéro (a0 à a20), par contre les zones z0 à z41 changent de nom VOIE_0 à VOIE_30. Certaines de ces VOIES sont déclarées en VOIE_GARAGE avec le numéro indiqué sur le schéma.



On voit que j'en ai perdu au passage : toutes les zones contenant une ou plusieurs aiguilles ne sont plus déclarées car remplacées par les aiguilles AIGUILLE_0 à AIGUILLE_20.

Ce qui me donne les identifiants suivants pour tout le réseau :
/*
 Indentifiants du reseau
 */
enum {
    /* voies */
    VOIE_0,
    VOIE_1,
    VOIE_2,
    VOIE_3,
    VOIE_4,
    VOIE_5,
    VOIE_6,
    VOIE_7,
    VOIE_8,
    VOIE_9,
    VOIE_GARAGE_10,
    VOIE_GARAGE_11,
    VOIE_GARAGE_12,
    VOIE_GARAGE_13,
    VOIE_14,
    VOIE_GARAGE_15,
    VOIE_16,
    VOIE_17,
    VOIE_18,
    VOIE_19,
    VOIE_20,
    VOIE_21,
    VOIE_22,
    VOIE_23,
    VOIE_24,
    VOIE_25,
    VOIE_GARAGE_26,
    VOIE_27,
    VOIE_28,
    VOIE_29,
    VOIE_GARAGE_30,
    /* aiguille */
    AIGUILLE_0,
    AIGUILLE_1,
    AIGUILLE_2,
    AIGUILLE_3,
    AIGUILLE_4,
    AIGUILLE_5,
    AIGUILLE_6,
    AIGUILLE_7,
    AIGUILLE_8,
    AIGUILLE_9,
    AIGUILLE_10,
    AIGUILLE_11,
    AIGUILLE_12,
    AIGUILLE_13,
    AIGUILLE_14,
    AIGUILLE_15,
    AIGUILLE_16,
    AIGUILLE_17,
    AIGUILLE_18,
    AIGUILLE_19,
    AIGUILLE_20, //52 elements
    /* Valeur speciale */
    AUCUNE_VOIE
};

Comme les sens de circulation normaux sont indiqués par les flèches, j'ai voulu déclarer les connexions entre les noeuds en suivant le sens de ces flèches.

Comme il y a une circulation interieure dans le sens trigo et une circulation extérieure dans le sens horaire, je tombe sur une petite difficulté pour connecter les aiguilles 0 et 2 à gauche de la gare et 8 et 11 à droite de la gare :

/*
     * Connexions des voies
     */
    // metro
    voieGarage30.connecteAVoie(voie29, ENTRANT);
    voie29.connecteSortantAVoie(voie28, ENTRANT);
    voie28.connecteSortantAVoie(aiguille15, SORTANT_DROIT);
    aiguille15.connecteEntrantAVoie(voie27, ENTRANT);
    voie27.connecteSortantAVoie(voieGarage26, SORTANT);
    // voie circulaire exterieure
    voie4.connecteSortantAVoie(aiguille16, ENTRANT);
    aiguille16.connecteSortantDevieAVoie(aiguille15, SORTANT_DEVIE);
    aiguille16.connecteSortantDroitAVoie(aiguille13, SORTANT_DEVIE);
    voie3.connecteSortantAVoie(aiguille13, SORTANT_DROIT);   
    aiguille13.connecteEntrantAVoie(voie5, ENTRANT);   
    voie5.connecteSortantAVoie(voie6, ENTRANT);
    voie6.connecteSortantAVoie(voie7, ENTRANT);
    voie7.connecteSortantAVoie(voie8, ENTRANT);
    voie8.connecteSortantAVoie(voie9, ENTRANT);
    voie9.connecteSortantAVoie(aiguille8, SORTANT_DROIT);
    aiguille8.connecteEntrantAVoie(aiguille7, ENTRANT);
    aiguille7.connecteSortantDroitAVoie(voie0, ENTRANT);
    aiguille7.connecteSortantDevieAVoie(aiguille6, SORTANT_DEVIE);
    aiguille6.connecteEntrantAVoie(voie1, ENTRANT);
    voie0.connecteSortantAVoie(aiguille4, SORTANT_DROIT);
    voie1.connecteSortantAVoie(aiguille5, ENTRANT);
    aiguille5.connecteSortantDevieAVoie(aiguille4, SORTANT_DEVIE);
    aiguille4.connecteEntrantAVoie(aiguille2, ENTRANT);
    aiguille2.connecteSortantDroitAVoie(voie2, ENTRANT);
    voie2.connecteSortantAVoie(aiguille17, ENTRANT);
    aiguille17.connecteSortantDevieAVoie(voie4, ENTRANT);
    aiguille17.connecteSortantDroitAVoie(voie3, ENTRANT);
    // voie circulaire interieure   
    voie23.connecteSortantAVoie(aiguille18, SORTANT_DROIT);
    voie24.connecteSortantAVoie(aiguille18, SORTANT_DEVIE);
    aiguille18.connecteEntrantAVoie(voie25, ENTRANT);
    voie25.connecteSortantAVoie(aiguille0, ENTRANT);
    aiguille0.connecteSortantDroitAVoie(aiguille1, ENTRANT);
    aiguille1.connecteSortantDroitAVoie(voie16, ENTRANT);
    aiguille1.connecteSortantDevieAVoie(aiguille3, SORTANT_DEVIE);
    voieGarage15.connecteAVoie(aiguille3, SORTANT_DROIT);
    aiguille3.connecteEntrantAVoie(voie17, ENTRANT);
    voie16.connecteSortantAVoie(aiguille9, SORTANT_DROIT);
    voie17.connecteSortantAVoie(aiguille9, SORTANT_DEVIE);
    aiguille9.connecteEntrantAVoie(aiguille11, SORTANT_DROIT);
    aiguille11.connecteEntrantAVoie(voie18, ENTRANT);   
    voie18.connecteSortantAVoie(voie19, ENTRANT);
    voie19.connecteSortantAVoie(voie20, ENTRANT);
    voie20.connecteSortantAVoie(voie21, ENTRANT);
    voie21.connecteSortantAVoie(voie22, ENTRANT);
    voie22.connecteSortantAVoie(aiguille14, ENTRANT);
    aiguille14.connecteSortantDroitAVoie(voie23, ENTRANT);
    aiguille14.connecteSortantDevieAVoie(voie24, ENTRANT);   
    // depot
    voieGarage11.connecteAVoie(aiguille12, SORTANT_DROIT);
    voieGarage12.connecteAVoie(aiguille12, SORTANT_DEVIE);
    voieGarage13.connecteAVoie(aiguille10, SORTANT_DEVIE);
    aiguille12.connecteEntrantAVoie(aiguille10, SORTANT_DROIT);
    aiguille10.connecteEntrantAVoie(aiguille20, ENTRANT);
    aiguille20.connecteSortantDroitAVoie(aiguille6, SORTANT_DROIT);
    aiguille20.connecteSortantDevieAVoie(voie14, ENTRANT); 
    voie14.connecteSortantAVoie(aiguille19, SORTANT_DEVIE);
    aiguille5.connecteSortantDroitAVoie(aiguille19, SORTANT_DROIT);
    aiguille19.connecteEntrantAVoie(voieGarage10, SORTANT);
    // passages voies interieurs <-> exterieures
    aiguille0.connecteSortantDevieAVoie(aiguille2, SORTANT_DEVIE);   
    aiguille8.connecteSortantDevieAVoie(aiguille11, SORTANT_DEVIE);

Au lancement du programme, le moniteur affiche 2 anomalies :
Direction deja fixee : AIGUILLE_2
Direction deja fixee : AIGUILLE_8
Nombre de voies : 52

Peut-être devrais-je déclarer les connexions autrement ???

En tout cas tous les tests d'itinéraires fonctionnent (je déclare sur le moniteur une voie de départ et une voie d'arrivée et le programme affiche le résultat). exemple :

De VOIE_1 a VOIE_GARAGE_26
VOIE_1 VOIE_2 VOIE_4 VOIE_GARAGE_26 VOIE_27 AIGUILLE_2 AIGUILLE_4 AIGUILLE_5 AIGUILLE_15 AIGUILLE_16 AIGUILLE_17

De VOIE_1 a VOIE_3
VOIE_1 VOIE_2 VOIE_3 AIGUILLE_2 AIGUILLE_4 AIGUILLE_5 AIGUILLE_17

1581
Vos projets / Re : RFID 13.56 Mhz & 125 Khz
« le: février 26, 2019, 06:58:42 pm »
On parle de la Puce NTAG213 : Ces Puces ont une mémoire disponible toujours assez faible, mais plus que suffisante pour un lien ou un texte court. Le NTAG213 dispose de 144 bytes.



Les 8 premiers octets de la mémoire contiennent l'UID + un code fabricant (Nxp = 04) :
The unique 7-byte serial number (UID) and its two check bytes are programmed into the first 9 bytes of memory covering page addresses 00h, 01h and the first byte of page 02h. Une page = 4 octets.
The second byte of page address 02h is reserved for internal data. These bytes are programmed and write protected in the production test.

Pages 04h to 27h for NTAG213 are the user memory read/write area.

Quand on achète un rouleau de 100 tags, tous les UID sont différents.
Souvent une série de ces UID ont une partie identique et quelques octets différents seulement. Après analyse des UID d'un lot de tags, il est facile de décider combien d'octets restent à transmettre en Can (moins de 7 donc) : A mon avis, ça ne vaut pas le coup de les transcoder et le gestionnaire du réseau doit en déduire le numéro de train facilement. L'apprentissage du gestionnaire est facile à faire.

Pour plus d'infos : https://www.nxp.com/docs/en/data-sheet/NTAG213_215_216.pdf


1582
Vos projets / Re : Re : RFID 13.56 Mhz & 125 Khz
« le: février 26, 2019, 06:29:19 pm »
Si les tags sont programmables, une paire d'octets suffira largement.

Je pense qu’il ne faut pas imposer de programmer les tags, car ils ont déjà une signature unique. C’est peut être utile s’il y a des centaines, voire des milliers de tags, ce qui est loin du cas général.

Je verrai bien un cas général où on transporte la signature sans traitement sur 8 octets maxi, et, optionnellement une zone programmée pour les cas très spécifiques.

Laissez moi regarder ce que ces tags permettent de faire, je compléterai ma réponse plus tard.

1583
Vos projets / Re : Re : RFID 13.56 Mhz & 125 Khz
« le: février 26, 2019, 05:32:13 pm »
Je n'ai pas approfondi sur la technologie même des tags, mais si tu me confirmes qu'ils sont programmables, alors effectivement, on peut n'utiliser que les 2 ou 4 premiers octets ce qui sera largement suffisant même pour les plus grands réseaux !!!

La bosse sur la photo, c'est parce que j'ai implanté rapidement le lecteur que Marcel m'a envoyé pour les tests. J'ai en effet vu sur la toile des réseaux où les lecteurs étaient complètement "enfouis", c'est bluffant.

Je vais regarder le codage des tags en rentrant mais c’est sur que c’est facile à gérer.

Pour l’encastrement, j’ai fait cela pour les moteurs d’aiguille : en les retournant ils affleurent le plan du réseau. Une petite fraiseuse à main est nécessaire.



Là c’est vite fait mais la voie reste bien plate !

1584
Vos projets / Re : RFID 13.56 Mhz & 125 Khz
« le: février 26, 2019, 05:21:11 pm »
Étant donné que chaque tag RFID dispose d’un code unique et d’une partie programmable, je pense qu’il sera toujours possible de sélectionner au plus 8 octets dans la réponse du lecteur qui garantit l’indentification d’un très grand nombre de tag.

J’opte pour le choix 2 mais sans transcodage, seulement un choix d’octets.

Cela évitera d’enregistrer toute la table des locos dans tous les lecteurs  >:(

Il restera à faire un petit outil de programmation des tags en liaison avec la bdd. Mais ce ne sera même pas nécessaire dans les petits/moyens réseau, avec le code unique existant dans les tags.

Pour rendre le lecteur I2C invisible, il faut juste creuser le support sous la voie. Sur ta photo, on voit une bosse qui, en N en tout cas, est une source de mauvais contact. Une petite feuille de papier, après tu peux balaster.

Jolie réalisation  ;D

1585
Bus CAN / Re : Problème reception rapide CAN
« le: février 26, 2019, 04:48:35 pm »
Bonjour,
Est-ce que vous pourriez commencer par simplifier votre programme pour ne conserver que la partie Can et, par exemple, compter les messages Can et afficher les compteurs toutes les secondes.

Comme il est courant de recevoir plusieurs centaines de messages par seconde, vu les exemples que nous décrivons sur Locoduino, qui marchent, je suis certain que votre problème est ailleurs.

En plus votre programme ne semble pas se rapporter au modélisme ferroviaire (une station météo ?) et comporte de multiples raisons de se bloquer (des conditions de sortie des boucles while, plutôt restrictives), peut-être des conflits d’interruptions, une lourde partie graphique et apparemment 2 voies Can, le tout dans un programme assez mal organisé.




1586
Discussions ouvertes / Re : Vers un FabLab Locoduino ?
« le: février 25, 2019, 06:13:30 pm »
J'ai corrigé les dates : 16, 23 et ajouté le 30 mars

Faites votre choix

Cordialement
Dominique

1587
Discussions ouvertes / Re : Vers un FabLab Locoduino ?
« le: février 24, 2019, 07:02:21 pm »
Plus on est de fous plus on rit  ;D

Un coup d’oeil à mon agenda donne quelque chose vers le 16 ou 23 ou 30 mars.

On fera même un petit reportage dans cette colonne.

Cordialement
Dominique

1588
Présentez vous ! / Re : Bonjour
« le: février 24, 2019, 06:57:04 pm »
Superbe machine et belle réalisation : ça donne envie  :P

J’espère que vous partagerez votre circuit de va et vient.

Cela vaudra le coup de compléter nos informations sur la réponse des decodeurs : Dans une machine du commerce en N il n’est pas facile d’augmenter la « charge » du décodeur qui est le courant consommé total de la machine, et plus simplement la distinction entre les mesures de courant des bits 1 et 0 par DCCpp.

Si on ne peut pas agir sur le courant consommé, il faut rechercher à améliorer la sensibilité du circuit de mesure de courant.

1589
Discussions ouvertes / Re : Vers un FabLab Locoduino ?
« le: février 24, 2019, 12:44:35 pm »
On pourrait y aller ensemble !

1590
Présentez vous ! / Re : Bonjour
« le: février 24, 2019, 10:28:13 am »
Bonjour, bienvenue et bravo pour votre persévérance et les résultats obtenus  ;D

DCCpp est une bibliothèque complète qui s’intègre dans l’IDE Arduino. Pour ce faire il faut aller dans le menu « gérer les bibliothèques » et rechercher DCCpp. L’IDE l’installe ensuite automatiquement et proposera des mises à jour s’il y en a.

Ainsi vous serez certain d’avoir les bons fichiers qui vont ensembles et les fonctions marcheront.

Pour la fonction identifyLocoIdMain(), le résultat peut dépendre du décodeur installé dans vos locos : certains n’obeissent pas bien !

Il y a des éléments de réponse ici :
http://forum.locoduino.org/index.php?topic=661.0

Cordialement
Dominique

Pages: 1 ... 104 105 [106] 107 108 ... 187