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 ... 17 18 [19] 20 21 ... 45
271
Bibliothèques / Re : Signal DCC entre arduino
« le: juin 04, 2019, 11:39:56 pm »
Bonsoir

Tout semble configuré comme il faut, mais je suis sceptique sur l'analyse du flux DCC par Commanders. Je ne vois pas son copyright, ce qui me fais penser qu'il n'est pas lancé, ou qu'il n'est pas configuré en mode debug. Ce serait peut être intéressant de le faire, parce que lui va dire tous les paquets DCC qu'il identifie...

272
Présentez vous ! / Re : Boujours à tous
« le: juin 04, 2019, 02:04:31 pm »
Bienvenue parmi nous, et merci pour le satisfecit !

273
Bibliothèques / Re : ArduiEmulator
« le: juin 01, 2019, 03:19:01 pm »
Bonjour à tous

Deux ans après la première version de ArduiEmulator, je reviens vous présenter la version 2.0.0.
J'avais deux problèmes avec la version 1 : l'utilisation de C++ managé que je maîtrise assez peu, et la structure de la bibliothèque qui m'obligeait à passer par des macros pour les fonctions de base comme pinMode ou digitalWrite... Ce qui a été fatal lorsqu'une amélioration de Accessories a proposé de nommer des méthodes de classe avec ces mêmes noms. Impossible tant que les macros chercheraient à remplacer les nouvelles fonctions par des macros sans aucun rapport.
J'ai essayé de solutionner les deux problèmes simultanément.

Première partie de la solution, un exécutable Window en véritable C# beaucoup plus facile à manipuler (pour moi en tout cas) que le C++ managé. Ce programme, ArduiEmulatorWin, que nous appellerons l'émulateur, ne contient que l'émulation proprement dite. Un fois compilé, cet exécutable n'a pas besoin de changer à chaque projet...
L'allure générale et les capacités sont globalement les mêmes que la version 1, mais des nouveautés sont apparues :
  • Il est devenu possible de choisir le type d'Arduino émulé, ceci afin de mieux gérer les erreurs de numéro de broche... Le code est prévu pour vérifier les fonctionnalités des broches (PWM ou pas ? Interruption ou pas ? Analogique ou Digital ?), mais ce n'est pas encore exploité. Trois types sont disponibles : Uno R3, Nano R3 et Mega2560. Ajouter de nouveaux types n'est pas compliqué...
  • Les nouveaux multiplicateurs de port sont gérés. Ces broches qui ne sont pas directement issues de l'Arduino émulé sont donc affichées. Aujourd'hui il est possible, même sans Accessories, de voir l'état de broches d'un 74HC595 ou d'un SX1509. Là encore, d'autres expanders peuvent être ajoutés. C'est un peu plus compliqué que pour un type d'Arduino, mais ce n'est pas insurmontable
  • Il est possible de faire faire des choses à l'émulateur comme si un programme Arduino lui demandait, via le ligne des messages série et le bouton 'Pins'. Les commandes possibles sont lisibles dans le readme.md du répertoire.

Seconde partie : la librairie qu'il faut lier au ino utilisateur pour créer l'exécutable Arduino. On se retrouve avec deux exécutables qui vont discuter et échanger des informations.

Comment ça marche : chacun des deux exécutables est à la fois un émetteur et un récepteur de messages texte. La discussion passe par des 'NamedPipes'. Chaque exécutable dispose d'un NamedPipe en émission, et d'un autre en réception. Les deux programmes échangent continuellement des messages pour maintenir la connexion active. L'émulateur dispose en bas à gauche d'une icône rouge lorsque rien n'est connecté qui passe au vert lorsqu'un programme utilisant la librairie se met en route. Dès que ce programme s’arrête, l'icone de l'émulateur redevient rouge. L'émulateur peut rester ouvert en permanence, à chaque lancement de l'exécutable Arduino, un premier message de 'Reset' est envoyé à l'émulateur qui va tout vider pour revenir à un état de démarrage. L'exécutable Arduino est un simple programme 'Console'.

