User Tools

Site Tools


arduino:wio-fr

This is an old revision of the document!


Version françaiseVersion allemandeVersion anglaise

Firmware WIO

Introduction

Cette solution est basée sur la famille des ESP8266/ESP32.

Il peut être utilisé comme:

  • Manette sans fil

ou comme interface E/S sans fil avec:

et une des options supplémentaires suivantes:

  1. Contrôle de LED WS2812
  2. 4 servos
  3. 2 lecteurs RC522
  4. Générateur DCC
  5. PWM mobile, direction et lumières

et une des options suivantes:

  • Lecteur RFID ID12LA 125kHz sur RX
  • Lecteur RailCom sur RX

Cartes supportées

  • Lolin D1 Mini
  • Lolin D32
  • Module Dev ESP32
  • Module CAM ESP32

Broches ESP utilisées

Vérifiez la cartographie des broches dans Pins.cpp:

Prospectus

Attention

Exposition des canaux WiFi utilisés...

  1. Le serveur Rocrail doit fonctionner sur un PC qui ne doit pas se mettre automatiquement en mode suspendre ou dormir en cas d'absence d'activité de l'utilisateur. Vérifier la configuration de l'énergie pour éviter la perte de communication.
  2. Le routeur WiFi utilisé doit être configuré dans les règle de l'art; Utiliser uniquement du matériel maintenu.
  3. Soyer sûr que le SSID n'est pas visible pour prévenir tous trafic publique supplémentaire.
L'utilisation de WIO est faite à vos risques et périls.
Peter Giling et Robert Jan Versluis ne peuevent pas être tenus responsable pour tous dommages ou problèmes par l'utilisation du matériel et le firmware proposés.
Les matériels publiés sont des prototypes, ils sont incomplets et pas prêt pour la publication.
Seul les kits GCA originaux sont supportés.


IDE Arduino 1.8.12

:!: La version 1.8.11 ne marche pas! Le cas de l'exemple BasicOTA ne compilera pas…)

Prépare l'IDE Arduino avec les cartes et les bibliothèques suivantes:

Gestionnaire de carte

Ajouter dans la boite de dialogue Préférence à "URL de gestionnaire de cartes supplémentaires" l'URL suivante:

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

Et installez la bibliothèque de la carte ESP8266.

Sélection de la carte

LOLIN(WEMOS)D1 R2 & mini

Bibliothèques

ESP8266 & ESP32

ESP32

Modifications ESP32CAN
Le xSemaphoreTake devrait expirer après 500 ms au lieu d'attendre pour toujours.
Remplacer portMAX_DELAY avec 500, et retourner le rc de la fonction xSemaphoreTake au lieu de zéro. (CAN.c)

int CAN_write_frame(const CAN_frame_t *p_frame) {
	if (sem_tx_complete == NULL) {
		return -1;
	}
 
	// Write the frame to the controller
	CAN_write_frame_phy(p_frame);
 
	// wait for the frame tx to complete
	int rc = xSemaphoreTake(sem_tx_complete, 500);
	return rc;
}
Juste descendre "Upload Speed" à 460800 au cas ou le sketch téléchargé affiche des erreurs de communication.


SPIFFS

Sélectionner la taille 2M SPIFFS:

SPIFFS est un système de fichier qui peut être utilisé dans le WIO pour télécharger les bitmaps utilisateur.
L'installation de l'extension pour l'Arduino IDE pour télécharger les données:

Thème Dark

Pour ceux qui veulent une thème Dark pour l'IDE Arduino:


Sketch WIO

Copyright © 2002-2020 Robert Jan Versluis, Rocrail.net

WIO est le firmware pour la manette de contrôle, l'I2C, les LEDs, les servos, les afficheurs et le DCC.

Le code source est publique mais pas sous licence open source, et il ne peut être utilisé seulement pour le compiler et le charger dans le LOLIN D1 Mini.

:!: Note: Après avoir décompressé le fichier ZIP le dossier devrait être renommé avant de le charger dans l'IDE Arduino de "wio-master" à "WIO".

Binaire

esp-downloadtool.jpg Utiliser l'outil Espressif pour charger le binaire WIO.

Sortie du compilateur

Les messages pragma FastLED rouge, qui ne sont seulement qu'une information, peuvent être ignorés, tant que les deux dernières lignes blanche affichent:

 #    pragma message "FastLED version 3.003.002"
 #      pragma message "No hardware SPI pins defined.  All SPI access will default to bitbanged output"

