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

Pages: [1] 2 3 ... 27
1
Avant que Michel me traite de Ramses II ( ;D  ;D), il y a, depuis, la voie "K" où il y a des voies sur traverses plastiques, donc les rails sont isolés l'un de l'autre.

Eh non Denis, j'utilise aussi de la voie K et les 2 rails ne sont pas isolés l'un de l'autre. Car sinon, crois moi que j'utiliserais de la voie K en 2 rails, ce produit est cher mais génial.

2
Je parle des fils du pont tournant : 2 fils pour les rails, 1 fil pour le + du moteur, 1 fil pour le + de la bobine et un commun (-) entre le moteur = 5 fils.

3
Mais toute la problématique est autour du nombre de fils : 5 et pas un de plus (largement discuté avant). Donc si on veut du CAN sur le pont, il faut 2 fils en plus des 2 pour l'alimentation de la voie et la seul façon d'y arriver est de convertir l'alternatif "sous le pont tournant" avec un pont de diodes (ça fait beaucoup de ponts tout ça ;-)

4
Question à ceux qui maîtrisent mieux que moi les spécificités 3 rails. Cette modification est très pertinente aussi en 3 rails et dans ce cas on a en plus l'avantage de ne pas avoir à gérer l'inversion de polarité.

Mais pensez-vous qu'il soit possible de redresser le courant alternatif produit pour le 3 rails aussi facilement que pour le DCC. C'est à dire pont en H et condensateur polarisée de petite taille. Je rappelle en effet que je ne peux mettre sous le pont qu'un condensateur de 5mm de diamètre et le plus puissant que j'ai trouvé est un 100uF 25V (qui marche très bien en DCC).

Merci par avance pour vos réponses.

5
Ah Denis, le double flash et une option "vielle ampoule" que l'on peut activer ou non dans les options. Sur l'interface graphique en HTML, tu as aussi la possibilité d'éteindre ou d'allumer la LED.

6
Ca y est c’est terminé pour l’électronique et la programmation.

Dans la version la plus complète, on dispose du WiFi, mais aussi du CAN. L’alimentation électrique est prise sur le DCC, un pont de diode redresse le courant et deux régulateurs (12V et 3,3V) assurent l’alimentation du moteur et de l’électronique.



Un relais permet l’inversion de polarité sur le pont dans le cas où c’est nécessaire, quand la locomotive entre en avant et sort en avant ou entre en arrière et sort en arrière.



J’ai remplacé le moteur d’origine par un sb-modellbau. Le résultat est incomparable : moteur souple, silencieux et puissant. Je l’alimente même en PWM à 15 KHz pour avoir des accélérations au démarrage et des ralentis à l’arrivée.

Le nouveau moteur en bas et l’ancien en haut.



Voici l’ensemble monté sous le pont



Avec le même PCB, il est possible d’alimenter le pont, non plus avec le courant DCC mais en 15V DC pour le moteur d’origine ou en 12V DC si changement de moteur avec un sb-modellbau. Mais on ne dispose plus du bus CAN. Le changement de polarité dans les rails est aussi assuré dans ce cas.

J'ai un article en préparation qui expliquera tous ces montages. En attendant, voici une petite vidéo :



7
C’est quand même très compliqué comme code. Je ne connais pas le contexte mais ça ne va pas être facile à débugger s’il y a des erreurs (et il y en aura) et encore moins facile à maintenir.


QUESTION Idem ici peut on variabiliser en i ? Si oui selon quelle synthaxe?

