User Tools

Site Tools


arduino:wio-de

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
arduino:wio-de [2019/11/10 23:55]
rainerk
arduino:wio-de [2020/11/25 00:04] (current)
rainerk [WIO - Fahrtregler - 32 I/O - LEDs - Servos - RFID - Displays - DCC]
Line 1: Line 1:
-======W I O - Fahrtregler - 32 I/O - LEDs - Servos - RFID -  ​OLED ​- DCC======+[[:​arduino:​wio-fr|{{ icons:​fr.png|French Version}}]][[:​arduino:​wio-de|{{ icons:​de.png|Deutsche Version}}]][[:​arduino:​wio-en|{{ icons:​uk.png|English Version}}]] 
 +======WIO - Fahrtregler - 32 I/O - LEDs - Servos - RFID - Displays ​- DCC======
 [[:​german|{{ :​hardware.png}}]][[:​german|{{ :​rocrail-logo-35.png}}]] [[:​german|{{ :​hardware.png}}]][[:​german|{{ :​rocrail-logo-35.png}}]]
 [[:​german|Inhalt]] -> [[:​hardware-de#​arduino|Arduino]] [[:​german|Inhalt]] -> [[:​hardware-de#​arduino|Arduino]]
-  * **[[:​arduino:​wio-de|WIO-Firmware]]** | [[:​arduino:​wio-setup-de|WIO-Konfiguration]]+  * [[arduino:​wio-overview-de|WIO-Übersicht]] | [[:​arduino:​wio-setup-de|WIO-Konfiguration]] | [[:​arduino:​wioctrl-de|WIO Control]] | [[:​arduino:​amp-de|Benutzer-Bitmaps]] | **[[:​arduino:​wio-de|WIO-Firmware]]** | [[:​arduino:​wio-cam-de|WIO ​CAM]] | [[:​arduino:​wio-mobile-de|WIO Mobil]] | [[:​arduino:​wio-cable-en|Kabel]] (en) | [[:​wio:​wio-ledscript-en|LEDScript]] (en) 
 +  * [[:​arduino:​wio-rascii-en|WIO RASCII]] (en) | [[:​arduino:​wio-canprot-en|WIO CAN Protocol]] (en) 
 + 
  \\  \\
-{{ :​arduino:​rici-proto.png?​0x300}}{{ :​arduino:​wio-01-pcb.jpg?​0x300}} 
-|< >| 
-^  I n - A r b e i t ...  ^ 
- 
  \\  \\
 =====Einführung===== =====Einführung=====
-Diese Lösung basiert auf einem LOLIN D1 Mini. (ESP8266)\\+Diese Lösung basiert auf ESP8266/​ESP32-Familie.\\ 
 Sie kann verwendet werden als: Sie kann verwendet werden als:
   * Drahtloser Fahrtregler   * Drahtloser Fahrtregler
-oder als drahtloser I/O mit folgenden vier Optionen+ 
-  * 32 I/O  +oder als drahtloser I/O: 
-  * 2 Displays+  * 32 I2C I/O [[:​hardware-de#​Erweiterungseinheiten|GCA-kompatibel]]  ​ 
 +  * 2 Displays ​​SSD1306 
 + 
 +und eine der folgenden zusätzlichen Optionen:
     - LED-Steuerung WS2812     - LED-Steuerung WS2812
     - 4 Servos     - 4 Servos
     - 2 RC522-Leser     - 2 RC522-Leser
     - DCC-Generator     - DCC-Generator
 +    - Mobil-PWM, Fahrtrichtung und Licht
  
-====Informationsblatt==== +und eine der folgenden Optionen:
-  * https://​gitlab.com/​rocrail/​Arduino/​blob/​master/​WIO/​docu/​WIO.pdf+
  
 +  * ID12LA 125kHz RFID-Leser an RX
 +  * RailCom-Leser an RX
 +
 +====Unterstützte Boards====
 +  * Lolin D1 Mini
 +  * Lolin D32
 +  * ESP32 Dev Module
 +  * ESP32 CAM Module
 +
 +====Verwendete ESP-Stifte====
 +Stift-Zuordnung in ''​Pins.cpp''​ prüfen:
 +  * https://​gitlab.com/​rocrail/​wio/​-/​blob/​master/​Pins.cpp
 +
 +
 +====Informationsblatt====
 +  * https://​gitlab.com/​rocrail/​wio/​raw/​master/​docu/​WIO.odp
  \\  \\
 ===== Achtung ===== ===== Achtung =====
 +{{ :​arduino:​wifi-analyse.jpg?​300|Bei einer Ausstellung verwendete WiFi-Kanäle...}}
   - Der Rocrail-Server muss auf einem PC ausgeführt werden, der **nicht** automatisch angehalten wird oder in den Ruhezustand wechselt, wenn keine Benutzeraktivität erfolgt. Die Energieeinstellung überprüfen,​ um Kommunikationsverlust zu vermeiden!   - Der Rocrail-Server muss auf einem PC ausgeführt werden, der **nicht** automatisch angehalten wird oder in den Ruhezustand wechselt, wenn keine Benutzeraktivität erfolgt. Die Energieeinstellung überprüfen,​ um Kommunikationsverlust zu vermeiden!
-  - Der verwendete WiFi-Router/​Zugangspunkt ​sollte auf dem neuesten Stand sein; Nur gewartete Hardware verwenden.+  - __Der verwendete WiFi-Router sollte auf dem neuesten Stand sein; Nur gewartete Hardware verwenden.__
   - Unbedingt sicherstellen,​ dass die SSID nicht sichtbar ist, um zusätzlichen öffentlichen Verkehr zu verhindern.   - Unbedingt sicherstellen,​ dass die SSID nicht sichtbar ist, um zusätzlichen öffentlichen Verkehr zu verhindern.
  
Line 34: Line 54:
  \\  \\
  
-=====Arduino IDE===== +=====Arduino IDE 1.8.12===== 
-//Getestet mit Version ​1.8.10//\\+:!: 1.8.11 funktioniert nicht! Wenn das BasicOTA-Beispiel nicht kompiliert wird ... \\ 
 +  * https://​www.arduino.cc/​en/​Main/​OldSoftwareReleases#​previous 
 Die Arduino IDE mit folgenden Boards und Bibliotheken vorbereiten:​ Die Arduino IDE mit folgenden Boards und Bibliotheken vorbereiten:​
 ====Boardverwalter===== ====Boardverwalter=====
 Im Einstelldialog bei "​Zusätzliche Boardverwalter-URLs"​ die folgende URL hinzufügen:​ Im Einstelldialog bei "​Zusätzliche Boardverwalter-URLs"​ die folgende URL hinzufügen:​
 <​code>​ <​code>​
-https://​arduino.esp8266.com/​stable/​package_esp8266com_index.json+https://​arduino.esp8266.com/​stable/​package_esp8266com_index.json, https://​dl.espressif.com/​dl/​package_esp32_index.json
 </​code>​ </​code>​
 {{ :​arduino:​board-manager-en.png?​300}} {{ :​arduino:​board-manager-en.png?​300}}
 Und die ESP8266 Board-Bibliothek installieren.\\ Und die ESP8266 Board-Bibliothek installieren.\\
 ====Board-Auswahl==== ====Board-Auswahl====
 +{{ :​arduino:​lolin-ide-board.png?​240}}
 ''​LOLIN(WEMOS)D1 R2 & mini''​\\ ''​LOLIN(WEMOS)D1 R2 & mini''​\\
 +
 ====Bibliotheken==== ====Bibliotheken====
-  ​ESP8266WiFi ​(Board Manager)+===ESP8266 & ESP32=== 
 +  ​ESP8266 ​(Board Manager) ​\\ :!: Stick mit Version **2.5.2**, weil es ungelöste Probleme mit Version 2.6.x gibt.
   * Wire (I2C)   * Wire (I2C)
   * FastLED ​(WS2812)   * FastLED ​(WS2812)
Line 53: Line 78:
   * MFRC522 ​(RC522)   * MFRC522 ​(RC522)
   * Servo   * Servo
 +  * ArduinoOTA
 +  * MCP_CAN ​
 +    * https://​github.com/​coryjfowler/​MCP_CAN_lib
 +    * [[:​arduino:​rcan-de#​modifikationen|MCP_CAN Modifikationen]]
 +  * NTPClient
 +===ESP32===
 +  * ESP32 (Board Manager)
 +  * ESP32Servo
 +  * ESP32CAN
 +    * https://​github.com/​miwagner/​ESP32-Arduino-CAN
 +
 +__**ESP32CAN Modifikationen**__\\
 +Der ''​xSemaphoreTake''​ sollte nach 500ms ablaufen, anstatt für immer zu warten.\\
 +''​portMAX_DELAY''​ mit 500 ersetzen und anstelle von null rc der ''​xSemaphoreTake''​-Funktion zurückgeben. (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,​ 500);
 + return rc;
 +}
 +</​code>​
 +
 +| Einfach die "​Upload-Geschwindigkeit"​ auf 460800 verringern, falls beim Hochladen des Sketch Kommunikationsfehler angezeigt werden. |
 + \\
 +====SPIFFS====
 +2M SPIFFS-Größe auswählen:​\\
 +{{:​arduino:​arduino-esp8266-spiffs-2m.png?​400}}\\
 +SPIFFS ist ein Datei-System,​ das in WIO für das Hochladen von Benutzer-Bitmaps verwendet werden kann.\\
 +Installieren des Arduino-IDE-Plugin für das Hochladen von Daten:
 +  * https://​github.com/​esp8266/​arduino-esp8266fs-plugin
  
 ====Dunkles Thema==== ====Dunkles Thema====
Line 60: Line 122:
  \\  \\
 =====WIO-Sketch===== =====WIO-Sketch=====
-| //Copyright (c) 2002-2019 Robert Jan Versluis, Rocrail.net//​ |+| //Copyright (c) 2002-2020 Robert Jan Versluis, Rocrail.net//​ |
 WIO ist Firmware zur Steuerung von Fahrtregler,​ I2C, LEDs, Servos, RFID, Displays und DCC.\\ WIO ist Firmware zur Steuerung von Fahrtregler,​ I2C, LEDs, Servos, RFID, Displays und DCC.\\
-  * https://​gitlab.com/​rocrail/​Arduino/​tree/​master/​WIO +  * https://​gitlab.com/​rocrail/​wio 
-  * [[https://​gitlab.com/​rocrail/​Arduino/​-/​archive/​master/​Arduino-master.zip?path=WIO|Download als Zip]] +  * [[https://​gitlab.com/​rocrail/​wio/​-/​archive/​master/​wio-master.zip|Download als Zip]] 
-  * [[https://​gitlab.com/​rocrail/​Arduino/​-/​network/​master|Change Log]]+  * [[https://​gitlab.com/​rocrail/​wio/​-/​network/​master|Change Log]]
 Der Quellcode ist öffentlich aber "nicht open source"​-lizensiert und darf nur zum Kompilieren und Laden auf den LOLIN D1 Mini verwendet werden. Der Quellcode ist öffentlich aber "nicht open source"​-lizensiert und darf nur zum Kompilieren und Laden auf den LOLIN D1 Mini verwendet werden.
 \\ \\
Line 70: Line 132:
 {{ :​arduino:​esp-downloadtool.jpg?​400}} {{ :​arduino:​esp-downloadtool.jpg?​400}}
 Das Espressif-Tool verwenden, um das WIO-Binary hochzuladen. Das Espressif-Tool verwenden, um das WIO-Binary hochzuladen.
-  * [[https://launchpad.net/rocrail/+download|WIO Binary]]+  * [[https://gitlab.com/rocrail/wio/​-/​blob/​master/​WIO.ino.d1_mini.bin|WIO Binary]]
   * [[https://​www.espressif.com/​en/​support/​download/​other-tools|ESP Flash Download Tool]]   * [[https://​www.espressif.com/​en/​support/​download/​other-tools|ESP Flash Download Tool]]
  
Line 85: Line 147:
 ^ Reinfall: Viele Micro-USB-Kabel liefern nur 5 V aber keine Daten und können nicht für Programmieren verwendet werden. ^ ^ Reinfall: Viele Micro-USB-Kabel liefern nur 5 V aber keine Daten und können nicht für Programmieren verwendet werden. ^
  
-Das Einrichten des WiFi kann mit dem Arduino Serial Monitor ​9600bps ​erfolgen oder durch modifizieren der [[#​benutzer-konfiguration|USERCNF.h]]:​+Das Einrichten des WiFi kann mit dem Arduino Serial Monitor ​115200 bps erfolgen oder durch modifizieren der [[#​benutzer-konfiguration|USERCNF.h]]:​
 <​code>​ <​code>​
 #​1CConnecting to [secure.home] #​1CConnecting to [secure.home]
Line 96: Line 158:
 Ausgabe nach einem ''?''​-Befehl:​\\ Ausgabe nach einem ''?''​-Befehl:​\\
 <​code>​ <​code>​
 +------------------------------
 +revision=261 WIO 20200812a (c)Rocrail
 +------------------------------
 Settings: Settings:
 ------------------------------ ------------------------------
-version=0.85 WIO 20191031d (c)Rocrail +ssid1
-ssid=xxxxxxxx +pwd1
-pwd=xxxxxxxx +ssid2= 
-server=xxxxxxxx+pwd2
 +server=
 port=8051 port=8051
-name= +name=[wio104] 
-id=33 +id=104 
-io=i2cled +io=i2cdcc (master) 
-i2c=ooooooooooooooooppppiiiibbbbbbbb +iostate=00 00 00 00 
-steps=50 +i2c=oooooooobbbbbbbboooooooobbbbbbbb 
-pulse=50 +steps=64 
-display=22 +sleeptimer=5 
-dccsc=0 +pulse=5 
-RSSI=-53 +pwmsize=0 
-MCP23017 status: 0x20=OK 0x21=OK +options=0x00 0x01 0x18 
-I2C device found at address 0x20 +booster=
-I2C device found at address 0x21 +board=1 
-I2C device found at address 0x3C +display=0 
-I2C found 3 devices +railcom=0 
-loco1=0 loco2=3 active=0+id12=0 
 +depart=0 
 +stepper=0 3w=
 +canprot=1(1) 
 +canio=1 
 +canusb=0 
 +trace=0 
 +SPIFFS total=1345kb used=0kb
  
 Change settings by typing: Change settings by typing:
Line 127: Line 200:
 *name=<​Node name> *name=<​Node name>
 *id=<​Node number> *id=<​Node number>
-*io=<​type> ​<​throttle>​ or <​i2cled>​ or <​i2cservo>> or <​i2crfid>​ or <​i2cdcc>​+*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 *i2c=<​oooooooobbbbbbbboooooooobbbbbbbb>​ o=output, i=input, b=block, p=pulse
 *steps=<​number of rotary steps> *steps=<​number of rotary steps>
 *pulse=<​output pulse length in 100ms units> *pulse=<​output pulse length in 100ms units>
-*display=<geometry1><geometry2> 0=96x16 1=128x32 2=128x64 +*pwm=<mobile PWM size multiplier> 
-*dccsc=<short circuit detection> 0=off 1=on+*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
 </​code>​ </​code>​
  
  
 ====Benutzer-Konfiguration==== ====Benutzer-Konfiguration====
-Die [[https://​gitlab.com/​rocrail/​Arduino/​blob/​master/LOLii/​USERCNF.h|USERCNF.h]]-Datei kann für anfängliches erstes Booten, WiFi und Rocrail-Server-Werte verwendet werden.\\+Die [[https://​gitlab.com/​rocrail/​wio/-/​blob/​master/​USERCNF.h|USERCNF.h]]-Datei kann für anfängliches erstes Booten, WiFi und Rocrail-Server-Werte verwendet werden.\\
 Die Werte müssen eingestellt sein, bevor kompiliert und hochgeladen wird.\\ Die Werte müssen eingestellt sein, bevor kompiliert und hochgeladen wird.\\
 Anschließend können diese Werte mit Monitor-Befehlen geändert werden.\\ Anschließend können diese Werte mit Monitor-Befehlen geändert werden.\\
 +:!: Die Werte aus der USERCNF.h-Datei werden nur verwendet, wenn es noch keine Einstellungen gibt (neues Gerät).\\
 +- Sollen die Werte im Flash-Speicher eines bestehenden WIO durch die Werte in USERCNF.h ersetzt werden, dann in der Arduino-IDE "Erase Flash" auf "All Flash Contents"​ setzen.\\
 +- Soll nur die Firmware eines bestehenden WIO upgedated werden, ohne die Einstellungen (z.B. WLAN-Einstellungen) zu ändern, dann in der Arduino-IDE "Erase Flash" auf "only Sketch"​ setzen.
 +
 ====Monitor-Befehle==== ====Monitor-Befehle====
-^ Befehle ^ Beschreibung ^ Standard ^+Der Arduino Seriell-Monitor kann zur Änderung der WIO-Einstellungen mit 115200 bit/s verwendet werden.\\ 
 +  - Wenn RailCom aktiviert wurde, schaltet die Baudrate automatisch auf 250000 und der serielle Monitor kann "nur lesen"​. 
 +  - Wenn ID12 aktiviert wurde, schaltet die Baudrate automatisch auf 9600 bit/s und der serielle Monitor kann "nur lesen"​. 
 + 
 +|< >| 
 +^ Befehle ^ Beschreibung ^ Standard ​^ Bemerkung ​^
 | ?  | Zeigt die momentanen Einstellungen und wie sie geändert werden. | | ?  | Zeigt die momentanen Einstellungen und wie sie geändert werden. |
 | !  | Auflistung des verwendeten Flash-Speichers. | | !  | Auflistung des verwendeten Flash-Speichers. |
-| *ssid=<​value>​ | Setzt die WiFi-Access-Point SSID. | - | +| *ssid=<​value>​ | Setzt die WiFi-Access-Point SSID. | - | Primäre SSID 
-| *pwd=<​value>​ | Setzt das WiFi-Passwort. Ein WiFi-Neuverbindung wir gestartet. | - | +| *pwd=<​value>​ | Setzt das WiFi-Passwort. Ein WiFi-Neuverbindung wir gestartet. | - | Primäres WiFi-Passswort | 
-| *server=<​value>​ | Setzt die Rocrail-Server-IP oder den Namen. | - |+| *ssid2=<​value>​ | Setzt die WiFi-Access-Point SSID. | - | Alternative SSID | 
 +| *pwd2=<​value>​ | Setzt das WiFi-Passwort. Ein WiFi-Neuverbindung wir gestartet. | - | Alternatives WiFi-Passswort ​
 +| *server=<​value>​ | Setzt die Rocrail-Server-IP oder den Namen. | - | Kann ein CSV von max. 32 Zeichen sein. (1.71+) \\ Ggf. auch 2 alternative Server-IPs oder -Namen. \\ Beispiele: "​192.168.1.110,​192.168.100.5"​ \\ oder "​​mba2019,​​win2019" ​|
 | *port=<​value>​ | Setzt den Rocrail-Server-Port. | 8051 | | *port=<​value>​ | Setzt den Rocrail-Server-Port. | 8051 |
 | *name=<​value>​ | Optionaler Node-Name. | - | | *name=<​value>​ | Optionaler Node-Name. | - |
 | *id=<​value>​ | Node-Nummer/​Fahrtregler-ID;​ Muss eindeutig sein . | 33 | | *id=<​value>​ | Node-Nummer/​Fahrtregler-ID;​ Muss eindeutig sein . | 33 |
-| *io=<​value>​ | I/O-Konfiguration.  | throttle ​|+| *io=<​value>​ | WIO-Typ.  | i2cled ​|
 | *i2c=<​value>​ | I2C-Port-Konfiguration. ​ | oooooooobbbbbbbboooooooobbbbbbbb | | *i2c=<​value>​ | I2C-Port-Konfiguration. ​ | oooooooobbbbbbbboooooooobbbbbbbb |
 | *steps=<​value>​ | Anzahl der Drehgeber-Schritte. | 127 | | *steps=<​value>​ | Anzahl der Drehgeber-Schritte. | 127 |
 | *pulse=<​value>​ | Ausgangs-Impuls-Länge in 100ms-Einheiten. | 5 | | *pulse=<​value>​ | Ausgangs-Impuls-Länge in 100ms-Einheiten. | 5 |
-| *display=<​value>​ | Standard-Display-Geometrie: 0=96x16 1=128x32 2=128x64 | 00 +| *canprot=<​value>​ | CAN-Protokoll | MBUS | 0=MBUS, 1=RCAN | 
-**Note:**  Den <​value>​ (Wert) entsprechend der lokalen Bedingungen ersetzen.+| *dccslave=<​value>​ | DCC-Rolle | Master | 0=Master, 1=Slave(Booster) | 
 +| *trace=<​value>​ | Trace level | 9 (volatile) | 0=Info, 1=Debug, 9=None \\ Nur für die aktuelle Sitzung. | 
 +| *ptmain=<​value>​ | Service-Modus,​ PT, PoM-H-Bridge | 0 (flüchtig) | 0=off, 1=on \\ Nur für Tests! | 
 +| *pwm=<​value>​ | PWM-Größe für Mobile Motor-Steuerung | - | 600=10Hz | 
 +| *display=<​value>​ | Display-Typ: 0=96x161=128x322=128x64, 3=SH1106 ​1 | 
 + 
 +**Hinweis:**  Den <​value>​ (Wert) entsprechend der lokalen Bedingungen ersetzen.\\ 
 +**Hinweis:​​** ​Nach Änderung des WIO-Typs ist ein Reset erforderlich.\\
 \\ \\
  
Line 175: Line 272:
  
  \\  \\
 +====Grundeinstellung mit WEB-Browser====
 +|< >|
 +|  //Beim DCC-WIO-Typ nicht aktiviert.// ​ |
 +Der WIO fungiert als sehr kleiner Zugangspunkt (AP = Access Point), um eine Verbindung herzustellen und die Grundeinstellung ohne seriellen Monitor durchzuführen. \\
 +Der WIO-AP-Name ist wie folgt formatiert: "​WIO<​id>​.<​name>"​ (Standard: WIO33.local)\\
 +Die WIO-APs werden aufgelistet und können ausgewählt werden:\\
 +|{{:​arduino:​win10-aps.png?​0x280}}|{{:​arduino:​wio-ap.png?​0x280}}|
 +|  Netzwerkauswahl ​ |  WIO-AP-Webseite ​ |\\
 +Das AP-Standard-**Passwort** ist "​12345678",​ welches in der USERCNF.h geändert werden kann.\\
 +Nach dem Herstellen der Verbindung zum WIO kann die Grundeinstellung mit einem WEB-Browser unter folgender URL geändert werden:
 +<​code>​
 +http://​192.168.4.1
 +</​code>​
 +Nach **Submit** versucht der WIO automatisch,​ die WLAN- und Rocrail-Server-Verbindung wiederherzustellen.\\
 +Der AP wird gestoppt nach:
 +  * einem **Submit**.
 +  * 2 Minuten Leerlauf.
 + \\
 +====OTA Updating====
 +|< >|
 +|  //Muss im WIO-Dialog aktiviert werden.// ​ |
 +Wenn ein Update per USB nicht möglich oder zu umständlich ist, kann ein WIO-Update auch "Over The Air" (OTA) (über WLAN) erfolgen.\\
 +{{:​arduino:​wio-ota-en.png?​400}}\\
 +Einfach aus der Liste den gewünschten WIO anstelle eines USB-Ports auswählen und Upload ausführen.\\
 +Wenn nach einem **Passwort** gefragt wird, ist das dasselbe, wie für den __**[[#​grundeinstellung_mit_web-browser|Access Point]]**__ (Standard "​12345678"​).\\
 +{{:​arduino:​wio-ota-display.png}} {{:​arduino:​ota-upload-en.png?​600}}\\
 +
 +
 + \\
 +
 =====RIC - Fahrtregler===== =====RIC - Fahrtregler=====
 +| **Hinweis:​** RIC wird in der Firmware nicht mehr unterstützt und durch [[:​arduino:​wioctrl-en|WIO Control]] ersetzt.|
 ** Hinweis: ** // RIC steuert Loks nach Adresse, nicht nach Kennung. Es wird also die erste in der Liste verwendet, wenn mehrere Loks dieselbe Adresse haben .// \\ ** Hinweis: ** // RIC steuert Loks nach Adresse, nicht nach Kennung. Es wird also die erste in der Liste verwendet, wenn mehrere Loks dieselbe Adresse haben .// \\
 Der Pocket-Fahrtregler-I/​O-Modus benötigt einen Drehgeber (Drehencoder),​ eine LED und vier Tasten.\\ Der Pocket-Fahrtregler-I/​O-Modus benötigt einen Drehgeber (Drehencoder),​ eine LED und vier Tasten.\\
Line 181: Line 309:
 {{ :​arduino:​ric-prototype.jpg?​200}} {{ :​arduino:​ric-prototype.jpg?​200}}
 ====Prototyp 1==== ====Prototyp 1====
 +|< >|
 ^ Stift ^ Verwendung ^ Klick ^ Langer Klick ^ ^ Stift ^ Verwendung ^ Klick ^ Langer Klick ^
 | D5/D6 | Drehgeber | - | - | | D5/D6 | Drehgeber | - | - |
Line 199: Line 328:
 Auswahl Lok 2 wenn F2 und F3 gleichzeitig gedrückt werden.\\ ​ Auswahl Lok 2 wenn F2 und F3 gleichzeitig gedrückt werden.\\ ​
  
 +|< >|
 ^ LED ^ Bedeutung ^ ^ LED ^ Bedeutung ^
 | Ein | Keine WiFi-Verbindung. | | Ein | Keine WiFi-Verbindung. |
Line 241: Line 371:
     * Block     * Block
     * Pulse     * Pulse
-  * 128 LEDs kompatibel mit WS2812 an D8. (Ausgangs-Typ Farbe in Rocrail.)+  * 100 LEDs kompatibel mit WS2812 an D8. (Ausgangs-Typ Farbe in Rocrail.)
     * RGB-Farbe     * RGB-Farbe
     * Helligkeit     * Helligkeit
Line 253: Line 383:
   * Bis zu 255 Einheiten im gleichen WiFi-Netzwerk. (Abhängig von IP-Konfiguration und Verfügbarkeit.)   * Bis zu 255 Einheiten im gleichen WiFi-Netzwerk. (Abhängig von IP-Konfiguration und Verfügbarkeit.)
   * Ein Alarm wird erzeugt, wenn keine 'a live'​-Meldungen mehr hereinkommen.   * Ein Alarm wird erzeugt, wenn keine 'a live'​-Meldungen mehr hereinkommen.
-  * Ausgangs-/​Weichen-Befehle werden bestätigt, nachdem sie verarbeitet wurden.+  * Ausgangs-/​Weichen-Befehle werden bestätigt, nachdem sie verarbeitet wurden. ​(Blink-Ausgänge werden nicht bestätigt.)
   * Eingangs-Ereignisse müssen innerhalb 100ms bestätigt werden. Nach dieser Zeitüberschreitung werden sie erneut gesendet. (Max. 5 Wiederholungen.)   * Eingangs-Ereignisse müssen innerhalb 100ms bestätigt werden. Nach dieser Zeitüberschreitung werden sie erneut gesendet. (Max. 5 Wiederholungen.)
  
Line 262: Line 392:
 ^ Rocrail ^ WIO ^ ^ Rocrail ^ WIO ^
 | Schnittstellenkennung | "​WIO"​ | | Schnittstellenkennung | "​WIO"​ |
-| Bus | Kennung | +Node ID (Bus| Kennung | 
-| Adresse | I2C-oder I/​O-Port ​Port/LED |+| Adresse | I2C-Port |
 | Adresse | LED-Port | | Adresse | LED-Port |
 | Adresse | Servo-Port | | Adresse | Servo-Port |
Line 272: Line 402:
   * Rückmelder   * Rückmelder
  
 +===Doppelspulen-Weichen===
 +| //​__Deaktivieren__ der Optionen '​Einzel-Ausgang'​ und '​Zubehör',​ den Typ '​Ausgang'​ __aktivieren__.//​ |
 +Für Weichen mit mehr als einem Port wird die nächste Adresse für den Weichenbefehl verwendet. \\
 +Wenn sich also an Port 1 eine Doppelspulen-Weiche befindet, sollte Port 2 nicht verwendet werden. Die zweite Weiche geht dann an Port 3. \\
 +Beide I2C-Ausgänge müssen vom Typ '​p'​ Pulse sein. \\
 +Mögliche Hardware:
 +  * **[[:​mgv76-de|GCA76]]**
 +  * [[:​gca77-de|GCA77]]
 +  * [[:​gca107-de|GCA107]]
 +
 +====Blinken====
 +Die Ausgangs-Blink- und Verzögerungs-Optionen können für Blinken eines I2C-Port verwendet werden.\\
 +Wenn die Verzögereung Null ist, wird die Standard-Pulslänge verwendet.\\
  \\  \\
 ====LEDs==== ====LEDs====
 +{{ :​arduino:​ws2812.jpg?​200}}{{ :​arduino:​ws2811-chip.jpg?​200}}
 Die Adressierung ist die gleiche, wie bei normalen Ausgängen. Die Adressierung ist die gleiche, wie bei normalen Ausgängen.
  \\  \\
Line 295: Line 439:
  
 ====Servos==== ====Servos====
 +{{ :​arduino:​servo.jpg?​200}}{{ :​arduino:​servo-pwm.png?​200}}
 Die Adressierung ist die gleiche, wie bei normalen Ausgängen.\\ Die Adressierung ist die gleiche, wie bei normalen Ausgängen.\\
 |< >| |< >|
 ^ Steuerung ^ Ausgang ^ Weiche ^ Bereich ^ ^ Steuerung ^ Ausgang ^ Weiche ^ Bereich ^
 | WIO | Schnittstellenkennung = "​WIO"​ | Schnittstellenkennung = "​WIO"​ | - | | WIO | Schnittstellenkennung = "​WIO"​ | Schnittstellenkennung = "​WIO"​ | - |
-| WIO-Kennung | Bus | Bus | 1...255 |+| WIO-Kennung | Node ID (BusNode ID (Bus| 1...255 |
 | Servo-Port | Adresse | Adresse | 1...4 | | Servo-Port | Adresse | Adresse | 1...4 |
-| Zusätzliche Option | - | Einzel-Ausgang | - |+| Zusätzliche Option | - | Einzel-Ausgang ​ON | - |
 | Position 1 | Parameter Ein | Parameter | 0...180° | | Position 1 | Parameter Ein | Parameter | 0...180° |
 | Position 2 | Parameter Aus | Wert | 0...180° | | Position 2 | Parameter Aus | Wert | 0...180° |
Line 344: Line 489:
 --></​html>​​ --></​html>​​
  
-====Display SSD1306====+====Display SSD1306/SH1106====
 {{:​arduino:​wio-oled-128x32.jpg?​0x160}}{{:​cbus:​display-goes.jpg?​0x160}}\\ {{:​arduino:​wio-oled-128x32.jpg?​0x160}}{{:​cbus:​display-goes.jpg?​0x160}}\\
 An I2C können zwei Displays vom Typ SSD1306 mit den I2C-Adressen 0x3C und 0x3D angeschlossen werden.\\ An I2C können zwei Displays vom Typ SSD1306 mit den I2C-Adressen 0x3C und 0x3D angeschlossen werden.\\
Line 361: Line 506:
 |< >| |< >|
 ^ Befehl ^ Parameter ^ Beschreibung ^ Hinweis ^ ^ Befehl ^ Parameter ^ Beschreibung ^ Hinweis ^
-| {Bn} | n=0-19 Zeichnet ein Bitmap an der aktuellen Position. |+| {B#} | #=0-99999999 ​Liest eine AMP-Datei, "#​.amp",​ von SPIFFS und zeichnet die Bitmap an der aktuellen Position. | 
 +| {B'//​name//'​} | AMP-Datei //name// | Liest eine AMP-Datei, "//​name//​.amp",​ von SPIFFS und zeichnet die Bitmap an der aktuellen Position. | Der Name muss zwischen einfachen Anführungszeichen stehen. |
 | E | - | Lösche Display-Puffer. Ein zusätzliches {P} wird für das Löschen des Display benötigt. | | E | - | Lösche Display-Puffer. Ein zusätzliches {P} wird für das Löschen des Display benötigt. |
-| {Fn} | n=0-2 | Font-Auswahl. 0=7x5 1=6x5w 2=6x5n | Font 5x5 wird nicht unterstützt,​ weil es nicht lesbar ist. | +| {F#} | #=0-2 | Font-Auswahl. 0=7x5 1=6x5w 2=6x5n | Font 5x5 wird nicht unterstützt,​ weil es nicht lesbar ist. | 
-| {Hn} | n=0-255 | Setzt den Display-Kontrast. | +| {H#} | #=0-255 | Setzt den Display-Kontrast. | 
-| {In} | n=0-1 | Invertiert das Display. 0=normal 1=invertiert | +| {I#} | #=0-1 | Invertiert das Display. 0=normal 1=invertiert | 
-| {Ln} | n=0-3 | Gehe zur Zeile. Der Bereich ist von der Displaygröße abhängig. |+| {L#} | #=0-3 | Gehe zur Zeile. Der Bereich ist von der Displaygröße abhängig. |
 | P | - | Puffer zum Display kopieren | | P | - | Puffer zum Display kopieren |
-| {Rn} | n=0,2 | Legt die Drehung der Anzeige fest. 0=0° 2=180° |+| {R#} | #=0,2 | Legt die Drehung der Anzeige fest. 0=0° 2=180° |
 | {?V} | - | Zeige Firmware-Version. | | {?V} | - | Zeige Firmware-Version. |
-| {Xn} | n=0-127 | Gehe zur Spalte. Der Bereich ist von der Displaygröße abhängig. | +| {X#} | #=0-127 | Gehe zur Spalte. Der Bereich ist von der Displaygröße abhängig. | 
-| {Yn} | n=0-32 | Gehe zur Reihe. Der Bereich ist von der Displaygröße abhängig. |+| {Y#} | #=0-32 | Gehe zur Reihe. Der Bereich ist von der Displaygröße abhängig. |
 ^ Neue Befehle ^ Parameter ^ Beschreibung ^ ^ Neue Befehle ^ Parameter ^ Beschreibung ^
-| {cn} | n=0-16 | Zeichnet eine Analog-Uhr mit dem angegebenen Radius an der aktuellen Position. | +| {c#} | #=0-16 | Zeichnet eine Analog-Uhr mit dem angegebenen Radius an der aktuellen Position. | 
-| {gn} | n=0,**1**,2 | Setzt die Display-Geometrie. 0=96x16, 1=128x32, 2=128x64 ​(1 ist Standard) | Dies dient nur zu Testzwecken. Um CPU-Last zu sparen, die Option **[[#​monitor-befehle|display]]** setzen. |+| {g#} | #=0,**1**,2,3 | Setzt die Display-Geometrie. 0=96x16, 1=128x32, 2=128x64, 3=SH1106 ​​(1 ist Standard) | Dies dient nur zu Testzwecken. Um CPU-Last zu sparen, die Option **[[#​monitor-befehle|display]]** setzen. |
 | {i} | - | Invertierten Text umschalten. | | {i} | - | Invertierten Text umschalten. |
 +| {s#} | #=1-x | Zeichnet Lauftext mit einer Anzeige-Breite von # Zeichen an der aktuellen Position. | Beispiel: {s12}Scrolling text to show...{s} |
 | {d} | - | Eine Textzeile herunterscrollen. | | {d} | - | Eine Textzeile herunterscrollen. |
 | {f} | - | 7-Segment-Modellzeituhr. | | {f} | - | 7-Segment-Modellzeituhr. |
 +| {p} | - | Displays wechseln. |
 **Hinweis:​** //Wenn die Geometrie nicht standardmäßig ist, 128x32, **MUSS** der Text mit einem {gn}-Befehl beginnen, damit die richtige Geometrie ausgewählt wird.//\\ **Hinweis:​** //Wenn die Geometrie nicht standardmäßig ist, 128x32, **MUSS** der Text mit einem {gn}-Befehl beginnen, damit die richtige Geometrie ausgewählt wird.//\\
  
-==Bitmaps== + \\ 
-Die Bitmaps haben eine Größe von 20 x 8 Pixel. +====7-Segment Display HT16K33 ​==== 
-|< >| +{{ :arduino:adafruit-ht16k33.jpg?200}} 
-^ Nummer ^ Beschreibung ^​ Original ​^ +//​Modellzeit-Uhr//​\\ 
-| 13 | Nederlandse Spoorwegen (NS) | {{:arduino:bitmaps:ns.jpg}} ​|+Das Adafruit-breakout-board HT16K33 wird auf I2C-Adresse 0x70 unterstützt.\\ 
 +Es zeigt abwechselnd Uhrzeit, Datum und Temperatur.\\ 
 +Mit der USERCNF.h-Einstellung ''​NTP_CLOCK''​ wird der ''​pool.ntp.org''​-Dienst verwendet, um die Tageszeit anstelle der Zeit vom Rocrail-Server zu erhalten. Dabei wird nicht zwischen Datum und Temperatur gewechselt.\\
  \\  \\
  
Line 391: Line 541:
 === WIO unterstützt folgende DCC-Pakete === === WIO unterstützt folgende DCC-Pakete ===
   * Lok-Geschwindigkeit und -Fahrtrichtung. (14 Fahrstufen werden nicht unterstützt.)   * Lok-Geschwindigkeit und -Fahrtrichtung. (14 Fahrstufen werden nicht unterstützt.)
-  * Lok-Funktionen 0 - 28+  * Lok-Funktionen 0 - 32
-  * POM schreiben/​lesen. (Für POM lesen wird ein RailCom-Detektor benötigt.)+  * PoM schreiben/​lesen. (Für PoM lesen wird ein RailCom-Detektor, GCA214, ​benötigt.)
   * Zubehör   * Zubehör
   * BinState   * BinState
 +  * Programmiergleis;​ Service-Modus. (Es ist eine zweite H-Brücke erforderlich:​ WIO-Boost-PT)
 +  * Lok-Adressen >= 100 werden gelten als Lange Addressen.
 +  * Die Kurzadresse 111 wird als Dummy verwendet, um andere Decoder zu veranlassen,​ ihre Adresse zu senden.
 +
 ===Eigenschaften=== ===Eigenschaften===
   * 100% NMRA Timing-konform.   * 100% NMRA Timing-konform.
   * Automatisch Gleisspannung AUS nach einem Verbindungsverlust zum Rocrail-Server.   * Automatisch Gleisspannung AUS nach einem Verbindungsverlust zum Rocrail-Server.
   * Zeigt Aktivität auf einem Display, wenn eines angeschlossen ist.   * Zeigt Aktivität auf einem Display, wenn eines angeschlossen ist.
-  * 64 Slot Aktualisierungs-Stapel mit automatischer Bereinigung. +  * 48 Slot Aktualisierungs-Stapel mit automatischer Bereinigung. 
-  * 16fach ​Zubehör-Befehlswarteschlange.+  * 12fach ​Zubehör-Befehlswarteschlange.
 ===Stifte DCC=== ===Stifte DCC===
 |< >| |< >|
 ^ Stift ^ Verwendung ^ Hinweis ^ ^ Stift ^ Verwendung ^ Hinweis ^
 | D6 & D7 | Symmetrisches DCC-Signal. | | D6 & D7 | Symmetrisches DCC-Signal. |
-| D5 | Kurzschluss-Erkennung. ​Benötigt einen 10 kΩ Pullup-Widerstand. ​|+| D5 | H-Brücke 1 aktivieren ​Betrieb | 
 +| D8 | H-Brücke 2 aktivieren | Service ​| 
 ===ORD3=== ===ORD3===
 Zur Verwendung des 3,3V-Pegels muss parallel zum R1 ein 470Ω-Widerstand hinzugefügt werden.\\ Zur Verwendung des 3,3V-Pegels muss parallel zum R1 ein 470Ω-Widerstand hinzugefügt werden.\\
Line 411: Line 567:
 |< >| |< >|
 ^ Schnittstellenkennung | WIO | Bemerkung | ^ Schnittstellenkennung | WIO | Bemerkung |
-^ Bus | WIO-Kennung |+Node ID (Bus| WIO-Kennung |
 ^ Adresse | DCC-Decoder-Adresse. | Adressen > 99 werden als lange DCC-Adressen berücksichtigt. | ^ Adresse | DCC-Decoder-Adresse. | Adressen > 99 werden als lange DCC-Adressen berücksichtigt. |
 ^ Fahrstufen | 28 oder 128 | ^ Fahrstufen | 28 oder 128 |
 + \\
 +====Mobil====
 +Verwendet den WIO als Mobil-Decoder.\\
 +Der Lokomotiven-__**[[:​loc-int-de#​bus|Bus]]**__-Wert muss auf die WIO-Kennung gesetzt sein.\\
 +Die Anzahl der __**[[:​loc-int-de#​fahrstufen|Dekoder-Fahrstufen]]**__ muss im Bereich von 50 bis 100 eingestellt sein.\\
 +===Stifte LOLIN D1===
 +{{  arduino:​lipo3s-measure-.png?​240}}
 +|< >|
 +^ Stift ^ Verwendung ^ H-Brücke ^ Bemerkung ^
 +| D0 | Licht vorne | | Kabine 1 |
 +| D0 | Licht hinten | | Kabine 2 |
 +| D5 | Motor-Aktivierung | ENA | RC ESC((**R**emote **C**ontrol - **E**lectronic **S**peed **C**ontroller \\ = Elektronik-Fahrtregler aus dem Modellbau-Bereich)) Servo-PWM |
 +| D6 | PWM für Vorwärts-Richtung | IN 1 | |
 +| D7 | PWM für Rückwärts-Richtung | IN 2 | |
 +| D8 | Servo-PWM für Entkuppler | | F1 |
 +| I2C 1-32 | Funktionen 1 bis 32 | | |
 +| A0 | Batterie-Monitor LiPo 3S | | + 100kΩ A0 32kΩ - |
 +Beschleunigung/​Abbremsen kann mit dem Lok-Schnittstellen-Parameter __**[[:​loc-int-de#​masse|Masse]]**__ simuliert werden. (10ms Auflösung.)\\
 +Ein Masse-Wert von 5 erhöht/​verringert die PWM alle 5 x 10 ms um 1 Schritt.\\
 +Vstart und Vhigh, CV2/CV5, können mit dem __**[[:​loc-int-de#​fahrstufenbereich|Fahrstufenbereich]]**__ simuliert werden.\\
 +===Electronic Speed Controller===
 +Ein **E**lectronic **S**peed **C**ontroller,​ ESC, an Stift D5 kann auch zur Steuerung des Motors verwendet werden, wenn diese Option auf Eins gesetzt ist.\\
 +Hinweis: __**Nur Masse und PWM anschliessen,​ falls der ESC einen [[https://​de.wikipedia.org/​wiki/​Battery_Eliminator_Circuit|Battery Eliminator Circuit]] unterstützt.**__\\
  
 +====ID-12LA====
 +{{ :​arduino:​rfid-card-antenna.jpg?​200}}{{ http://​id-innovations.com/​httpdocs/​assets/​immage/​id12new.jpg}}
 +Optional kann ein RFID-Leser vom Typ [[http://​id-innovations.com|ID-12LA]] an den RX-Stift angeschlossen werden, der Tags erkennen kann, die an Rocrail gemeldet werden.\\
 +Der Tag wird als **[[:​sensor-gen-de#​kennung|Rückmelder-Kennung]]** oder **[[:​sensor-int-de#​uid-name|UID-Name]]** verwendet, **[[:​can-gc4-de#​rfid-schreibweise|dezimal punkt-formatiert]]**.\\
 +Die **[[:​gca_rfid-de|GCA-RFID-Platine]]** kann für Montage und Anschluss des ID-12LA verwendet werden.\\
 +__Der serielle Monitor wird auf 9600 Bit/s gesetzt.__\\
 +**Hinweis:​** Dies ist für das Scannen von Tags zwischen den Schienen, um Rocrail wissen zu lassen, wo das fahrende Fahrzeug ist.\\
  
  \\  \\
-=====Mobil=====+====RailCom==== 
 +{{ :​arduino:​railcom_cutout.jpg?​400}} 
 +Der serielle Anschluss auf der WIO-Platine kann verwendet werden, um einen Verstärkers für das Lesen von RailCom-Daten anzuschliessen.\\ 
 +Der **[[:​GCA214-de|GCA214]]** kann als Verstärker verwendet werden.\\ 
 +Folgende RailCom-Kennungen werden unterstützt:​\\ 
 +|< >| 
 +^ Kennung ^ Kanal ^ Beschreibung ^ 
 +|  0  |  2  | POM lesen | 
 +|  1  |  1  | Dekoder Low-Adresse | 
 +|  2  |  1  | Dekoder High-Adresse | 
 +Der einzige Weg RailCom-Lesen in WIO zu aktivieren, ist das Setzen dieser Option im WIO-Dialog. (WIO 0.105, Rocrail 2.1.212)\\ 
 +Die serielle Geschwindigkeit wird auf 250000 bit/s gesetzt und der Monitor kann nur lesen. __Daher ist es bei aktivieren dieser Option nicht möglich, WIO mit Monitor-Befehlen einzustellen.__\\ 
 + \\ 
 +====Sensoren==== 
 +{{ :​arduino:​bmp280.jpg?​140}}{{ :​arduino:​tsl2591.jpg?​140}} 
 +Ein an I2C angeschlossener BME280/​BMP280-Sensor wird für Temperatur, Luftdruck und Feuchtigkeit unterstützt.\\ 
 +Für korrekte Druckwerte muss die USER_ALTITUDE in der USERCNF.h auf die lokale Höhe eingestellt werden.\\ 
 +Ein an I2C angeschlossener TSL2591 '​Light-to-Digital Converter'​ (Digitaler Lichtsensor) wird zur Berechnung der Helligkeit unterstützt.\\ 
 + 
 +===Dynamischer Text=== 
 +Temperatur, Luftdruck und Feuchtigkeit können als Text in XMLScript-Variablen verwendet werden.\\ 
 +Siehe: __**[[:​text-gen-de#​dynamischer_text|Dynamischer Text]]**__ \\ 
 + \\ 
 + 
 +====Sound==== 
 +Sound kann auf ESP32-Baugruppen durch Verwenden eines der DAC((**D**igital-**A**nalog-**C**onverter))-Stifte (GPIO25 oder GPIO26) abgespielt werden.\\ 
 +Unterstütztes [[https://​de.wikipedia.org/​wiki/​RIFF_WAVE|RIFF-Wave]]-Format:​ 
 +  * PCM-Typ 
 +  * Sample-Rate 11.025 Hz 
 +  * 16 Bit-Samples 
 +  * Ein Kanal (Mono) 
 +===Aktion=== 
 +  * Typ: Sound 
 +  * Befehl: Play 
 +  * Parameter: Sound-Datei inkl. Pfad, wie: "/​F9.wav"​ 
 +  * Schnittstellen-Bus:​ WIO-Kennung (ID) 
 +Beispiel: 
 +<code xml> 
 +<ac id="​F9"​ cmd="​play"​ param="/​F9.wav"​ type="​sound"​ iid="​WIO"​ bus="​38"​ addr="​0"​ port="​0"/>​ 
 +</​code>​ 
 +===Empfehlungen=== 
 +Der DAC ist nur in der Lage, 8 Bits zu verwenden. Die 16-Bit-Daten müssen interpretiert werden, was nicht ohne Datenverlust möglich ist.\\ 
 +Um das beste Ergebnis zu erhalten: 
 +  * Die Sound-Dateien normalisieren,​ so daß die vollen 16 Bit verwendet werden. 
 + \\ 
 + 
 +====Schritt-Motor==== 
 +Der WIO-02 unerstützt zwei Typen von Schritt-Motoren:​ 4-Darht- und 3-Draht-Stepp-Treiber.\\ 
 +{{ :​arduino:​stepmotor-4wire.jpg?​0x200}}{{ :​arduino:​stepmotor-3wire.jpg?​0x200}} 
 +|< >| 
 +^ WIO-02 ^ 4-Draht ^ 3-Draht ^ Hinweis ^ 
 +| Servo 5 | IN1 | CLK+ | 
 +| Servo 6 | IN2 | DIR+ | 
 +| Servo 7 | IN3 | ENABLE+ | 
 +| Servo 8 | IN4 | - | 
 +| DA1     | -   | | Hall/​Reed-Kalibrier-Sensor |  
 +| EP1-1   | GND | CLK-,​DIR-,​ENABLE- | 
 +| -       | VCC | 12 - 45V DC | Externe Stromversorgung | 
 + 
 +===Drehscheiben-Einstellung=== 
 +|< >| 
 +|  Drehscheibe Schnittstelle ​ || 
 +^ Feld ^ Wert ^ Hinweis ^ 
 +| Knoten-ID | WIO-02 ID | | 
 +| Adresse | 1 | //fest// | 
 +| Beleuchtungen ​ | 1...32 | Optionale Beleuchtung der Brücken-Kabine. \\ Digitaler Ausgangs-Port auf demselben WIO-02. | 
 +| Typ | wio | 
 +| Dekoderschritte | Anzahl der Schritte für eine 360°-Drehung. \\ Im Fall eines 28BYJ-48: 4096 Schritte. | 
 +//Die Anzahl der Schritte für eine Drehscheiben-Drehung wird zur Berechnung des kurzen Weges benötigt.//​\\ 
 + \\ 
 +|< >| 
 +|  Drehscheibe Gleise \\ (Beispiel 4096 Schritte) ​ || 
 +^  Gleis  ^  Dekoder-Gleis ​ ^ 
 +|  0  |  0  | 
 +|  12  |  1024  | 
 +|  24  |  2048  | 
 +|  36  |  3072  | 
 + 
 +XML-Beispiel:​ (Nur unbedingt notwendige Angaben sind gelistet.) 
 +<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>​ 
 + 
 + 
 + \\ 
 +====CAN==== 
 +{{ :​arduino:​gc2a-wio-can.jpg?​400}} 
 +Der WIO-CAN-Typ kann als CAN-WiFi-Brücke verwendet werden für:  
 +  * [[:​mbus:​cs3-de#​kommunikations-typ|MBUS,​ Typ TCP an Port 5550]] 
 +  * RCAN, Type TCP+Binary an Port 5550.\\ 
 +====MCP2515==== 
 +Stift-Zuordnung für das Verwenden des SPI MCP2515(16MHz) am __**[[:​can-gca2a-de|GC2a]]**__:​ 
 +|< >| 
 +^ Name ^ Nano ^ Lolin D1 Mini ^ Lolin D32 ^ Hinweis ^ 
 +| GND | GND | GND | GND | Ground | 
 +| 5V | 5V | 5V | 5V(USB) | | 
 +| CS | D10 | D3 | GPIO14 | Chip Select | 
 +| MOSI | D11 | D7 | GPIO23(MOSI) | Master Output, Slave Input | 
 +| MISO | D12 | D6 | GPIO19(MISO) | Master Input, Slave Output | 
 +| SCK | D13 | D5 | GPIO18(SCK) | Serial Clock | 
 + 
 +Der Lolin D1 Mini muss an 5V-USB ohne Stromversorgung vom CAN-Bus angeschlossen sein.\\ 
 +Es wird ein WIO-CAN-Bausatz verfügbar sein.\\ 
 + 
 +====ESP32==== 
 +Die aktuelle WIO-Firmware,​ 1.94, verwendet den internen CAN-Controller und nutzt dafür nur den MCP2551/​2561. (SPI CAN wird für MCP2515 nicht mehr unterstützt.)\\ 
 +Im Fall von ESP32 wird die CAN-Kommunikation immer aktiviert, unabhängig,​ welcher WIO-Typ ausgewählt ist.\\ 
 +|< >| 
 +^ Anschluss ^ ESP32 Stift ^ MCP2561 ^ 
 +| TXCAN  |  16 |  1 | 
 +| RXCAN  |   4 |  4 | 
 + 
 + \\ 
 + \\ 
 +=====Mobil ​​RFID-Leser=====
 Der WIO kann auch als mobiler RFID-Leser und I/O verwendet werden.\\ Der WIO kann auch als mobiler RFID-Leser und I/O verwendet werden.\\
 Die WIO-Kennung muss in dem **[[:​loc-int-de#​zweite_adresse|zweiten Adress]]**-Feld eingestellt werden.\\ Die WIO-Kennung muss in dem **[[:​loc-int-de#​zweite_adresse|zweiten Adress]]**-Feld eingestellt werden.\\
Line 441: Line 746:
  
   * https://​wiki.rocrail.net/​doku.php?​id=gca:​gca-index-de   * https://​wiki.rocrail.net/​doku.php?​id=gca:​gca-index-de
 +
 +\\
 +===== Fehlersuche =====
 +|< >|
 +|  Oberseite ​ ||  Unterseite ​ ||
 +|  LOLIN D1 mini  |  Wemos mini  |  LOLIN D1 mini  |  Wemos mini  |
 +| {{:​arduino:​d1-top.jpg?​0x300}} || {{:​arduino:​d1-bottom.jpg?​0x300}} ||
 +
 +|< >|
 +^ Stift ^ Lolin ^ Wemos ^
 +|  D3  |  -  | Wird nicht starten, falls "​Low"​. |
 +
 +==== Sehr langsam ====
 +Wenn I2C-Module wie Pi02 oder Pi03 an den I2C-Bus des WIO angeschlossen sind und keine Stromversorgung haben, verlangsamt dies die Verarbeitung und es werden keine anderen I2C-Geräte erkannt. (Mehrere Sekunden zwischen den Aufruf-Wiederholungen.) \\
 +Der I2C-Bus-Extender P82B715 scheint die I2C-Takt- und Datenleitungen zu belasten, was die Interrupt-Routine in der Wire-(I2C)-Bibliothek irritiert. \\
 +Der Pi08 hat mit dem PCA9622-Chip und dessen internem I2C-Bus-Extender dieses Problem nicht. \\
 +=== Lösung ===
 +Sicherstellen,​ dass zeitgleich mit dem WIO auch alle angeschlossenen I2C-Module eingeschaltet sind. \\
  
  
arduino/wio-de.1573426523.txt.gz · Last modified: 2019/11/10 23:55 by rainerk