Sketch uses 293716 bytes (28%) of program storage space. Maximum is 1044464 bytes.
Global variables use 33104 bytes (40%) of dynamic memory, leaving 48816 bytes for local variables. Maximum is 81920 bytes.
Déconvenue: Beaucoup de câbles micro USB fournissent 5V et aucune donnée, et ne peuvent pas être utilisés pour la programmation.

La mise en place du WiFi peut être faite avec le moniteur série Arduino 115200 bps, ou en modifiant le fichier USERCNF.h:

#1CConnecting to [secure.home]
#13WiFi try to connect
...
#13WiFi try to connect
#17WiFi connected RSSI=-55

La sortie après une commande ?:

------------------------------
revision=261 WIO 20200812a (c)Rocrail
------------------------------
Settings:
------------------------------
ssid1=
pwd1=
ssid2=
pwd2=
server=
port=8051
name=[wio104]
id=104
io=i2cdcc (master)
iostate=00 00 00 00
i2c=oooooooobbbbbbbboooooooobbbbbbbb
steps=64
sleeptimer=5
pulse=5
pwmsize=0
options=0x00 0x01 0x18
booster=0
board=1
display=0
railcom=0
id12=0
depart=0
stepper=0 stepper3w=0
canprot=1(1)
canio=1
canusb=0
trace=0
SPIFFS total=1345kb used=0kb

Change settings by typing:
------------------------------
*ssid=<your WiFi SSID>
*pwd=<your WiFi password>
*server=<your Rocrail server IP/host>
*port=<your Rocrail server port>
*name=<Node name>
*id=<Node number>
*io=<throttle> or <i2cled> or <i2cservo> or <i2crfid> or <i2cdcc> or <i2cmobile> or <i2ccam> or <i2cbus> (reboot)
*i2c=<oooooooobbbbbbbboooooooobbbbbbbb> o=output, i=input, b=block, p=pulse
*steps=<number of rotary steps>
*pulse=<output pulse length in 100ms units>
*pwm=<mobile PWM size multiplier>
*boost=<booster option for i2cdcc type> 0=off 1=on (reboot)
*dccslave=<dccmode> 0=master 1=slave
*board=<board type> 0=D1 1=D32 2=DevMod 3=User (reboot)
*display=<display type> 0=96x16 1=128x32 2=128x64 3=132x64
*trace=<level> 0=info 1=debug 9=none
*canprot=<protocol> 0=MBUS 1=RCAN
*canio=<I/O over CAN> 0=no 1=yes

Configuration utilisateur

Le fichier USERCNF.h peut être utilisé pour l'initialisation, le premier démarrage, les valeurs du WiFi et du serveur Rocrail.
Les valeurs doivent être fixées avant la compilation et le téléchargement.
Ensuite ces valeurs peuvent être changées avec les commandes via le moniteur.
:!: Les valeurs dans les fichiers USERCNF.h sont uniquement utilisées, si il n'y a pas encore de configuration (nouveau dispositif).
- Si les valeurs dans la mémoire flash d'un dispositif WIO existant doivent être remplacées par celles du fichier USERCNF.h, l'option "Erase Flash" dans l'IDE Arduino doit être réglée à "All Flash Contents".
- Si seulement le micrologiciel d'un périphérique WIO existant doit être mis à jour, sans changement de la configuration (par exemple les paramètres WLAN), configurez l'IDE Arduino-IDE à "Erase flash → only Sketch".

Les commandes via le moniteur

Le moniteur série Arduino peut être utilisé à 115200 bps pour changer les réglages WIO.

  1. Si RailCom a été activé la vitesse de transmission basculera automatiquement à 250000 et le moniteur série sera en lecture seule.
  2. Si l'ID12 a été activé la vitesse de transmission basculera à 9600 et le moniteur série sera en lecture seule.
