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.


Sujets - msport

Pages: 1 2 3 [4] 5
46
Vos projets / Réseau éphémère
« le: juillet 28, 2019, 12:32:56 am »
Sur, Dominique, le N ça se mérite !

Oui Michel,

Il m’arrive de loucher vers le HO qui offre de beaux détails et de belles machines (celles de Christophe sont remarquables), mais les dimensions du réseau permettent mal des circulations attrayantes avec toute la richesse des équipements (actionneurs et rétro) que vont permettre les projets Locoduino (satellites, bus Can, etc..). On va essayer de clarifier nos visions et, bien-sur, on est à l'écoute de tes propositions et celles de tous  aussi.

Strabisme réciproque partagé.

Table de la salle à manger ouverte pour 8 jours pour le petit-fils en vacances. (1,20mx1,90m, version de réseau calquée sur celle du tiroir sous son lit IKEA en IDF). Conduite manuelle, pas de canton, pas de signalisation. Tout ce qui est possible en DIY. Transmission radio par module HC12-C donc multi manettes (locos, fonctions, accessoires, aiguillages, pont, tout avec DCC comme bus). Merci à Greg Berman, Dave Bodnar et Rudy Boer.

PS : je n'oublie pas l'article sur les décodeurs, c'est ici l'occasion de valider les solutions et éviter de raconter des bêtises.

47
Vos projets / Shield TFT 2,4" sur UNO
« le: mai 22, 2019, 10:23:03 pm »
Bonsoir,je tente de mettre en œuvre cet écran tactile TFT 2.4" 320x240 ILI2940 dont les exemples fournis dans MCUFRIEND_kbv fonctionnent.
https://www.ebay.fr/itm/2-4-TFT-UNO-R3-LCD-Shield-Touch-Panel-Module-TF-Reader-For-Arduino-SD/153128651723
Il utilise la bibliothèque MCUFRIEND_kbv :
https://github.com/prenticedavid/MCUFRIEND_kbv
Je bute sur l'exemple multi boutons peut être parce qu'il doit être personnalisé.
Le button_simple.ino est OK
Le button_list.ino ci-dessous ne compile pas :
button_list:81:20: error: 'Adafruit_GFX_Button' was not declared in this scope
 bool update_button(Adafruit_GFX_Button *b, bool down)
                    ^
button_list:81:41: error: 'b' was not declared in this scope
A priori Adafruit_GFX contient la classe Adafruit_GFX_Button
Ma maitrise toute relative du C ne va pas au delà et une aide serait la bienvenue.
Merci.

/* an alternative approach.   swap the #if 1 / 0 values to try it
 *
 */
#if 1

#include <Adafruit_GFX.h>
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;
#include <TouchScreen.h>
#define MINPRESSURE 200
#define MAXPRESSURE 1000

// ALL Touch panels and wiring is DIFFERENT
// copy-paste results from TouchScreen_Calibr_native.ino
const int XP = 6, XM = A2, YP = A1, YM = 7; //ID=0x9341
const int TS_LEFT = 907, TS_RT = 136, TS_TOP = 942, TS_BOT = 139;

TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);

Adafruit_GFX_Button on_btn, off_btn;

int pixel_x, pixel_y;     //Touch_getXY() updates global vars
bool Touch_getXY(void)
{
    TSPoint p = ts.getPoint();
    pinMode(YP, OUTPUT);      //restore shared pins
    pinMode(XM, OUTPUT);
    digitalWrite(YP, HIGH);   //because TFT control pins
    digitalWrite(XM, HIGH);
    bool pressed = (p.z > MINPRESSURE && p.z < MAXPRESSURE);
    if (pressed) {
        pixel_x = map(p.x, TS_LEFT, TS_RT, 0, tft.width()); //.kbv makes sense to me
        pixel_y = map(p.y, TS_TOP, TS_BOT, 0, tft.height());
    }
    return pressed;
}

#define BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

