LOCODUINO

Parlons Arduino => Vos projets => Discussion démarrée par: bricoleau le novembre 11, 2017, 05:55:50 pm

Titre: Premiers pas de bricoleau
Posté par: bricoleau le novembre 11, 2017, 05:55:50 pm
Bonjour

J'ouvre ce fil de discussion pour exposer et suivre mon petit projet personnel, bénéficier de vos conseils.
Et si le résultat peut profiter à d'autres alors tant mieux.

Autant vous prévenir, on est partis pour un moment, surtout que je ne suis pas pressé et que ma disponibilité pour avancer est parfois en pointillés.
Alors voici le début :

Je pratique arduino depuis plusieurs années, dans d'autres contextes que le modélisme ferroviaire, pour lequel je n'ai quasiment aucune expérience.
A force de lorgner de manière assidue sur les excellents articles de locoduino, j'ai décidé de me lancer dans l'aventure.
Donc en gros c'est grâce (ou à cause?) de vous que je suis ici aujourd'hui, alors il va falloir m'aider  :P

Mon idée est de fabriquer une sorte de banc de test pour locos et montages de tous poils.
L'objectif est d'avoir un petit réseau prototype, pour expérimenter tout ce qui a trait à l'électronique autour de la gestion d'un réseau miniature.
D'abord en CC, je verrai plus tard le DCC.
La principale contrainte est l'espace disponible chez moi pour cette réalisation, d'où le choix d'opter pour l'échelle N.

Mon équipement de départ :
Coté modélisme : une loco (minitrix 2053), un set de rails (PECO ST-300)
Côté électronique : des cartes arduino de toutes sortes, plein d'autres cartes diverses, un stock de composants, plaques de prototypage, une station de soudage, un oscillo, ...
En dehors du matériel roulant et des voies, j'ai l'intention de tout faire en DIY.

Ma roadmap fourmille d'idées, mais la toute première étape va être de faire rouler la bestiole.