Commande Description Défaut
? Affiche les réglages en cours et comment les changer.
! Vide la mémoire flash utilisée.
*ssid=<valeur> Configure le SSID du point accès WiFi. - SSID primaire (max. 30 caractères)
*pwd=<valeur> Configure le mot de passe WiFi. Une reconnexion WiFi est déclenchée. - Mot de passe WiFi principal (max. 30 caractères)
*ssid2=<valeur> Configure le SSID du point d'accès WiFi. - SSID alternatif (max. 30 caractères)
*pwd2=<valeur> Configure le mot de passe WiFi. Une reconnexion WiFi est déclenchée. - Mot de passe WiFi alternatif (max. 30 caractères)
*server=<valeur> Configure l'IP ou le nom du serveur Rocrail. - Peut être un CSV de 30 caractères maximum. (1.71+)
Exemple: "mba2019,win2019"
*port=<valeur> Configure le port du serveur Rocrail. 8051
*name=<valeur> Nom du nœud optionnel. -
*id=<valeur> Numéro du nœud/identifiant de la manette; Doit être unique. 33
*io=<valeur> type WIO. i2cled
*i2c=<valeur> Configuration du port I2C. oooooooobbbbbbbboooooooobbbbbbbb
*steps=<valeur> Nombre de pas de rotation. 127
*pulse=<valeur> Longueur de l'impulsion de sortie multiple de 100ms. 5
*canprot=<valeur> Protocole CAN MBUS 0=MBUS, 1=RCAN
*dccslave=<valeur> Rôle DCC Maitre 0=Maitre, 1=Esclave(Booster)
*trace=<valeur> Niveau de traçage 9 (volatile) 0=Info, 1=Debug, 9=aucun
Seulement pour la session en cours.
*ptmain=<valeur> Mode Service, PT, sur le pont en H principal 0 (volatile) 0=off, 1=on
Seulement pour test!
*pwm=<valeur> Taille PWM pour contrôle de moteur mobile - 600=10Hz
*display=<valeur> Type d'affichage: 0=96x16, 1=128x32, 2=128x64, 3=SH1106 - 1

Note: Remplacer <valeur> pour répondre à l'environnement WiFi local et à la configuration.
Note: Une réinitialisation est nécessaire après avoir changé le type WIO.

Port type Description
i Entrée
o Sortie
b Bloc: Entrée avec un délai de 2 secondes.
p Impulsion: Sortie avec arrêt automatique.

Type de configuration ES

Type ES I2C 32E/S FastLED Servo RFID Afficheur DCC
Manette - - - - - -
i2cled OUI OUI NON NON OUI NON
i2cservo OUI NON OUI NON OUI NON
i2crfid OUI NON NON OUI OUI NON
i2cdcc OUI NON NON NON OUI OUI


Configuration de base avec un navigateur WEB

Non activé en cas de type WIO DCC.

Le WIO agit comme un petit point d’accès pour être capable de connecter et faire la configuration de base sans moniteur série.
Le nom du point d’accès WIO est formaté comme suit: "WIO<id>.<nom>" (Défaut: WIO33.local)
Les points d'accès WIO sont répertoriés et peuvent être sélectionnés:

Le mot de passe du point d'accès par défaut est "12345678" qui peut être changé dans le fichier USERCNF.h.
Après la connexion au WIO, la configuration de base peut être changé avec un navigateur WEB à l'adresse:

http://192.168.4.1

Après Submit le WIO essayera automatiquement le WiFi et la connexion au serveur Rocrail.
Le point d'accès sera arrête après:

  • une soumission.
  • 2 minutes d'inactivité.


Mise à jour OTA

Doit être activé par la fenêtre de dialogue WIO.

Si ce n'est pas possible, ou encombrant, pour faire la mise à jour par USB, le WIO peut également être mise à jour par voie aérienne "Over The Air" (OTA).

Sélectionner simplement le WIO désiré à partir de la liste au lieu du port USB, et télécharger.
Si il est demandé un Mot de passe, ce sera le même que pour le Point d'Accès (Par défaut "12345678").


Manette - RIC

Note: RIC n'est plus supporté dans le firmware, et est remplacé par WIO Control.

Note: Les contrôles de locomotives RIC par adresse, pas par identifiant. Donc le premier dans la liste sera utilisé si plusieurs locomotives partagent la même adresse.
La manette de poche en mode E/S nécessite un commutateur rotatif, une LED et quatre boutons.
La LED peut également être intégrée. (D4)
ric-prototype.jpg

Prototype Type 1

Broche Usage Clic Clic long
D5/D6 Rotation - -
D7 commutateur rotatif Changement de direction Attente/Libération de la locomotive
D4 LED embarquée - -
D1 F1 F1 F5
D2 F2 F2 F6
D3 F3 F3 F7
D0 F4 F4 F8
A0 Batterie - -

Lumières

F0 est retourné si F3 et F4 sont pressés en même temps.

Arrêt d'urgence

Un arrêt d'urgence sera envoyé au serveur si F1 et F2 sont pressés en même temps.

Sélection de la locomotive

