Auteur Sujet: Warning dans véhicule HO / animation de décor réseau  (Lu 54445 fois)

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1716
    • Voir le profil
Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #15 le: juin 05, 2018, 11:29:30 am »
Bonjour,

Trois remarques :

1) essaye d'aller au bout de quelque chose de plus simple d'abord (enfin c'est mon conseil) parce que là tu complexifies au fur et à mesure : tu allonge le chemin sans le parcourir

2) Plutôt un switch ... case qu'une séquence de if ... else if  ...

3) Pour gérer beaucoup de LED il y a le charlieplexing
Cordialement

savignyexpress

  • Invité
Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #16 le: juin 05, 2018, 11:58:18 am »
Bonjour à tous,

Pour rebondir sur le GOTO...

Si on a que cette possibilité, il est possible de reproduire les structures de base: if then else, for, while, repeat, avec l'instruction GOTO, en se fixant quelques règles. Je l'ai eu fait en assembleur Z80 il y a quelques décennies et c'est ce que les compilateurs font, les processeurs ne connaissant que les GOTO avec ou sans condition.

L'utilisation du GOTO pour sortir en cas d'erreur se remplace avantageusement par un bloc de traitement d'exception, mais il me semble que ce n'est pas disponible pour l'Arduino.

Meilleures salutations.

BB9004

  • Invité
Re : Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #17 le: juin 05, 2018, 01:23:15 pm »
Bonjour

1) essaye d'aller au bout de quelque chose de plus simple d'abord (enfin c'est mon conseil) parce que là tu complexifies au fur et à mesure : tu allonge le chemin sans le parcourir
> oui, j'en suis conscient : quasi chaque matin je me réveille avec une nouvelle option  :) ... ça augmente donc la "densité" du futur prog, mais ça m'oblige aussi à réfléchir sur les différents moyens pour la future mise en oeuvre, et donc de la future programmation ...

... et grâce à tes/vos propositions, ça progresse ! Je crois que le Switch / IF et le charlieplexing en sont deux bons exemples  ;) ?

Pour le moment je rédige un prog (j'essaie) pour chaque idée, comme une action fonction "autonome", puis je teste avec la BB : la mise en "commun" de tous ces sous-ensembles sera pour une étape suivante (via le "switch/case)

J'ai réalisé avec la UNO, sur la BB, le warning simple, le warning SOS... mais je manque de composants (Leds, résistances...) pour tester plus de choses , pour l'instant... (commandes en cours)

"2) Plutôt un switch ... case qu'une séquence de if ... else if  ..."
>> merci de la piste : je vais étudier cette instruction  ;)
EDIT : ici : Switch... case & Switch... case By JL !

3) Pour gérer beaucoup de LED il y a le charlieplexing
>> idem, je vais étudier ça  ;) (je n'avais pas trouvé cette instruction dans : cette liste )
EDIT : ici ça parle charlieplexing !, et ici un  schéma 20 Leds
>> suite à une première lecture rapide, ça semble tout à fait approprié à mon exercice :  ;)
et un sketch d'exemple est dispo ICI
> et avec cette méthode, une carte NANO devrait suffire : ??

Merci de tes remarques !
(car je préférerai rédiger un prog "élégant" (et facilitant la maintenance et/ou l'adaptation-évolution) plutôt qu'une liste d’innombrables instructions répétées et recopiées...)

Marc-Henri : pour le Goto  :D, je n'ai pas dit mon dernier mot, mais avant ça je dois faire mes preuves en programmation, en appliquant "Le monde selon Arduino"  ::)

Bonne journée à tous ,  8)
« Modifié: juin 07, 2018, 09:13:36 am par BB9004 »

BB9004

  • Invité
Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #18 le: juin 06, 2018, 12:57:30 pm »
Point d'avancement du jour  : 2 réflexions sur les entrées

1 > dans ce projet, il y a beaucoup de pin à gérer : j'envisage d'utiliser le cours n° 227 sur les tableaux : est-ce approprié ?

2 > Puisque le nombre de possibilités de séquences "d'allumage" augmente régulièrement, coté matériel je pense utiliser un clavier numérique pour sélectionner rapidement et facilement le choix :
Un clavier "3 x 4" comme celui ci ? :  Clavier numérique pour Arduino à moins de 1€...
ou bien un Clavier "4 x 4", ce qui permettrait de "classer" les possibilités de choix par "famille" (Axx=Attention warning/Bxx=phares/Cxx=Combinaisons/Dxx=Divers (soudure,...))

