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

Pages: 1 [2] 3
16
De nouveaux essais ce matin avec node.js, y compris en revenant à des versions plus anciennes. Même en rafraichissant, seul une commande passe, après plus rien.
Par ailleurs j'ai essayé la version Wifi (v5.0) qui fonctionne. Je n'ai pas encore vérifié toutes les fonctionnalités. Dans le code (setup) il faut déplacer les instructions de debug après les connexions.
Et en bidouillant le fichier locos.json, j'ai mis les CV de mes locos. Attention de bien le recompacter avant de le charger sur l'ESP.

Bonne journée à tous
Didier

17
Pour Raspberry j'ai cela en tête depuis longtemps mais j'ai d'autres projets avec arduino pur l'instant dont je parlerais prochainement.
Pour le navigateur Chrome (et Vivaldi), Firefox ou Edge, même erreurs. Je n'ai pas encore essayer cette méthode qui fait peur à Dominique 8)

18
Bonjour à tous,

Christophe, me voila de retour après une longue absence loin d'Arduino mais avec un réseau pas encore électrifier.
Au vu de tes nouveautés avec node.js, j'ai fait une mise à jour de node.js et de tes développements  (v 4.2). J'ai tout repris méthodiquement, tous les zip contenant tes programmes ainsi que la procédure ab initio.
Sans oublier les différents npm ... et l'adresse IP du serveur. Mais cette fois ci je n'arrive pas à aller jusqu'au bout.

Le serveur localhost focntionne bien (startnode.js, power1, etc).
Quand je lance dccpp_node.js, le serveur se connecte

Server NodeJs at : 192.168.1.93:8080
Connected to Arduino Mega DCC++ at : 192.168.1.200:2560
Connection socket : Ok

J'appuie sur le bouton 'power' et les leds de mon shield d'alimentation s'allume (j'ai juste changer dans locos.json les valeurs des CV, avec ta version c'était pareil):

<p1>
(node:2056) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
<t 4 6 -1 1>
<t 5 7 -1 1>
Arduino response :  <T1 0 1>
<t 6 8 -1 1>
<t 7 9 -1 1>
<t 8 10 -1 1>
Arduino response :  <T2 0 1>
<t 9 241 -1 1>
<t 10 13 -1 1>
<t 11 14 -1 1>
<t 12 6400 -1 1>
<t 13 15 -1 1>
Arduino response :  <T3 0 1>
Arduino response :  <T4 0 1>
Arduino response :  <T5 0 1>
Arduino response :  <T6 0 1>
Arduino response :  <T7 0 1>
Arduino response :  <T8 0 1>
Arduino response :  <T9 0 1>
Arduino response :  <T10 0 1>
Arduino response :  <T11 0 1>
Arduino response :  <T12 0 1>

Et ensuite quelle que soit l'action, j'ai un message de ce type:

Error opening port
<t 3 5 7 1>

