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 ... 33 34 [35] 36 37 ... 45
511
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 !

512
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 19, 2016, 10:46:36 am »
Le Dcc fournit des valeurs brutes (real data) qu'il faut interpréter pour obtenir quelque chose qui ressemble à ce qui est affiché sur l'écran de la plupart des centrales...

Je ne sais pas quelle centrale vous utilisez, mais il semble que les valeurs transmises par la trame Dcc soient déjà les valeurs converties...
Pour tester cette idée, ajoutez la ligne DccCommander.UseRawDccAddresses = true; juste après le begin de DccCommander.

513
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 18, 2016, 05:06:37 pm »
Pas de souci, j'ai aussi besoin de cas concrets pour déverminer le code...

Je n'avais pas pensé à cela. Effectivement, rien ne dit que les deux moteurs sont dépendants... Changeons notre fusil d'épaule en utilisant un seul moteur :

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

// Accessories
AccessoryMotorTwoWays aiguille;

ButtonsCommanderPush push;

// Drivers
PortTwoPins port;

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

void setup()
{
  Commanders::begin(LED_BUILTIN);
  Accessories::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();
}

514
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 18, 2016, 04:00:54 pm »
Je viens de repousser le zip sur la forge. Il y avait une erreur sur CHECK_PIN dans certains cas particuliers...

515
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 18, 2016, 03:40:31 pm »
La version de Jay est celle qui m'a permis de commencer, mais je l'ai abondamment modifiée. Il faut absolument utiliser celle qui est présente dans les répertoires extras de mes deux librairies. Pour installer une bibliothèque, je rappelle qu'il faut utiliser l'option ' Croquis/Inclure une bibliothèque.../Ajouter le bibliothèque ZIP... ' qui garantit une installation conforme. Et en faisant ça, dans mon IDE 1.6.11 (donc pas le dernier...) j'ai bien le dossier board !

516
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 18, 2016, 02:58:46 pm »
Pour les librairies, oui, il suffit d'installer Accessories et Commanders. Attention, ces deux là ont aussi besoin d'une troisième librairie en embuscade :) : DIO2. Elle est présente dans le répertoire extras de Commanders et Accessories. Normalement c'est le même fichier zip, à installer comme n'importe quelle bibliothèque. UAD peut rester en place, il ne devrait pas y avoir de collisions.

Sur un réseau, il ne peut y avoir qu'un seul donneur d'ordre Dcc. En clair, il n'est pas possible d'insérer un Arduino sur un réseau piloté par une centrale quelle qu'elle soit. Si l'Arduino est seul, alors il est possible de pousser des trames via un cmdrArduino ou un Dcc++, sinon il faut passer par un autre canal.
Dans Commanders, il y a un Commander I2C. Cette interface de communication est présente sur presque tous les Arduino. Dans les exemples de commanders se trouve un programme autonome sans Commanders qui est un émetteur d'ordres I2C, sachant que Commanders est lui un récepteur. Dans cette optique on aurait un Arduino 'TCO' avec Commanders pour gérer ses boutons, et une copie de l'exemple émetteur d'ordres I2C. De l'autre un Arduino (ou plusieurs) avec Commanders et Accessories recevant ses ordres via le I2CCommander et agissant sur les accessoires.
Ce que je dis là avec I2C est également vrai pour une liaison CAN, bien plus sûre tant en distance qu'en sensibilité aux perturbations...

517
Bibliothèques / Re : besoin d'aide sur Universal Accesory Decoder
« le: novembre 18, 2016, 01:54:25 pm »
Bonjour

En fait c'est assez simple.

D'un côté vous avez une liste d'accessoires que vous avez appelé 'accessories'. Dans cette liste, vous avez ajouté deux moteurs 'AccessoryMotorOneWay', vous auriez tout aussi bien pu ajouter un 'AccessoryMotorTwoWays', le résultat aurait été le même... Mais ça marche aussi comme ça !

De l'autre côté, vous avez un driver, votre 'arduino'. Ce driver dispose d'une liste de ports, un pour chaque broche utilisée.

