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

Pages: 1 [2] 3 4
16
Bibliothèques / Re : bibliothèque Commanders+Accessoires
« le: octobre 23, 2017, 10:09:46 am »
Sur ma plateforme de test, j'ai bien un device slave sur l'I2C: un arduino nano avec le sketch qui active un aiguillage (celui en début de ce sujet).
Avec le 1er sketch d'envoi I2C que j'ai fait (PJ du 18/10 22h03), cela fonctionne bien.

C'est en essayant d'associer la bibliothèque Commanders et l'envoi I2C avec la fonction récupérer dans l'exemple I2C_Sender que cela freeze.
En recherchant sur le net, je trouve beaucoup de sujets sur des problèmes de freeze similaire en I2C...

Je testerai ce soir avec une librairie I2C alternative et revérifierai le bon fonctionnement avec mon 1er sketch.

17
Bibliothèques / Re : ArduiEmulator
« le: octobre 23, 2017, 10:01:02 am »
bonjour,

Oui j'avais déjà modifié "Platform Toolset" pour correspondre avec VS2015.

J'ai enfin réussi à compiler et exécuter TestExe.exe !  :D
J'ai dû en plus:
- pour chaque projet, reconfigurer "Output Directory"
- TestExe:
    ajouter dans "Additonnal Include Directory" les répertoires sources de ArduiEmulator, DIO2, Commanders
    ré-inclure en dépendances les projets ArduiEmulator et DIO2 après qu'ils ait été recompilés.

L'exemple programme2.ino fonctionne bien dans l'émulateur  8)

Par contre programme6.ino plante sur EEPROMClass ligne 343 dans InoProject.cpp, mais bon ton projet émulateur est en plein développement donc je ne m'inquiète pas d'avoir des possibles plantages  ;)

Encore bravo pour cet émulateur, et je suis prêt à t'aider (plus en tant que beta testeur qu'en tant que développeur) pour continuer son développement :)

18
Bibliothèques / Re : ArduiEmulator
« le: octobre 21, 2017, 02:27:57 pm »
OK.
Pour ma part je ne pourrai vérifier que lundi sur VS2015...

19
Bibliothèques / Re : bibliothèque DcDccNanoController
« le: octobre 21, 2017, 02:27:01 pm »
Pour ma part, je compile avec l'IDE Arduino version 1.6.9 et n'ai pas de problème de compilation avec ce sketch.

Vérifies bien que tes librairies soient bien installées et reconnu dans le gestionnaire de bibliothèques Arduino.

20
Bibliothèques / Re : ArduiEmulator
« le: octobre 21, 2017, 11:21:25 am »
Bonjour,

Je suis d'accord pour l'emplacement à respecter mais arduino.h n'existe pas dans les sources de DIO2.

21
Bibliothèques / Re : bibliothèque Commanders+Accessoires
« le: octobre 20, 2017, 07:03:42 pm »
bonsoir,

Je viens de tester en enlevant la partie Accessoires:
Toujours le même freeze de l'arduino lorsque j'appuie sur le bouton poussoir.

22
Bibliothèques / Re : ArduiEmulator
« le: octobre 20, 2017, 09:49:09 am »
Bonjour,

J'ai récupéré les nouveaux fichiers, tout remplacé.
J'ai ouvert la solution AccessoriesTestExe.sln, fait F5....
Mais à la compilation j'ai toujours ce problème de dll manquante:
Error   C1192   #using failed on 'Documents\Arduino\libraries\Accessories\VStudio\x64\Debug\DIO2.dll'   TestExe   Documents\Arduino\libraries\Commanders\src\ButtonsCommander.cpp   1   
Et pour le projet DIO2, le fichier arduino.h manquant.

23
Bibliothèques / Re : bibliothèque Commanders+Accessoires
« le: octobre 18, 2017, 10:03:34 pm »
J'ai réussi à envoyer les commandes correctement par I2C  :D
en PJ le sketch.

Maintenant j'aimerai réutiliser le principe de la librairie Accessoire au niveau des déclarations des boutons et des ID d'événements liés.
Ceci afin de rendre plus propre et plus structurer le code.

Seulement à chaque fois que j'utilise ma fonction d'envoi de trame I2C, l'arduino freeze et ne répond plus et rien ne se passe au niveau réception.
Sur la console, la sortie est incomplète, par exemple:
Citer
10020 5 0
Commander event : Address : 10020 / MOVEPOSITIONID
I2C send Commanders event: 10020/5/0
I2C sender

Voici le code:
#include <Commanders.h>
#include "Accessories.h"
#include <Wire.h>

ButtonsCommanderPush push;

#define CONSOLE

#define ADDR_I2C 0x10

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