J'ai fait plusieurs essais, éteindre le PC, revérifier les paramètres  :'( :'(
Ma carte ethernet fonctionne correctement (vérifier avec ta v3).
Any idea ?

Bonne journée
Didier

19
Bus DCC / Re : Nouvelle souris sans fil à mémoire
« le: octobre 17, 2018, 11:11:50 am »
Bonjour Antoine,

Tu ne nous donnes pas beaucoup de clés pour t'aider  ;)
En C++ il existe une fonction appelé std::map qui pourrais t'aider (voir ce lien https://fr.cppreference.com/w/cpp/container/map)
Si à chaque loco tu as associé une classe ou une struct que tu puisses atteindre par un pointeur, alors map te permets d'associer à une clé (le nom de la loco ou son CV) le pointeur vers ta loco. Les clés sont triés par ordre alphabétique. Et il est très simple de retrouver une loco juste par son nom:

std::map<nom_loco, pointeur_vers_loco> liste_locos
pointeur_vers_loco = liste_locos[nom_loco]

Si tu as de la mémoire disponible dans ton Arduino tu peux faire la même chose en utilisant non pas le nom de la loco mais son adresse.

std::map<adresse_loco, pointeur_vers_loco> liste_locos
pointeur_vers_loco = liste_locos[adresse_loco]

Cette fonction n’existe pas en natif dans l'IDE d'Arduino mais sur un développement actuel, dont je parlerais bientôt, j'utilise un plugin (et non une library) qui le permet et qui fonctionne bien. Bien sur cela consomme un peu plus de mémoire sur l'Arduino.
Voir ici pour ce plugin http://andybrown.me.uk/2011/01/15/the-standard-template-library-stl-for-avr-with-c-streams/


Correction: une note dans l'un de mes projets m'a induit en erreur: les STL sont bien natifs à ce jour et la library  (ArduinoSTL par Mike Matera) est inspirée du lien ci dessus et c'est celle que j'ai utilisée récemment.

Bon développement
Didier

20
Infos et bonnes affaires / Re : ALIBABA
« le: mai 23, 2018, 02:09:43 pm »
Bonjour,
J'ai effectué début mai une commande sur aliexpress aussi simplement que sur ebay et un délai tenu de 2 semaines.
Je recommencerais si besoin.
Didier

21
Débuter / Re : Erreur de compil: unable to rename 'core\core.a';
« le: avril 04, 2018, 07:31:49 pm »
Bonjour,

Il arrive souvent avec Windows qu'un fichier marqué utilisé par un processus le reste malgré la libération par le processus. Ce qui pourrait être le cas avec un antivirus qui voit arriver un nouveau fichier et tiens à le vérifier. Ensuite ce fichier devient impossible à effacer ou à modifier.
Pour y remédier j'utilise alors IOBit Unlocker (gratuit) qui débloque des fichiers ou des répertoires entiers.

L'iDE Arduino a besoin d'un répertoire de travail pour la compilation travaille assez bien et en principe n'oublie pas de le détruire après fermeture. Si ce n'est pas le cas l'IDE peut retrouver des fichiers auxquels il ne s'attends pas. Ce répertoire de travail est dans
C:\Users\nom de l'utilisateur\AppData\Local\Temp
Peut être y a t il des scories de travaux précédent.
En ce qui me concerne je vide ce répertoire régulièrement et c'est impressionnant ce que certains fichiers d'installation ou programmes peuvent laisser, Processing par exemple qui laisse toutes ses compilations successives. Imaginer ce qui se passe lors d'une mise au point d'un projet.

Didier

22
Bus CAN / Re : Réduire câblage
« le: avril 04, 2018, 07:05:43 pm »
Bonjour à tous,

J'en suis à la finalisation du travail de charpentier qui préside à la réalisation d'un réseau.
Tout comme vous je suis en train de réfléchir aux types de câblages à adopté et mes premières réflexions vont effectivement vers "un Arduino par canton". Je ne'en suis qu'aux prémices mais je rejoins le projet de Christophe, pas forcément avec nodeJS mais je suis sur le même principe avec une description de réseau externe non codée en dur.
Je réfléchis à une piste en Wifi et il me suffirait de quelques unités seulement coté cantons. Bon évidement sur un réseau de 3.4m de long, et assez dense, on peut se poser la question de supprimer un bus d'autant qu'il faudra garder des fils pour les alimentations , mais c'est juste pour le challenge... A voir

Didier

23
Shields et Modules / Re : DCC++ avec un ESP32
« le: mars 05, 2018, 11:19:41 am »
Bonjour à tous,

J'ai trouvé cette démo très simple à mettre en oeuvre pour appliquer le bluetooth à l'ESP32
http://www.instructables.com/id/ESP32-BLE-Android-App-Arduino-IDE-AWESOME/.

L'auteur fournit le fichier .ino ainsi que le fichier .apk coté Android. Il fournit également le fichier qui a servi à généré l'application Andoid sur Thunkable (compatible avec AppInventor que j'utilise). Pour les non Android je crois qu'il y a une version de AppInventor pour IoS.
Vous aurez l'immense bonheur d'allumer la diode interne de votre ESP32 ;)
Je vais utiliser ce code pour transposer mon application Wifi DCC++ en bluetooth. Je vous en dirais plus dans un prochain post ou article.

msport: non le bluetooth n'est pas limité, il fonctionne sur le principe clients(plusieurs)/ serveur (dixit Google)

Avec l'ESP, il s'agit d'une version particulière du bluetooth dite BLE pour Bluetooth Low Energy, logique pour une utilisation possible en IoT.

Didier

24
Bonjour,

Merci Dominique. J'ai cette petite bête dans mes tiroirs depuis plusieurs mois et je ne l'ai pas encore exploité. On trouve principalement des exemples d'utilisation de véhicule télécommandé. Il ne lui manque que la détection de courant.

25
Shields et Modules / DCC++ avec un ESP32
« le: février 25, 2018, 05:05:30 pm »
Bonjour à tous,

Au détour d’une visite sur le forum TrainBoard ou je me rends de temps en temps, j’ai découvert ce post récent (décembre 2017) http://www.trainboard.com/highball/index.php?threads/dcc-esp32-base-station.112634/
rédigé par Atani et qui s’intéresse à l’application de DCC++ sur les ESP, ces drôles de petites bêtes.

Dans ce post il est question de l’adaptation de DCC++ sur un ESP32 et donc plus d’Arduino. Juste une carte de puissance bien sur.
En fait le code a été profondément remanié mais reste compatible avec DCC++ puisque les ordres envoyés à l’ESP32 sont bien ceux de DCC++.

Ce projet, fonctionnel, est en cours de développement et la doc encore en cours de réalisation est dispersée sur le forum, github et le code source. Donc pas facile à mettre en oeuvre. De plus ce projet a été développé avec PlateformIO. Un IDE pour Arduino, plus complet mais plus difficile à mettre en oeuvre et que je ne maitrise pas encore correctement. Il s’agit d’une surcouche pour les IDE que sont Visual Studio Code (gratuit) et Atom (éditeur de code gratuit).

Pour ceux que cela pourrait intéressé je vous propose une synthèse de la mise en place (et en français!) avec adaptation pour Arduino IDE à la fin.

Téléchargement du source


Comme précisé dès le début du post d’Atani, vous trouverez le source sur github https://github.com/atanisoft/DCCppESP32 .
Avant de l’utiliser il va falloir faire quelque manipulation assez simple.

Connexion internet

Je ne rentrerais pas dans les détails techniques du code, mais il faut retenir que l’ESP32 va jouer le rôle d’un webserver et que l’on pourra communiquer avec lui par le biais d’une adresse locale (192.168.1.93 chez moi mais à vérifier chez vous, voir plus loin). En effet l’ESP32 est connecté à votre box internet, Atani a par ailleurs le projet de la faire fonctionner sans cette connection.
Il va donc falloir saisir votre SSID et mot de passe dans le fichier config.h

/////////////////////////////////////////////////////////////////////////////////////
//
// DEFINE WiFi Parameters
//
#define WIFI_SSID "votre SSID"
#define WIFI_PASSWORD "votre mot de passe"


CV des locomotives

Je vous disais plus haut que l’on va se connecter à l’ESP32 par le biais d’une adresse locale. A cette adresse se trouve une page web qui est le controler de la “base station” DCC++. Nous pouvons commander jusqu'à 10 locomotives et leurs différentes fonctions. De plus vous constaterez plus tard d’autres fonctionnalités.
Il vous faut aller dans le fichier data/index.html du projet et modifier à partir de la ligne 98, les numéros des CV des locomotives.

<div id="locoGroup">
<div class="row">
<label for="loco1">3</label>
<input type="radio" name="loco" id="loco1" value="">
<span id="loco1Info" class="clockdate">Idle</span>
</div>
<div class="row">
<label for="loco2">4</label>
<input type="radio" name="loco" id="loco2" value="">
<span id="loco2Info" class="clockdate">Idle</span>
</div>
<div class="row">
<label for="loco3">5</label>
<input type="radio" name="loco" id="loco3" value="">
<span id="loco3Info" class="clockdate">Idle</span>
</div>
<div class="row">
<label for="loco4">6</label>
<input type="radio" name="loco" id="loco4" value="">
<span id="loco4Info" class="clockdate">Idle</span>
</div>
<div class="row">
<label for="loco5">345</label>
<input type="radio" name="loco" id="loco5" value="">
<span id="loco5Info" class="clockdate">Idle</span>
</div>
<div class="row hideForHeight">
<label for="loco6">678</label>
<input type="radio" name="loco" id="loco6" value="">
<span id="loco6Info" class="clockdate">Idle</span>
</div>
<div class="row hideForHeight">
<label for="loco7">901</label>
<input type="radio" name="loco" id="loco7" value="">
<span id="loco7Info" class="clockdate">Idle</span>
</div>
<div class="row hideForHeight">
<label for="loco8">234</label>
<input type="radio" name="loco" id="loco8" value="">
<span id="loco8Info" class="clockdate">Idle</span>
</div>
<div class="row hideForHeight">
<label for="loco9">567</label>
<input type="radio" name="loco" id="loco9" value="">
<span id="loco9Info" class="clockdate">Idle</span>
</div>
<div class="row hideForHeight">
<label for="loco10">890</label>
<input type="radio" name="loco" id="loco10" value="">
<span id="loco10Info" class="clockdate">Idle</span>
</div>
</div>

Dans chaque ligne telle que celle-ci
<label for="loco1">3</label>
puis loco2 jusque loco10, vous devez insérer entre crochets le CV de vos machines. Il n’y a pas de nom, ni de gestion de cette liste. Le CV sert de nom à l’écran. Pas très facile à retenir cependant. Le projet est encore jeune.

Etape suivante il va falloir “transformer” ce fichier en un tableau de nombre dans un fichier .h pour l’insérer dans le code.
  • compressez ce fichier index.html au format .gz (j’utilise 7zip qui le fait très bien). Attention pas de format .zip. Changer son nom en indexHtmlGz.gz (attention au majuscule)
  • ensuite téléchargez le court programme bin2c ici https://sourceforge.net/projects/bin2c/. Il en existe d’autres versions y compris pour Mac. Ce programme va créer un fichier include contenant le fichier indexHtmlGz sous forme de tableau de nombres. Placez le dans le répertoire /src du projet
  • ouvrez une fenêtre de commande (Power shell sous Windows 10). Allez dans le répertoire ou vous avez placé ce projet. Et tapez
    bin2c -o index_html.h indexHtmlGz.gz
  • Ouvrez ce nouveau fichier index_html.h. Vous devez lire au début quelque chose comme ceci:

    /* Contents of file indexHtmlGz.gz */
    const long int indexHtmlGz_gz_size = 7977;
    const unsigned char indexHtmlGz_gz[7977] = {


    Remplacer indexHtmlGz_gz par indexHtmlGz et ajouter PROGMEM

    /* Contents of file indexHtmlGz.gz */
    const long int indexHtmlGz_size = 7977;
    const unsigned char indexHtmlGz[7977] PROGMEM =
    {

Pour ceux qui utilise PlatformIO, il n’y a plus qu’à compiler et téléverser.
Les informations concernant la connection à la carte de puissance sont dans le fichier DCC++ESP32.cpp à partir de la ligne 88 (voir extrait ci-dessous) ainsi que sur le Wiki accessible sur Github.

Ceci est accompli sur l'ESP32 en connectant
le GPIO25 a l’entrée du Motor Shield PWM-A (broche 3 sur Arduino),
GPIO19 à l'entrée DIRECTION-A du Motor Shield (broche 12 sur Arduino),
GPIO23 à l'entrée PWM-B du Motor Shield (broche 11 sur Arduino),
GPIO18 à l'entrée DIRECTION-B du Motor Shield (broche 13 sur Arduino).


J’ai effectué cette connection avec le motor shield Arduino.

Arduino IDE

Pour utiliser l’Arduino IDE:

Avant de téléverser, ouvrez le moniteur série afin de voir l’adresse IP de l’ESP32. C’est cette adresse qu’il vous faudra écrire dans la barre de votre navigateur sur n’importe quel appareil relié à votre box, y compris tablette bien sur. Sinon vous la trouverez par le biais du gestionnaire de votre box.

C’est un peu laborieux mais le résultat est intéressant.
Reste à savoir ce que pourra apporter comme bonne surprise le deuxième onglet du controler (cf photo ci-dessous).

Bonne programmation
Didier


26
Vos projets / Re : Utilisation d'ATTiny
« le: février 20, 2018, 06:00:50 pm »
Bonjour,

Merci pour cette proposition.
Tu peux me rajouter également dans le tableau pour 1 exemplaire.

Didier

27
Shields et Modules / Re : L’ESP8266 : « Une drôle de petite bête »
« le: janvier 05, 2018, 09:08:34 am »
Peut être un début d'explication (ou plutôt d'application) http://www.iotsharing.com/2017/09/how-to-use-arduino-esp32-can-interface.html

Bonne journée
Didier

28
Shields et Modules / Re : L’ESP8266 : « Une drôle de petite bête »
« le: janvier 04, 2018, 03:44:56 pm »
Bonjour Dominique,

Le dessin de mon réseau est à peu près fixé. EN gros un double ovale, une gare et ses voies de garage et des voies de retournement. Cela va faire un peu spaghetti mais c'est assumer !

- faire de l'administration "lourde" du réseau (ce qu'on ne peut pas faire raisonnablement avec un Arduino et peu d'interface utilisateur), notamment avec une base de données (Christophe va me dire qu'il l'a déjà ;)
- faire de la mise à jour logiciels OTA (Over The Air)
- faire un décodeur DCC WiFi pour Christian et son réseau du futur, le bus CAN étant largement distribué dans la loco et les wagons.

Pour l'administration lourde cela fait encore parti de mon projet dans la mesure ou mon PC (une tour et non un portable ne sera pas au même étage). J'ai déjà la commande WiFi de mes machines sur ma tablette/smartphone avec un NodeMcu relier à mon Arduino Mega DCC++ dont je parlerais bientôt à l'instar de ce qu'à fait Christophe. La seule différence est que je peux me passer de liaison avec la box internet.

L'OTA est dans mes ToDo et il y a pléthore d'information sur le net.

Pour le dernier point...un peu plus tard peut-être  ;)

Amicalement

Didier

29
Shields et Modules / Re : L’ESP8266 : « Une drôle de petite bête »
« le: janvier 04, 2018, 02:54:18 pm »
Il a effectivement tout ce qu'il faut pour mettre en place un bus CAN.
J'en ai un également en stock mais je n'ai pas encore testé cette fonctionnalité et maintenant ce ne sera pas avant février.
Facile à mettre en oeuvre par ailleurs.

Didier

30
Shields et Modules / Re : L’ESP8266 : « Une drôle de petite bête »
« le: décembre 04, 2017, 05:56:42 pm »
Merci mais je viens d'en commander et je patienterais et puis cela sera un bon moyen de rappeler que le NodeMCU est 'presque' un Arduino (avec le WiFi) et que l'on peut commander comme avec un Arduino différent accessoires. Les relais collent bien même avec du 3,3V ! Mais pas tous ensemble bien sur !
Je ferais un complément d'information dès que j'aurais les pièces.

Pages: 1 [2] 3