Données techniques pour le "3 x 4" :
Pad Taille: 69.2x76.9x0.8mm
Longueur du câble: 3-1/3 " ou 86mm (inclure connecteur)
connecteur: Dupont 7 broches, 0.1 " (2.54mm) Hauteur
Style De montage: Auto-L'adhésion
Max. Circuit Note: 35VDC, 100mA
isolation Spec.: 100 M Ohm, 100 V
Tenue diélectrique: 250 VRms (60Hz, 1 min)
Rebond de Contact: < = 5 ms
Espérance De vie: 1 million de fermetures
Température de fonctionnement:-20 à + 40 °C


> pour la programmation, j'envisage de m'inspirer de cette leçon (pour un "4x4") :Programmation d'un clavier
> apprentissage de la gestion d'une bibliothèque : CLAVIER
> et + 7 Pins (si 3x4) (ou 8 pin si 4x4) occupés en entrée... va falloir "tasser" ! (merci JLuc pour Charlieplexing , j'examine ça , le principe "matriciel" semble s'appliquer également à la gestion du clavier ?)
> le câble de liaison est court (8.6 cm) : à rallonger avec des fils Dupont

> ainsi, l'utilisateur devra :
1 - d'abord allumer la carte par un bouton ON/OFF sur le TCO, ce qui enclenchera une série de flash (sur les phares par exemple) pour signifier que "ça marche", puis la carte attendra un choix
2 -puis lire une liste (papier) des choix possibles
3 - puis taper le numéro choisi sur le clavier : ce qui "déclenchera la "fonction" associée (mini : 14/15 pour l'instant)
* * s'il choisi un code inexistant, on peut envisager une série très rapide de "10 flash rouges" par exemple, dont la signification sera indiquée sur la liste papier, et donc il devra/pourra ressaisir un code
4 - et enfin regarder le résultat !

> je vous remercie de vos remarques
 8)

Premiére utilisation de Fritzing : bcp de manques et d'anos

« Modifié: juin 06, 2018, 05:06:14 pm par BB9004 »

BB9004

  • Invité
Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #19 le: juin 06, 2018, 04:31:34 pm »
Petit bout de code (je n'ai pas l'éditeur IDE actuellement => saisie de texte "à la volée...") pour l'exercice "tableau", à partir de l'exercice n° 227
> but : vérifier que les 4 clignotants sont éteints dès "l'allumage" de la carte Uno, en "économisant" de la ligne de code...

const byte pin[] = {4,5,6,7};    // création du tbl pour les 4 Pin des clignotants - Attention Index du 4 = 0
                                              // à ajuster au total des 12 sorties / leds utilisées > TODO : sélectionner les 12 Pin
void setup () {
  for (int i = 0 ; i < 5 ; i++) {      // 5 car 4 leds utilisées dans cet ex
   pinMode (pin , output) ;       // les 4 leds sont déclarées en même temps en sortie
   digitalWrite (pin , LOW) ;      // on éteint ttes les leds avant de commencer une sélection au clavier
  }                                           // fin de la boucle FOR
}                                             // fin du setup

edit : les "crochets" des pin 'i' n'apparaissent pas ici, mais ils sont présents
 8)
« Modifié: juin 07, 2018, 09:15:51 am par BB9004 »

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1085
  • HO avec DCC++
    • Voir le profil
Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #20 le: juin 06, 2018, 06:53:57 pm »
Bravo j'applaudis des deux mains, très bonne idée d'utiliser des tableaux  :) :) :)

Par contre, il faut utiliser les balises de code pour que ton code dans les messages soit plus lisible. Le bouton avec # à l'intérieur.


const byte pin[] = {4, 5, 6, 7}; // création du tbl pour les 4 Pin des clignotants - Attention Index du 4 = 0
// à ajuster au total des 12 sorties / leds utilisées > TODO : sélectionner les 12 Pin
void setup () {
  for (int i = 0 ; i < 5 ; i++) {      // 5 car 4 leds utilisées dans cet ex
    pinMode (pin[i] , OUTPUT) ;        // les 4 leds sont déclarées en même temps en sortie
    digitalWrite (pin[i] , LOW) ;      // on éteint ttes les leds avant de commencer une sélection au clavier
  }                                    // fin de la boucle FOR
}

BB9004

  • Invité
Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #21 le: juin 07, 2018, 08:53:17 am »
Merci  ;)

Quelqu'un a déjà utilisé / programmé une WS2812b ?