Pour cela, je pense partir sur une alim stabilisée de type industriel 12VDC 3A, avec un montage piloté par un arduino pour hacher la tension en PWM.
Les sources qui me servent de référence sont :
La PWM : Qu’est-ce que c’est ? (2) (http://www.locoduino.org/spip.php?article120)
La PWM : Qu’est-ce que c’est ? (3) (http://www.locoduino.org/spip.php?article202)
La PWM : Qu’est-ce que c’est ? (4) (http://www.locoduino.org/spip.php?article203)
Tension hachée et pertes par effet Joule (1) (http://modelleisenbahn.triskell.org/spip.php?article44)
Tension hachée et pertes par effet Joule (2) (http://modelleisenbahn.triskell.org/spip.php?article45)
Discussion sur la synchronisation des signaux en PWM (http://forum.locoduino.org/index.php?topic=36)

J'ai bon jusque là?  :D
Titre: Re : Premiers pas de bricoleau
Posté par: Jean-Luc le novembre 13, 2017, 08:23:59 am
Oui Oui :)

Il y a même une carte canton qui existe :)
Titre: Re : Premiers pas de bricoleau
Posté par: Dominique le novembre 13, 2017, 09:36:02 am
Merci Bricoleau, de bien vouloir partager ton expérience ici à Locoduino  ;D

Citer
En dehors du matériel roulant et des voies, j'ai l'intention de tout faire en DIY

Je suis dans le même état d’esprit mais en DCC, bien que je reconnaisse que les cartes PWM de Jean-Luc, c’est ce qui se fait de mieux  :P

Bon courage et vivement tes premiers résultats.
Amicalement
Dominique
Titre: Re : Premiers pas de bricoleau
Posté par: bricoleau le novembre 13, 2017, 07:54:36 pm
Il y a même une carte canton qui existe :)

J'ai vu cela : http://forum.locoduino.org/index.php?topic=74.0 (http://forum.locoduino.org/index.php?topic=74.0)
C'est magnifique !!!

Mais je ne vise pas aussi haut.
Et pour pinailler je note quand même qu'il reste une arduino nano en greffon sur la carte, alors qu'il serait possible d'aller au bout de la logique en intégrant un atmega dans le pcb.

De mon côté, je suis plutôt sur une approche inverse.
Je pars sur l'intégration de cartes toutes faites, vendues en masse sur le net, et reliées entre elles via quelques soudures.
C'est certainement une approche de bidouilleur à gros doigts, mais cela me semble quand même plus accessible / plus facile que de concevoir et (faire) fabriquer des circuits imprimés spécifiques, pour ensuite souder unitairement tous les composants dessus.

Mes réalisations ressemblent plutôt à ceci : http://forum.locoduino.org/index.php?topic=124.msg1057#msg1057 (http://forum.locoduino.org/index.php?topic=124.msg1057#msg1057)

Bon d'accord c'est beaucoup moins sexy  ;D

Ma carte arduino de prédilection est la mini pro 5V, que j'achète en ligne pour une misère et par demi-douzaines.
Je trouve la nano trop luxueuse, avec son interface usb inutile en fonctionnement  :P

Sur ce projet, je pense réaliser un certain nombre de montages indépendants, tous à base de mini pro, et les faire dialoguer via un bus can.
Au départ, je n'étais pas forcément convaincu de la nécessité du bus can.
Mais après moultes recherches et documentation, j'en cerne à présent les bénéfices pour notre domaine d'application.
Pour autant, mon approche d'implémentation hardware du bus consiste à intégrer des cartes d'interface can toutes faites, reliées entre elles.
Celles qui sont décrites ici : http://forum.locoduino.org/index.php?topic=2.msg2281;topicseen#msg2281 (http://forum.locoduino.org/index.php?topic=2.msg2281;topicseen#msg2281)

NB : actuellement leur prix plancher est à 1€19 pièce mais avec un délai de livraison à 50 jours.
Du coup je me suis fourni à deux fois plus cher, pour constituer un premier stock sous une à deux semaines.
Même à ce tarif, le coût reste dérisoire.

Ainsi, le coeur de chaque montage sera constitué d'un couple arduino pro mini + carte can.
Et autour, quelques composants additionnels soudés sur une plaque de prototypage, comme par exemple le circuit de commande en PWM pour hacher la tension des voies.

Titre: Re : Premiers pas de bricoleau
Posté par: Jean-Luc le novembre 14, 2017, 09:03:38 am
Bonjour,

J'ai également des Pro Mini mais j'ai un soucis avec ces Arduino. L'alimentation n'est pas conçue pour permettre une alimentation via le FTDI et via RAW simultanément, les deux alims seront en conflit et soit le FTDI, soit le régulateur du Pro Mini prendrons un courant inverse. Il aurait fallu une paire de diodes schottky. Résultat, quand on veut développer/débugguer/configurer le Nano in situ, ça ne va pas. Donc je préfère les Nano qui sont légèrement plus chers mais qui permettent de se passer du FTDI et n'ont pas ce problème d'alimentation. De plus j'intègre maintenant tout le temps une interface ligne de commande pour configurer le logiciel, ça me semble plus simple de pouvoir brancher l'USB direct et j'ai besoin d'alimenter à la fois par l'USB et l'allié de la carte.

Pourquoi ne pas avoir intégré un 328 directement ? C'est plus cher que de mettre un Nano et ça m'aurait demandé des développement supplémentaires :)

Le CAN est prévu à 1Mbits sur cette carte car les alims échangent beaucoup de messages avec des latences contraintes. Les cartes CAN que tu cites plafonnent à 500kbits.

Quant-à la carte, elle est disponible sur demande. Si tu veux synchroniser des cantons et refaire la même chose, les cartes à pastilles vont te donner du fil à retordre (enfin tu vas souffrir beaucoup beaucoup plus qu'avec une carte ad-hoc).
Titre: Re : Premiers pas de bricoleau
Posté par: bricoleau le novembre 14, 2017, 09:36:30 pm
Merci pour toutes ces informations

J'avais bien vu la limite des cartes can à 500 kps, liée au quartz à 8Mhz.
Ce qui m'intéresse c'est la mise au point, plus que l'observation d'un résultat fini "qui marche", aussi je vais poursuivre dans mon idée d'essayer d'utiliser au mieux des cartes à pas cher, assemblées de manière artisanale.
C'est sûr que je vais au devant d'obstacles  :P

Pour les mini pro je n'avais pas mis le doigt sur le conflit 5V/raw, car habituellement je n'utilise pas le raw (mes cartes sont alimentées en 5V régulé).
Jusqu'ici je n'ai pas rencontré de problème particulier à l'utilisation. C'est vrai qu'il faut utiliser un convertisseur usb/ttl pour la brancher au micro, mais cela ne me gêne pas. On voit sur la photo de mon montage les 4 connecteurs disponibles pour ce branchement.
Nano ou mini pro c'est très proche. La différence de prix est négligeable. La première est plus facile à raccorder, la seconde est un poil plus petite.

Quant à la synchro des cantons, c'est plus loin dans ma road map, même si j'ai déjà quelques idées sur le sujet...
Titre: Re : Premiers pas de bricoleau
Posté par: bricoleau le décembre 02, 2017, 03:47:12 pm
Voilà les premiers tours de roue  :D

Une petite video pour immortaliser l'instant :
https://youtu.be/HGzpOHe0nUQ (https://youtu.be/HGzpOHe0nUQ)

Le montage qui commande le PWM est celui de l'article La PWM : Qu’est ce que c’est ? (4) (http://www.locoduino.org/spip.php?article203)
(http://www.locoduino.org/local/cache-vignettes/L610xH379/amplipwm2-897f3.png?1487243986)

Reproduit sur une plaque de prototypage dont la photo est donnée en pièce jointe

Les deux transistors sont des 2N2222
Les deux diodes sont des 1N4007
Le Mosfet est un IRF540N
J'ai utilisé une résistance de 22 Ohms pour R1 (fonction = limiter le courant de décharge) n'ayant pas de 15 Ohms sous la main.

Le code chargé dans l'arduino est réduit à sa plus simple expression pour le test
void setup() {
  pinMode(3, OUTPUT);
  digitalWrite(3, HIGH);
  TCCR2B = (TCCR2B & B11111000) | 1; //PWM 32 kHz
  Serial.begin(9600);
}

void loop() {
  if (Serial.available()) {
    uint8_t pwm = Serial.parseInt();
    Serial.println(pwm);
    if      (pwm ==   0) digitalWrite(3, HIGH);
    else if (pwm == 255) digitalWrite(3, LOW);
    else analogWrite(3, 255 - pwm);
  }
}
Titre: Re : Premiers pas de bricoleau
Posté par: bricoleau le décembre 02, 2017, 04:20:03 pm
Les rails PECO setrack me semblent être de bonne facture.
Les aiguillages sont dotés d'un petit ressort qui plaque bien les aiguilles contre les rails d'un côté comme de l'autre, mais je me demande si cela ne posera pas un problème à la motorisation.

Par contre j'ai vite laissé tomber leurs clips de raccordement électrique.
Je trouvais le contact médiocre, tant côté rail que fil d'alimentation.
Un petit point de soudure de fil sous deux éclisses me semble bien préférable.

N'y connaissant pas grand chose, je m'interroge sur la loco achetée d'occase car j'ai l'impression que son comportement est "fatigué".
Les symptômes :
Si je commence avec un pwm à 60/255, les phares s'allument mais la loco ne bouge pas.
Si je monte alors à 80 ou 90/255, la loco semble vouloir se mettre en branle, avance très faiblement et finit quelquefois par s'éteindre complètement et là rien d'autre à faire que de tout éteindre, attendre un peu et recommencer. On dirait une sécurité.
Si je démarre directement à 150/255, la loco avance, d'abord tout doucement, puis accélère progressivement sur 10 ou 20 secondes jusqu'à atteindre une bonne vitesse.
Quand je vois qu'elle est lancée je réduis alors le pwm. Sur la video elle tourne à 90/255.

Ce comportement vous semble t'il normal?

J'ai vérifié le montage plein de fois à vide (hors loco), y compris à l'oscillo, sans rien voir d'anormal.
Titre: Re : Premiers pas de bricoleau
Posté par: Jean-Luc le décembre 02, 2017, 06:45:41 pm
Bonsoir,

Y a-t-il des composants dans la loco ? condensateur par exemple.
Titre: Re : Premiers pas de bricoleau
Posté par: bricoleau le décembre 02, 2017, 07:04:34 pm
Je dirais que non

Je n'ai trouvé que quelques pages de documentation sur cette loco, toutes en allemand, par exemple là (http://www.mobadaten.info/wiki/TRX_2053_DB_III_85_Tenderlokomotive)

La seule chose signalée est que l'embrayage est à la norme N, ce qui ne me cause pas.

Je voulais vérifier en démontant la bestiole mais n'ai pas trouvé comment procéder. Il y a bien deux vis dessous, mais une fois enlevées il n'y a rien qui vient et je n'ai pas voulu forcer.
C'est vraiment petit le N.
Titre: Re : Premiers pas de bricoleau
Posté par: Jean-Luc le décembre 02, 2017, 07:08:27 pm
C'est vrai que le comportement laisse penser à un gommage, un mélange de frottement sec et visqueux.
Titre: Re : Premiers pas de bricoleau
Posté par: bricoleau le décembre 02, 2017, 08:07:47 pm
Peut-être un ampérage insuffisant au niveau du moteur?

La semaine prochaine je vais recevoir une seconde loco, neuve celle-ci, en provenance de DM toys.
Si le comportement est correct cela éliminera tout doute sur le montage.

J'attends aussi avec impatience mes modules can d'ici quelques jours également :P
Titre: Re : Premiers pas de bricoleau
Posté par: bricoleau le décembre 16, 2017, 11:47:45 am
Bonjour

Avec une loco fleischmann neuve, mêmes symptômes mais en moins prononcés.
Une même valeur (faible) de PWM peut conduire à :
- si la loco est à l'arrêt : rien du tout
- si la loco est en mouvement : un ralentissement suivi d'une vitesse très lente mais constante

Je vais essayer de pousser plus avant les contrôles de mon montage de hachage de tension, mais je me dis que c'est peut-être un comportement normal : la résistance mécanique au mouvement est peut-être plus forte lorsque la loco est à l'arrêt.
Ca m'intéresserait d'avoir vos avis car je suis vraiment néophyte en contrôle de moteurs.
Titre: Re : Premiers pas de bricoleau
Posté par: Jean-Luc le décembre 16, 2017, 07:53:54 pm
Oui la résistance mécanique est plus forte à l’arrêt. Tu as les frottements mais également l’énergie à amener pour accélérer la loco.

Tu as deux choix :

1) conserver une fréquence de PWM élevée avec les avantages du silence et de la bonne santé du moteur. Si tu veux de beaux ralentis, il faut faire un asservissement de vitesse.

2) baisser la fréquence vers la centaine d’herz (123 où 245). Ca produira un son, un Si un peu faux a l’octave 1 ou 2, et les moteurs dissiperons 2 fois plus de chaleur qu’avec une tension continue conduisant à une vitesse identique. Avec un moteur à rotor sans fer et aimant au néodyme, ça risque de désémanter le moteur (les aimants au néodyme perdent de manière irréversible leur aimantation vers 80ºC)
Titre: Re : Premiers pas de bricoleau
Posté par: bricoleau le décembre 16, 2017, 11:08:47 pm
Merci pour ces précisions
Bien évidemment, je vais partir sur un asservissement de vitesse, en conservant un hachage à haute fréquence.

Ce qui m'amène à une autre question de néophyte en moteurs : est-ce qu'une mesure du courant consommé permet d'évaluer la vitesse de rotation du moteur de manière fiable?

J'ai un acs712 et un max471 sous la main, je comptais justement voir ce que je pouvais en tirer de manière expérimentale avec une loco... quand j'aurais fini de jouer avec les interface CAN que j'ai reçues cette semaine  :D
Titre: Re : Premiers pas de bricoleau
Posté par: msport le décembre 16, 2017, 11:13:41 pm
Non, à priori un moteur bloqué consomme plus qu'à vide. C'est la force contre électromotrice ( FCEM ~ tension) qui reflète la vitesse.
Titre: Re : Premiers pas de bricoleau
Posté par: Jean-Luc le décembre 16, 2017, 11:18:50 pm
Le courant donne une mesure du couple, pas de la vitesse de rotation

Pour mesurer la vitesse de rotation, il faut mesurer la force contre électromotrice (FCEM)

Pour ce faire, on coupe la PWM, on attend quelques dizaines de µs que le courant tombe à zéro (inductance du moteur) et on mesure la FCEM aux bornes du moteur. On calcule la PWM à appliquer et on la remet en marche.

Sur mon proto qui est une reproduction en Arduino d'un système qui tourne sur PIC depuis maintenant 3 ans, la PWM est coupée toutes les 10ms.

EDIT: Oups, grillé :-)
Titre: Re : Premiers pas de bricoleau
Posté par: bricoleau le décembre 18, 2017, 11:01:16 pm
Ok ok
Sur le principe c'est ce qui est expliqué par exemple là : http://amfn.nice.free.fr/alim.htm (http://amfn.nice.free.fr/alim.htm)

Donc je coupe l'alim du moteur, j'attends éventuellement un pouillème, puis je mesure la tension résiduelle sur le rail, issue du moteur qui continue à tourner par inertie mécanique, agissant alors comme un générateur.
Je vais tâcher de commencer par observer le phénomène à l'oscillo, pour bien visualiser à quoi j'ai à faire.

Pour mesurer la tension résiduelle, est-ce que ça peut être aussi simple que de passer par un diviseur de tension et des analogread() de l'arduino?
Voire éventuellement de passer directement par les registres de l'atmega pour des lectures plus rapides?

NB : avec ce montage de hachage de tension, j'ai un rail qui reste à 12V, l'autre qui est haché à GND. C'est celui-là qui m'intéresse.
Lorsque le MOSFET est non passant, le rail est "en l'air" (au bémol près de la diode roue libre et du moteur de l'éventuelle loco présente sur la voie).
Je pense ajouter un diviseur de tension entre ce rail et GND, avec par exemple des résistances de 30k et 10k
Je m'attends donc à faire des mesures à l'envers, avec une tension résiduelle qui remonte vers 12V lorsque le moteur ralentit.
Et accessoirement la même lecture de tension (toujours hors alim) devrait me permettre de détecter l'occupation de voie, même avec une loco à l'arrêt. Car en l'absence de loco sur la voie, le rail est vraiment "en l'air" et le diviseur de tension va faire office de pull down. Donc tension à 0V => voie libre. Tension à 12V => voie occupée avec loco à l'arrêt.
Me gourre-je?
Titre: Re : Re : Premiers pas de bricoleau
Posté par: Jean-Luc le décembre 18, 2017, 11:31:57 pm
Donc je coupe l'alim du moteur, j'attends éventuellement un pouillème,

Pas éventuellement, à coup sûr. Tant que la diode roue libre conduit, la tension que tu mesureras est le seuil de la diode en négatif, pas la FCEM.

Citer
Pour mesurer la tension résiduelle, est-ce que ça peut être aussi simple que de passer par un diviseur de tension et des analogread() de l'arduino?

analogRead oui mais pas avec un diviseur de tension. Il faut que le courant soit quasi-nul sinon le générateur que constitue le moteur de la locomotive va débiter, le moteur sera freiné, la tension va chuter. Il faut utiliser un ampli op avec des résistances de 1MΩ en entrée. Il faut également filtrer avec une capa pour la HF car la FCEM fluctue lors de la rotation. Tu as le schéma à la page 3 de http://www.locoduino.org/pic/AlimentationTraction.pdf

Citer
Voire éventuellement de passer directement par les registres de l'atmega pour des lectures plus rapides?

un pouillème. Par contre il faut changer l'horloge du convertisseur analogique numérique pour faire des conversions plus rapides.

Tu as du code ici : https://git.framasoft.org/locoduino.org/AlimentationTraction

Par défaut l'ADC de l'Arduino est à 125kHz et ça met 150µs pour faire une conversion. Je passe l'horloge à 1MHz et je fais 6 conversions successives, je les trie, j'élimine les deux extrêmes et je moyenne les 4 qui restent.

Citer
Et accessoirement la même lecture de tension (toujours hors alim) devrait me permettre de détecter l'occupation de voie, même avec une loco à l'arrêt. Car en l'absence de loco sur la voie, le rail est vraiment "en l'air" et le diviseur de tension va faire office de pull down. Donc tension à 0V => voie libre. Tension à 12V => voie occupée avec loco à l'arrêt.
Me gourre-je?

Oui car si la loco est à l'arrêt la PWM est à 0 et la tension est nulle
Titre: Re : Premiers pas de bricoleau
Posté par: bricoleau le décembre 19, 2017, 12:08:47 am
Merci encore.

J'avais bien repéré ce beau PDF avec tous les schémas.
C'est justement la réponse que j'avais peur d'entendre... Les ampli op, un vieux trauma de mes années d'études.  ;D

Je vais prendre le temps d'une remise à niveau théorique, pour bien comprendre ce schéma avant de foncer tête baissée.