void setup(void)
{
    Serial.begin(9600);
    uint16_t ID = tft.readID();
    Serial.print("TFT ID = 0x");
    Serial.println(ID, HEX);
    Serial.println("Calibrate for your Touch Panel");
    if (ID == 0xD3D3) ID = 0x9486; // write-only shield
    tft.begin(ID);
    tft.setRotation(0);            //PORTRAIT
    tft.fillScreen(BLACK);
    on_btn.initButton(&tft,  60, 200, 100, 40, WHITE, CYAN, BLACK, "ON", 2);
    off_btn.initButton(&tft, 180, 200, 100, 40, WHITE, CYAN, BLACK, "OFF", 2);
    on_btn.drawButton(false);
    off_btn.drawButton(false);
    tft.fillRect(40, 80, 160, 80, RED);
}

/* 
 * updating multiple buttons from a list
 *
 * anything more than two buttons gets repetitive
 *
 * you can place button addresses in separate lists
 * e.g. for separate menu screens
 */

// Array of button addresses to behave like a list
Adafruit_GFX_Button *buttons[] = {&on_btn, &off_btn, NULL};

/* update the state of a button and redraw as reqd
 *
 * main program can use isPressed(), justPressed() etc
 */
bool update_button(Adafruit_GFX_Button *b, bool down)
{
    b->press(down && b->contains(pixel_x, pixel_y));
    if (b->justReleased())
        b->drawButton(false);
    if (b->justPressed())
        b->drawButton(true);
    return down;
}

/* most screens have different sets of buttons
 * life is easier if you process whole list in one go
 */
bool update_button_list(Adafruit_GFX_Button **pb)
{
    bool down = Touch_getXY();
    for (int i = 0 ; pb[i] != NULL; i++) {
        update_button(pb[i], down);
    }
    return down;
}

/* compare the simplicity of update_button_list()
 */
void loop(void)
{
    update_button_list(buttons);  //use helper function
    if (on_btn.justPressed()) {
        tft.fillRect(40, 80, 160, 80, GREEN);
    }
    if (off_btn.justPressed()) {
        tft.fillRect(40, 80, 160, 80, RED);
    }
}
#endif


48
Comme le site éditorial fait actuellement l'objet d'échanges sur le sujet, je voulais juste, en remerciement à l'auteur, signaler que j'avais réalisé son projet tel quel sans difficulté - si ce n'est la mise en boite (13x9x4,5cm) -
L'intérêt est en particulier de disposer d'une centrale mixte analogique et DCC.
A noter que pour une tension d’alimentation supérieure à 12V (un bloc secteur pour moi), une simple Zener évite la surchauffe du régulateur de l'Arduino. 

Edit : http://locoduino.org/spip.php?article224

49
Composants / Digispark Kickstarter Attiny85
« le: août 26, 2018, 12:04:09 pm »
Bonjour à tous,

suite à une demande qui m'a amené à l'animation BV de Dominique, http://forum.locoduino.org/index.php?topic=336.msg3235#msg3235
j'ai relu rapidement les fils sur ATTiny85 et particulièrement les messages consacrés au Digispark Kickstarter.
https://www.ebay.fr/itm/Digispark-Kickstarter-Attiny85-USB-Development-Board-for-arduino-NEW/301924751212

J'ai l'impression qu'on n'est pas parvenu à le programmer par la prise USB. (mais via un UNO ou autre) Voir le fil Utilisation d'ATTiny85.
http://forum.locoduino.org/index.php?topic=256.msg2820#msg2820

Effectivement l'installation du driver est très bizarre et n'a rien à voir avec celle d'un port COM virtuel, ce qui est trompeur.

On trouve le driver sur le git :
https://github.com/digistump/DigistumpArduino/releases

On trouve un tuto détaillé sur youtube, mais les points importants sont subliminaux aux minutes 4:47 et 9:10 (sur 12:22)

Il rappelle que les "cartes" sont à installer via http://digistump.com/package_digistump_index.json (dans Préférences puis Gestionnaire de cartes)
Puis qu'il faut lancer DPinst64.exe directement (et non via les .bat qui plantent) pour un système x64. (le driver n'apparait que dans les périphériques cachés du gestionnaire de périphériques en tant que "libusb-win32 devices")