bool Commanders_I2C_SendEvent(uint8_t inID, unsigned long inEventID, COMMANDERS_EVENT_TYPE inEventType, int inEventData)
{
#ifdef CONSOLE
  Serial.print(F("I2C send Commanders event: "));
  Serial.print(inEventID, DEC);
  Serial.print(F("/"));
  Serial.print((char) ('0' + (char)inEventType));
  Serial.print(F("/"));
  Serial.println(inEventData, DEC);
#endif
 
  Wire.beginTransmission(inID);

  int nb = Wire.write((const uint8_t *)&inEventID, sizeof(unsigned long));
  nb += Wire.write((char )inEventType);
  nb += Wire.write((const uint8_t *)&inEventData, sizeof(int));

#ifdef CONSOLE
  Serial.print(F("I2C sender : nb byte transmitted : "));
  Serial.println(nb, DEC);
#endif

  Wire.endTransmission(true);

  return true;
}

void ReceiveEvent(unsigned long inId, COMMANDERS_EVENT_TYPE inEvent, int inData)
{
  COMMANDERS_PRINT_EVENT(inId, inEvent, inData);
  //if (inId != UNDEFINED_ID){
  //  Commanders_I2C_SendEvent(ADDR_I2C, inId, inEvent, inData);
  //}
}

void setup()
{
  Serial.begin(115200);
 
  Commanders::begin(ReceiveEvent, LED_BUILTIN);
  Accessories::begin();
 
  // Setup of the buttons, one by accessory
  push.AddEvent(DCCINT(20, 1));
  push.begin(DCCINT(20, 0),4);
}

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

J'ai laissé commenter les endroits où j'utilise la fonction d'envoi I2C pour montrer les divers endroits ou j'ai testé sans succès.

Si tu as une idée du problème, je suis preneur :)

Merci de ton aide.

24
Bibliothèques / Re : bibliothèque Commanders+Accessoires
« le: octobre 18, 2017, 08:46:36 pm »
OK je comprend mieux d'où vient ce "10020" que m'affiche la sortie console.

Je vais faire les modifications pour prendre en compte cette macro.

J'avais bien compris la liste d'événements associé au BP.
Ma dernière question (interrogation) est résolue par ce que tu m'as répondu sur la macro :)

25
Bibliothèques / Re : ArduiEmulator
« le: octobre 18, 2017, 08:42:51 pm »
Tu n'as pas besoin de t'excuser :)
Je trouve déjà formidable cette émulation en pouvant charger des sketch !  :D

Prends ton temps.
De mon coté je suis plus occuper sur les autres librairies ;)

26
Bibliothèques / Re : bibliothèque Commanders+Accessoires
« le: octobre 18, 2017, 07:26:53 pm »
Thierry,

Je viens de récupérer tes nouvelles sources: ça fonctionne en TCO local !   :D
sortie console:
Citer
Commander event : Address : 20 / MOVEPOSITIONID
ButtonsCommanderButton id:20 selected !
4 / 5 PortTwoPins MoveRightDir()
4 / 5 PortTwoPins MoveStop()
Commander event : Address : 10020 / MOVEPOSITIONID
ButtonsCommanderButton id:10020 selected !
4 / 5 PortTwoPins MoveLeftDir()
4 / 5 PortTwoPins MoveStop()

maintenant je m'attaque à l'envoi/réception par I2C et je rencontre à nouveau des petits soucis:
j'ai repris l'exemple I2CSender.ino de Commanders.
j'ai ajouté quelques lignes de debug dans I2CCommander.cpp pour me sortir les données reçues par I2C.
au 1er appui sur un bouton-poussoir, la sortie d'aiguille réagit bien:
Citer
I2CCommander::ReceiveHandler: chars read : 7
data received from I2C: 20 0 0 0 5 0 0
Commander event : Address : 20 / MOVEPOSITIONID
4 / 5 PortTwoPins MoveRightDir()
4 / 5 PortTwoPins MoveStop()

par contre un second appui sur BP ne donne rien sur la sortie:
Citer
I2CCommander::ReceiveHandler: chars read : 7
data received from I2C: 20 0 0 0 5 1 0
Commander event : Address : 20 / MOVEPOSITIONID
Same position : Cant move !

coté sketch I2CSender.ino, je met juste la commande envoyée:
1er appui: Commanders_I2C_SendEvent(0x10, 20, COMMANDERS_EVENT_MOVEPOSITIONID, 0);
2eme appui:  Commanders_I2C_SendEvent(0x10, 20, COMMANDERS_EVENT_MOVEPOSITIONID, 1);

si par contre pour le 2eme appui je met:
 Commanders_I2C_SendEvent(0x10, 10020, COMMANDERS_EVENT_MOVEPOSITIONID, 1);
ma sortie d'aiguille réagit bien et je peux faire bouger correctement l'aiguillage à chaque appui sur le BP.

Mon interrogation:
Je pensais que le dernier argument de Commanders_I2C_SendEvent() indiquait la sous-fonction à activer sur l'ID indiqué.

De mon point de vue, je trouve bizarre en TCO que l'appui sur le BP fasse changer l'adresse reçue par CommanderEvent,
à moins qu'il n'y ait plus de notion d'adresse mais seulement des ID unique lier aux événements ajouter aux boutons...
mais pourquoi alors déclarer comme ceci les 2 actions que le BP gère:
push.AddEvent(DCCINT(20,1));
push.begin(DCCINT(20,0),PIN_BP);