les résultats m'intéressent, pour simuler :
-- l'éclat d'une soudure à l'arc : pour obtenir la variation du bleu intense au bleu presque blanc, avec le changement de rythme de cette variation lumineuse (comme en vrai, quoi )
-- l'éclat d'une meuleuse : variation de la couleur orange (en intensité lumineuse et en rythme...)
-- pour la rampe bleue sur la toiture de la camionnette (en époque VI): variation des bleus pour "simuler" un gyrophare ...

- idées complémentaires nocturnes
::) :
> simuler une meuleuse, pour une animation supplémentaire qui se verrait par la demi porte ouverte à l'arrière : ajouter une led orange puissante (ou une WS2812 ?), dans la camionnette, avec variation de l'intensité de la lumière, en combinaison avec un SON (gestion d'un son enregistré, j'ai vu qu'il existait une petite carte arduino pour ça)

> un coup je soude, un coup je meule : 2 opérations techniques réelles et complémentaires ...

> à coté du clavier : afficher le choix en cours sur un LCD... (apprentissage...)

Merci de vos conseils
bonne journée à tous  8)
« Modifié: juin 07, 2018, 09:19:02 am par BB9004 »

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1716
    • Voir le profil
Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #22 le: juin 07, 2018, 09:01:57 am »
Cordialement

CATPLUS

  • Sr. Member
  • ****
  • Messages: 435
    • Voir le profil
Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #23 le: juin 07, 2018, 09:08:07 am »
Bonjour

Regarde en bas de cette page, j'avais créé un truc dans le même genre

http://forum.locoduino.org/index.php?topic=256.105

Marcel
Best Regards

BB9004

  • Invité
Re : Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #24 le: juin 07, 2018, 09:36:08 am »
Bonjour,
Oui, voir ici : http://modelleisenbahn.triskell.org/spip.php?article90

>> SUPER ! Merci Jean Luc
(ya du boulot - pour moi - avant d'arriver au résultat, mais ton article est très motivant  ;) )

Marcel, merci, j'ai chargé ton prog : je vais l'étudier pour apprendre / comprendre les variations d'intensité et de rythme des lumières ;)

Merci encore  8)

Edit : ça va coincer au niveau du nombre de broches ... Uno = 14 E/S numériques
> prévisions actuelles : clavier 4x4 = 8 broches en entrée + 9 leds (mini) en sortie >> déjà 17 broches
et l'idée d'un affichage (LCD ou 7 segments) n'est pas incluse...
 :-\

edit 2 : demande d'info
> je peine sur la gestion/programmation du choix saisi au clavier...