Et que dans l'IDE il faut choisir Digispark Default 16.5 Mhz comme carte
avec le programmateur Micronucleus

et surtout ne pas connecter le Digispark avant de lancer le télédéversement. Celui-ci sollicite la connexion pendant 60 secondes quand la compilation est terminée.

Bons tests !

50
Bonjour,

une comparaison entre les deux types de détecteur d'occupation que je viens de monter :

1. Détecteur à chute de tension sur diodes
http://forum.locoduino.org/index.php?topic=558.0

chute de tension de 1,4V, peut être réduite par le choix de diodes schottky, tests à effectuer en fonction de la dispersion des caractéristiques des transistors.
réglage étendu, apparemment plus sensible
probablement moins sensible aux parasites que l'induction, à tester sur réseau, mais ces montages sont fortement temporisés.
une LED de signalisation
bornier à pression (ou au choix)
diodes de compensation pour les cantons non équipés.

2. Détecteur à tore (transformateur de courant) suivant le schéma (Paisley) :
http://forum.locoduino.org/index.php?topic=489.0
Merci à nopxor pour son aide.

pour la carte en question, modifiable :
bornier 5 points à adapter à ses besoins, ou pour câbles Dupont, style Arduino, donc connexion directe à un shield sensor.
pas de chute de tension
composants plus banals hors transfo, s’accommode de toute alimentation dont le 5V Arduino (via 3 fils Dupont).
L'encombrement est similaire, mais c'est grâce à l'optimisation de Jean-Luc, merci pour tout son travail d'approvisionnement et plus encore.

Un point à signaler, c'est que toutes les consommations sont détectées : donc celles des décodeurs alimentés par le DCC, en particulier ceux qui sont intégrés dans le ballast comme ceux de la Geoline de ROCO.

En attendant vos observations complémentaires.

51
Shields et Modules / carte décodeur ULN2803 - DU
« le: juin 08, 2018, 09:53:18 am »
Bonjour,

j'ai monté ma première carte décodeur qui fonctionne harmonieusement avec la Base Station et une manette qui lui envoie les < a ADDRESS SUBADDRESS ACTIVATE > nécessaires.
<a 1 0 1> puis <a 1 0 0 0> pour l'adresse 1 normal puis dévié.
<a 1 1 1> puis <a 1 1 0 0> pour l'adresse 2 normal puis dévié.
<a 1 2 1> puis <a 1 2 0 0> pour l'adresse 3 normal puis dévié.
Etc.

Voir Commands for DCCpp BaseStation.

pour mémoire cette carte est basée sur la description de Rudy Boer. Son sketch est téléchargeable (avec d'autres) via

https://rudysmodelrailway.wordpress.com/software/    -   suivre le lien : "Arduino DCC, S88, and more Download link"

La version jointe est personnalisée pour la carte DU et avec des adresses de 1 à 8 qui correspondent aux connecteurs K2 à K9.

J'ai eu, comme déjà rencontré précédemment, des soucis avec un 6N137, donc commencer par en changer avant de se perdre en diverses hypothèses. Dont la LED, remplacée par une diode, mais qui de toute manière ne sert à rien puisque le Nano indique la présence du DCC.

J'ai trouvé des connecteurs au pas de 3.5mm qui correspondent au pas de la carte, mais les connecteurs au pas de 3.81 se montent aussi sans forcer.

Ci-joint le typon surchargé avec les adresses des aiguillages. Celles-ci peuvent être modifiées dans le sketch en conservant les pins de l’Arduino.

52
Le logiciel DCC++ / e-stop emergency stop avec DCC++
« le: mars 15, 2018, 10:13:20 pm »
Bonsoir à tous,

j'aimerais compléter mes manettes avec un e-stop (emergency stop).
C'est prévu pour une locomotive avec DCC++ : il suffit d'envoyer -1 comme vitesse et la locomotive s'arrête immédiatement, sans inertie. (c'est documenté)
Ce que j'aimerais, c'est de pouvoir arrêter toutes les locomotives. Auriez vous vu quelque chose prévu avec DCC++ ?
Dans la norme MOROP, NEM671, il est prévu en 4.2 un arrêt d'urgence général par reset des données non volatiles des décodeurs.
J'ai tenté d'écrire -1 dans le CV 1 d'une locomotive d'adresse 0 (qui semble prévue pour une diffusion générale -broadcast-) mais ça n'a rien donné.
<t 1 0 -1 1> par exemple. Aucune manette en parallèle.

