User Tools

Site Tools


arduino:wio-de

French VersionDeutsche VersionEnglish Version

WIO - Fahrtregler - 32 I/O - LEDs - Servos - RFID - Displays - DCC

InhaltArduino


WIO_Control WIO_01 WIO_02 WIO_Prog WIO_CAN WIO_Prog2
wio_control_pict02.jpg wio_01_v2._pict3.jpg wio_02_pict01.jpg wio_prog_pict03.jpg wio_can_pict05.jpg wio_prog2_pict_01.jpg


Einführung

Diese Lösung basiert auf ESP8266/ESP32-Familie.

Sie kann verwendet werden als:

  • Drahtloser Fahrtregler

oder als drahtloser I/O:

und eine der folgenden zusätzlichen Optionen:

  1. LED-Steuerung WS2812
  2. 4 Servos
  3. 2 RC522-Leser
  4. DCC-Generator
  5. Mobil-PWM, Fahrtrichtung und Licht

und eine der folgenden Optionen:

  • 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:

Informationsblatt

Achtung

Bei einer Ausstellung verwendete WiFi-Kanäle...

  1. 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!
  2. Der verwendete WiFi-Router sollte auf dem neuesten Stand sein; Nur gewartete Hardware verwenden.
  3. Unbedingt sicherstellen, dass die SSID nicht sichtbar ist, um zusätzlichen öffentlichen Verkehr zu verhindern.
Das Verwenden von WIO geschieht auf eigenes Risiko.
Peter Giling und Robert Jan Versluis können nicht für irgendwelche Schäden oder Probleme bei Verwendung der vorgeschlagenen Hard- und Firmware verantwortlich gemacht werden.
Die veröffentlichte Hardware sind Prototypen, unvollständig und nicht zur Freigabe bereit.
Es werden nur Original-GCA-Bausätze unterstützt.


Arduino IDE 1.8.12

:!: 1.8.11 funktioniert nicht! Wenn das BasicOTA-Beispiel nicht kompiliert wird …

Die Arduino IDE mit folgenden Boards und Bibliotheken vorbereiten:

Boardverwalter

Im Einstelldialog bei "Zusätzliche Boardverwalter-URLs" die folgende URL hinzufügen:

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

Und die ESP8266 Board-Bibliothek installieren.

Board-Auswahl

LOLIN(WEMOS)D1 R2 & mini

Bibliotheken

ESP8266 & ESP32

ESP32

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)

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;
}
Einfach die "Upload-Geschwindigkeit" auf 460800 verringern, falls beim Hochladen des Sketch Kommunikationsfehler angezeigt werden.


SPIFFS

2M SPIFFS-Größe auswählen:

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:

Dunkles Thema

Wer ein Dunkles Thema für die Arduino-IDE wünscht:


WIO-Sketch

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

WIO ist Firmware zur Steuerung von Fahrtregler, I2C, LEDs, Servos, RFID, Displays und DCC.

Der Quellcode ist öffentlich aber "nicht open source"-lizensiert und darf nur zum Kompilieren und Laden auf den LOLIN D1 Mini verwendet werden.

Binary

esp-downloadtool.jpg Das Espressif-Tool verwenden, um das WIO-Binary hochzuladen.

Compiler-Ausgabe

Die roten FastLED pragma Meldungen, die nur informell sind, können ignoriert werden, wenn die beiden letzten weißen Zeilen angezeigt werden:

 #    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.
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 115200 bps erfolgen oder durch modifizieren der USERCNF.h:

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

Ausgabe nach einem ?-Befehl:

------------------------------
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 3w=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

Benutzer-Konfiguration

Die 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.
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

Der Arduino Seriell-Monitor kann zur Änderung der WIO-Einstellungen mit 115200 bit/s verwendet werden.

  1. Wenn RailCom aktiviert wurde, schaltet die Baudrate automatisch auf 250000 und der serielle Monitor kann "nur lesen".
  2. 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.