La locomotive 1 est sélectionnée par défaut.
Sélection de la locomotive 1 si F1 et F4 sont pressés en même temps.
Sélection de la locomotive 2 si F2 et F3 sont pressés en même temps.

LED Signification
On Pas de connexion WiFi.
Clignotement très rapide 10Hz Pas de connexion au serveur Rocrail.
Off Mode Attente.
Clignotement rapide 5Hz Attente pour un envoi.
Clignotement lent 1Hz Mode en fonctionnement.

Démarrage

Au démarrage la LED s'allumera jusqu'à ce qu'une connexion WiFi soit établie.

Capture d'une Locomotive

  1. Au cas où le LOLii ne capture pas une locomotive expédiée, et que le commutateur rotatif est appuyé longtemps, à peu très 2 secondes, la LED commencera à clignoter rapidement.
  2. Si le LOLii voit dans ce mode une locomotive expédiée, il l'attrapera et la LED commencera à clignoter lentement.
  3. Cette prise de locomotive sera sauvegardée dans la mémoire flash et réutilisée au redémarrage si elle n'a pas été libérée.

Contrôle de la vitesse

  • Tourner le commutateur rotatif pour les changements de vitesse.
  • Un appui court sur le commutateur rotatif inversera la direction de la locomotive.

Contrôle des Fonctions

Les quatre boutons de fonction sont représentés de F1 à F4.
Avec un clic long F5 à F8 peuvent être consultés.
Une fonction sera retournée après avoir relâché le bouton pour être capable de traiter les clics longs. (Comme avec les téléphones mobiles.)

Libération d'une locomotive

  1. Appuyer longuement sur le commutateur rotatif, à peu près 2 secondes,
  2. Un message de libération est envoyé.
  3. La LED s'étendra.

Contrôle de la batterie

L'entrée analogique vérifiera la tension de la batterie.
Si la tension est sous un certain niveau, LOLii enverra automatiquement une commande de vitesse nulle à la locomotive et une commande de libération.
La LED commencera à clignoter très rapidement tant que la batterie ne sera pas complètement vide.

Découverte du serveur

La multidiffusion UDP vide l'espace disque et est donc désactivée.

Si le serveur Rocrail a R2RNet actif sur l'adresse de multidiffusion 226.0.0.1, le LOLii peut récupérer le nom/IP du serveur pour se connecter au port client 8051 automatiquement.


WIO - E/S

  • Brancher directement au port client 8051 du serveur Rocrail.
  • Découverte de la connexion WiFi et du Serveur.
  • 32 E/S numériques compatible avec toutes les interfaces GCA.
    • Entrée
    • Sortie
    • Bloc
    • Impulsion
  • 100 LEDs compatible avec le WS2812 sur D8. (Sortie type couleur dans Rocrail.)
    • Couleur RGB
    • Luminosité
    • Atténuation
    • Clignotement
  • 4 Servos
    • Ajustement de la vitesse du mouvement
    • Les positions sont sauvegardées dans le fichier plan.xml, sortie/aiguillage, ce qui rend l'échange de matériel facile.
    • Les positions finales atteintes sont sauvegardées en mémoire flash pour fournir un redémarrage stable.
  • Centrale numérique DCC
  • Jusqu'à 255 unités sur le même réseau WiFi. (Dépendant de la configuration IP et de la disponibilité.)
  • Une alarme sera générée si les messages 'en vie' n'arrivent plus.
  • Les commandes Sortie/Aiguillage sont reconnus après leur traitement. (Les sorties clignotantes sont reconnues.)
  • Les évènements Entrée doivent être reconnues dans les 100ms. Après cette expiration un renvoi sera effectué. (5 essais maximum.)


Adressage

Rocrail WIO
Identifiant de l'interface "WIO"
Identifiant du Nœud (Bus) ID
Adresse Port I2C
Adresse Port LED
Adresse Port du servomoteur

Ce schéma d'adressage est utilisé pour:

  • Sorties
  • Aiguillages
  • Signaux
  • Détecteurs

Aiguillages double bobines

Désactive les options 'Accessoire' et 'Porte unique', et selectionne le type sortie.

La prochaine adresse pour aucun aiguillage à porte simple est utilisée pour la commande de déviation.
Donc si sur le port 1 il y a un aiguillage à double bobines, le port 2 ne doit être utilisé, et le deuxième aiguillage ira sur le port 3.
Les deux sorties I2C doivent être du type impulsion 'p'.
Matériel possible:

Clignotement