Si cela existe et si quelqu'un a la syntaxe via DCC++, merci d'avance.
Peut-être avec la bibliothèque de DCCpp de Thierry ? Emergency envoie-t-il un broadcast ?

http://www.morop.org/index.php/fr/nem-normes.html / http://www.morop.org/downloads/nem/fr/nem671_f.pdf
autre info : https://dccwiki.com/Term:E-Stop

53
Qui aurait déjà utilisé Arduino Plugin for (Visual Studio and) Atmel Studio (Arduino for Atmel Studio 7) ?
Est-ce aussi délicat à installer que celui pour l'ESP32 ?
Est-ce qu'on ne pollue pas son IDE Arduino ? Les sources restent compatibles ? Quid des bibliothèques ? Pas trop de problèmes avec les conditions de compilation ?
J'en espère l’avantage de l'exécution en mode pas à pas avec valeurs des variables.
Merci pour vos avis.
http://www.visualmicro.com/page/Arduino-for-Atmel-Studio-7.aspx

54
Vos projets / Réalisation de carte pour compléter le shield ATTiny
« le: février 21, 2018, 11:35:49 pm »
Bonsoir,
pourquoi pas quelques circuits d'interface DCC basés sur le schéma mynabay ? (version confort et/ou version micro à CMS) ?

55
Bus DCC / Moniteur DCC - Version autonome du sniffer de Rudy - sketches
« le: février 10, 2018, 12:57:04 pm »
Le moniteur affiche ce qu'il reçoit sur son port série à 38400b. Un pseudo scroll intervient après 30 lignes affichées.

56
Bus DCC / Moniteur DCC - Version autonome du sniffer de Rudy
« le: février 10, 2018, 12:53:01 pm »
Trois photos pour montrer comment j'ai monté un ensemble autonome pour espionner le DCC :

1. L'interface DCC compacte avec des composants SMD soudés sur les broches du 6N137
2. Le moniteur en boîte avec une power bank alimentant les Arduino via USB
3. La boîte ouverte avec un shield  2.4 TFT arduino UNO + un Pro Mini comme interface décodeur - (interface sur la photo 1 et fil ci-dessous) et la station de base
Sketches: sniffer v2 et monitor2.zip (.ino + library) attachés dans le message suivant.

Nota : j'ai constaté que dans une configuration minimale, il faut un petit condensateur (par exemple 330pF) entre les rails.


57
Composants / Condensateurs 10µF 16V
« le: septembre 26, 2017, 11:10:08 pm »
Quelle est la plus petite taille que vous donneriez à des condensateurs 10µF 16V ?

réponse taille 0805 :

http://www.ebay.fr/itm/100Pcs-Chip-Value-Condensateur-0805-106M-10Uf-16V-20-Smd-Ic-Nouveau-C/252900324869

vérifié, mais on a vite fait de les perdre !

58
La commande d'aiguillages anciens de Fleischmann nécessite au moins un ampère.

L'ULN2803 est spécifié pour 300 mA mais il sa protection n'intervient qu'au delà de 500 mA. Ses concepteurs ont prévu la possibilité de mettre deux sorties ou plus en parallèle, ce qui permet d'atteindre effectivement un ampère.
De plus, le montage en "piggy-back", un sur l'autre, simplifie le câblage. Par contre, il s'agit de simples darlingtons, sans logique de déclenchement, le courant d'entrée pour obtenir un ampère en sortie est supérieur à ce qu'un arduino peut délivrer.
D'où la nécessité d'un étage supplémentaire : j'ai utilisé des 74HC245 (8 buffers), capables de 70 mA. Entrées et sorties sont de chaque coté du circuit d'où à nouveau un câblage simplifié.