! Auflistung des verwendeten Flash-Speichers.
*ssid=<value> Setzt die WiFi-Access-Point SSID. - Primäre SSID
*pwd=<value> Setzt das WiFi-Passwort. Ein WiFi-Neuverbindung wir gestartet. - Primäres WiFi-Passswort
*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
*name=<value> Optionaler Node-Name. -
*id=<value> Node-Nummer/Fahrtregler-ID; Muss eindeutig sein . 33
*io=<value> WIO-Typ. i2cled ​
*i2c=<value> I2C-Port-Konfiguration. oooooooobbbbbbbboooooooobbbbbbbb
*steps=<value> Anzahl der Drehgeber-Schritte. 127
*pulse=<value> Ausgangs-Impuls-Länge in 100ms-Einheiten. 5
*canprot=<value> CAN-Protokoll MBUS 0=MBUS, 1=RCAN
*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=96x16, 1=128x32, 2=128x64, 3=SH1106 - 1

Hinweis: Den <value> (Wert) entsprechend der lokalen Bedingungen ersetzen.
Hinweis:​ ​Nach Änderung des WIO-Typs ist ein Reset erforderlich.

Port-Typ Beschreibung
i Eingang
o Ausgang
b Block: Eingang mit 2 Sekunden Aus-Verzögerung.
p Pulse: Ausgang mit autom. Aus.

IO-Typ-Konfiguration

IO-Typ I2C 32I/O FastLED Servo RFID Display DCC
throttle - - - - - -
i2cled JA JA Nein Nein JA Nein
i2cservo JA Nein JA Nein JA Nein
i2crfid JA Nein Nein JA JA Nein
i2cdcc JA Nein Nein Nein JA JA


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:

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:

http://192.168.4.1

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.

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 Access Point (Standard "12345678").


RIC - Fahrtregler

Hinweis: RIC wird in der Firmware nicht mehr unterstützt und durch 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 .
Der Pocket-Fahrtregler-I/O-Modus benötigt einen Drehgeber (Drehencoder), eine LED und vier Tasten.
Die LED kann auch die eingebaute sein. (D4)
ric-prototype.jpg

Prototyp 1

Stift Verwendung Klick Langer Klick
D5/D6 Drehgeber - -
D7 Drehgeber-Taster Ändert die Fahrtrichtung Wartet auf Lok / Lok-Freigabe
D4 eingebaute ​LED - -
D1 F1 F1 F5
D2 F2 F2 F6
D3 F3 F3 F7
D0 F4 F4 F8
A0 Batterie - -

Licht

F0 wird umgeschaltet, wenn F3 und F4 gleichzeitig gedrückt werden.

Not-Halt

Ein Not-Halt wird zum Server gesendet, wenn F1 und F2 gleichzeitig gedrückt werden.

Loco selection

Lok 1 ist standardmäßig ausgewählt.
Auswahl Lok 1 wenn F1 und F4 gleichzeitig gedrückt werden.
Auswahl Lok 2 wenn F2 und F3 gleichzeitig gedrückt werden.

LED Bedeutung
Ein Keine WiFi-Verbindung.
Sehr schnelles Blinken 10Hz Keine Rocrail-Server-Verbindung.
Aus Ruhezustand.
Schnelles Blinken 5Hz Auf Lok-Zuweiung warten (Dispatch).
Langsames Blinken 1Hz Betriebs-Modus.

Booten

Während des Bootens leuchtet die LED, bis eine WiFi-Verbindung hergestellt ist.

Eine Lok übernehmen (catch)

  1. Falls der LOLii eine bereitgestellte Lok nicht übernimmt, während der Drehgeber für mindesten 2 Sekunden gedrückt ist, beginnt die LED schnell zu blinken.
  2. Wenn der LOLii in diesem Modus eine bereitgestellte Lok sieht, wird er sie übernehmen und die LED beginnt langsam zu blinken.
  3. Diese Lok-Übernahme wird im Flash-Speicher gespeichert und beim Neustart erneut verwendet, wenn sie nicht freigegeben wurde.

Geschwindigkeits-Steuerung

  • Für Geschwindigkeits-Änderungen durch Drehen des Drehgebers.
  • Ein kurzer Druck auf den Drehgeber kehrt die Fahrtrichtung um.

Steuerung der Funktionen

