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 ... 106 107 [108] 109 110 ... 170
1606
Vos projets / Re : Un train de table
« le: juillet 01, 2018, 10:47:39 pm »
Superbe projet  ;D

J’espere que tu as assez de temps devant toi.

1607
Vos projets / Re : Automate embarqué
« le: juillet 01, 2018, 10:07:08 pm »
Peyo,

Mon code est un peu gros parce qu’il fait des tas de choses dont tu n’as pas besoin comme la recherche automatique d’adresse DCC, la gestion complète de l’afficheur et les asservissements de vitesse et de ralentissement.

Je te conseille d’essayer d’elaguer tout ce qui ne te semble pas indispensable et, tu verras que ce sera une bonne base.

On essayera d’en faire profiter tout le monde.

Bon courage et bonnes vacances !
Dominique


1608
Vos projets / Re : Automate embarqué
« le: juin 30, 2018, 12:27:37 pm »
Peux-tu m'indiquer quelle bibliothèque RFID tu utilises ?
Est-elle dans le gestionnaire de bibliothèque de l'IDE ?
Sinon où sur GitHub ?

Merci d'avance.

Il y a des erreurs dans ton sketch, notamment, tu définis des pins d'affichage (pour des leds ?) en constante et tu affectes ensuite des valeurs différentes :

const byte Badge_Gare1 = 2;
const byte Badge_Gare2 = 3;
const byte Badge_FinDeVoie1 = 4;
const byte Badge_FinDeVoie2 = 5;

---

{
  Badge_Gare1 = HIGH;
else
  Badge_Gare1 = LOW;
}

Je penses que tu voulais écrire
{
  digitalWrite(Badge_Gare1, HIGH);
else
  digitalWrite(Badge_Gare1, LOW;
}

D'une manière générale évite de mélanger les valeurs HIGH et LOW des booléens avec des valeurs numériques (même si LOW = 0 et HIGH > 0) : cela conduit très vite à des erreurs.

Ton sketch ne peut pas marcher car tu n'as qu'une seule variable d'état et ton système à besoin de plusieurs variables d'état :
- une pour la position de la loco
- une pour le sens
- une pour la vitesse courante
- une pour la tempo d'acceleration ou deceleration
- une pour la tempo d'arrêt en gare

De plus, comme ton programme doit pouvoir faire plusieurs choses à la fois, tu NE DOIS PAS utiliser delay() !!

Peux-tu lire mon article sur le va et vient qui traite à peu près le même problème que toi :
http://www.locoduino.org/spip.php?article232

Tu y trouveras à coup sur les réponses dont tu as besoin.


1609
Ce concept de satellite est très intéressant et je me rends compte qu’il peut avoir de nombreuses applications.

Par exemple dans mon club à ARPAJON nos jeunes sont en pleine réalisation de modules qui représentent une gare avec des zones de manœuvre autour d’une ballastière. Sur ces modules il y a des aiguilles, des signaux électriques et mécaniques, des détecteurs, un TCO avec des inverseurs et des leds et une centrale DCC. Donc des servos, des leds et des capteurs (dont les inverseurs du TCO qui définissent les scénario de manœuvre).

La conduite sera manuelle mais déjà on perçoit la notion de satellites prenant en charge, chacun, un ensemble d’éléments pour les lier en fonction des règles de circulation.
Dès que le réseau s’agrandira, le bus Can permettra de piloter tout le réseau à partir d’un gestionnaire.

L’investissement dans des satellites va s'avérer rentable  :D.

Si le sujet vous inspire nous ouvrirons un sujet dédié.


1610
Le premier satellite avec son circuit imprimé et ses composants a vu le jour cette semaine (chez moi en tout cas) :




J'ai découvert par la même occasion les soudures de composants CMS : c'est facile !

1611
Merci Marc-Henri,

Ça c’est très très gentil de proposer une méthode et une aide pour les débutants.

J’avoue que j’ai parfois du mal à me mettre à la portée des débutants après plus de 1000 messages sur ce forum, plus de 60 articles et 450 réponses sur le site éditorial.
J’espère que BB9004 ne m’en voudra pas (avec un petit conseil : la POO viendra plutôt après les bases  ;)).

Bien amicalement
Dominique




1612
Bravo Denis,

C'est une étape importante et la question du Mac trouvera sa réponse en éliminant les spécificités propres à chaque OS : il y a forcément un tronc commun qui marche !

Amicalement
Dominique

1613
Citer
> ma réponse est : NON
ce n'est pas clair.

Ah bon, pas besoin de s'énerver  >:(

qu’est-ce tu ne comprends pas ?
- créer une variable ?
- incrémenter une variable ?
niveau_son ++;
if (niveau_son > 3) niveau_son = 0;
-tester si un caractère reçu est « * » ?

Apprendre c’est un peu aussi chercher par soi-même, non ?
Je voulais juste te donner des pistes, pas faire ton programme.
 
Je crois que je vais éviter tes messages si tu préfères.


1614
Quelques remarques sur des discussions connexes du forum qui me semblent importantes :

- pour une sécurité maximum (de la part du gestionnaire) tous les véhicules doivent consommer un peu de courant (moteurs, éclairages, feux de fin de convoi, graphitage des essieux, …)

- si le delais de libération est fait numériquement il peut être précis, permettant d'avoir des temps de parcours de zones tout aussi précis  (normalement l'occupation est immédiate).

Pierre