Ces deux objets sont indépendants. Rien ne les relie automatiquement dans le code. C'est le rôle des 'Setup' d'accessoire de faire le lien.
En écrivant 'MOTOR1WAY(accessories, BOBINE1)->Setup(arduino, BOBINE1_PORT, 250);'
vous dites que l'élément BOBINE1 (donc 1) de la liste des accessoires 'accessories' est relié au port BOBINE1_PORT (donc 1) de la liste des ports du driver 'arduino'. Accessoirement (si j'ose dire), le délai permet effectivement de limiter le temps d'activation du port à 250ms.

J’espère juste qu'entre les broches de l'Arduino et votre aiguillage il y a bien un L298N ou autre pour apporter assez de courant aux bobines. Sinon c'est un bon motif de friture d'Arduino !

Je voudrais ajouter que ce week-end, je devrais être en mesure de publier un article au sujet du successeur de UAD, j'ai nommé 'Accessories'.  Voici la nouvelle version de votre programme pour elle :

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

// Accessories
AccessoryMotorOneWay droit, devie;

ButtonsCommanderPush push;

// Drivers
PortOnePin portDroit, portDevie;

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

void setup()
{
  Commanders::begin(LED_BUILTIN);
  Accessories::begin();

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

  // Setup of the buttons, one by accessory
  push.begin(3, DCCID_DROIT);
  push.AddEvent(DCCID_DEVIE);
 
  // Setup of ports
  portDroit.begin(6, DIGITAL);
  portDevie.begin(7, DIGITAL);

  // Accessories setups

  droit.begin(&portDroit, DCCID_DROIT, 255, 250);
  devie.begin(&portDevie, 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();
}

Le gain ? Une écriture plus ramassée, pas de pointeurs, beaucoup moins de macros comme MOTOR1WAY, pas d'indices dans des listes... Mais aussi la disparition des Drivers, une gestion étendue à l'ensemble des circuits d'alimentation du marché présents et à venir. Bref, que des avantages... Par contre la partie Commanders a été extraite et doit être aussi utilisée comme une bibliothèque externe. Le loop peut paraître plus compliqué, mais en fait c'est toujours le même, il ne change pas quel que soit le nombre de boutons, de Commanders utilisés (DCC, mais aussi Série, I2C, CAN...) ou d'accessoires !

Cette bibliothèque est déjà disponible ici : https://git.framasoft.org/locoduino.org/Accessories/blob/master/Accessories.zip.
De son côté, Commanders est dispo ici: https://framagit.org/locoduino.org/Commanders/blob/master/Commanders.zip

Bon courage.

518
Présentez vous ! / Re : Bonsoir a vous tous
« le: novembre 10, 2016, 11:20:39 pm »
Bienvenue sur le forum.
N'hésites pas à poser des questions et à soumettre tes projets !

519
Présentez vous ! / Re : Bonjour à tous,
« le: novembre 03, 2016, 08:21:54 pm »
Bienvenue parmi nous, en attendant de te lire à propos de tes réalisations !

520
Vos projets / Re : Animations réseau
« le: octobre 30, 2016, 10:01:24 am »
Très sympa les animations. Je me demande juste si un peu d'aléatoire (http://www.locoduino.org/spip.php?article56) dans tout ça ne t'aurais pas évité de devoir faire des tableaux...

521
Présentez vous ! / Re : Présentation
« le: octobre 17, 2016, 10:58:02 am »
Bienvenue Eric ! N'hésites pas à nous faire partager tes réalisations, et nous faire part de tes projets (dans le domaine Locoduinesque, bien sûr).

522
Présentez vous ! / Re : Nouvel arrivant
« le: octobre 15, 2016, 11:23:43 am »
En tout cas, bienvenue parmi nous !

523
J'essaierai de venir. Je dois négocier avec la tour de contrôle, mais c'est en bonne voie.

524
Tu y seras tout le WE ?

525
Présentez vous ! / Re : Nouveau dans ARDUINO
« le: septembre 17, 2016, 04:47:37 pm »
Bienvenue parmi nous, et heureux que nos travaux aident la communauté ! N'hésites pas à développer et expliquer ton projet sur le forum !

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