Nouvelles:

25/06/2023 : Mise à jour du forum. En cas de bug, merci de contacter le Grand Sachem

Menu principal

Fabrication d'un TCO haut de gamme

Démarré par Papydubruit, 06 Avril 2022 à 16:46:00

« précédent - suivant »

0 Membres et 1 Invité sur ce sujet

Papydubruit

Comme je n'ai pas trouvé le moyen d'intégrer des images dans le texte, il faudra vous référer aux pièces jointes.

Pour programmer un WeMos, on va utiliser l'IDE Arduino que vous pouvez télécharger ici: https://www.arduino.cc/en/software

Mais au départ cet IDE ne connait pas la carte ESP8266 WeMos. Il faut donc lui dire comment la trouver.

Sur l'IDE on va aller dans Fichier > Préférences et dans la ligne (Image1 ) on va cliquer sur l'icône à droite de la ligne, ce qui ouvre la fenêtre de l'Image2.

Dans cette fenêtre il faut saisir les 2 lignes suivantes:

https://dl.espressif.com/dl/package_esp32_index.json
http://arduino.esp8266.com/stable/package_esp8266com_index.json

Puis 2x OK

On va ensuite aller dans le Gestionnaire de cartes en cliquant sur Outils > Type de carte*** > Gestionnaire de cartes: (Image3) avec clic sur "Gestionnaire de cartes"

On tape ESP8266 dans la zone de saisie de la nouvelle fenêtre et on installe le module proposé (Image4) avec le bouton Installer (qui chez moi est devenu Supprimer puisque déjà installé)

A la fin de l'installation on ferme la fenêtre et on va trouver maintenant dans Outils > Type de cartes toute la série des ESP8266 dans laquelle on va sélectionner la carte LOLIN(WEMOS) D1 R2 & mini (Image5)

Voila, la première étape est finie, vous avez les outils pour programmer votre premier WeMos.

Si vous avez le moindre soucis, je suis à votre écoute.



Alain17

Citation de: Papydubruit...Pour le TCO ... Il suffit d'alimenter l'ensemble en +/-5V.
Pour le satellite, ... Lui aussi il suffit de l'alimenter en +/-5V.
...
Pour préciser, l'alimentation est bien en 5V c'est à dire entre le 0V (la masse ou GND) et le +5V et pas entre +5V et -5V comme on le voit sur les schémas du TCO et du satellite ?

Pour le Réglage servos, c'est alimenté en 5V ou 3.3V ?

Papydubruit

Oui Alain, il y a souvent une mauvaise interprétation quand je parle de +5V et GND, du coup j'ai mis +/-5V.
Mais c'est bien 0/5V.

Pour le module Réglage servos, il faut bien l'alimenter en 5V mais les servos sont commandés par la sortie du WeMos qui est en 3,3V, ce qui est totalement compatible dans ce sens. Attention ! Pas dans l'autre sens, 5V vers 3,3V.

Mes PCB sont d'ailleurs tous prévus avec un convertisseur DC/DC pour éviter d'utiliser le régulateur du WeMos, 0,62€ c'était encore jouable  :) .

Cordialement
Antoine

Attiny

Installation des nouvelles cartes réussi.
Le tuto facilite grandement les choses... :D

Papydubruit

Alors on peut passer à la suite ???  ::)

Attiny

Je vais me renseigner pour obtenir des WeMos. .. ;)

Papydubruit

ici au meilleur prix par 10: https://fr.aliexpress.com/item/33002379055.html?gatewayAdapt=glo2fra&spm=a2g0o.order_list.0.0.21ef5e5bVWzJdB

Il faut choisir la première icône, le D1 MINI qui suffit largement à nos besoins. Je peux même te dépanner si tu es pressé.

Attiny

Merci pour le lien et ta proposition.

Non je ne suis pas pressé mais c'est sympa de ta part :)

droz1