La sortie clignotante et les options de retard peut être utilisée pour faire clignoter un port I2C.
Si le retard est nul la longueur d'impulsion par défaut sera utilisée.

LEDs

ws2812.jpgws2811-chip.jpg L'adressage est le même que les sorties normales.

Sorties

  1. WIO-ID: Bus
  2. numéro de LED: Adresse
  3. plage de LED: paramètre ON
  4. L'interface → Option couleur et type d'éclairage doit être réglé
  5. La luminosité est réglée par l'Interface → Valeur
  6. Pas d’atténuation est réglée par l'Interface → Délai (0…15) (Une valeur de zéro désactive l’atténuation.)
  7. L'Interface → Option clignotant peut être utilisé pour faire clignoter la LED
  8. La couleur de la LED est réglée par Color → RGB

Signaux

  1. WIO-ID: Bus
  2. LED offset: Adresse
  3. Type de port: LED
  4. Type de contrôle: numéro d’aspect (Max. 6 sub LEDs → 2 x WS2812)
  5. Luminosité

Les valeurs de l'aspect sont compatibles avec RocNetNode Pi08. (WIO version 0.81+)

Servos

servo.jpg L'adressage est le même que les sorties normales.

Contrôle Sortie Commutation Intervalle
WIO IID="WIO" IID="WIO" -
WIO ID Identifiant du Nœud (Bus) Bus 1…255
Port du servo Adresse Adresse 1…4
Options supplémentaires - Porte simple ON -
Position 1 Paramètre ON Paramètre 0…180°
Position 2 Paramètre OFF Valeur 0…180°
Vitesse de déplacement Délai Durée de commutation 1…10
Cible Type de port "Servo" Type de port type "Servo" -


RFID

Soyez sûr qu'il n'y a pas de servos et de LEDs branchés lorque vous basculez en RFID.

wio-spi-rfid.jpg

  1. Deux lecteurs Mifare RFID RC522 sont supportés.
  2. Ils nécessitent 5 ports supplémentaires; les servos en parallèle ne sont pas possibles.
  3. Les adresses de rapport sont 100 et 101. (Dans Rocrail 101 et 102.)
  4. Détecteur désactivé hors évènement automatiquement après 1500ms. (Avant il doit être reconnu par le serveur.)
  5. Quatre essais jusqu'à reconnaissance, puis abandon.


Signal D1 Mini RFID RC522
Sélection esclave 1 D3 1 (SDA) lecteur 1
Sélection esclave 2 D0 1 (SDA) lecteur 2
SCK D5 2 (SCK)
MOSI D7 3 (MOSI)
MISO D6 4 (MISO)


Broches I2C

Broche Usage
A0 Surveillance de la puissance
D1 I2C SCL
D2 I2C SDA
D4 Encastré dans la LED
D8 LEDs (FastLED)


Afficheur SSD1306/SH1106

wio-oled-128x32.jpgdisplay-goes.jpg
Deux afficheurs peuvent être connectés à l'I2C du Type SSD1306 avec les adresses I2C 0x3C et 0x3D.
Le texte formaté est compatible avec RocDisplay.
WIO supporte seulement un sous-ensemble, et quelques nouvelles petites commandes sont introduites.
La page de code est l'ISO 8859 Latin pour les police de caractère {F0}; {F1} est en ASCII 7 bits uniquement.

Adressage

Le bus est utilisé pour l'identifiant WIO, et le numéro de l'afficheur pour la sélection entre 1 et 2. (0x3C or 0x3D)
La valeur de l'adresse n'est pas utilisée.

Formatage pris en charge

Les commandes de formatage sont enfermés entre accolades. Exemple:

{g1}{E}{L0}{X0}Hello World!{P}
Commande Paramètre Description Remarque
{B#} #=0-99999999 Lecture d'un fichier AMP, "#.amp", à partir de SPIFFS, et dessine le bitmap à la position courante.
{B'name'} nom du fichier AMP Lecture d'un fichier AMP, "nom.amp", à partir de SPIFFS, et dessine le bitmap à la position courante. Le nom doit être entre guillemets simples.
{E} - Efface le tampon de l'afficheur. Un {P} supplémentaire est nécessaire pour effacer l'afficheur.
{F#} #=0-2 Sélectionne la police de caractère. 0=7x5 1=6x5w 2=6x5n La police de caractère 5x5 n'est pas supportée parce qu'elle n'est pas lisible.
{H#} #=0-255 Régler le contraste de l'afficheur.
{I#} #=0-1 Inverser l'afficheur. 0=normal 1=inversé
{L#} #=0-3 Aller à la ligne. La gamme dépend de la taille de l'afficheur.
{P} - Copier le tampon vers l'afficheur.
{R#} #=0,2 Régler la rotation de la cartographie de l'afficheur. 0=0° 2=180°
{?V} - Afficher la version du firmware.
{X#} #=0-127 Aller à la colonne. La gamme dépend de la taille de l'afficheur.
{Y#} #=0-32 Aller à la ligne. La gamme dépend de la taille de l'afficheur.
Nouvelle commande Paramètre Description
{c#} #=1-16 Afficher une horloge analogique avec l'angle donné de la position actuelle.
{g#} #=0,1,2,3 Configurer la géométrie de l'afficheur. 0=96x16, 1=128x32, 2=128x64, 3=SH1106 (1 par défaut) C'est seulement pour le test. Pour sauvegarder la charge CPU régler l'option afficheur.
{i} - Basculer le texte inversé.
{s#} #=1-x Afficher le texte défilant à la position courante, avec une largeur de vue de n caractères. Exemple: {s12}Scrolling text to show…{s}
{d} - Faire défiler une ligne de texte vers le bas.
{f#} #=1-2 Horloge rapide 7-Segments. Seulement une seule horloge (rapide) par afficheur sera mise à jour.
{p} - Permuter les afficheurs.
{l#,#} - Dessine une ligne de X,Y à #,#
{r#,#} - Dessine un rectangle coté supérieur gauche X,Y au coté inférieur droit #,#
{z#} - Dessine un cercle avec centre et angle #
{x#,#} - Affiche un pixel à #,#

Note: Si la géométrie n'est pas par défaut, 128x32, le texte DOIT démarrer avec une commande {gn} pour sélectionner la bonne géométrie.


Afficheur 7-Segments HT16K33

adafruit-ht16k33.jpg Horloge rapide
La carte dAdafruit HT16K33 est supportée sur I2C à l'adresse 0x70.
Il affiche le temps alternatif, la date et le température.
Avec le réglage NTP_CLOCK dans le fichier USERCNF.h le service "pool.ntp.org" sera utilisé pour obtenir le temps de la journée au lieu de celui du serveur Rocrail. Il n'alternera pas entre la date et la température.

Générateur DCC

pulseview-wio-dcc.jpg

WIO supporte le suivi des paquets DCC

  • Vitesse de la locomotive et direction. (Pas de support pour 14 pas de vitesse.)
  • Les fonctions de la locomotive 0-32.
  • Définir/obtenir le PoM. (Un détecteur RailCom, GCA214, est nécessaire pour obtention du PoM.)
  • Accessoires.
  • BinState
  • Voie de programmation; mode Service. (Un second pont en H est nécessaire: WIO-Prog2)
    1. L'alimentation global doit être à ON
    2. PT doit être réglé à ON
    3. Lecture/Écriture des CV
  • Adresses de locomotive >= 100 sont considérées comme des adresses longues.
  • Adresse courte 111 est utilisée comme factice pour déclencher d'autres décodeurs à diffuser

Caractéristiques

  • 100% conforme à la synchronisation NMRA.
  • Coupure de l'alimentation automatique après une perte de la connexion au serveur Rocrail.
  • Affiche l'activité sur un afficheur si il y en a un de branché.
  • Rafraîchissement de 48 emplacements empilés avec purge automatique.
  • 12 files d'attente de commande d'accessoire.

Broches DCC

Broche Usage Remarque
D6 & D7 Signal symétrique DCC.
D5 Active le pont en H 1 Opération
D8 Active le pont en H 2 Service

ORD3

Pour utiliser le niveau 3.3V une résistance de 470 Ohm doit être ajoutée parallèlement à R1.

Adressage Mobile

IID WIO Remarque
Identifiant du Nœud (Bus) WIO ID
Adresse Adresse de décodeur DCC. Adresses > 99 sont considérés comme adresse longue DCC.
Crans de vitesse 28 ou 128


Mobile

Utiliser le WIO comme décodeur mobile.
La valeur du Bus de la locomotive doit être réglée avec l'identifiant WIO.
Le nombre de pas du décodeur doit être réglé dans la plage de 50 à 100.

Broches du LOLIN D1

Broches Usage Pont en H Remarque
D0 Fonction éclairage Cab1
D3 Feux arrières Cab2
D5 Activation du moteur ENA RC ESC servo PWM
D6 Marche avant PWM IN 1
D7 Marche arrière PWM IN 2
D8 PWM Servo pour attelage F1
I2C 1-32 Fonctions 1 à 32
A0 Moniteur batterie LiPo 3S + 100kΩ A0 32kΩ -

L'accélération/décélération peut être simulé avec le paramètre de l'interface de la locomotive Masse. (résolution 10ms.)
Une valeur de masse de 5 augmentera/réduira le PWM de 1 pas chaque 5*10ms. Vstart et Vhigh, CV2/CV5, peut être simulé avec l'Intervalle de pas

Contrôleur de Vitesse Électronique

Un Contrôleur de Vitesse Électronique, ESC (Electronic Speed Controller), sur la broche 5 peut également être utilisé pour le contrôle du moteur si cette option est définie.
Note: Seulement la masse et le PWM au cas ou l'ESC supporte BEC.


ID-12LA

rfid-card-antenna.jpgid-innovations.com_httpdocs_assets_immage_id12new.jpg En option un lecteur RFID du type ID-12LA peut être connecté à la broche RX pour détecter les balises qui seront reportées vers Rocrail.
La balise est utilisé comme Identifiant de capteur ou Nom de l'UID, format décimal.
La carte GCA RFID peut être utilisé pour monter et connecter l'ID-12LA.
Le moniteur série sera réglé à 9600bps.
Note 1: Cela sert à analyser les balises entre les rails pour laisser à Rocrail le temps de savoir où se trouve le véhicule en marche.
id12la-pin6-led-taginrange.jpg Note 2: Utilisez des balises sélectionnées qui répondent rapidement.


RailCom

railcom_cutout.jpg Le connecteur série sur le circuit imprimé WIO peut être utilisé pour le connecter à un amplificateur pour la lecture des données RailCom.
Le GCA214 peut être utilisé comme amplificateur.
Les identifiants RailCom suivants sont supportés:

ID Canal Description
0 2 Lecture POM
1 1 Adresse basse du décodeur
2 1 Adresse haute du décodeur

Le seul moyen pour activer la lecture RailCom dans le WIO est de régler cette option dans la fenêtre de dialogue WIO. (WIO 0.105, Rocrail 2.1.212)
La vitesse du port série basculera à 250000, et le moniteur ne pourra être que seulement lu. Donc avec cette option active il n'est pas possible de régler le WIO par les commandes du moniteur.

Capteurs

bmp280.jpgtsl2591.jpg Un capteur BME280/BMP280, connecté à l'I2C, est supporté pour la température, la pression et l'humidité.
Le USER_ALTITUDE dans le fichier USERCNF.h doit être ajusté pour correspondre à l'altitude locale pour avoir des valeurs de pression correctes.
Un capteur TSL2591 'Convertisseur Lumière-vers-Numérique', connecté à l'I2C, est supporté pour calculer la luminosité.

Texte dynamique

Aussi bien la température, la pression et l'humidité peuvent être utilisé comme texte et variables XMLScript.
Voir: Texte dynamique

Son

Le son peut être joué sur les cartes ESP32 en utilisant une des broches DAC. (GPIO25 ou GPIO26)
Format supporté RIFF Wave:

  • Type PCM
  • Taux d'échantillonnage 11.025 Hz
  • 16 bits d'échantillonnage
  • Un canal (Mono)

Action

  • Type: Son
  • Commande: Play
  • Paramètre: Fichier son incluant le chemin comme : "/F9.wav"
  • Interface Bus: WIO ID

Exemple:

<ac id="F9" cmd="play" param="/F9.wav" type="sound" iid="WIO" bus="38" addr="0" port="0"/>

Recommandations

Le DAC est seulement capable d'utiliser 8 bits. les données 16 bits doivent être interprétées, ce qui n'est pas possible sans perte de données.
Pour obtenir un meilleur résultat:

  • Normaliser les fichiers son de sorte que les données utilisent pleinement 16 bits.


Moteur pas à pas

TLe WIO-02 supporte deux types de moteur pas à pas: Pilote de pas 4-fils et 3-fils.
stepmotor-4wire.jpgstepmotor-3wire.jpg

WIO-02 4-fils 3-fils Remarque
32 IN1 CLK+
13 IN2 DIR+
2 IN3 ENABLE+
15 IN4 -
DA1 - Capteur de calibration Hall/Reed
EP1-1 GND CLK-,DIR-,ENABLE-
- VCC 12V-45V DC Alimentation externe

Configuration pont tournant

Interface pont tournant
Champ Valeur Remarque
Identifiant du nœud WIO-02 ID
Adresse 1 Fixe
Lumières 1…32 Éclairage de la cabine du pont en option.
Port de sortie numérique sur le même WIO-02.
Type wio
Pas du décodeur N° des pas pour une rotation de 360°.
En cas d'un 28BYJ-48: 4096 pas.

Le nombre de pas du décodeur pour une rotation complète du pont tournant est nécessaire pour calculer le chemin le plus court.

Voies du pont tournant (Exemple 4096 pas)
Voie Voie du décodeur
0 0
12 1024
24 2048
36 3072

Exemple XML: (Seuls les attributs obligatoires sont répertoriés.)

  <tt ori="west" id="tt1" x="11" y="4" z="0" pos="0" iid="RCAN-1" bus="102" addr="1" type="wio" decsteps="4096">
    <track nr="0" decnr="0"/>
    <track nr="12" decnr="1024"/>
    <track nr="24" decnr="2048"/>
    <track nr="36" decnr="3072"/>
  </tt>


CAN

gc2a-wio-can.jpg Le type WIO CAN peut être utilisé comme pont CAN-WiFi pour

MCP2515

La cartographie des broches pour l'utilisation du SPI MCP2515(16MHz) sur le GC2a:

Nom Nano Lolin D1 Mini Lolin D32 Remarque
GND GND GND GND Masse
5V 5V 5V 5V(USB)
CS D10 D3 GPIO14 Sélection de la puce
MOSI D11 D7 GPIO23(MOSI) Sortie maître, Entrée esclave
MISO D12 D6 GPIO19(MISO) Entrée maître, Sortie esclave
SCK D13 D5 GPIO18(SCK) Horloge série

Le Lolin D1/D32 doit être branché au 5V USB sans alimentation venant du bus CAN.
Un kit WIO-CAN sera bientôt disponible.


ESP32

Le firmware WIO en cours, 1.94, utilise le contrôleur CAN interne, et utilise donc seulement le MCP2551/2561. (SPI CAN n'est plus pris en charge pour le MCP2515)
En cas d'ESP32 la communication CAN est toujours activée, quelque soit le type de WIO sélectionné.

Connexion Broche ESP32 MCP2561
TXCAN 16 1
RXCAN 4 4


Lecteur RFID mobile

Le WIO peut également être utilisé comme lecteur mobile RFID et d'E/S.
L'identifiant WIO doit être configuré dans le champ Adresse secondaire.

Configuration du détecteur

Loco [ICE-CAM] reports RFID event 56:101 [4.102.181.114.9.64.128] ON

Le RFID reporté doit correspondre à un Identifiant de détecteur dans Rocrail.
Ce détecteur doit avoir son adresse configurée à zéro.
L'identifiant doit être configuré avec cette notation: Notation RFID
Les suivis de Rocrail peuvent être utilisés pour copier cet identifiant ou le Moniteur de détecteur.

Configuration de fonction

Pour distribuer les fonctions à un WIO la fonction doit être configurée avec l'Adresse de fonction et FX.


Matériel

Le firmware ne fonctionne pas sans résistances de pull-up sur les entrées des boutons, incluant le commutateur rotatif.

Schedules & PCBs

Les matériels publiés sont des prototypes, ils sont incomplets et pas prêt pour une sortie.
Seulement les kits d'origine GCA sont supportés.

Dépannage

LOLIN vs Wemos

Avant Arrière
LOLIN D1 mini Wemos mini LOLIN D1 mini Wemos mini
d1-top.jpg d1-bottom.jpg
Broche Lolin Wemos
D3 - Ne démarre pas en cas de niveau bas.


Très lent

Si un module I2C, comme le Pi02 ou le Pi03, est connecté au bus I2C du WIO, et n'a pas de puissance, cela va ralentir le traitement et aucun autre appareil I2C ne sera détecté. (Plusieurs secondes entre les appels de boucle.)
L'extenseur de bus I2C P82B715 semble drainer l'horloge I2C et les lignes de données, ce qui confondra l'ISR dans la librairie Wire.
Le Pi08, avec la puce PCA9622, ne souffre pas de ce problème avec son extenseur de bus I2C interne.

Solution

Soyez sûr que tous les modules I2C connectés sont alimentés en même temps que le WIO.

macOS "Big Sur"

Télécharger l'outil ESP8266

Télécharger l'outil ESP32

arduino/wio-fr.1613903815.txt.gz · Last modified: 2021/02/21 11:36 by phil45