Peux tu m'éclaircir mon interrogation ?
Merci.

27
Bibliothèques / Re : ArduiEmulator
« le: octobre 18, 2017, 05:21:42 pm »
bonjour,

j'ai ouvert la solution AccessoriesTestExe.sln avec VS2015.
après avoir rafraichit les chemins pour ArduiEmulator, j'ai lancé une compilation:

1ère erreur pour Test.exe: il demande DIO2.dll
j'essaye de compiler le projet DIO2: erreur arduino.h introuvable
j'ajoute arduino.h (se trouvant dans les sources de ArduiEmulator) dans le projet DIO2
encore erreur: arduiemulator.inc introuvable (et effectivement manquant dans les sources ArduiEmulator)

peux tu corriger tout cela et également mettre à jour ton sujet pour expliquer les imbrications des projets et les étapes à effectuer avant de pouvoir exécuter l'émulation arduino avec un .ino ?

Merci beaucoup

28
Bibliothèques / Re : bibliothèque DcDccNanoController
« le: octobre 18, 2017, 10:25:40 am »
Bonjour Thierry,

Merci pour la correction et ajout de fonctionnalité :)

Une question:
J'ai vu dans le dossier extra qu'il y a les sources ArduiEmulator.
Si je le compile avec VS2015, cela me donne un Emulateur Arduino capable d'exécuter le sketch DcDccNanoController ?
On peut contrôler les pins I/O de l'arduino en interface graphique ?

J'ai ouvert le projet avec VS2015 et tenté de compiler: fichier ArduiEmulator.inc introuvable.
Il est manquant dans les sources.

29
Bibliothèques / bibliothèque Commanders+Accessoires
« le: octobre 17, 2017, 10:34:31 pm »
Bonsoir,

J'ai repris les exemples fournis dans la bibliothèque Accessoires pour actionner un aiguillage type Jouef 2 solenoïdes (via ULN2003).
Je tente de l'actionner avec un bouton poussoir, ou bien un interrupteur et hélas ça ne se passe pas comme prévu  :'(

voici le code:
#include <Commanders.h>
#include "Accessories.h"

ButtonsCommanderPush push;
ButtonsCommanderSwitch boutonAiguillageGauche;

// Accessories
AccessoryMotorTwoWays aiguille;

// Drivers
PortTwoPins port;

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

void ReceiveEvent(unsigned long inId, COMMANDERS_EVENT_TYPE inEvent, int inData)
{
  COMMANDERS_PRINT_EVENT(inId, inEvent, inData);
}

void setup()
{
  Serial.begin(115200);
 
  Commanders::begin(ReceiveEvent, LED_BUILTIN);
  Accessories::begin();
 
  I2CCommander.begin(0x10); // I2C Slave identifier.
 
  // Setup of ports
  port.begin(4, 5, DIGITAL);

  // Accessories setups
  push.AddEvent(DCCID_DEVIE);
  push.begin(DCCID_DROIT,8);
 
  boutonAiguillageGauche.AddEvent(DCCID_DROIT, 6);
  boutonAiguillageGauche.AddEvent(DCCID_DEVIE, 7);
  boutonAiguillageGauche.begin();
 
  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();
}

j'ai activé le mode debug pour voir ce qu'il se passe sur la console série:
au démarrage:
Commanders V1.40
Developed by Thierry Paris.
(c) Locoduino 2016-2017

*** Setup Commanders started.

Accessories V1.0
Developed by Thierry Paris.
(c) Locoduino 2016-2017

*** Setup Accessories started.
*** Setup Commanders Finished.
Commander event : Address : 20 / MOVE ON
Commander event : Address : 10020 / MOVE OFF
*** Setup Accessories Finished.

Si j'actionne mon interrupteur, rien ne se passe et aucune réaction de la ledbuiltin, ou des sorties vers l'aiguillage.

Si j'appuie sur le bouton poussoir:
Commander event : Address : 10020 / MOVEPOSITIONID
ButtonsCommanderButton id:10020 selected !
Same position : Cant move !
Same position : Cant move !
Same position : Cant move !
Same position : Cant move !
Same position : Cant move !
Same position : Cant move !
....
et au bout de plusieurs dizaine de lignes du même message, l'arduino redémarre (il n'a pas dû aimé :()

Pouvez vous me venir en aide ?

Merci.

PS: quand le TCO local fonctionnera, je voudrais envoyer les ordres via I2C avec un autre Arduino.

30
Bibliothèques / Re : bibliothèque DcDccNanoController
« le: octobre 17, 2017, 03:31:10 pm »
OK merci pour toutes ces infos.

Je vais dans un 1er temps m'essayer en séparant les rôles et utiliser l'I2C pour la partie TCO accessoires

Pages: 1 [2] 3 4