Application du changement sur la sortie si on sait variabliser:

 switch ( cv_value ) {
      case 0:   // LED on/off in FWD direction
        ftn_queue[i].inuse = 0;
           digitalWrite(fpins[i], lastLedState[i] ? LOW : HIGH);
break;


Oui d’une manière générale, il vaut mieux utiliser des tableaux quand il y a un grand nombre de valeurs qui ont la même structure :

Oui cette syntaxe sous forme de tableau est préférable :
        ftn_queue[i].inuse = 0;
        digitalWrite(fpins[i], lastLedState[i] ? LOW : HIGH);

La première ligne est issue d’une structure qui a été instanciée sous forme de tableau, la seconde il s’agit de deux tableaux simples.

Personnellement, je procède de la façon suivante avec un #define:


#define NBRE_SOUHAITE     10

// Tableaux simples :
byte fpins[NBRE_SOUHAITE];
bool lastLedState[NBRE_SOUHAITE];

for(int i = 0; i < NBRE_SOUHAITE; i++) {
  fpins[i] = i;
  lastLedState[NBRE_SOUHAITE] = LOW;
}


Pour une structure :

typedef struct {
  uint8 inuse;
  uint16 xxx;
  bool zzz;
} Ftn_Queue;

//Les instances de Ftn_Queue sont crées sous forme de tableau
Ftn_Queue ftn_queue[NBRE_SOUHAITE];


for(int i = 0; i < NBRE_SOUHAITE; i++) {
  ftn_queue[i].inuse = i;
  ftn_queue[i].xxx = 0;
  ftn_queue[i].zzz = false;
}

Quand cela est opportun, il est grandement préférable de regrouper les variables dans une structure et de faire des instances sous forme de tableaux car comme on peut le voir, le code est plus concis, plus facile à lire et à comprendre et il y aura donc moins d'erreurs potentielles.

 
   


8
Composants / Re : Un nouveau composant prometteur : le VL6180
« le: mai 15, 2020, 06:20:03 pm »
Un autre composant du même genre : le TCRT5000 qu'on trouve très facilement.

C'est le composant que je montre en vidéo sur un autre fil : https://forum.locoduino.org/index.php?topic=986.msg10553#msg10553

Mais c'est justement l'objet de la discussion dans ce fil, il ne réagit que très peu aux surfaces sombres, or les dessous de nos locos sont souvent noirs.

Mais si on colle une étiquette blanche, alors là effectivement, ça marche bien (pour moi dans tous les cas) Voir vidéo.

9
Laurent,

Il faut utiliser la balise #code quand on insert du code pour que celui-ci soit plus lisible comme j'ai fait ci-dessus.

Bien à toi

10
Oui ces capteurs réagissent différemment selon la couleur du matériaux sur lequel ils se réfléchissent. Cela réfléchit très bien sur le blanc et pas du tout ou presque sur le noir et les couleurs sombres en général.

C'est d'ailleurs pour cela qu'il sont beaucoup utilisés pour les robots suiveurs de lignes.

Dans ma vidéo c'est bien pour cela que la cible est blanche.

Pour ce qui est des wagons ou des locomotives, il peut être envisagé est de coller une étiquette blanche sous le véhicule.

Quant à chercher à mesurer des distances, je ne m'y risquerais pas, mais en capteur tout ou rien...

11
Il n'y a pas de problème quand j'aliment en DC. Le problème vient (ou venait vais-je peut-être pouvoir dire) du DCC redressé.

Je dis venait (pour le problème) car pour l'instant, je n'ai plus de perturbation depuis que j'ai mis deux superbes régulateurs (https://fr.rs-online.com/web/p/regulateurs-a-decoupage/1933996/) et aussi, je pense que mon mac relié à l'USB de l'ESP32 génère aussi des perturbations.

Bon, il faut encore faire tourner le moteurs et quelques petites autres choses comme cela pour être sûr que rien ne part en cou...lle.

12
Bonjour Cédric,

J'utilise en effet le PULL UP interne à l'ESP32 (d'où le code transmis). Mais j'ai aussi fait le test avec une 10KΩ externe et je crois même que j'ai poussé à 100KΩ mais rien n'y fait.

Les capteurs sont tout ce qu'il y a de plus classique, de toutes façon, il n'y a vraiment comme différence que le fait qu'ils soient unipolaires ou bi-polaires et leur tension de fonctionnement.

J'utilise un unipolaire à l'arrière du pont pour l'indexation comme ça il garde l'information de commutation vu que celui ci ne sert qu'une fois. sur la roue crantée, c'est un capteur bi-polaire.

J'utilise des capteurs avec des tensions de fonctionnement de 2,5 à 6V pour profiter du 3,3V disponible sur la carte, je n'ai pas de 5V, que 3,3 ou 12V.

Pour moi, la solution est à chercher du côté de l'alimentation et probablement l'ajout d'une bobine à inductance couplée avec une alimentation à découpage.

13
Je n'ai même pas le moteur sur mon montage... et même pas la carte moteur.

J'ai refait mon montage progressivement sur breadbord en commençant par l'alimentation, envoi de courant DCC, puis pont de diode, puis condo, => OK, 17,xx V DC => convertisseurs (Tracopower ou 78xx) => OK, 12V d'un côté, 3,3V de l'autre.

Et puis arrivé à la lecture des capteurs, patatras.

Voici un code isolé simplement pour tester si le compteur ne réagit que quand on passe un aimant devant le capteur :


#define HALL_1               GPIO_NUM_2
volatile int compt = 0;

void IRAM_ATTR isr1() {
  compt++;                                // incrementation du compteur
}

void setup() {
  Serial.begin(115200);
  pinMode(HALL_1, INPUT_PULLUP);
  attachInterrupt(HALL_1, isr1, FALLING);
  delay(2000);
}

void loop() {
  Serial.println(compt);
  delay(1000);
}

14
Je me suis inspiré de cette réalisation :

http://stephane.ravaut.free.fr/Train_miniature/PlaqueTournante/DecodeurPlaqueTournanteFleischmann.html#MizajourPlaque

Il y a aussi des capteurs à effet Hall et pourtant pas de déclenchements intempestifs comme moi . Je ne comprends pas tout son montage pour l'alimentation mais il y une bobine à inductance 220 μH. Ce n'est pas elle qui élimine les champs magnétiques ?

15
Non, non, non, que le moteur !

Pages: [1] 2 3 ... 27