si ce résultat de choix se nomme "choixClavier" (actuellement environ 20 choix possibles en entrée ), donc compris entre 1 & 20
Dois-je les déclare individuellement ainsi : ??
const int choixX (X = de 1 à 20, donc 20 lignes de programme...)
> y a t il une meilleure méthode ? (dans l'esprit de ceci : for (int i = 0 ; i < 5 ; i++) 

-sachant que "choixX" deviendra le NOM de la fonction qui sera appelée par SWITCH  CASE
>> switch (choixClavier) {
         case choix1:
         // ici la programmation de la fonction 1, par exemple warning simple
         break ;
...etc

merci
« Modifié: juin 07, 2018, 05:02:29 pm par BB9004 »

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Re : Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #25 le: juin 07, 2018, 04:29:43 pm »
... ça va coincer au niveau du nombre de broches ...

Mais non, mais non :
les broches A0 à A5 peuvent être utilisées en entrées ou en sorties numériques (et les A6 et A7 - disponibles sur certains clones et sur les Nano  peuvent être utilisées en entrée). Les déclarer comme 14 à 19 et 20 et 21.

Quitte à en ajouter quelques unes ...

PS : garder A4 et A5 pour un LCD 16x2 ou 20x4 en I2C / SPI
« Modifié: juin 07, 2018, 04:33:43 pm par msport »
Cordialement

BB9004

  • Invité
Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #26 le: juin 07, 2018, 04:34:50 pm »
merci MS,
 je croyais quelles n'étaient qu'analogiques, exclusivement  :
 donc, avec les A4 A5 :  un DEUX pb en moins (clavier & LCD) !

edit : sur le conseil de Christian j'ai acheté le bouquin "Arduino, maitrisez sa programmation et ses shields" : ça va aider aussi .
« Modifié: juin 21, 2018, 05:20:58 pm par BB9004 »

BB9004

  • Invité
Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #27 le: juin 20, 2018, 04:47:25 pm »
bonjour

j'ai commencé les recherches sur le clavier 4x4, et trouvé la biblio Keypad.
Vidéo :

et avec un LCD en prime

> les exemples trouvés expliquent la gestion d'UN caractère sélectionné : je n'ai pas compris COMMENT, dans le programme, on lui indiquait qu'il devait :
Q1 - accepter 3 caractères en entrée (exemple : B12 = b pour la famille des actions xxxx, et 12 pour la 12é action dans cette famille), - sauf l'arrêt d'urgence qui pourrait etre ### ? (associé à un Goto fin  ;D , je plaisante)
Q2 - puis ensuite contrôler la bonne existence du code frappé, (1er caractère -alpha -  inclus compris entre A & D, 2é & 3é caractères - numériques - inclus dans la famille en question - toutes n'auront pas le même maximum, mais ça devra etre évolutif...) : un très vieux souvenir de gestion de tables... : possible dans ce cas ?
Q3 - avant de lancer l'action

> avez vous une piste à m'indiquer ?
merci  8)

edit : j'ai trouvé un début de piste , pour la Q1 : http://forum.arduino.cc/index.php?topic=276550.0
>> ça vous semble bon ?

... donc passage à la Q2...
« Modifié: juin 20, 2018, 05:08:10 pm par BB9004 »

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Warning dans véhicule HO / animation de décor réseau
« Réponse #28 le: juin 20, 2018, 09:25:34 pm »
C'est toujours utile de lire un code qui marche, écrit par nos illustres prédécesseurs :

http://trainelectronics.com/DCC_Arduino/DCC++/Throttle/#Rotary_Encoder_in_place_of_Potentiometer

Ce code se modifie sans trop de difficulté pour un clavier 4x4 mais fonctionne déjà tel quel avec.

attention la library LCD utilisée n'est pas obligatoirement à jour. Donc, soit récupérer celle fournie ou adapter le code en fonction des erreurs de compilation (initialisation).

PS : une remarque, le connecteur du clavier 4x4 a la bonne idée de s'adapter directement à 8 broches en ligne du Nano.
« Modifié: juin 20, 2018, 09:29:26 pm par msport »
Cordialement

BB9004

  • Invité
Re : Warning dans véhicule HO / commande par Clavier 4x4
« Réponse #29 le: juin 21, 2018, 10:07:06 am »
Bonjour

Merci Ms
pour le cadeau du matin !  :)  (Et vive les premiers explorateurs !)

> ça semble très proche de ma recherche initiale pour "piloter" l'ensemble des fonctions de la camionnette (et très utile pour d'autres actions HO...)
- utilisation d'un clavier 3x3 : ça me permettra de comprendre comment modifier le code pour passer à 4x4 (plus facile pour le rappel mnémotechnique des codes par famille)
- utilisation d'un LCD à 2 lignes
- alim par batterie de smartphone OU transfo (j'aurai à apprendre la partie "électrique" des différentes alim possibles)
- liaison "sans fil" ou avec fil
- etc ...

Sa vidéo est également bien démonstrative (... son atelier : quasi professionnel ) et les 2 manettes ensemble , miam !
son site doit également être intéressant : j'irai voir

> je vais longuement étudier tout ça, éditer le prog pour l'analyser plus en détail

Merci encore pour ton message  ;)

(ma démarche peut sembler un peu "brouillonne" à bon nombre d'entre vous (qui semblez nager dans la programmation et l'électricité/électronique depuis longtemps) en "papillonnant" sur plusieurs sujets à la fois - le langage de programmation, les cartes, les réalisations, l'évolution du CDC ...- , mais pour le moment j'essaie de comprendre les différentes possibilités et les outils disponibles du monde Arduino, pour ensuite essayer, à mon niveau, d'en extraire la synthèse la plus appropriée à ce premier projet d'apprentissage)

Exemple d'évolution du CDC, avec l'idée du matin  ::) : commander l'ouverture LENTE de la porte arrière de la camionnette AVANT de lancer la led de la soudure (blanche vive)  ou de la meuleuse (orange instable) ; pour cela : utilisation de l'instruction "stepper" à étudier, avec un servo, et éventuellement un signal PWM...

Puis ce serait une évolution avec l'association des sons : grincement d'ouverture de porte, grésillement de la soudure, bruit strident et varié de la meuleuse ...

Bonne journée à tous  8)