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 ... 140 141 [142] 143 144 ... 170
2116
« Par ma foi ! il y a plus de quarante ans que je dis de la prose sans que j'en susse rien, et je vous suis le plus obligé du monde de m'avoir appris cela. »

Bonsoir Marc-Henri,

Comme le dirai Monsieur Jourdain, je viens de découvrir que je fais du thread sans le savoir ! Si, en fait et je donne un exemple :

Dans un programme Arduino, il y a le Setup() qui est éxécuté une seule fois en premier, puis la Loop() qui est éxécutée ensuite de façon répétitive. C'est exactement comme un while(1) { ………}. Le compilateur l'ajoute subrepticement sans qu'on le voit !

Quand je programme mon gestionnaire de réseau, je fais donc éxécuter dans la Loop(), toute une série de tâches qui ne vont occuper le processeur qu'une petite fraction du temps en le libérant le plus vite possible, pour que la suivante prenne la main, et ainsi de suite.

Ces tâches sont (dans mon gestionnaire, mais tout le monde reconnaitra des cas qu'il rencontre aussi) :

  • Récupération des messages CAN si le flag a été monté par l'interruption. Il faut lire tous les messages CAN reçus sinon l'interruption n'aura plus lieu ensuite. Les messages sont stockés temporairement dans un tampon circulaire.
  • Traitement d'UN SEUL message CAN reçu et stocké dans le tampon circulaire (une occupation ou une libération, ou une demande d'itinéraire, de changement d'aiguille ou de mouvement de train.
  • Lecture du port série s'il y a des caractères reçus et une action est lancée seulement si une commande complète est reçue (sinon elle est stockée temporairement). Cela sert principalement au Debug pour valider ou non certains affichages ou passer des commandes de simulation
  • Lecture des boutons d'un écran tactile : un seul à la fois donne lieu à l'exécution d'une commande
  • Toute une série de tâches périodiques se suivent ensuite en testant la valeur de millis() par rapport à des tops d'actions comme le rafraichissement d'affichages, des clignotements de leds, les calculs de durée d'execution (combien de tours de Loop() par seconde pour mesurer la vitesse du programme), des time-out, des pas de simulation (envoyer par exemple une commande lue dans une carte SD toutes les 2 secondes), etc..
  • On peut en imaginer d'autres ...

J'ai décrit là 5 types de threads qui sont, en fait, programmés comme des sous-programme (une entrée et une sortie) et qui ne s'interdisent aucune contrainte de programmation.

En particulier le switch / case est totalement permis et fort heureusement car il faut bien agir en fonction de la commande reçue et une suite de if ne serait pas agréable. Les Macros ne sont pas obligatoires non plus.

Ces tâches correspondent bien à un gestionnaire de réseau, mais mon Arduino Mega qui commande des aiguilles est fait de la même façon, avec les tâches liées aux messages, mais aussi les commandes des moteurs d'aiguilles qui sont décalées dans le temps d'au moins une 1/2 seconde pour éviter les appels de courant simultanés (j'ai fait sauter un fusible avent cela !)

La seule contrainte est de bien respecter le non-blocage du processeur pendant l'éxécution d'une tâche (pas de delay(), des while() bien contrôlés, des tests sur toutes les limites) et que chaque tâche puisse reprendre la main sans perdre d'événement d'où quelques tests de Debug pour mesurer les temps d'exécution. D'une manière générale, je n'ai jamais eu de surprise (hors bug évidemment).

Voilà comment on fait du thread sans le savoir !

Amicalement


2117
Vos projets / Re : Un mini module sonore
« le: mars 14, 2017, 06:56:35 pm »
Voici une liste de fournisseurs pour les composants de cette carte (en fait, ceux que j'ai utilisé) :


C1       470µF   aluminium-capacitor   radial-capacitor-100-50
http://www.tme.eu/fr/details/uvr1e471mpd/condensateurs-electrolytiques-tht-85c/nichicon/
C2       100nF   unpolarized-capacitor   metallized-polyester-capacitor-50
http://www.tme.eu/fr/details/r82dc3100dq50j/condensateurs-de-polyester-tht/kemet/
C3       100nF   unpolarized-capacitor   metallized-polyester-capacitor-50
C4       47µF   aluminium-capacitor   radial-capacitor-25-70
http://www.tme.eu/fr/details/uvr1j470med/condensateurs-electrolytiques-tht-85c/nichicon/
C5       1µF   unpolarized-capacitor   metallized-polyester-capacitor-50
http://www.tme.eu/fr/details/r82dc4100aa60k/condensateurs-de-polyester-tht/kemet/
C6       10nF   unpolarized-capacitor   metallized-polyester-capacitor-50
http://www.tme.eu/fr/details/r82ic2100dq50j/condensateurs-de-polyester-tht/kemet/
D1       1N4007   1n400x   do41-long
D2       led   round-led-3mm
IC1       7805   lm78xx   to220up
http://www.tme.eu/fr/details/l7805cv/stabilisateurs-de-tension-non-regles/st-microelectronics/
K1      terminal-block-3-way-5mm   terminal-block-3
http://www.tme.eu/fr/details/tb-5.0-p-3p_gy/borniers-de-serrage-pcb/ninigi/
K2      terminal-block-3-way-5mm   terminal-block-3
K3      terminal-block-3-way-5mm   terminal-block-3
K4      terminal-block-3-way-5mm   terminal-block-3
K5      terminal-block-3-way-5mm   terminal-block-3
K6      terminal-block-3-way-5mm   terminal-block-3
K7      terminal-block-3-way-5mm   terminal-block-3
K8      grid-100mils-3-1   grid-100mils-3-1
K9      grid-100mils-3-1   grid-100mils-3-1
K10      grid-100mils-3-1   grid-100mils-3-1
K11      grid-100mils-3-1   grid-100mils-3-1
K12      grid-100mils-3-1   grid-100mils-3-1
K13      grid-100mils-3-1   grid-100mils-3-1
K14      grid-100mils-3-1   grid-100mils-3-1
K15      grid-100mils-3-1   grid-100mils-3-1
K16      grid-100mils-1-8   sil8
P1       4,7k   small_trimmer   small_ajustable_resistor
PROMINI1   pro-mini2   pro-mini-2
http://www.ebay.fr/itm/401090346945?_trksid=p2055119.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT
http://www.ebay.fr/itm/311569959184?_trksid=p2055119.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT
R1       10k   resistor   mf12
R2       4,7k   resistor   mf12
R3       1k   resistor   mf12
sd1      sdcard   sd-card
http://www.ebay.fr/itm/2PCS-Micro-SD-TF-Card-Storage-Memory-Module-SPI-Level-conversion-For-Arduino-/311011440000?hash=item4869b9f580

Pour programmer le Mini :
http://www.ebay.fr/itm/401241175865?_trksid=p2055119.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT
http://www.ebay.fr/itm/311760212115?_trksid=p2055119.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT

Composants passifs
http://stores.ebay.fr/Distri-Compo/Condensateurs-electrolytique-/_i.html?_fsub=9075072018&_sid=1176693738&_trksid=p4634.c0.m322

Attention, c'est bien ce modèle de Pro-Mini qu'il faut, avec les pins A4 A5 A6 A7 sur le petit côté opposé à l'interface de programmation USB/TTL.

Amicalement
Dominique

2118
Vos projets / Re : Re : Un mini module sonore
« le: mars 14, 2017, 06:47:44 pm »
Bonjour à tous,
Puisque nous sommes dans le son, quelqu'un connaît-il la carte Audio FX - 2x2W de Adafruit?
Possibilité de commander la lecture de 1 fichier audio parmi 10 en commutant une des 10 broches de commande à la masse.
L'arduino n'a plus qu'à présenter une broche au moins sur une des entrées (alimentations mises en commun sur le moins).
Il existe une version avec ampli 2 x 2W incorporée sur le circuit.

Non, je ne la connaissais pas ! Merci pour ce tuyau.

Mais elle coûte 30$ et c'est beaucoup plus qu'un simple lecteur SD à 1€, d'autant qu'un Arduino Pro-Mini peut très bien gérer plus que 10 sons (jusqu'à concurrence de la taille de la carte SD).

Attendons la version chinoise si c'est de l'open source.

2119
Vos projets / Re : Un mini module sonore
« le: mars 14, 2017, 06:06:19 pm »
Ah, ça bouge : les circuits viennent de quitter Hong-Kong et sont en cours d'acheminement via les postes suisse puis française.

2120
Bus CAN / Re : Le bus CAN
« le: mars 14, 2017, 09:20:17 am »
Cela veut dire que LCC est encore trop jeune !

2121
Bus CAN / Re : Le bus CAN
« le: mars 12, 2017, 10:25:05 pm »
C'est intéressant de revoir Don Goodman-Wilson de RailStar, qui a conçu CmdrArduino (celui qu'on laisse au profit de DCC++). Don avait disparu du support de son produit, pour se consacrer à Open-LCB qui a finalement été choisi par NMRA comme standard qui s'appelle maintenant LCC. Bravo Don !

Je n'ai pas encore tout compris, à part le choix du bus CAN pour les échanges fiables et la câblage facile.

Ce que je peux en déduire (mais je vais surement me tromper), c'est que pour interconnecter autant de choses différentes que des aiguilles, des feux, des panneaux de led et boutons (TCO ?), des détecteurs d'occupation et Railcom, des manettes, des boosters (on dit centrale en général)... et un soft gestionnaire comme JMRI, ET TOUT CELA PLUG&PLAY, c'est forcément compliqué (tout ce qui est simple pour l'utilisateur est forcément une usine à gaz à l'intérieur).

L'expérience du Wifi et de TCP/IP ont donné lieu, finalement, à des choses simples à mettre en oeuvre, avec des composants pas cher (vu les millions d'unités produites) et des bibliothèques ad'hoc.

Mais ce ne sera pas à la portée du gars qui voudrait seulement faire clignoter un led 5 fois (joke), avant un bon moment.
Apparemment chaque "noeud" du réseau (connecté à un équipement) doit contenir un fichier de configuration qui semble ne pouvoir être construit et modifié que par JMRI. En tous cas c'est un fichier XML : ajouter un parser et un éditeur Wisiwyg dans un Arduino n'est pas une mince affaire !

Du coté des locos (la commande DCC++ par exemple), on imagine bien qu'un gros paquet de données sont stockées dans le noeud connecté à la centrale, de façon à piloter toutes les locos d'une manière standard (par exemple en leur donnant un ordre contenant la vitesse réelle à l'échelle, et non pas un cran DCC).

Cela dit, on va se faire un point d'honneur à Locoduino, à tenter de vous expliquer tout ça et de construire quelque chose.

Ca tombe bien, mon réseau est constitué de plusieurs éléments (à base d'Arduino) qui communiquent entre eux via un bus CAN  ;D ;D, sans JMRI, chaque élément (DCC booster, détecteurs d'occupations, contrôleur d'aiguilles, TCO, gestionnaire) a forcément sa configuration propre qui m'a valu une description sur papier, ainsi que les messages qui s'échangent entre modules.

Je ne me sens pas trop dépaysé, donc à suivre ...

2122
Bus CAN / Re : Re : BUS CAN 3 rails
« le: mars 10, 2017, 08:23:40 pm »
Pour ce qui concerne la carte Locoduino, je ne comprends pas ceci :
si vous utilisez 2 paires, d'accord mais !
je dirais que chaque paire devrait être connectée sur un fil à CANH et à l'autre à CANL.
Ce n'est pas le cas sur la carte Locoduino !

Pourquoi ?

Bàv
Jacques ( PapyJack)

Non c'est tout bête : les 2 prises RJ11 sont en parallèle pour permettre le chainage des cartes et relier les cartes 2 à 2 avec un cable droit.
Il faut mettre la résistance de 120 Ohm en bout de chaine (d'où le strap).

Je joins le schéma :

2123
Bus CAN / Re : BUS CAN 3 rails
« le: mars 10, 2017, 01:39:41 pm »
Tu devrais poser la question directement à l'auteur de l'article ou en bas de l'article.

Néanmoins je "prendrais le risque" pour 1,14€  :o


2124
Vos projets / Re : CIRCULATION ALTERNÉE
« le: mars 10, 2017, 11:43:49 am »
Bravo Fabien,

Un petit conseil (pour tous également) : Pour partager un programme, le mieux est de compresser le dossier du programme qui contient le .ino (et éventuellement d'autres fichiers) et de joindre le fichier compressé (.zip) à la discussion, comme ci-dessous  :D

Mais là tu permets de le lire directement ce qui est utile aussi  ;)



2125
Bus CAN / Re : BUS CAN 3 rails
« le: mars 10, 2017, 11:37:41 am »
Je fais référence en particulier à cette petite carte à moins de 2€ :

http://www.ebay.fr/ulk/itm/311520457612

Bonjour,

Je débarque, peut-être ai-je manqué un commentaire, mais cette carte "peuchère" me paraît fonctionner seulement en RX !
C'est d'ailleurs ce qui est mis dans le libellé du produit!
Sur les photos on observe également qu'il n'est possible que de connecter une seule paire de fils sur le bus CAN.

Jacques

Bonjour Jacques,

Il ne faut pas prendre "à la lettre" les libellés des vendeurs sur eBay, qui sont souvent traduits par un robot.

Si vous regardez les articles sur le site Locoduino, vous verrez que cette carte fonctionne en émission ET réception !

Le bus CAN est bidirectionnel : une seule paire suffit (lisez les articles !!!)

Amicalement

2126
Bienvenue Alibert ;)

Un échec n'est qu'un essai avant la réussite  ;)

J'ai automatisé un va et vient sur une voie unique du réseau d'expo en N de mon club. Prêt à le partager si tu veux.

Dominique

2127
Présentez vous ! / Re : se présenter ? ok
« le: mars 07, 2017, 09:54:00 pm »
Bonjour Junon et bienvenue parmi nous.

J'ai l'impression qu'il va faire plus de 4 mètres surtout pour faire tourner des TGVs (en HO ou N ?).

Déjà l'atout c'est d'avoir un ami qui sait faire de beaux décors, car si tu te lances dans l'électronique et la programmation, ça fait pas mal de sujets à traiter !


Pour t'y retrouver dans toutes les techniques possibles décrites ou pas encore décrites sur Locoduino, le mieux est d'avoir une vision générale de ton projet que tu peux partager ici pour en discuter. Nous nous ferons un plaisir de répondre à tes questions.

Bon courage
Dominique

2128
Vos projets / Re : Un mini module sonore
« le: mars 06, 2017, 06:37:16 pm »
Bon, je viens de passer commande de 20 cartes chez ElectroDragon, ce qui revient à 1,40€ par carte !
Je devrais les recevoir dans 2 à 3 semaines, je vous préviendrai quand j'aurai des précisions.

Pour le moment j'ai cette liste :
5 cartes pour moi
3 cartes pour Claude91 (est-ce Claude Laurent ?, sinon ça marchera quand même)
2 cartes pour Thierry
2 cartes pour Denis
2 cartes pour Catplus

Je vous remercie de m'envoyer un MP avec votre adresse perso.

Voici la liste des composants :

C1       470µF   aluminium-capacitor   radial-capacitor-100-50
C2       100nF   unpolarized-capacitor   metallized-polyester-capacitor-50
C3       100nF   unpolarized-capacitor   metallized-polyester-capacitor-50
C4       47µF   aluminium-capacitor   radial-capacitor-25-70
C5       1µF   unpolarized-capacitor   metallized-polyester-capacitor-50
C6       10nF   unpolarized-capacitor   metallized-polyester-capacitor-50
D1       1N4007   1n400x   do41-long
D2       led   round-led-3mm
IC1       7805   lm78xx   to220up
K1      terminal-block-3-way-5mm   terminal-block-3
K2      terminal-block-3-way-5mm   terminal-block-3
K3      terminal-block-3-way-5mm   terminal-block-3
K4      terminal-block-3-way-5mm   terminal-block-3
K5      terminal-block-3-way-5mm   terminal-block-3
K6      terminal-block-3-way-5mm   terminal-block-3
K7      terminal-block-3-way-5mm   terminal-block-3
K8      grid-100mils-3-1   grid-100mils-3-1
K9      grid-100mils-3-1   grid-100mils-3-1
K10      grid-100mils-3-1   grid-100mils-3-1
K11      grid-100mils-3-1   grid-100mils-3-1
K12      grid-100mils-3-1   grid-100mils-3-1
K13      grid-100mils-3-1   grid-100mils-3-1
K14      grid-100mils-3-1   grid-100mils-3-1
K15      grid-100mils-3-1   grid-100mils-3-1
K16      grid-100mils-1-8   sil8
P1       4,7k   small_trimmer   small_ajustable_resistor
PROMINI1   pro-mini2   pro-mini-2
R1       10k   resistor   mf12
R2       4,7k   resistor   mf12
R3       1k   resistor   mf12
sd1      sdcard   sd-card


On installe, au choix, soit les borniers à vis K1 à K7, soit les barettes males au pas de 2,54 K8 à K15, mais pas les 2 à la fois. A vous de choisir.

2129
Sur mon Mac, la version Java est celle d'Apple, donc pas celle d'Oracle :
Java(TM) SE Runtime Environment (build 1.6.0)

Les programmes de Pierre tournent parfaitement et apparemment ceux de Denis aussi.

Je suppose que Processing intègre sont propre Java pour cela (ce serait bien raisonnable !)

Dominique

2130

Citer
2) je n'ai pas encore trouvé de site pour telecharger la version  3.2.3 de Processing qui effectivement semble être un solution

Tout simplement ici www.processing.org

Pages: 1 ... 140 141 [142] 143 144 ... 170