Dans la réalité les circuits de voie détectent une variation de courant (suite à un court-circuit provoqué par les roues+essieux métalliques d’apres Wikipedia : https://fr.m.wikipedia.org/wiki/Circuit_de_voie).

Le gestionnaire doit travailler différemment avec les occupations et les libérations. L’occupation, en tête de train est la plus importante. Elle détermine les signaux et le suivi des trains en fonction du sens de circulation. Si un train est en pousse, il faut évidemment que le premier wagon ou voiture soit « vu » par le détecteur.

La libération sert seulement à confirmer qu’il n’y a plus de convoi sur une zone (à mon avis), notamment pour protéger les convois suivant en cas de perte de wagon.

Une libération de la zone « n » qui n’arrive pas (par exemple quand le convoi occupe la zone n+2) est une anomalie, à condition que la longueur du convoi soit toujours inférieure à la longueur des zones (dans les zones d’aiguilles, ça peut être n+3 ou plus évidemment).

Le gestionnaire a beaucoup de travail, de cas à traiter. Pour moi il vaut mieux le protéger des fausses détections mais je suis d’accord, il y a plusieurs circuits possibles.

Le plus important est comment est fait le traitement des occupations et libérations par le gestionnaire, qui doit être indépendant de la technique de détection.


1615
[/u]sur la gestion du SON :

> avec le module "carte SD" faut-il utiliser un ampli ? (qui serait alors "piloté" par "niveau_son" ?, mais son potar d'ampli ?)
ex : https://fr.aliexpress.com/item/PAM8406-Digital-Class-D-Stereo-Audio-Amplifier-Board-2-Channel-6W-2-AMP-Board/32665965317.html?spm=a2g0s.8937460.0.0.5cbd2e0eRLBpHA
??

(l'idée étant d'adapter la sortie sonore à l'environnement - imaginons cette mini animation dans une expo...)

Tu fais comme tu veux, selon la puissance et la qualité sonore recherchée. Ces petits ampli en classe D ne sont pas cher mais génèrent parfois des ultrasons que les enfants entendent. Je dirais même que la qualité du haut-parleur est primordiale. Je n’en connais pas de bons et petits. J’utilise de la récup.

Il faut faire des essais.

1616
J’ai pourtant été clair :

Tu affectes une variables "niveau_son" à la détection de "*"
A chaque appui sur * tu incrémentes "niveau_son" : 1, puis 2, puis 3, puis 0, puis 1, etc..
et tu modifies le niveau du son évidemment.

A chaque appui (une fois) le niveau change.

1617
facile :

Tu affectes une variables "niveau_son" à la détection de "*"
A chaque appui sur * tu incrémentes "niveau_son" : 1, puis 2, puis 3, puis 0, puis 1, etc..
et tu modifies le niveau du son évidemment.

1618
Vos projets / Re : Automate embarqué
« le: juin 25, 2018, 12:56:38 pm »
Mais justement, l’article de Jean-Luc cité par Marc-Henri est exactement ce qu’il te faut : à moins d’un coup de chance extraordinaire, tu ne trouveras pas ton programme tout fait, il faut passer par une phase de réflexion pour faire la modélisation, c’est à dire imaginer ton système en fonctionnement et faire la liste de tous les événements (les passages devant les capteurs, les fins de temporisation), les actions déclenchées par ces événements (des sous-programmes pour garder ton programme principal le plus clair possible, en choisissant des noms explicites), et surtout les états possibles qui seront représentés par une ou plusieurs variables d’état.

Par exemple, les différentes phases du parcours sont représentées par une variable d’état et le sens de déplacement par une autre. Quand une condition se réalise (capteur, tempo) il faut tester toutes les variables concernées.

Autre exemple, une variable doit indiquer si le train entre où sort de la gare : cela éliminera la problème que tu évoques.

Pour gérer les temporisations en tache de fond il faut évidemment utiliser la fonction millis()  :
if ((millis() - dateDernierChangement) > tempo)
{
  action en fin de tempo
}

C’est difficile de te donner des exemples, il y en plein dans Locoduino !

Dans tous les cas une bonne réflexion avant de programmer est nécessaire.

Bon courage.

1619
Vos projets / Re : Automate embarqué
« le: juin 25, 2018, 09:49:35 am »
Mais quel est le problème ?

Un problème de capteurs RFID ? Es-tu certain de les détecter tous à tous les coups ?

Ou un problème de logique d’automate ?

Peux-tu mettre ton programme en pièce jointe ?

Bonne journée.

Dominique

1620
Bibliothèques / Re : Bibliothèque DCCpp
« le: juin 24, 2018, 11:40:32 pm »
Thierry a certainement raison :
Citer
Pour moi, tous les décodeurs arrivent à recevoir les messages et à faire ce qu'on leur demande

En fouillant sur les forums les plus sérieux, j’ai eu l’impression que quand on tombe sur une difficulté, on ne cherche pas très longtemps et on la contourne  :-X. En l’occurence, on ne vérifie pas la bonne programmation des CVs en les relisant.

Pour l’adresse d’une loco, c’est facile, si la loco réagit à la nouvelle adresse, c’est qu’elle est bien programmée.

Moi je cherche à lire tous les CVs pour garder une description de mon parc et surtout pour faire de la reconnaissance automatique de locos (voir le va et vient).

Je considère qu’il y a encore à explorer ce domaine et je remercie Thierry d’avoir intégré cette fonction de reconnaissance automatique dans DCCpp, même si elle ne marche pas encore avec tous les décodeurs.

Amicalement
Dominique

Pages: 1 ... 106 107 [108] 109 110 ... 170