Bonjour
je suis avec intérêt votre projet de satellites pilotés par radio  en effet dans mon projet dont la disposition des modules est evolutive ( http://forum.espacetrain.com/index.php?topic=3433.0)  l'option du sans fil est séduisante 
sachant que le le système de commande D17 tourne déjà autour d'un ESP12 j'attends avec impatience la description du protocole de liaison
Merci pour votre contribution  et bon courage CD

Papydubruit

Bonjour Droz1,

je viens de lire ton fil en lien, quelle chance tu as de co-participer physiquement à ce genre de réalisation, c'est mon rêve depuis longtemps, mais habitant "malheureusement" dans les Alpes de Haute Provence, nous ne sommes pas nombreux à partager cette passion et au prix du gaz-oil les km reviennent chers.

Merci pour ton intérêt.
Antoine

Papydubruit

Suite à un premier chapitre ( http://forum.espacetrain.com/index.php?topic=3937.msg37968#msg37968 ) concernant l'installation des cartes ESP8266 sur l'IDE Arduino, je vous propose de voir maintenant comment programmer (le vrai terme est "téléverser") un ESP avec votre sketch (votre programme).

Première chose à faire, c'est de relier votre ESP à votre ordinateur avec un câble USB. Et c'est là que les difficultés peuvent commencer.

Soit votre ordinateur a été suffisamment "intelligent" pour reconnaitre votre ESP, soit il refuse obstinément d'installer le driver nécessaire à cette reconnaissance. Dans ce dernier cas il vaut mieux faire des recherches sur Internet pour essayer de trouver une solution, tout dépend de votre ordinateur et de votre système d'exploitation.

Si tout s'est bien passé, il faut maintenant sélectionner le bon microcontrôleur dans la liste des ESP8266. Pour cela un clic sur Outils > Type de carte > ESP8266 Board et choisir le bon produit. Dans le cas de notre satellite WeMos on choisira le LOLIN(WEMOS) D1 R2 & mini.
Ensuite il faut choisir le port sur lequel s'est branché votre ESP. Outils > Port et là vous devriez trouver un chiffre qui vous donne ce renseignement, dans mon cas c'est le port 6. Un simple clic sur ce chiffre et c'est OK.



A ce stade vous pouvez:



Vous pouvez également ouvrir la fenêtre du Moniteur série qui est un outil indispensable pour trouver les erreurs de votre sketch (on dit déboguer)
Le résultat de l'opération s'affiche à la fin du travail dans la partie basse de la fenêtre de l'IDE comme ici où j'ai volontairement mal sélectionné mon processeur pour provoquer une erreur:



Vous voila devant votre premier sketch à téléverser (il arrive...), bonne chance.


Papydubruit

#26
Comme promis, voici un premier ensemble de sketchs (émission/réception) pour tester votre montage.

J'ai opter pour une solution qui court-circuite un peu les méthodes traditionnelles d'apprentissage, puisque je vous livre 2 sketchs prêts à l'emploi avec un minimum d'explications, alors qu'il vaudrait mieux procéder étape par étape, mais je m'adresse d'abord aux plus pressés et m'occuperai plus tard du tuto plus complet.

Ces 2 sketchs sont très semblables et pourraient même êtres identiques à une ligne prêt: Les adresses MAC.

De quoi s'agit-il ?
Pour pouvoir communiquer avec un ESP particulier, il faut bien avoir une caractéristique unique pour chaque microcontrôleur. C'est ce qu'on appelle son adresse MAC. Elle est gravé définitivement dans la puce au moment de sa fabrication. C'est comme votre adresse de maison qui est unique dans toute votre ville.
Il est très important de bien appréhender cette notion d'adresse MAC pour ne pas se mélanger les pinceaux lors de l'écriture des sketchs.

Pour émettre vers un autre ESP, il suffit donc de connaitre son adresse MAC.
Et cela est valable dans les 2 sens, si le récepteur veut renvoyer une réponse à l'émetteur, il lui faut connaitre l'adresse MAC de ce dernier.

Pour trouver cette adresse j'ai pour habitude de mettre le même bout de code dans le setup de tous mes sketchs. Ce sont ces 2 lignes:


  Serial.print("Mon adresse MAC:  ");
  Serial.println(WiFi.macAddress());


Elles permettent d'afficher sur la console série cette fameuse adresse unique mais uniquement après un reset du microcontrôleur (avec le petit bouton sur le coté du WeMos).

Il faudra soigneusement noter cette série de chiffres en hexadécimal car vous devrez la saisir dans le microcontrôleur qui voudra envoyer des données vers celui qui est branché sur la console série. Cela parait un peu compliqué mais on s'y fait vite.
Un petit dessin sera peut-être plus facile à interpréter:



Si ESP1 veux envoyer vers ESP2 il lui faut connaitre l'adresse finissant par 14. C'est donc cette adresse qu'il faut insérer dans le code de ESP1
Si ESP2 veux envoyer vers ESP1 il lui faut connaitre l'adresse finissant par 05. C'est donc cette adresse qu'il faut insérer dans le code de ESP2

Cette insertion se fait aux lignes 15, 16 et 17 pour le sketch TCO,
uint8_t broadcastAddress_1[] = {0xC8, 0xC9, 0xA3, 0x69, 0x6A, 0xF8};// Satellite 1
uint8_t broadcastAddress_2[] = {0x34, 0x94, 0x54, 0x62, 0x51, 0x9B};// Satellite 2
uint8_t broadcastAddress_3[] = {0xC8, 0xC9, 0xA3, 0x68, 0x4F, 0x05};// Satellite 3

et à la ligne 14 pour le sketch Satellite.
uint8_t broadcastAddress[] = {0xC8, 0xC9, 0xA3, 0x68, 0x57, 0x83}; // MAC TCO


Pourquoi 3 lignes pour le TCO ? Tout simplement pour montrer comment on peut communiquer avec plusieurs ESP en même temps. Les lignes 72, 73 et 74 définissent l'usage de ces 3 adresses.

Je ne rentre pas d'avantage dans les détails pour l'instant. Pour tester ces 2 sketchs il faut dans l'ordre :

- Installer la librairie Bounce2 en la dézippant dans le répertoire librairies de l'IDE Arduino qui devrait être ici: c:\Program Files (x86)\Arduino\libraries\ . Vous trouverez cette librairie ici: https://github.com/thomasfredericks/Bounce2

- Téléverser les 2 sketchs, chacun dans un WeMos ou autre ESP8266 en laissant branché les 2 ESP sur l'ordinateur avec chacun sa console série ouverte en vitesse 115200 bauds (pour pouvoir visualiser les messages reçu). Attention! Chaque ESP aura un port COM différent sur l'ordinateur.

- Relier un fil Dupont ou autre sur l'entrée D2 de chacun des ESP.

- A chaque mise au GND (le blindage du connecteur USB par exemple) de cette entrée, vous devriez avoir du coté de l'émetteur le message "Envoyé avec succès" et du coté du récepteur la trame envoyée ("<1>" ou "<T>").

Quel va être le résultat ?
:AA
ou
:'(

Si vous avez bien fais votre travail cela doit fonctionner du premier coup, sinon.... je suis là pour les questions.

Bon amusement et à très vite
Antoine


Attiny

Bonjour Antoine

J'ai compilé tes deux sketchs et aucune erreurs signalées. C'est bon signe et encourageant pour la suite!!

Deux questions du candide que je suis:
Que sont ESP8266WiFi. h et espnow.h qu'il n'est nécessaire d'installer préalablement comme la bibliothèque Bounce2?
Mon ordinateur ne dispose qu'un nombre très limité de prises USB. Pour pallier ce problème je branche un hub USB sur l'unique prise disponible. L'IDE saura t-il attribuer un port à chacune des cartes sans conflit?

Merci par avance pour tes réponses...



Papydubruit

Hello Attiny,

voila un fan bien enthousiaste, cela fait plaisir.

Comme tu le dis si bien, mes sketchs sont tous testés et fonctionnent parfaitement, ce qui n'est pas toujours le cas par expérience.

Pour ESP8266WiFi. h et espnow.h, ce sont des fichiers qui sont intégrés lors de l'installation des cartes ESP8266 dans l'IDE Arduino, je m'étais posé la même question et cela m'a même perturbé pendant longtemps mes essais car j'avais téléchargé un esp_now.h (pas pareil) qui m'a créé des ratés inexpliqués.

Pour ton hub, normalement il ne doit pas y avoir de soucis, sauf sa puissance de sortie 5V s'il n'est pas alimenté par un petit bloc secteur (solution idéale, le bloc).

Si tu veux des PCB ou matos, je peux t'en envoyer (je me répète peut-être  ??? )

J'ai fini les sketchs complets pour le TCO de démo plus haut dans ce fil, mais je laisse un peu digérer le premier tuto avant de le publier.

Bon dimanche à tous
Antoine

Papydubruit

Bonjour à tous,
chose promise, chose due... Voici tous les éléments pour la réalisation du prototype de TCO et satellite fonctionnel dont on a parlé plus haut dans ce fil.

Ce projet est volontairement limité à 2 aiguillages et ne sert qu'à expliquer ce nouveau principe de TCO et de satellite sans fil. Son principal objectif est de démontrer la simplicité de mise en œuvre et surtout d'évolution d'une solution programmée par rapport à une solution câblée.

Rappelez-vous du TCO qu'on voulait réaliser:



Si vous désirer tester cet ensemble, aucun PCB n'est nécessaire, il suffit d'utiliser des fils Dupont (avec les soucis de mauvais contacts que cela suppose) ou de souder directement les fils sur les composants.
Par contre si vous voulez utiliser ce montage sur un réseau, tous les PCB nécessaires sont disponibles selon le degré de complexité de votre réseau (nombre de servos, avec ou sans sonorisation, beaucoup d'E/S pour les feux, etc...)
Pour ceux qui ne veulent pas attendre quelques semaines pour avoir les composants de Chine, je peux même vous les fournir au prix coûtant, tout est disponible.

Voici d'abord le TCO lui-même:



On peut difficilement faire avec moins de composants, le WeMos D1 MINI, 2 boutons poussoirs de commande des aiguillages et 10 leds programmables avec un branchement un peu particulier (4 pour les positions des aiguilles et 6 pour simuler les feux). Le TCO est juste à alimenter avec un petit bloc secteur de 5V style chargeur de téléphone, aucune autre liaison n'étant nécessaire entre le TCO et le satellite.

Le satellite qui est à peine plus complexe:



Toujours le cerveau du montage, le WeMos, 2 prise pour les servos et 6 leds classiques celles-là avec pour chaque paire une résistance de 330 à 560 ohms, puisqu'il n'y aura à chaque fois qu'une led d'allumée. Et ici aussi une petite alimentation 5V.

Le schéma et sketch du régleur de servos est un petit outil très pratique, qui fonctionne avec une appli maison sur Android, que j'ai développé sur Mit App Inventor et qui permet le réglage final très fin des servos des aiguilles, mais n'est pas obligatoire, surtout pour ce proto. Cette appli est trop volumineuse pour être mise en PJ, mais je peux vous la faire parvenir par messagerie sur simple demande.



S'il vous manque quoi que ce soit comme info, n'hésitez pas à m'écrire.
J'espère que vous prendrez autant de plaisir que moi à construire et à tester ce proto, mais surtout que cela vous donne envie de franchir le pas de l'électronique qui ouvre un  horizon tellement illimité dans notre passion du train.

Pour la programmation, surtout aucune inquiétude, soit vous y arrivez avec (ou sans) mon aide, soit je peux m'en occuper totalement, ce qui m'est déjà très souvent arrivé, passion quand tu nous tiens....

Au plaisir de partager sur ce sujet.
Antoine

PS: J'ai voulu joindre les sketchs tels quels, mais les .h et .zip ne passent pas à la censure. J'ai donc renommé les .h en .txt, à vous de faire l'inverse. ces 3 fichiers .h sont à ranger dans le même dossier que Satellite.ino et qui doit porter bien sûr le nom de "Satellite" en respectant la majuscule.