User Tools

Site Tools


arduino:wio-fr

Differences

This shows you the differences between two versions of the page.


Previous revision
arduino:wio-fr [2025/05/21 13:51] (current) – [Firmware WIO] phil45
Line 1: Line 1:
 +[[:france|{{ :hardware.png}}]][[:france|{{ :rocrail-logo-32.png}}]]
 +[[:arduino:wio-fr|{{ icons:fr.png|Version française}}]][[:arduino:wio-de|{{ icons:de.png|Version allemande}}]][[:arduino:wio-en|{{ icons:uk.png|Version anglaise}}]]
 +====== Firmware WIO ======
 +[[:wio:overview-fr|{{ :wio:wiologo.png}}]]
 +[[:france|Sommaire]] -> [[:arduino:wio-overview-fr|Vue d'ensemble WIO]]
 +  * [[:arduino:wio-overview-fr|Vue d'ensemble WIO]] | [[:arduino:wio-setup-fr|Configuration WIO]] | [[:arduino:wioctrl-fr|Contrôle WIO]] | [[:arduino:amp-fr|Bitmaps utilisateur]] | **[[:arduino:wio-fr|Firmware WIO]]** | [[:wio:wio-ledscript-fr|LEDScript]] | [[:wio:wio-ioscript-fr|IOScript]]
 +  * [[:arduino:wio-rascii-fr|WIO RASCII]] | [[:arduino:wio-canprot-fr|Protocole CAN WIO]]
 +  * [[https://i2cdevices.org/addresses|Adresses des périphériques I2C]]
 +  * [[:arduino:esp32-api3-fr|ESP32 API 3.x]]
 +
 + \\
 +
 +=====Introduction=====
 +Ce projet a pour cible les plateformes ESP8266, ESP32 et RP2040((Raspberry Pi PicoW)).\\
 +Le code source n'est seulement disponible pour être capable de le charger sur le périphérique cible si aucune autre méthode n'est possible.\\
 +Bifurquer ou manipuler le code source N'EST PAS autorisé et est protégé par le droit d'auteur.\\
 +
 +Il peut être utilisé comme:
 +  * Manette sans fil
 +ou comme interface E/S sans fil avec:
 +  * 32 E/S I2C [[:hardware-fr#unites_d_extension|Compatible GCA]]
 +  * 2 afficheurs SSD1306
 +et une des options supplémentaires suivantes:
 +    - Contrôle de LED WS2812
 +    - 4 servos
 +    - 2 lecteurs RC522
 +    - Générateur DCC
 +    - PWM mobile, direction et lumières
 +et une des options suivantes:
 +  * Lecteur RFID ID12LA 125kHz sur RX
 +  * Lecteur RailCom sur RX
 +
 +====Cartes supportées====
 +  * Raspberry Pi Pico W -> recommandé 
 +  * Lolin D1 Mini
 +  * Lolin D32
 +  * ESP32 Module Dev
 +  * ESP32 D1 Mini
 +====Broches utilisées====
 +Vérifiez la cartographie des broches dans Pins.cpp:
 +  * Pins.cpp
 +
 +====Prospectus====
 +  * {{:wio:wio-2.pdf|WIO-2}}
 +
 + \\
 +
 +=====Attention=====
 +{{ :arduino:wifi-analyse.jpg?300|Exposition des canaux WiFi utilisés...}}
 +  - 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.
 +  - __Le routeur WiFi utilisé doit être configuré dans les règle de l'art; Utiliser uniquement du matériel maintenu.__
 +  - 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=====
 +Prépare l'IDE Arduino avec les cartes et les bibliothèques suivantes:
 +
 +====Gestionnaire de cartes=====
 +Ajouter dans la boite de dialogue Préférence à "Additional Boards Manager" les URL suivantes:
 +<code>
 +https://arduino.esp8266.com/stable/package_esp8266com_index.json
 +https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
 +</code>
 +
 +{{ :arduino:board-manager-en.png?300}}
 +Et installez la bibliothèque des cartes ESP8266 et ESP32.\\
 +====Sélection de la carte====
 +{{ :arduino:lolin-ide-board.png?240}}
 +''LOLIN(WEMOS)D1 R2 & mini''\\
 +====Bibliothèques====
 +===ESP8266 & ESP32===
 +  * ESP8266 (Carte maître)
 +  * Adafruit NeoPixel (WS2812)
 +  * Encodeur Rotatif
 +  * MFRC522 (RC522)
 +  * Servo
 +  * ArduinoOTA
 +  * mcp_can 
 +    * https://github.com/coryjfowler/MCP_CAN_lib
 +    * [[:arduino:rcan-fr#modifications|Modifications MCP_CAN]]
 +  * SparkFun APDS9960 RGB et capteur de geste \\ Ligne 198 dans le fichier Arduino/libraries/SparkFun_APDS9960.h qui doit être changé de NA_STATE à NO_STATE parce que cela rentre en conflit avec la bibliothèque WiFi RP2040. Cette valeur Enum n'est pas utilisée dans le fichier Arduino/libraries/SparkFun_APDS9960.cpp. (implémentation)
 +
 +__**Correction de bugs MFRC522**__\\
 +Remplacer dans MFRC522Extended.cpp sur la ligne 824 et 847:\\
 +<code C++> 
 +if (backData && (backLen > 0))
 +</code>
 +avec <code C++> 
 +if (backData && (backLen != NULL))
 +</code>
 +
 +
 +===ESP32===
 +Pour compiler WIO 
 +  * Carte esp32 -> 2.0.17
 +
 +  * ESP32 (Board Manager) -> :!: WIO NE supporte PAS la version 3.x ESP32; L'API n'est pas compatible avec 2.x. :!: ((https://docs.espressif.com/projects/arduino-esp32/en/latest/migration_guides/2.x_to_3.0.html))
 +  * ESP32Servo
 +  * ESP32CAN
 +    * https://github.com/miwagner/ESP32-Arduino-CAN
 +
 +__**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)
 +<code 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, 250);
 + return rc;
 +}
 +</code>
 +
 +| Juste descendre "Upload Speed" à 460800 au cas ou le sketch téléchargé affiche des erreurs de communication. |
 + \\
 +
 +====Système de fichier====
 +Sélectionner 1M FS size:\\
 +{{:arduino:esp8266-fs-size.png?240}}\\
 +LittleFS est un système de fichier qui peut être utilisé dans WIO pour télécharger les bitmaps et les scripts utilisateur.\\
 +Installation du plugin Arduino IDE pour télécharger des données:
 +  * https://github.com/esp8266/arduino-esp8266fs-plugin
 +
 +
 +=====Sketch WIO=====
 +| //Copyright (c) 2002-2025 Robert Jan Versluis, Rocrail.net// |
 +WIO est le firmware pour contrôler toutes les fonctions.\\
 +Le code source n'est pas publique.\\
 +
 +
 + \\
 +====Binaire====
 +{{ :arduino:esp-downloadtool.jpg?400}}{{ :arduino:espressif_flash_tool_chip.jpg?150}}{{ :arduino:espressif_flash_tool.jpg?300}}
 +Utiliser l'outil Espressif pour charger le binaire WIO.
 +  * [[https://wiki.rocrail.net/rocrail-snapshot|Binaire WIO]]
 +  * [[https://www.espressif.com/en/support/download/other-tools|Outil de téléchargement Flash ESP]]
 +    * :!: Ne pas décocher "DoNotChgBin"
 +
 +====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:
 +<code>
 + #    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.
 +</code>
 +
 +^ 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 [[#user_configuration|USERCNF.h]]:
 +<code>
 +#1CConnecting to [secure.home]
 +#13WiFi try to connect
 +...
 +#13WiFi try to connect
 +#17WiFi connected RSSI=-55
 +</code>
 +
 +La sortie après une commande ?:\\
 +<code>
 +------------------------------
 +revision=458 WIO (c)Rocrail
 +192.168.100.175 RSSI=-52
 +battery=186
 +EEPROM size=3804
 +Free heap=174271
 +I/O state=00 00 00 00
 +------------------------------
 +SPIFFS total=1345kb used=0kb
 +file: Disco01.led size=110
 +------------------------------
 +Configuration:
 +------------------------------
 +ssid1=
 +pwd1=
 +ssid2=
 +pwd2=
 +server=
 +name=[local]
 +id=45
 +io=i2cled 
 +i2c=ooooooooiiiiiiii
 +steps=64
 +sleeptimer=5
 +pulse=5
 +pwmsize=0
 +options=0xC2 0x01 0x00 0x00
 +booster=0
 +board=1
 +display=3
 +railcom=0
 +id12=0
 +depart=0
 +stepper=0
 +canprot=0(0)
 +canio=0
 +canusb=0
 +trace=0
 +------------------------------
 +</code>
 +
 +====Configuration utilisateur====
 +Le fichier [[https://gitlab.com/rocrail/wio/-/blob/master/USERCNF.h|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".
 +
 +
 +<html><a name="monitor_commands"></html>
 +====Les commandes du moniteur====
 +Le moniteur série Arduino peut être utilisé à 115200 bps pour changer les réglages WIO.\\
 +  - Si RailCom a été activé la vitesse de transmission basculera automatiquement à 250000 et le moniteur série sera en lecture seule.
 +  - Si l'ID12 a été activé la vitesse de transmission basculera à 9600 et le moniteur série sera en lecture seule.
 +
 +La configuration de base de la connexion peut également être faite via l'__**[[:arduino:wio-setup-fr#maintenance|Onglet Maintenance]]**__ de la fenêtre de dialogue de configuration WIO.\\
 +
 +^ Commande ^ Description ^ Défaut ^
 +| ?  | Affiche les réglages en cours et comment les changer. |
 +| !  | Vide la mémoire EEPROM utilisée. |
 +| *sod | Force le Début de Journée |
 +| *scan | Liste tous les points d'accès Wifi disponibles |
 +| *ssid1=<valeur> | Configure le SSID du point accès WiFi. | - | SSID primaire (max. 30 caractères) |
 +| *pwd1=<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" \\ Si réglé à automatique il aura le même effet que le paramètre autoserver. ||
 +| *autoserver=<valeur> | Règle la recherche automatique du Serveur Rocrail avec R2RNet. | voir USERCNF.h -> ENABLE_R2RNET | 0=off, 1=on |
 +| *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=Aucun, 2=Info, 4=Debug \\ Seulement pour la session en cours excepté pour 2(Info). |
 +| *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 |
 +| *list | Liste de tous les fichiers |  |
 +| *dump=</filename> | Dump hexadécimal du fichier. |  | Préfixez le nom de fichier avec un '/' |
 +| *dumpa=</filename> | Dump ASCII du fichier. |  | Préfixez le nom de fichier avec un '/' |
 +| *pwmslave=<value> | Assure la synchronisation sur la broche HALL. | maître | 1=esclave, 0=maître |
 +| *pwm50=<value> | Fréquence PWM logicielle 50 Hz. | 25Hz | 1=50Hz, 0=25Hz |
 +| *pwmhardware=<value> | Fréquence PWM matérielle 100 Hz. | PWM logiciel | 1=matériel, 0=logiciel |
 +
 +**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  |
 +
 + \\
 +
 +
 +====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).\\
 +{{:arduino:wio-ota-en.png?400}}\\
 +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 [[#configuration_de_base_avec_un_navigateur_WEB|Point d'Accès]] (Par défaut "12345678").\\
 +{{:arduino:wio-ota-display.png}}{{:arduino:ota-upload-en.png?600}}\\
 +
 +
 + \\
 +
 +====Installation OTA à partir de zéro====
 +  * __**[[arduino:wio-setup-fr#ota_a_partir_de_zero|Installation WIO par OTA à partir de zéro]]**__
 +
 +=====Manette - RIC=====
 +| Note: RIC n'est plus supporté dans le firmware, et est remplacé par [[:arduino:wioctrl-fr|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)\\
 +{{ :arduino:ric-prototype.jpg?200}}
 +
 +====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===
 +  - 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.
 +  - Si le LOLii voit dans ce mode une locomotive expédiée, il l'attrapera et la LED commencera à clignoter lentement.
 +  - 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===
 +  - Appuyer longuement sur le commutateur rotatif, à peu près 2 secondes,
 +  - Un message de libération est envoyé.
 +  - 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===
 +Si le serveur Rocrail a R2RNet actif sur l'adresse de multidiffusion 224.0.1.20, le WIO 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, MCP23017, 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.)
 +
 + \\
 +
 +====Extension E/S PCF8574P====
 +Jusqu'à 4 extensions d'E/S de type PCF8574 peuvent être utilisée comme alternative à 2 MCP23017.
 +  - 0x20 et 0x21 ne devrait pas être disponible en tant qu'identifiant esclave I2C. (Pas de MCP23017 installé.)
 +  - L'identifiant esclave du PCF8574 doit démarrer à 0x22.
 +\\
 +====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 __sélectionne__ 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 sont automatiquement utilisées comme impulsion de type 'p'.\\
 +Matériel possible:
 +  * **[[:mgv76-fr|GCA76]]**
 +  * [[:gca77-fr|GCA77]]
 +  * [[:gca107-fr|GCA107]]
 +
 +====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====
 +{{ :arduino:ws2812.jpg?200}}{{ :arduino:ws2811-chip.jpg?200}}
 +L'adressage est le même que les sorties normales.\\
 +
 +===Sorties===
 +  - WIO-ID: Bus
 +  - numéro de LED: Adresse
 +  - plage de LED: paramètre ON
 +  - L'interface -> Option couleur et type d'éclairage doit être réglé
 +  - La luminosité est réglée par l'Interface -> Valeur
 +  - 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.)
 +  - L'Interface -> Option clignotant peut être utilisé pour faire clignoter la LED
 +  - La couleur de la LED est réglée par Color -> RGB
 +
 +===Signaux===
 +  - WIO-ID: Bus
 +  - LED offset: Adresse
 +  - Type de port: LED
 +  - Type de contrôle: numéro d’aspect (Max. 6 sub LEDs -> 2 x WS2812)
 +  - Luminosité
 +Les valeurs de l'aspect sont compatibles avec __**[[:rocnet:rocnetnode-led-fr#support_du_signal|RocNetNode Pi08]]**__. (WIO version 0.81+)\\
 + \\
 +
 +====Signaux====
 +  - WIO-ID: Bus
 +  - LED offset: Adresse
 +  - Type de port: Sortie
 +  - Type de contrôle: Numéro d’aspect
 +Les valeurs de l'aspect sont compatibles avec __**[[:rocnet:rocnetnode-led-fr#support_du_signal|RocNetNode Pi08]]**__. (WIO version 0.81+)\\
 + \\
 +
 +====Support de signal Charlieplexing====
 +Seulement disponible sur [[:wio:wio03-io16-fr|WIOesp32 16 E/S]], [[:wio:wiopico-io16-en|WIOpico 16 E/S]], [[:wio:wiopico-fr|SIOpico]]\\
 +Un signal Rocrail avec les aspects de contrôle et le type de port multiple, utilise 4 broches démarrant avec le décalage du port.\\
 +Le taux de rafraîchissement est d'environ 250µs.\\
 +Les valeurs d'aspects sont utilisées à partir de l'onglet Détails. Les 24 bits sont utilisés, les 12 bits supérieurs sont pour le clignotement.\\
 +Exemple: LED 1 et 2 allumées et LED 2 clignotante: 0x002003 -> Valeur d'aspect = 8195 \\
 +
 +Un second signal sur le mât peut être défini dans Rocrail avec l'adresse + 100 pour le combiner avec le signal principal.\\
 +
 +La luminosité règle la luminosité, seules les valeurs entre 200-255 peuvent être utilisées. Une valeur < 200 est définie à 200.\\
 +Le fondu avec gradation n'est pas possible.\\
 +
 +^ Numéro de LED pour signal Multiples Viessmann^^^^^^^^^
 +|LED|Pin+|Pin-|1|2|3|4|Viessmann| |
 +|1|1|2|H|L| | |Vr_Ge_O|Signal distant jaune au dessus|
 +|2|1|3|H| |L| |Hp_Rt_R|Signal principal rouge à droite|
 +|3|1|4|H| | |L|Hp_Rt_L|Signal principal rouge à gauche|
 +|4|2|1|L|H| | |Vr_Gr_O|Signal distant vert au dessus|
 +|5|2|3| |H|L| |Vr_Gr_u|Signal distant vert en dessous|
 +|6|2|4| |H| |L| | |
 +|7|3|1|L| |H| |Hp_Ge|Signal principal jaune|
 +|8|3|2| |L|H| |Vr_Ge_U|Signal distant jaune en dessous|
 +|9|3|4| | |H|L| Hp_Ws_L|Signal principal blanc à gauche|
 +|10|4|1|L| | |H|Hp_Gr|Signal principal vert|
 +|11|4|2| |L| |H| | |
 +|12|4|3| | |L|H|Hp_Ws_R|Signal principal blanc à droite|
 +
 +Pour un affichage correct du signal principal au rouge et de manœuvre, le signal distant doit être masqué. \\
 +La valeur de la luminosité du signal principal et distant doit être identique. \\
 +
 +Les entrées multiples de Viessmann, vue de dessous sur le connecteur. \\
 +{{:wio:viessmann-stecker.png?200|}}
 +\\
 +====Servos====
 +{{ :arduino:servo.jpg?200}}{{ :arduino:servo-pwm.png?200}}
 +L'adressage est le même que les sorties normales.\\
 +^ Contrôle ^ Sortie ^ Commutateur ^ Signaux ^ Segment Pont Tournant ^ Plage ^
 +| WIO | IID="WIO" | IID="WIO" | IID="WIO" | IID="WIO" | - |
 +| Identifiant WIO | Identifiant du Nœud (Bus) | Identifiant du Nœud (Bus) | Identifiant du Nœud (Bus) | Identifiant du Nœud (Bus) | 1...255 |
 +| Port du Servo | Adresse | Adresse | Adresse | Adresse | 1...4 |
 +| Options Supplémentaires | - | Simple porte ON | - | - | - |
 +| Accessoire | - | - | Détails | - |
 +| Position 1 | Paramètre ON | Paramètre | Valeur ROUGE 0 * | - | 0...180° |
 +| Position 2 | Paramètre OFF | Valeur | Valeur VERTE 1 * | - | 0...180° |
 +| Position | - | - | - | Numéro de voie du décodeur | PWM 500...2500 ²|
 +| Vitesse de déplacement | Délai | Durée de commutation | Dim | Délai du pas | 1...10 |
 +| Cible | Type de port "Servo" | Type de port "Servo" | Type de port "Servo" | Type wioservo | - |
 +* Onglet Détails, Appuyez sur Entrée en utilisant le champ avec des décimales dans le bouton Valeur \\
 +La valeur de l'angle du servo doit être confirmé en appuyant sur Entrée dans le champ décimale.
 +²  Attention, des valeurs trop hautes ou trop basses peut endommager le démarrage du servo avec PWM 1500 = 0°. \\
 +La valeur de l'angle du servo doit être confirmé avec une entrée dans le champ décimal.
 +
 + \\
 +
 +
 +====RFID====
 +|  //Soyez sûr qu'il n'y a pas de servos et de LEDs branchés lorque vous basculez en RFID.//  |
 +
 +Impossible avec WIO Type I/O16, veuillez utiliser ID-12LA dans ce cas.
 +
 +{{ :arduino:wio-spi-rfid.jpg?240}}
 +  - Deux lecteurs RFID RC522 sont supportés.
 +  - Ils nécessitent 5 ports supplémentaires; les servos en parallèle ne sont pas possibles.
 +  - Les adresses de rapport sont 100 et 101. (Dans Rocrail 101 et 102.)
 +  - Détecteur désactivé hors évènement automatiquement après 1500ms. (Avant il doit être reconnu par le serveur.)
 +  - Quatre essais jusqu'à reconnaissance, puis abandon.
 +
 + \\
 +^ Signal ^ D1 Mini ESP8266 ^ port Pico ^ RFID RC522 ^
 +| Sélection esclave 1 | D3 | GP17 | 1 (SDA) lecteur 1 |
 +| Sélection esclave 2 | D0 | GP15 | 1 (SDA) lecteur 2 |
 +| SCK | D5 | GP18 | 2 (SCK) |
 +| MOSI | D7 | GP19 | 3 (MOSI) |
 +| MISO | D6 | GP16 | 4 (MISO) |
 +
 + \\
 +
 +====ID-12LA====
 +{{ :arduino:rfid-card-antenna.jpg?200}} {{ :arduino:id12la-pin6-led-taginrange.jpg?200}} \\
 +En option un lecteur RFID du type [[http://id-innovations.com|ID-12LA]] peut être connecté à la broche RX pour détecter les balises qui seront reportées vers Rocrail.\\
 +La balise est utilisé comme **[[:sensor-gen-fr#identifiant|Identifiant de capteur]]** ou **[[:sensor-int-fr#nom_de_l_uid|Nom de l'UID]]**, **[[:can-gc4-fr#notation_rfid|format décimal]]**.\\
 +La carte **[[:gca_rfid-fr|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.\\
 +**Note 2:** Utilisez des balises sélectionnées qui répondent rapidement.\\ \\
 +
 +
 + \\
 +====Broches I2C====
 +^ Broche ^ Usage ^
 +| A0 | Surveillance de la puissance |
 +| D1 | I2C SCL |
 +| D2 | I2C SDA |
 +| D4 | Encastré dans la LED |
 +| D8 | LEDs (FastLED) |
 +
 +<html><!--
 +====Broches natives====
 +^ Broche ^ Usage ^
 +| A0 | Surveillance de la puissance |
 +| D0...D7 | Ports E/S sur J1 |
 +| D8 | LEDs (FastLED) |
 +--></html>
 +
 + \\
 +
 +====Broches S88====
 +|< >|
 +^ ESP8266 ^ ESP32 ^ PicoW ^ Utilisation ^
 +| D0 | 12 | 10 | PS |
 +| D5 | 17 | 11 | Reset |
 +| D6 | 26 | 12 | Clock |
 +| D7 | 27 | 13 | Data |
 +
 + \\
 +
 +
 +
 +====Afficheur SSD1306/SH1106====
 +|{{:arduino:wio-oled-128x32.jpg?0x160}}|{{:arduino:f8.jpg?0x160}}|
 +|  Exemple.  |  {f8} sur un afficheur SH1106.  |
 +
 +Deux afficheurs peuvent être connectés à l'I2C du Type SSD1306 avec les adresses I2C 0x3C et 0x3D.\\
 +Le texte formaté est compatible avec [[:rocnet:rocdisplay-fr#format_du_texte|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.\\
 +===Multiplexage===
 +Jusqu'à 16 afficheurs peuvent être utilisés avec **[[:wio:wio-displaymultiplex-fr|Multiplexage d'afficheur]]**.\\
 +===Formatage pris en charge===
 +Les commandes de formatage sont enfermés entre accolades.
 +Exemple:
 +<code>
 +{g1}{E}{L0}{X0}Hello World!{P}
 +</code>
 +^ Commande ^ Paramètre ^ Description ^ Remarque ^
 +| {A...} | 0...9 & : | Numéros agrandis. | Exemple: {A%hour%:%min%} |
 +| {B#} | #=0-99999999 | Lecture d'un fichier AMP, "#.amp", à partir de SPIFFS, et dessine le bitmap à la position courante. |
 +| {B'//name//'} ou {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 crochets((Préféré pour Rocview.)) ou 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° | Voir également **[[:arduino:wio-setup-fr#display|Configuration de l'afficheur]]** |
 +| {?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. |
 +| {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 [[#monitor_commands|afficheur]]. \\ Voir également **[[:arduino:wio-setup-fr#display|Configuration de l'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. |
 +| {f7} | - | Horloge accélérée définie par l'utilisateur. \\ __Fichiers nécessaires:__ 0.amp...9.amp et colon.amp | Exemple de donnée: {{:arduino:f7.zip}} \\ La taille maximale du fichier est de 1024 octets par amp. \\ {X#} et {L#} sont utilisés pour la position. \\ Le DISPLAY_FASTCLOCK doit être réglé à true dans USERCNF.h |
 +| {f8} | - | Identique à {f7} mais avec un zéro devant l'heure si nécessaire. | Exemple: 08:22 au lieu de 8:22|
 +| {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 à #,# |
 +| {+} | - | [[:arduino:wio-ampchar-fr|Utilisation de gros caractères du système de fichier.]] | Les caractères sont sur le système de fichier au format amp. Exemple: ''3.amp'' |
 +| {-} | - | Arrête l'utilisation de gros caractères. |
 +
 +**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 ====
 +{{ :arduino:adafruit-ht16k33.jpg?200}}
 +//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====
 +{{ :arduino:pulseview-wio-dcc.jpg?400}}
 +=== 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: __**[[:gca:wioprog2-fr|WIO-Prog2]]**__)
 +    - L'alimentation global doit être à ON
 +    - PT doit être réglé à ON
 +    - 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.
 +
 +===Adressage de locomotive===
 +^ Champ ^ Valeur ^ Plage ^ Remarque ^
 +| IID | WIO |
 +| Identifiant de nœud | Le numéro WIO | 1...255 | Le nœud sur lequel le générateur DCC est actif. |
 +^ Adresse | Adresse de décodeur DCC. | 1...n | Adresses > 99 sont vues comme des adresses DCC longues. \\ 111 est réservé pour le réveil RailCom. |
 +| Pas du décodeur | crans de fonctionnement | 28, 128| 14 n'est pas recommandé |
 +
 +
 +===Adressage d'accessoire===
 +^ Champ ^ Valeur ^ Plage ^ Remarque ^
 +| IID | WIO |
 +| Identifiant de nœud | Le numéro WIO | 1...255 | Le nœud sur lequel le générateur DCC est actif. |
 +| Adresse | Numéro du module | 1...1024 | Voir __**[[:addressing-fr#adresse_du_module_decodeur_d_accessoires_mada|MADA]]**__ |
 +| Port | Paire de sorties de modules | 1...4 |
 +| Porte | Commande pair | 0...1 | Les objets aiguillage définiront la porte en conséquence sur la position souhaitée. |
 +| Type | Accessoire |
 +
 +
 +===Broches DCC ESP8266===
 +^ 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.\\
 +
 +
 + \\
 +
 +====Mobile====
 +Utiliser le WIO comme décodeur mobile.\\
 +La valeur du __**[[:loc-int-fr#bus|Bus]]**__ de la locomotive doit être réglée avec l'identifiant WIO.\\
 +Le nombre de __**[[:loc-int-fr#pas_du_decodeur|pas du décodeur]]**__ doit être réglé dans la plage de 50 à 100.\\
 +===Broches du LOLIN D1===
 +{{  arduino:lipo3s-measure-.png?240}}
 +^ 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 | | L'[[:loc-fun-fr#adresse_fx|Adresse de la fonction]] doit être réglée > 0. |
 +| 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 __**[[:loc-int-fr#masse|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'__**[[:loc-int-fr#intervalle_de_pas|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.**__
 +
 + \\
 +
 +
 +====RailCom====
 +{{ :arduino:railcom_cutout.jpg?400}}
 +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====
 +{{ :arduino:bmp280.jpg?200}}{{ :arduino:tsl2591.jpg?140}}
 +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: __**[[:text-gen-fr#texte_dynamique|Texte dynamique]]**__ \\
 + \\
 +
 +====Son====
 +Le son peut être joué sur les cartes ESP32 en utilisant une des broches DAC. (GPIO25 ou GPIO26)\\
 +Le USER_SOUND dans le fichier USERCNF.h doit être réglé à true:
 +<code>
 +// Sound
 +#define USER_SOUND          true
 +</code>
 +Format supporté [[ https://de.wikipedia.org/wiki/RIFF_WAVE|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:
 +<code xml>
 +<ac id="F9" cmd="play" param="/F9.wav" type="sound" iid="WIO" bus="38" addr="0" port="0"/>
 +</code>
 +===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.\\
 +{{ :arduino:stepmotor-4wire.jpg?0x200}}{{ :arduino:stepmotor-3wire.jpg?0x200}}
 +^ WIO-02 ^ 4-fils ^ 3-fils ^ Remarque ^
 +| 32 | IN1 | CLK+ |
 +| 13 | IN2 | DIR+ |
 +| 2 | IN3 | ENABLE+ |
 +| 15 | IN4 | - |
 +| 25 | -   | | Capteur de calibration Hall/Reed *| 
 +| EP1-1   | GND | CLK-,DIR-,ENABLE- |
 +| -       | VCC | 12V-45V DC | Alimentation externe |
 +
 +
 +* Le capteur de calibration doit être installé aussi près que possible de la voie 0
 +
 +===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 | 0-16777215 | N° des pas pour une rotation de 360°. \\ En cas d'un 28BYJ-48: 4096 pas. |
 +| Correction | 0-255 | Pour compenser le jeu des engrenages. |
 +| Délai du pas | 0-255 | Le délai entre chaque pas moteur. Des valeurs plus élevées ralentiront la vitesse de rotation. |
 +| Offset | -32767...+32767 | Points de correction de calibration en pas. |
 +| Type | wio |
 +| Délai | 1-10 | Durée de la rampe de démarrage et de la décélération |
 +//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.)
 +<code xml>
 +  <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>
 +</code>
 +
 +=== Configuration-Sortie ===
 +
 +|< >|
 +|  Interface |
 +^ Champ ^ Valeur ^ Remarque ^
 +| Identifiant du nœud | Identifiant WIO | |
 +| Adresse | 1 | //fixé// |
 +| Paramètre on | 0-16777215 | Nombre de pas sens anti-horaire |
 +| Paramètre off | 0-16777215 | Nombre de pas sens horaire |
 +| Retard | 0-255 | vitesse de rotation \\ Si la valeur est >0, une accélération et une rampe de freinage est générée. |
 +| Type | Moteur |
 +
 +La calibration n'est pas possible!
 +
 +
 +====CAN====
 +{{ :arduino:gc2a-wio-can.jpg?400}}
 +Le type WIO CAN peut être utilisé comme pont CAN-WiFi pour 
 +  * [[:mbus:cs3-fr#type_de_communication|MBUS, type TCP sur le port 5550]]
 +  * RCAN, type TCP+binaire sur le port 5550
 +
 +====MCP2515====
 +La cartographie des broches pour l'utilisation du SPI MCP2515(16MHz) sur le __**[[:can-gca2a-fr|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 **[[:loc-int-fr#adresse_secondaire|Adresse secondaire]]**.\\
 +
 +====Configuration du détecteur====
 +<code>Loco [ICE] reports RFID event 56:101 [4.102.181.114.9.64.128] ON</code>
 +Le RFID reporté doit correspondre à un __**[[:sensor-gen-fr#id|Identifiant de détecteur]]**__ dans Rocrail.\\
 +Ce détecteur dans Rocrail doit avoir une adresse unique autre que zéro.\\
 +L'identifiant doit être configuré avec cette notation: __**[[:can-gc4-fr#notation_rfid|Notation RFID]]**__\\
 +Les suivis de Rocrail peuvent être utilisés pour copier cet identifiant ou le __**[[:sensormon-fr|Moniteur de détecteur]]**__.\\
 +
 +====Configuration de fonction====
 +Pour distribuer les fonctions à un WIO la fonction doit être configurée avec l'**[[:loc-fun-fr#adresse_fx|Adresse de fonction et FX]]**.\\
 +
 +
 +
 +
 + \\
 +
 +=====Clavier=====
 +{{ :wio:wio-keypad.jpg?240}}
 +Un clavier est supporté sur le type IO16 WIO par le connecteur E/S 1.
 +La touche # enverra l'entrée à Rocrail comme un évènement Texte. Rocrail cherchera un objet Texte avec cette identifiant de nœud défini dans l'onglet interface.\\
 +Avec la touche * l'entrée pourra être corrigée.\\
 +Si un afficheur est branché l'entrée sera affichée sur la ligne 3, mais pourra être changée dans le fichier USERCNF.h. (Zero based line offset.)\\
 +Claviers supportés: 3x4 et 4x4. Le 4x4 possède une colonne de touches supplémentaires "ABCD".\\
 +Il est recommandé de régler les ports 1...8 dans l'onglet de configuration comme suit:\\
 +{{:arduino:keypad-port-setup.jpg?240}}\\
 +
 +
 + \\
 +
 +=====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====
 +  * https://gitlab.com/rocrail/Arduino/tree/master/WIO/hardware
 +
 +//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.//
 +
 +  * https://wiki.rocrail.net/doku.php?id=gca:gca-index-fr
 +
 +=====Dépannage=====
 +
 +====LOLIN vs Wemos====
 +|< >|
 +|  Avant  ||  Arrière  ||
 +|  LOLIN D1 mini  |  Wemos mini  |  LOLIN D1 mini  |  Wemos mini  |
 +| {{:arduino:d1-top.jpg?0x300}} || {{:arduino:d1-bottom.jpg?0x300}} ||
 +
 +|< >|
 +^ 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===
 +  * https://forum.arduino.cc/index.php?topic=702144.0
 +
 +===Télécharger l'outil ESP32===
 +  * https://github.com/espressif/esptool/issues/540
 +
 +=====Programmation du binaire WIO avec les outils IDE Arduino=====
 +
 +|  Arduino IDE 1.8.16  |
 +
 +====macOS "Big Sur"====
 +====macOS "Big Sur"====
 +===ESP8266===
 +<code>
 +export WIOBIN=~/Downloads/WIO.ino.d1_mini.bin
 +
 +/Users/$USER/Library/Arduino15/packages/esp8266/tools/python3/3.7.2-post1/python3 \
 +/Users/$USER/Library/Arduino15/packages/esp8266/hardware/esp8266/3.0.1/tools/upload.py \
 +--chip esp8266 --port /dev/cu.usbserial-110 --baud 921600 --before default_reset --after hard_reset write_flash 0x0 $WIOBIN
 +</code>
 +===ESP32===
 +<code>
 +~/Library/Arduino15/packages/esp32/tools/esptool_py/3.1.0/esptool \
 +--chip esp32 \
 +--port /dev/cu.usbserial-01B9FA0C \
 +--baud 921600 \
 +--before default_reset \
 +--after hard_reset write_flash \
 +-z \
 +--flash_mode dio \
 +--flash_freq 80m \
 +--flash_size 4MB \
 +0x10000 WIO.ino.d1_mini32.bin
 +</code>
 +
 +
 +====Windows 10====
 +<code>
 +set WIOBIN=\Users\%USERNAME%\Downloads\WIO.ino.d1_mini.bin
 +
 +C:\Users\%USERNAME%\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1/python3 -I C:\Users\%USERNAME%\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2/tools/upload.py --chip esp8266 --port COM3 --baud 921600 --before default_reset --after hard_reset write_flash 0x0 %WIOBIN%
 +</code>
 +
 +====PiOS-64 "Buster"====
 +<code>
 +export WIOBIN=/home/$USER/Downloads/WIO.ino.d1_mini.bin
 +
 +/home/$USER/.arduino15/packages/esp8266/tools/python3/3.7.2-post1/python3 -I /home/$USER/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/tools/upload.py --chip esp8266 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash 0x0 $WIOBIN 
 +</code>
 +
 +
 +
 +