
Den Wert des Servowinkels im Dezimalfeld eingeben und mit Enter bestätigen.
Dieses Projekt ist auf die Plattformen ESP8266, ESP32 und RP2040 ausgerichtet.
Der Quellcode ist nur verfügbar, um ihn auf dem Zielgerät flashen zu können, wenn keine andere Methode möglich ist.
Das Forken oder Manipulieren des Quellcodes ist NICHT erlaubt und urheberrechtlich geschützt.
Sie kann verwendet werden als:
oder als drahtloser I/O:
und eine der folgenden zusätzlichen Optionen:
und eine der folgenden Optionen:
Stift-Zuordnung in Pins.cpp
prüfen:
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. |
---|
Die Arduino IDE mit folgenden Boards und Bibliotheken vorbereiten:
Im Einstelldialog bei "Zusätzliche Boardverwalter-URLs" die folgende URL hinzufügen:
https://arduino.esp8266.com/stable/package_esp8266com_index.json https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
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. |
1M/2M FS-Größe auswählen:
LittleFS 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:
Copyright © 2002-2022 Robert Jan Versluis, Rocrail.net |
WIO ist Firmware zur Steuerung von Fahrtregler, I2C, LEDs, Servos, RFID, Displays und DCC.
git clone https://gitlab.com/rocrail/WIO.git
Der Quellcode ist öffentlich aber "nicht open source"-lizensiert und darf nur zum Kompilieren und Laden auf den LOLIN D1 Mini und D32 verwendet werden.
WICHTIG
|
---|
Ohne Umbennen des Quellen-Hauptverzeichnisses sind die Quellen-Dateien in der Arduino-IDE unbrauchbar und ergeben nur eine Unmenge an Kompilierungsfehlern!
(Wichtig: Das USB-Kabel muss ein Daten-Kabel sein, ein Nur-Lade-Kabel funktioniert nicht.)
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=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 ------------------------------
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.
Der Arduino Seriell-Monitor kann zur Änderung der WIO-Einstellungen mit 115200 bit/s verwendet werden.
Grundsätzliche Verbindungs-Einstellung kann auch über die Registerkarte Wartung des WIO Einstelldialogs erfolgen.
Befehle | Beschreibung | Standard | Bemerkung |
---|---|---|---|
? | Zeigt die momentanen Einstellungen und wie sie geändert werden. | ||
! | Auflistung des verwendeten Flash-Speichers. | ||
*sod | Erzwingt Start of Day | *scan | List all available WiFi APs |
*scan | Listet alle verfügbaren WiFi APs | ||
*ssid1=<value> | Setzt die WiFi-AP SSID. | - | Primäre SSID (max. 30 Zeichen) |
*pwd1=<value> | Setzt das WiFi-Passwort. Ein WiFi-Neuverbindung wir gestartet. | - | Primäres WiFi-Passswort (max. 30 Zeichen) |
*ssid2=<value> | Setzt die WiFi-Access-Point SSID. | - | Alternative SSID (max. 30 Zeichen) |
*pwd2=<value> | Setzt das WiFi-Passwort. Ein WiFi-Neuverbindung wir gestartet. | - | Alternatives WiFi-Passswort (max. 30 Zeichen) |
*server=<value> | Setzt die Rocrail-Server-IP oder den Namen. | - | Kann ein CSV von max. 30 Zeichen sein. (1.71+) Ggf. auch 2 alternative Server-IPs oder -Namen. Beispiele: "192.168.1.110,192.168.100.5" oder "mba2019,win2019" Wenn auf "auto" gesetzt ist, hat das den gleichen Effekt, wie der "autoserver"-Parameter. |
*autoserver=<value> | Setzt die Rocrail-Server-Auto-Suche mit R2RNet. | siehe USERCNF.h → ENABLE_R2RNET | 0=off, 1=on |
*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. |
(Block ist ein Input welcher erst Low meldet nachdem es 2 Sekunden stabil Low gewesen ist, wie es bei einem Gleisbesetztmelder sein sollte.)
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 |
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").
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)
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 | - | - |
F0 wird umgeschaltet, wenn F3 und F4 gleichzeitig gedrückt werden.
Ein Not-Halt wird zum Server gesendet, wenn F1 und F2 gleichzeitig gedrückt werden.
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. |
Während des Bootens leuchtet die LED, bis eine WiFi-Verbindung hergestellt ist.
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.)
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 beginnt sehr schnelles Blinken, solange die Batterie nicht vollständig entladen ist.
Wenn beim Rocrail-Server R2RNet auf Multicast-Adresse 224.0.1.20 aktiviert ist, kann WIO den Servernamen / die IP-Adresse abrufen, um automatisch eine Verbindung zum Client-Port 8051 herzustellen.
Bis zu 4 Stück I/O-Extender Typ PCF8574 können als Alternative zu 2 Stück von MCP23017 verwendet werden.
Achtung: Prüfen ob der richtige Typ zur 0x20-Basisadresse passt: PCF8574P oder PCF857T. (Der Typ PCF8574A beginnt mit der Basisadresse 0x38.)
Rocrail | WIO |
---|---|
Schnittstellenkennung | "WIO" |
Node ID (Bus) | Kennung |
Adresse | I2C-Port |
Adresse | LED-Port |
Adresse | Servo-Port |
Dieses Adressierungs-Schema wird verwendet für:
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 werden automatisch als Typ 'p' Pulse verwendet.
Mögliche Hardware:
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.
Die Begriffs-Werte sind mit RocNetNode Pi08 kompatibel. (WIO version 0.81+)
Die Begriffs-Werte sind mit RocNetNode Pi08 kompatibel. (WIO version 0.81+)
Nur verfügbar auf WIOesp32 16 I/O, WIOpico 16 I/O, WIOpico, SIOpico
Ein Rocrail-Signal mit Steueraspekten und Porttyp-Multiplex verwendet 4 Pins, beginnend mit dem Port-Offset.
Die Wiederholfrequenz beträgt ca. 4000 Hz.
Aspektwerte werden aus der Registerkarte „Einzelheiten“ verwendet. Es werden 24 Bit verwendet, die oberen 12 Bit sind zum Blinken.
Beispiel: LED 1 und 2 an und LED 2 blinkend: 0x002003 → Aspektwert = 8195
Ein zweites Signal am Mast kann in Rocrail mit Adresse + 100 definiert werden, um es mit dem Hauptsignal zu kombinieren.
Helligkeit setzt Helligkeit, es können nur Werte zwischen 200-255 verwendet werden. Ein Wert < 200 wird auf 200 gesetzt.
Ein überblenden mit Dimmen ist nicht möglich.
LED Nummber for Viessmann Multiplex Signal | ||||||||
---|---|---|---|---|---|---|---|---|
LED | Pin+ | Pin- | 1 | 2 | 3 | 4 | Viessmann | |
1 | 1 | 2 | H | L | Vr_Ge_O | Vorsignal gelb oben | ||
2 | 1 | 3 | H | L | Hp_Rt_R | Hauptsignal rot rechts | ||
3 | 1 | 4 | H | L | Hp_Rt_L | Hauptsignal rot links | ||
4 | 2 | 1 | L | H | Vr_Gr_O | Vorsignal grün oben | ||
5 | 2 | 3 | H | L | Vr_Gr_u | Vorsignal grün unten | ||
6 | 2 | 4 | H | L | ||||
7 | 3 | 1 | L | H | Hp_Ge | Hauptsignal gelb | ||
8 | 3 | 2 | L | H | Vr_Ge_U | Vorsignal gelb unten | ||
9 | 3 | 4 | H | L | Hp_Ws_L | Hauptsignal weiß links | ||
10 | 4 | 1 | L | H | Hp_Gr | Hauptsignal grün | ||
11 | 4 | 2 | L | H | ||||
12 | 4 | 3 | L | H | Hp_Ws_R | Hauptsignal weiß rechts |
Für eine korrekte Anzeige des Hauptsignals bei Rot und Rangieren muss das Vorsignal ausgeblendet werden.
Der Helligkeitswert im Haupt- und Vorsignal muss identisch sein.
Multiplexeingänge von Viessmann, Ansicht von unten auf den Stecker.
Die Adressierung ist die gleiche, wie bei normalen Ausgängen.
Steuerung | Ausgang | Weiche | Signal | Segment Drehscheibe | Bereich |
---|---|---|---|---|---|
WIO | Schnittstellenkennung = "WIO" | Schnittstellenkennung = "WIO" | Schnittstellenkennung = "WIO" | Schnittstellenkennung = "WIO" | - |
WIO-Kennung | Knoten-ID | Knoten-ID | Knoten-ID | Knoten-ID | 1…255 |
Servo-Port | Adresse | Adresse | Adresse | Adresse | 1…4 |
Zusätzliche Option | - | Einzel-Ausgang ON | - | - | |
Steuerung | - | - | Begriffs-Nummern | - | - |
Position 1 | Parameter Ein | Parameter | Rot Begriff 0 1) | - | 0…180° |
Position 2 | Parameter Aus | Wert | Grün Begriff 1 2) | - | 0…180° |
Position | - | - | - | Decoder Gleisnummer | PWM 500…2500 ² |
Geschwindigkeit | Verzögerung | Schaltzeit | Dimmen | Schrittverzögerung | 1…10 |
Ziel | Port Typ "Servo" | Port Typ "Servo" | Port Typ "Servo" | Type wioservo | - |
² Achtung zu hohe oder niedrige Werte können den Servo beschädigen mit PWM 1500 = 0° beginnen.
Sicherstellen, dass keine Servos und LEDs angeschlossen sind, wenn auf RFID umgestellt wird. |
Mit WIO Type I/O16 nicht möglich, hier bitte ID-12LA verwenden.
Signal | D1 Mini 8266 / Lolin D32 | 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) |
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 1: Dies ist für das Scannen von Tags zwischen den Schienen, um Rocrail wissen zu lassen, wo das fahrende Fahrzeug ist.
Hinweis 2: Tags verwenden, die schnell reagieren.
Stift | Verwendung |
---|---|
A0 | Spannungs-Überwachung |
D1 | I2C SCL |
D2 | I2C SDA |
D4 | Eingebaute LED |
D8 | LEDs (FastLED) |
ESP8266 | ESP32 | PicoW | Verwendung |
---|---|---|---|
D0 | 12 | 10 | PS |
D5 | 17 | 11 | Reset |
D6 | 26 | 12 | Takt |
D7 | 27 | 13 | Daten |
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.
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.
Bis zu 16 Displays können mit Display-Multiplexing (en) verwendet werden.
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'} oder {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 eckigen Klammern3) oder 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. (Y = L * 8) | |
P | - | Puffer zum Display kopieren | |
{R#} | #=0,2 | Legt die Drehung der Anzeige fest. 0=0° 2=180° | Siehe auch Display Konfiguration |
{?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#} | #=1-16 | Zeichnet eine Analog-Uhr mit dem angegebenen Radius an der aktuellen Position. | Nur eine (Modellzeit)-Uhr je Display wird aktualisiert. |
{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. Siehe auch Display Konfiguration |
{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#} | #=1-2 | 7-Segment-Modellzeituhr. | Nur eine (Modellzeit)-Uhr je Display wird aktualisiert. |
{f7} | - | Benutzerdefinierte Modellzeituhr. Benötigte Dateien: 0.amp…9.amp und colon.amp | Beispieldaten: f7.zip Max. Dateigröße ist 1024 Bytes pro amp . DISPLAY_FASTCLOCK muss in der USERCNF.h auf true gesetzt sein. |
{f8} | - | wie {f7} aber mit führender Null. | Beispiel: 08:22 anstatt von 8:22 |
{p} | - | Displays wechseln. | |
{l#,#} | - | Zeichnet eine Linie von X,Y nach #,# | |
{r#,#} | - | Zeichnet ein Rechteck links oben X,Y nach rechts unten #,# | |
{z#} | - | Zeichnet einen Kreis mit Mittelpunkt und Radius # | |
{x#,#} | - | Zeichnet ein Pixel an #,# | |
{+} | - | Verwendet große Zeichen vom Datei-System. | Die Zeichen sind auf dem Datei-System im "amp"-Format. Beispiel: 3.amp |
{-} | - | Große Zeichen beenden. |
Hinweis: Wenn die Geometrie nicht standardmäßig ist, 128x32, MUSS der Text mit einem {gn}-Befehl beginnen, damit die richtige Geometrie ausgewählt wird.
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.
Stift | Verwendung | Hinweis |
---|---|---|
D6 & D7 | Symmetrisches DCC-Signal. | |
D5 | H-Brücke 1 aktivieren | Betrieb |
D8 | H-Brücke 2 aktivieren | Service |
Zur Verwendung des 3,3V-Pegels muss parallel zum R1 ein 470Ω-Widerstand hinzugefügt werden.
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 |
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.
Stift | Verwendung | H-Brücke | Bemerkung |
---|---|---|---|
D0 | Licht vorne | Kabine 1 | |
D3 | Licht hinten | Kabine 2 | |
D5 | Motor-Aktivierung | ENA | RC ESC4) 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.
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.
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.
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.
Temperatur, Luftdruck und Feuchtigkeit können als Text in XMLScript-Variablen verwendet werden.
Siehe: Dynamischer Text
Sound kann auf ESP32-Baugruppen durch Verwenden eines der DAC5)-Stifte (GPIO25 oder GPIO26) abgespielt werden.
Der USER_SOUND
in der USERCNF.h
muss auf true
gestellt sein:
// Sound #define USER_SOUND true
Unterstütztes RIFF-Wave-Format:
Beispiel:
<ac id="F9" cmd="play" param="/F9.wav" type="sound" iid="WIO" bus="38" addr="0" port="0"/>
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:
Der WIO-02 unerstützt zwei Typen von Schritt-Motoren: 4-Darht- und 3-Draht-Stepp-Treiber.
WIO-02 | 4-Draht | 3-Draht | Hinweis |
---|---|---|---|
32 | IN1 | CLK+ | |
13 | IN2 | DIR+ | |
2 | IN3 | ENABLE+ | |
15 | IN4 | - | |
25 | - | Hall/Reed-Kalibrier-Sensor | |
EP1-1 | GND | CLK-,DIR-,ENABLE- | |
- | VCC | 12 - 45V DC | Externe Stromversorgung |
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. |
Fahrstufen | 0-16777215 | Anzahl der Schritte für eine 360°-Drehung. Im Fall eines 28BYJ-48: 4096 Schritte. |
Korrektur | 0-255 | Zum Ausgleich des Getriebespiels. |
Schrittverzögerung | 0-255 | Schrittgeschwindigkeit Je höher der Wert umso geringer die Geschwindigkeit |
Offset | -32767…+32767 | Kalibrierungs-Korrektur in Schritten. |
Typ | wio | |
Drehgeschwindigkeit | 1-10 | Größe der Start- und Verzögerungsrampe |
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>
Schnittstelle | ||
Feld | Wert | Hinweis |
---|---|---|
Knoten-ID | WIO ID | |
Adresse | 1 | fest |
Parameter Ein | 0-16777215 | Anzahl der Schritte gegen den Uhrzeigersinn |
Parameter Aus | 0-16777215 | Anzahl der Schritte im Uhrzeigersinn |
Verzögerung | 0-255 | Schrittgeschwindigkeit Bei einem Wert >0 wird eine Anfahr- und Bremsrampe generiert. |
Typ | Motor |
Eine Kalibrierung ist nicht möglich!
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.
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 |
Der WIO kann auch als mobiler RFID-Leser und I/O verwendet werden.
Die WIO-Kennung muss in dem zweiten Adress-Feld eingestellt werden.
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.
Der Rückmelder muss in Rocrail eine eindeutige Adresse ungleich Null haben.
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.
Um Funktionen an den WIO zu übergeben, muss die Funktion mit Funktions-Adresse und FX eingestellt werden.
Die Firmware für IO-Type RIC funktioniert nicht ohne Pull-Up-Widerstände an den Tasten-Eingängen, einschließlich des Drehgebers.
Die veröffentlichte Hardware sind Prototypen, unvollständig und nicht zur Veröffentlichung bereit.
Es werden nur Original-GCA-Bausätze unterstützt.
Stift | Lolin | Wemos |
---|---|---|
D3 | - | Wird nicht starten, falls "Low". |
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.
Sicherstellen, dass zeitgleich mit dem WIO auch alle angeschlossenen I2C-Module eingeschaltet sind.
Arduino IDE 1.8.16 |
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
~/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
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%
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