Dans le montage présenté, j'ai employé des 74HC245 CMS car c'est ceux que j'ai reçus, j'attends encore les DIL. D'où la bizarrerie dans les n° des sorties de l'arduino, l'utilisation de deux circuits, d'une patte sur deux et la position inversée des deux circuits. la version définitive n'utilisera qu'un seul 74HC245.
Dans le cas d'un arduino ou autre en 3,3V, prévoir un 74HCT245 pour assurer la compatibilité des niveaux logiques.
 
A noter aussi que j'ai eu plusieurs 6N137 défectueux, d'où une mise au point un peu pénible.
A noter également l'utilisation d'une résistance 10K et une diode CMS soudées directement sur les pattes du 6N137 de l'interface DCC et l'absence de la 2e 10K, remplacée par un Pullup de l'arduino.

Le schéma t6 et les photos T7 à T10 sont dans Dropbox (répertoire Nouvelle manette) :
https://www.dropbox.com/sh/zbh0chrej9p6pru/AACNSyYz5Ppt3fNntsxSVitZa?dl=0

59
Vos projets / Manette locomotives + fonctions
« le: septembre 13, 2017, 07:57:22 pm »
Bonjour,
j'avais déjà décrit dans ce forum une réalisation basée sur celle de :
http://trainelectronics.com/DCC_Arduino/DCC++/Throttle/#Wireless_Option
des photos et des détails sont toujours sur le lien dropbox suivant :
https://www.dropbox.com/sh/zbh0chrej9p6pru/AACNSyYz5Ppt3fNntsxSVitZa?dl=0
En voici une nouvelle version, plus jolie et miniaturisée. Tarifs toujours maitrisés.
Les photos de nouvelle manette sont dans le répertoire Nouvelle manette du lien ci-dessus.
Cette nouvelle version a des composants différents et utilise la soudure plutôt que les connecteurs Dupont, finalement bien encombrants. Fils en silicone AWG30.
Le programme est toujours le même aux quelques adaptations près.
Clavier 4x4 mais les quatre boutons A, B, C et D ne sont pas exploités.
L'afficheur est un 0.96" monochrome 128x64 sur library Adafruit en I2C.
Alimentation par powerpack USB, donc directement à l’Arduino en 5V.
Liaison au booster via un module radio HC-12C en ASCII à 115200 b. Plusieurs manettes peuvent se connecter ensemble au booster. Quelques pertes de liaison mais plutôt rares.
Encore merci pour toutes les idées piquées ici et là.

60
Shields et Modules / Module pour boucle de retournement
« le: août 30, 2017, 09:31:11 am »
Est-ce que quelqu'un aurait vu la réalisation ( en Arduino bien sur ) d'un module pour boucle de retournement ?
La question ne semble pas avoir été traitée sur le forum (hors projets beaucoup plus vastes)

Une petite recherche sur Google m'a donné :

Théorie et solution par position d'aiguillage :
http://www.ho-ptit-train.be/Html/cablage_06.html

chez TAMS : 43€ un relais, mais cinq E/S :
http://www.conrad.fr/ce/fr/product/402611/Module-de-boucle-de-retournement-TAMS-Elektronik-49-01126-01-KSM-2-kit-prt-lemploi/?utm_source=google-search-product&utm_medium=comparateur&utm_campaign=402611&WT.mc_id=comparateur-gsp-402611&LGWCODE=402611;43857;390&gclid=EAIaIQobChMI_qnmkrH-1QIV4rftCh0XGARIEAQYASABEgJdcPD_BwE

chez Lenz TK200 : 58€ une entrée une sortie
http://www.traindefrance.fr/fr/modules/399-module-boucle-de-retournement-lenz-lk200-lenz-12200.html

un montage maison (complexe) :
http://stephane.ravaut.free.fr/Train_miniature/BoucleRetournement/BoucleRetournement.html

un montage maison prévu pour l'analogique (ILS), mais si la commutation se fait par relais, ce serait OK en DCC 8,2€ :
http://www.cc2rails.com/modules-electroniques/4029-module-boucle-de-retournement-automatique-train-echelles-ho-n-o.html

Merci pour vos retours

Pages: 1 2 3 [4] 5