L'avenir de ce programme passe par Linux. Microsoft a développé .Net Core, version de .Net multiplate-forme en Open Source. La version 3.0 permet de construire des boites de dialogue mais reste dans ce cas un programme Windows. D'autres framework de dialogue vont émerger, peut être parmi ceux déjà connus pour être aussi multiplate-forme comme WX ou Qt (les Unixiens sont fainéants des doigts...) . Cela permettra à terme de faire en sorte que ArduiEmulatorWin devienne lui aussi multiplate-forme ! Les NamedPipes utilisés pour discuter entre les programmes existent sous Linux, et en fait viennent d'Unix. Donc pas de problème de ce côté. Il faudra en outre adapter la librairie pour travailler par exemple avec Gcc. Bref, encore du boulot en perspective. Peut être que des Linuxiens pourraient m'aider dans cette partie ? Je n'ai jamais été à l'aise avec ce système... Idem pour Mac, je ne doute pas que l'on trouve des solutions pour adapter tout ça.

Cette fois, c'est bien d'un bon projet collaboratif qui est présent sur le locogit : https://github.com/Locoduino/ArduiEmulatorWin. Le répertoire ArduinoEmulatorWin contient  les sources de l'émulateur, tandis que ArduiEmulatorLib contient la librairie.
Les projets DIO2, Accessories, Commanders et LcdUi ont été mis à jour dans le Locogit pour prendre en compte de nouvel émulateur. Ceux qui ont utilisé la version 1 constateront que ces bibliothèques disposent maintenant de projets locaux à inclure dans une nouvelle solution pour bénéficier de leur comportement. Il n'est plus besoin d'ajouter manuellement au projet principal tous les sources d'une bibliothèque pour les utiliser.

274
Bibliothèques / Re : Bibliothèque Accessories et Expander SX1509
« le: juin 01, 2019, 02:19:53 pm »
Bonjour

Après quelques semaines de développement, je viens de pousser sur le Locogit une nouvelle version 1.2.0 d'Accessories intégrant les évolutions de golgoth1009, et des améliorations de mon crû sur le même sujet.

La classe PortExpander a été ajoutée sur la base du travail de golgoth1009, avec quelques amendements pour mieux coller à l'esprit de la bibliothèque, et avec une doc.
Le classe dérivée de PortExpander pour le SX1509, PortExpanderSX1509 (on a travaillé dur pour un nom original...), a été ajoutée. Elle gère les pins digitales et analogiques (pwm). Par contre il n'y a pas d'accès vers les fonctions spéciales de la bibliothèque originale SX1509 pour la gestion des Leds ou d'un clavier matriciel...
J'y ai ajouté une autre classe dérivée PortExpander74HC595 pour le shift register éponyme. Ne sont considérées que les broches en sortie. Le chaînage de plusieurs modules est reconnu. Par contre je n'ai testé qu'avec mon simulateur (je prépare un message sur le fil correspondant à ce sujet), je n'ai pas essayé sur un véritable montage...

En me relisant, je réalise que je n'ai pas crédité golgoth1009 pour ses idées et son travail dans les readme et les sources d'Accessories, ce qui me parait tout à fait légitime. Ce sera fait avec la prochaine version.

275
Merci pour le satisfecit.... C'est vrai que la mise en boite est un problème qu'une impression 3d devrait pouvoir résoudre assez facilement.

276
Shields et Modules / Re : PCB carte satellite
« le: avril 16, 2019, 10:02:46 am »
Il y a une tolérance sur les frais de douane pour les petites sommes, je pense autour de 100€. Il m'est déjà arrivé de commander pour plus de 300€ au Japon, et peut être grâce au fait que l'expéditeur a préféré faire deux colis (deux coffrets Kato N, donc assez gros), mais en tout cas je n'ai pas eu de problèmes de douane. Nous commandons tous en chine, aux Us ou en Europe pour des sommes autour de 30€, et peu voire aucun d'entre nous n'a été inquiété...

277
Et pour répondre à une de tes questions, DCC est un protocole, une façon d'organiser une tension et un courant sur deux fils, qui permet de transmettre de l'information et d'en recevoir. DCC++ est un logiciel dont le but est de générer des informations au format DCC à partir d'un Arduino. Enfin DCCpp est une bibliothèque qui reprend le logiciel plutôt fermé DCC++ pour le rendre ouvert, et plus simple d'emploi pour un débutant.