Die vier Funktions-Tasten stehen für F1 bis F4.
Mit langen Klicks können F5 bis F8 angesprochen werden.
Eine Funktion wird nach Loslassen der Taste umgekehrt, um lange Klicks bearbeiten zu können. (So wie mit Smartphones.)

Eine Lok freigeben

  1. Den Drehgeber für mindesten 2 Sekunden gedrückt halten.
  2. Eine Freigabe-Meldung wird gesendet.
  3. Die LED wird Aus-geschaltet.

Batterie-Kontrolle

Der Analog-Eingang prüft die Batterie-Spannung.
Wenn die Spannung unter einen bestimmten Wert kommt, sendet der LOLii automatisch ein Geschwindigkeit-Null-Befehl zur Lok und einen Freigabe-Befehl.
Die LED geginnt sehr schnelles Blinken, solange die Batterie nicht vollständig entladen ist.

Servererkennung

UDP-Multicast entleert den Heap-Speicherplatz und ist daher deaktiviert.

Wenn beim Rocrail-Server R2RNet auf Multicast-Adresse 226.0.0.1 aktiviert ist, kann der LOLii den Servernamen / die IP-Adresse abrufen, um automatisch eine Verbindung zum 8051-Client-Port herzustellen.


WIO - I/O

  • Verbindet direkt mit dem Rocrail-Server-Client-Port 8051. Siehe Forum-Beitrag
  • Wiederherstellung von WiFi- und Server-Verbindung.
  • 32 Digital-I/O, kompatibel mit allen GCA-Schnittstellen.
    • Eingang
    • Ausgang
    • Block
    • Pulse
  • 100 LEDs kompatibel mit WS2812 an D8. (Ausgangs-Typ Farbe in Rocrail.)
    • RGB-Farbe
    • Helligkeit
    • Dimmen
    • Blinken
  • 4 Servos
    • Einstellbare Bewegungsgeschwindigkeit
    • Positionen werden in der plan.xml gespeichert, Ausgang/Weiche, was den Tausch von Hardware erleichtert.
    • Erreichte Endpositionen werden im Flash gespeichert, um einen stabilen Neustart zu gewährleisten.
  • DCC-Zentrale
  • 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.
  • 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.)


Adressierung

Rocrail WIO
Schnittstellenkennung "WIO"
Node ID (Bus) Kennung
Adresse I2C-Port
Adresse LED-Port
Adresse Servo-Port

Dieses Adressierungs-Schema wird verwendet für:

  • Ausgänge
  • Weichen
  • Signale
  • 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:

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

ws2812.jpgws2811-chip.jpg Die Adressierung ist die gleiche, wie bei normalen Ausgängen.

Ausgänge

  1. Schnittstelle → WIO-Kennung: Bus
  2. Schnittstelle → Adresse setzt den LED-Offset
  3. Schnittstelle → Parameter 'Ein' setzt den LED-Bereich
  4. Schnittstelle → Option 'Farbe' und Typ 'Beleuchtung' müssen gesetzt sein
  5. Schnittstelle → Wert setzt Helligkeit
  6. Schnittstelle → Verzögerung (0…15) setzt die Dimm-Schritte. (Ein Wert von Null deaktiviert Dimmen.)
  7. Schnittstelle → Option 'Blinken' kann für Blinken der LED verwendet werden.
  8. Farbe → RGB setzt die LED-Farbe

Signale

  1. Schnittstelle → WIO-Kennung: Bus
  2. Schnittstelle → Adresse setzt die LED-Nummer
  3. Schnittstelle → Port-Typ: LED
  4. Schnittstelle → Steuerungs-Typ: Begriffs-Nummern (Max. 6 Sub-LEDs → 2 x WS2812)
  5. Helligkeit

Die Begriffs-Werte sind mit RocNetNode Pi08 kompatibel. (WIO version 0.81+)

Servos

servo.jpg Die Adressierung ist die gleiche, wie bei normalen Ausgängen.

