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 - Thierry

Pages: 1 ... 32 33 [34] 35 36 ... 45
496
Présentez vous ! / Re : bonjour de samuel
« le: décembre 01, 2016, 08:33:32 pm »
Bienvenue sur Locoduino, le repère des gens qui veulent comprendre, échanger, et faire des économies !
Parce que pratiquer l'Arduino pour le train, c'est se lancer de nouveaux défis, acquérir de nouvelles compétences, et éviter de dépenser des fortunes pour des automatismes que l'on peut concevoir soi-même avec en plus le plaisir de pouvoir dire 'C'est moi qui l'ai fait ' ! 8)

497
Les réseaux / Re : Projet patou77
« le: décembre 01, 2016, 11:54:28 am »
Oui, mais au moins elle est gratuite !  :) (on peut pas tout avoir !)

498
Les réseaux / Re : Projet patou77
« le: novembre 30, 2016, 08:43:55 pm »
Pour moi, c'est gratuit : http://google-sketchup.fr.uptodown.com/windows
Mais c'est vrai que le premier lien proposé par qwant quand je cherche Sketchup, ce n'est pas celui là...

499
Les réseaux / Re : Projet patou77
« le: novembre 30, 2016, 09:12:40 am »
SketchUp, un produit Google, est effectivement entièrement gratuit.

500
Vos projets / Re : Animations réseau
« le: novembre 28, 2016, 08:47:31 pm »
Pour le sifflement en PWM, il faut peut être en changer la fréquence. Un article de Dominique, Jean-Luc et Guillaume parle de ça, mais il n'est pas encore publié... Voici l'extrait qui va bien :
Comment augmenter cette fréquence ?



Citer
On utilise simplement une fonction setPwmFrequency(broche PWM, diviseur) dont l’appel est à placer dans le setup.

void setPwmFrequency(int pin, int divisor) {
  byte mode;
  if(pin == 5 || pin == 6 || pin == 9 || pin == 10) {
    switch(divisor) {
      case 1: mode = 0x01; break;
      case 8: mode = 0x02; break;
      case 64: mode = 0x03; break;
      case 256: mode = 0x04; break;
      case 1024: mode = 0x05; break;
      default: return;
    }
    if(pin == 5 || pin == 6) {
      TCCR0B = TCCR0B & 0b11111000 | mode;
    } else {
      TCCR1B = TCCR1B & 0b11111000 | mode;
    }
  } else if(pin == 3 || pin == 11) {
    switch(divisor) {
      case 1: mode = 0x01; break;
      case 8: mode = 0x02; break;
      case 32: mode = 0x03; break;
      case 64: mode = 0x04; break;
      case 128: mode = 0x05; break;
      case 256: mode = 0x06; break;
      case 1024: mode = 0x7; break;
      default: return;
    }
    TCCR2B = TCCR2B & 0b11111000 | mode;
  }
}
Lorsque l’on souhaite régler cette fréquence, deux choses sont à connaître pour un Arduino UNO (et sans doute aussi pour l’Arduino Mini) :

les fréquence les plus hautes pour les broches 3, 9, 10 et 11 sont de 31250 Hz et pour les broches 5 and 6 : 62500 Hz.
les diviseurs possibles sur les broches 5, 6, 9 and 10 sont 1, 8, 64, 256 et 1024 et sur les broches 3 and 11 : 1, 8, 32, 64, 128, 256 et 1024.
D’autre part, ces broches vont par paire. Il y a donc 3 paires : 5 et 6, 9 et 10 ainsi que 3 et 11 (correspondant aux timers). Changer sur l’une des broches changera les deux !

Attention, pour un autre modèle d'Arduino que le Uno, les broches et les registres changent !

501
Présentez vous ! / Re : Bonjour à tous
« le: novembre 25, 2016, 11:15:31 am »
Bienvenue sur le forum.

Les gens d'expérience en locologie ou en arduilogie sont toujours les bienvenus, et plus encore s'ils maîtrisent la syntaxe et la grammaire !
Le but d'un forum étant le partage, le ton est effectivement détendu même si cela n'exclut pas les désaccords...

En tout cas, il ne faut pas hésiter à poser des questions et/ou proposer des démonstrations de vos propres réalisations.

502
Présentez vous ! / Re : Bonjour
« le: novembre 25, 2016, 11:10:20 am »
Bienvenue parmi nous.

N'hésitez pas à poser des questions et à détailler vos réalisations sur le forum !

503
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 22, 2016, 09:36:04 am »
Tout comme cmdrArduino a des problèmes, la librairie DCC decoder de Mynabay utilisée dans Commanders a aussi ses limites. Le décalage d'adresse sur certains contrôleurs en fait partie. C'est pourquoi j'envisage sérieusement de changer de librairie et d'utiliser plus tard https://github.com/mrrwa/NmraDcc qui semble beaucoup plus proche du standard... J'ai encore deux bibliothèques à sortir sur Locoduino avant de repasser sur Commanders pour faire ça, et sur Accessories pour ajouter les leds RGB et d'autres fonctionnalités.

504
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 21, 2016, 08:33:55 pm »
Non, effectivement je ne vérifie pas, laissant ainsi la possibilité à d'autres centrales d'en envoyer une ou dix, ou même aucune, selon leur choix.