278
Discussions ouvertes / Re : Vers un FabLab Locoduino ?
« le: mars 11, 2019, 10:57:36 am »
Tout à fait pour. Je me faisais une joie de vous rencontrer, en plus d'aller visiter un fablab...

279
Discussions ouvertes / Re : Vers un FabLab Locoduino ?
« le: février 24, 2019, 06:47:55 pm »
Dites moi quand vous y allez (un samedi, hein...) si je peux -et si vous voulez bien- je vous accompagne.

280
Bibliothèques / Re : Bibliothèque Accessories et Expander SX1509
« le: février 11, 2019, 09:07:19 pm »
C'est pas mal du tout, et ça a le (grand) mérite de fonctionner.
Mais, parce qu'il y a toujours un mais, ça gagnerai à être mis à la mode objet. Je n'aime pas les switch, ils dénotent un manque de structure. Alors plutôt que de mettre tout le code d'un expander particulier dans ton source, qu'il faudra modifier à chaque nouvel expander, il faudrait laisser une classe de base PortExpander, peut être même abstraite (virtuelle pure) et la dériver en PortExpanderSX1509 avec son fonctionnement à lui. Il faudrait faire pareil dans le Port : lui demander de lancer le digitalWrite() de l'expander, et lui saura ce qu'il doit faire...

J'ai déjà commencer à coder quelque chose, mais je vais m'inspirer de ce que tu as fait et voir comment améliorer, à moins que tu ne te sentes d'attaque pour affiner le code...

En tout cas, c'est du bon boulot.

281
Bibliothèques / Re : ArduiEmulator
« le: janvier 24, 2019, 03:06:46 pm »
De mon côté, la compilation passe très bien, avec l'IDE 1.8.7 pour un Nano.

282
Bibliothèques / Re : ArduiEmulator
« le: janvier 24, 2019, 09:42:07 am »
Oui effectivement, le detach était manquant à l'époque, je l'ai ajouté depuis. En pièce jointe, le nouveau fichier servo.h  .

283
Discussions ouvertes / Re : Programmation : les closures
« le: janvier 14, 2019, 08:56:49 am »
Effectivement, ça s'applique plutôt dans Accessories sur une déclaration du type :

auto items = new ACCSCHAINEDLIST<GroupStateItem>();

284
Discussions ouvertes / Re : Programmation : les closures
« le: janvier 13, 2019, 08:23:17 pm »
Pour l'usage d'un auto, qui s'apparente de très près au 'var' du C#, il a été convenu à mon boulot qu'il était permis uniquement si le type est inscrit en clair sur la ligne, comme un cast ou une allocation par 'new' :

auto c = (int) a;  // forcément un entier...
auto obj = new Toto(); // Forcément un Toto...

les autres écritures qui ne disent par leur type sont interdites :

auto x = 4; // Ne dit rien sur le type...
auto ret = GetValue(); // on ne sait pas ce qu'on récupère.

En C# toujours, l'outil externe Resharper que nous utilisons et qui améliore la gestion du langage et des erreurs est réglé pour signaler comme une erreur tout abus de 'var'. C'est dommage de ne pas pouvoir en faire autant avec Visual ou Gcc.

285
Bibliothèques / Re : Biblioth�que Accessories et Expander SX1509
« le: janvier 12, 2019, 10:45:01 am »
L'avantage de cette méthode de 'multiplexage' des numéros c'est qu'il n'est pas besoin de modifier toutes les fonctions qui acceptent une broche, en tout cas pas l'interface de la fonction, et les vieux .ino des utilisateurs continuent de fonctionner sans changement. Ajouter un argument pour chaque broche, c'est tout changer... C'est vrai que l'on peut ajouter aussi des variantes de begin avec plus d'arguments. A toi de voir.
Extraire les valeurs, c'est facile : pin/100 donne le numéro de l'expander, pin%100 donne celui de la broche. Le port doit en interne stocker le numéro d'expander sur un octet à côté du numéro de broche. Ce numéro a besoin d'un entier vu qu'il peut contenir un GPIO_pin_t à cause de l'utilisation de la bibliothèque Dio2.

Pages: 1 ... 17 18 [19] 20 21 ... 45