Steuerung Ausgang Weiche Bereich
WIO Schnittstellenkennung = "WIO" Schnittstellenkennung = "WIO" -
WIO-Kennung Node ID (Bus) Node ID (Bus) 1…255
Servo-Port Adresse Adresse 1…4
Zusätzliche Option - Einzel-Ausgang ON -
Position 1 Parameter Ein Parameter 0…180°
Position 2 Parameter Aus Wert 0…180°
Geschwindigkeit Verzögerung Schaltzeit 1…10
Ziel Port Typ "Servo" Port Typ "Servo" -


RFID

wio-spi-rfid.jpg

Sicherstellen, dass keine Servos und LEDs angeschlossen sind, wenn auf RFID umgestellt wird.
  1. Zwei Mifare RFID RC522-Leser werden unterstützt.
  2. Es werden 5 zusätzliche Ports benötigt; Servos sind parallel nicht möglich.
  3. Melde-Adressen sind 100 und 101. (In Rocrail 101 und 102.)
  4. Automatisches Rückmelder-Aus-Ereignis nach 1500ms. (Bis dahin muss es vom Server bestätigt sein.)
  5. Viermaliges Wiederholen bis zur Bestätigung, bevor aufgeben wird.
Signal D1 Mini RFID RC522
Slave Select 1 D3 1 (SDA) Leser 1
Slave Select 2 D0 1 (SDA) Leser 2
SCK D5 2 (SCK)
MOSI D7 3 (MOSI)
MISO D6 4 (MISO)


Stifte I2C

Stift Verwendung
A0 Spannungs-Überwachung
D1 I2C SCL
D2 I2C SDA
D4 Eingebaute LED
D8 LEDs (FastLED)

Display SSD1306/SH1106

wio-oled-128x32.jpgdisplay-goes.jpg
An I2C können zwei Displays vom Typ SSD1306 mit den I2C-Adressen 0x3C und 0x3D angeschlossen werden.
Formatierter Text ist mit RocDisplay kompatibel.
WIO unterstützt nur eine Teilmenge und es werden einige neue Kleinbuchstabenbefehle eingeführt.
Code-Seite ist ISO 8859 Latin für Font {F0}; {F1} ist nur 7 Bit ASCII.

Adressierung

Der Bus wird für die WIO-Kennung verwendet und die Display-Nummer für die Auswahl zwischen 1 und 2. (0x3C oder 0x3D)
Der Adress-Wert wird nicht verwendet.

Unterstützte Formatierung

Formatierungsbefehle sind in geschweiften Klammern eingeschlossen. Beispiel des Lösch-Befehls:

{g1}{E}{L0}{X0}Hello World!{P}
Befehl Parameter Beschreibung Hinweis
{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.
{F#} #=0-2 Font-Auswahl. 0=7x5 1=6x5w 2=6x5n Font 5x5 wird nicht unterstützt, weil es nicht lesbar ist.
{H#} #=0-255 Setzt den Display-Kontrast.
{I#} #=0-1 Invertiert das Display. 0=normal 1=invertiert
{L#} #=0-3 Gehe zur Zeile. Der Bereich ist von der Displaygröße abhängig.
P - Puffer zum Display kopieren
{R#} #=0,2 Legt die Drehung der Anzeige fest. 0=0° 2=180°
{?V} - Zeige Firmware-Version.
{X#} #=0-127 Gehe zur Spalte. 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
{c#} #=0-16 Zeichnet eine Analog-Uhr mit dem angegebenen Radius an der aktuellen Position.
{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 display setzen.
{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.
{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.


7-Segment Display HT16K33

adafruit-ht16k33.jpg Modellzeit-Uhr
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.

DCC-Generator

:!: Nur auf ESP8266-Baugruppen unterstützt.
pulseview-wio-dcc.jpg

WIO unterstützt folgende DCC-Pakete

  • Lok-Geschwindigkeit und -Fahrtrichtung. (14 Fahrstufen werden nicht unterstützt.)
  • Lok-Funktionen 0 - 32.
  • PoM schreiben/lesen. (Für PoM lesen wird ein RailCom-Detektor, GCA214, benötigt.)
  • Zubehör
  • 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

  • 100% NMRA Timing-konform.
  • Automatisch Gleisspannung AUS nach einem Verbindungsverlust zum Rocrail-Server.
  • Zeigt Aktivität auf einem Display, wenn eines angeschlossen ist.
  • 48 Slot Aktualisierungs-Stapel mit automatischer Bereinigung.
  • 12fach Zubehör-Befehlswarteschlange.

Stifte DCC

Stift Verwendung Hinweis
D6 & D7 Symmetrisches DCC-Signal.
D5 H-Brücke 1 aktivieren Betrieb
D8 H-Brücke 2 aktivieren Service

ORD3

Zur Verwendung des 3,3V-Pegels muss parallel zum R1 ein 470Ω-Widerstand hinzugefügt werden.

Mobil-Adressierung

Schnittstellenkennung WIO Bemerkung
Node ID (Bus) WIO-Kennung
Adresse DCC-Decoder-Adresse. Adressen > 99 werden als lange DCC-Adressen berücksichtigt.
Fahrstufen 28 oder 128


Mobil

Verwendet den WIO als Mobil-Decoder.
Der Lokomotiven-Bus-Wert muss auf die WIO-Kennung gesetzt sein.
Die Anzahl der Dekoder-Fahrstufen muss im Bereich von 50 bis 100 eingestellt sein.

Stifte LOLIN D1

Stift Verwendung H-Brücke Bemerkung
D0 Licht vorne Kabine 1
D0 Licht hinten Kabine 2
D5 Motor-Aktivierung ENA RC ESC1) 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 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 Fahrstufenbereich simuliert werden.

Electronic Speed Controller

Ein Electronic Speed Controller, 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 Battery Eliminator Circuit unterstützt.

ID-12LA

rfid-card-antenna.jpgid-innovations.com_httpdocs_assets_immage_id12new.jpg Optional kann ein RFID-Leser vom Typ ID-12LA an den RX-Stift angeschlossen werden, der Tags erkennen kann, die an Rocrail gemeldet werden.
Der Tag wird als Rückmelder-Kennung oder UID-Name verwendet, dezimal punkt-formatiert.
Die 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.


RailCom

railcom_cutout.jpg Der serielle Anschluss auf der WIO-Platine kann verwendet werden, um einen Verstärkers für das Lesen von RailCom-Daten anzuschliessen.
Der 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

bmp280.jpgtsl2591.jpg 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: Dynamischer Text

Sound

Sound kann auf ESP32-Baugruppen durch Verwenden eines der DAC2)-Stifte (GPIO25 oder GPIO26) abgespielt werden.
Unterstütztes 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:

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

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.
stepmotor-4wire.jpgstepmotor-3wire.jpg

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.)

  <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 Der WIO-CAN-Typ kann als CAN-WiFi-Brücke verwendet werden für:

MCP2515

Stift-Zuordnung für das Verwenden des SPI MCP2515(16MHz) am 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.
Die WIO-Kennung muss in dem zweiten Adress-Feld eingestellt werden.

Rückmelder-Einstellung

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

Die gemeldete RFID muss zu einer Rückmelder-Kennung in Rocrail passen.
Die Adresse dieses Rückmelder muss auf Null eingestellt sein.
Die Kennung muss in dieser RFID-Schreibweise eingestellt sein.
Für das Kopieren dieser Kennung können die Rocrail-Traces oder der Rückmelder-Monitor verwendet werden.

Funktion-Einstellung

Um Funktionen an den WIO zu übergeben, muss die Funktion mit Funktions-Adresse und FX eingestellt werden.

Hardware

Die Firmware für IO-Type RIC funktioniert nicht ohne Pull-Up-Widerstände an den Tasten-Eingängen, einschließlich des Drehgebers.

Pläne & PCBs

Die veröffentlichte Hardware sind Prototypen, unvollständig und nicht zur Veröffentlichung bereit.
Es werden nur Original-GCA-Bausätze unterstützt.


Fehlersuche

Oberseite Unterseite
LOLIN D1 mini Wemos mini LOLIN D1 mini Wemos mini
d1-top.jpg d1-bottom.jpg
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.

1)
Remote Control - Electronic Speed Controller
= Elektronik-Fahrtregler aus dem Modellbau-Bereich
2)
Digital-Analog-Converter
arduino/wio-de.txt · Last modified: 2020/10/22 01:45 by rainerk