505
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 21, 2016, 08:22:21 pm »
Content de voir que ça marche, et merci pour la bonne déduction ! Peut être ajouterais-je aussi un paramètre à DccCommander sur le modèle de useRaw... pour déclencher l'action sur un 1 plutôt que sur un 0. En même temps, j'ai respecté la norme, qui loin d'être spécifique à la MS2 précise bien que plusieurs trames sont envoyées en rafale avec 1 pour activer l'accessoire pour une certaine durée (trois trames pour la MS2), puis avec 0 pour l'éteindre. C'est parce qu'il n'y en a qu'une avec 0 que j'ai choisi de l'utiliser.
En tout cas, bravo, et bonne continuation.

506
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 21, 2016, 06:17:59 pm »
J'ai poussé la correction dans Commanders pour la compilation. Je verrai l'autre problème un peu plus tard (manque de temps)... Voyons déjà pour provoquer un mouvement.

507
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 20, 2016, 04:55:04 pm »
Si la led 13 ne moufte pas, c'est qu'il n'y a pas de signal Dcc sur le port 3. Elle devrait clignoter assez rapidement.
Cela est sans rapport, mais avez vous activé COMMANDERS_DEBUG_MODE et ACCESSORIES_DEBUG_MODE dans les fichiers .h ?

508
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 20, 2016, 04:07:28 pm »
Après quelques essais, voici le résultat de mes pérégrinations. Je n'ai rien trouvé de suspect, le croquis marche parfaitement pour moi. Malgré tout, un petit plan de bataille pour se mettre dans les meilleures conditions :
1 récupérer les dernières versions de Accessories et Commanders. Les différences poussées aujourd'hui sont minimes et sans rapport avec le problème, c'est juste pour se mettre au même niveau.
2 récupérer aussi la nouvelle version du sketch. Peu de changement, juste l'ajout d'un SERIAL_COMMANDER et son initialisation. Cela va permettre de tester le script sans Dcc, pour au moins assurer que cela fonctionne.
3 Le dernier argument de DccCommander.begin() est là pour faire clignoter la diode si un signal Dcc est présent sur l'entrée. Ce n'est peut être pas nécessaire dans votre cas...
4 les versions des bibliothèques sont sans DEBUG_MODE, sans sauvegarde EEPROM, et aussi sans bus CAN, mais ça ce devait être déjà le cas... Éventuellement réactiver le DEBUG_MODE de Accessories.

#include "Commanders.h"
#include "Accessories.h"

// Accessories
AccessoryMotorTwoWays aiguille;

ButtonsCommanderPush push;

SERIAL_COMMANDER(Serial);

// Drivers
PortTwoPins port;

#define DCCID_DROIT   DCCINT(20, 0)
#define DCCID_DEVIE   DCCINT(20, 1)

void setup()
{
Serial.begin(115200);
Commanders::begin(LED_BUILTIN);
Accessories::begin();

SerialCommander.begin();

// Setup of the Dcc commander.
DccCommander.begin(0x00, 0x00, digitalPinToInterrupt(3));

// Setup of the buttons, one by accessory
push.begin(DCCID_DROIT, 4);
push.AddEvent(DCCID_DEVIE);

// Setup of ports
port.begin(6, 7, DIGITAL);

// Accessories setups

aiguille.beginTwoWays(&port, DCCID_DROIT, DCCID_DEVIE, 255, 250);
}

void loop()
{
unsigned long id = Commanders::loop();

if (id != UNDEFINED_ID)
{
// Renvoie l'événement reçu de Commanders, vers les accessoires...
Accessories::RaiseEvent(id, (ACCESSORIES_EVENT_TYPE)Commanders::GetLastEventType(), Commanders::GetLastEventData());
}

Accessories::loop();
}

Une fois tout en place, et si ça ne marche toujours pas, tester l'envoi d'un code Dcc en manuel : taper 20:0 ou 20:1 dans le champs de saisie de la console. Le moteur doit réagir. En tout cas, en DEBUG_MODE le PortTwoPins doit signaler un changement sur la console.

A suivre...

509
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 19, 2016, 08:42:15 pm »
Je ne pourrais pas ce soir, mais je tenterais demain...

510
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 19, 2016, 07:04:42 pm »
Une adresse Dcc pour accessoire est décomposée en deux parties : la première donne l'adresse du décodeur, la seconde est le numéro de l'accessoire pour ce gestionnaire, entre 0 et 7. Mais sur les centrales classiques, par exemple sur ma MS2 Trix, les accessoires ont une adresse de 1 à 320, et un numéro associé de 0 ou 1. C'est le rôle de la version convertie de passer de 22 / 4 à 90 / 0 (calcul fait de tête sans garantie !). enfin la troisième valeur demande à activer ou désactiver l'accessoire, c'est à dire 0 ou 1. DccCommander ne se préoccupe que de 0...
Tout ça pour dire que cmdrArduino doit envoyer une adresse calculée selon la norme (décodeur + n° accessoire parmi 8) pour que Dcccommander interprète cette adresse et utilise ces valeurs pour les accessoires. L'autre solution est celle que nous avons appliquée : cmdrArduino envoie une valeur brute (20/0) et DccCommander n'interprète pas (avec useRaw...) et prend ces valeurs telles quelles... Ce qui ne semble pas marcher non plus. Je sèche !

Pages: 1 ... 32 33 [34] 35 36 ... 45