arduino:wio-de
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
arduino:wio-de [2020/12/12 00:24] – [DCC-Generator] rainerk | arduino:wio-de [2024/03/20 15:04] (current) – [I/O Extender PCF8574] rjversluis | ||
---|---|---|---|
Line 1: | Line 1: | ||
[[: | [[: | ||
- | ======WIO - Fahrtregler - 32 I/O - LEDs - Servos - RFID - Displays - DCC====== | + | ======WIO - Firmware====== |
[[: | [[: | ||
[[: | [[: | ||
- | * [[arduino: | + | * [[arduino: |
* [[: | * [[: | ||
Line 9: | Line 9: | ||
\\ | \\ | ||
=====Einführung===== | =====Einführung===== | ||
- | Diese Lösung basiert | + | Dieses Projekt ist auf die Plattformen |
+ | 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: | Sie kann verwendet werden als: | ||
Line 31: | Line 34: | ||
====Unterstützte Boards==== | ====Unterstützte Boards==== | ||
- | * Lolin D1 Mini | + | * Lolin/ |
* Lolin D32 | * Lolin D32 | ||
* ESP32 Dev Module | * ESP32 Dev Module | ||
* ESP32 CAM Module | * ESP32 CAM Module | ||
- | ====Verwendete | + | ====Verwendete Stifte==== |
Stift-Zuordnung in '' | Stift-Zuordnung in '' | ||
* https:// | * https:// | ||
Line 54: | Line 57: | ||
\\ | \\ | ||
- | =====Arduino IDE 1.8.12===== | + | =====Arduino IDE===== |
- | :!: 1.8.11 funktioniert nicht! Wenn das BasicOTA-Beispiel nicht kompiliert wird ... \\ | + | |
- | * https:// | + | |
Die Arduino IDE mit folgenden Boards und Bibliotheken vorbereiten: | Die Arduino IDE mit folgenden Boards und Bibliotheken vorbereiten: | ||
====Boardverwalter===== | ====Boardverwalter===== | ||
Im Einstelldialog bei " | Im Einstelldialog bei " | ||
< | < | ||
- | https:// | + | https:// |
+ | https://raw.githubusercontent.com/espressif/ | ||
+ | https:// | ||
</ | </ | ||
{{ : | {{ : | ||
- | Und die ESP8266 Board-Bibliothek | + | Und die ESP8266 |
====Board-Auswahl==== | ====Board-Auswahl==== | ||
{{ : | {{ : | ||
Line 73: | Line 75: | ||
===ESP8266 & ESP32=== | ===ESP8266 & ESP32=== | ||
* ESP8266 (Board Manager) | * ESP8266 (Board Manager) | ||
- | * Wire (I2C) | + | * Adafruit NeoPixel |
- | * FastLED | + | |
* RotaryEncoder | * RotaryEncoder | ||
* MFRC522 (RC522) | * MFRC522 (RC522) | ||
* Servo | * Servo | ||
* ArduinoOTA | * ArduinoOTA | ||
- | * MCP_CAN | + | * mcp_can |
* https:// | * https:// | ||
* [[: | * [[: | ||
- | * NTPClient | + | * SparkFun APDS9960 RGB and Gesture Sensor \\ Zeile 198 in Arduino/ |
===ESP32=== | ===ESP32=== | ||
* ESP32 (Board Manager) | * ESP32 (Board Manager) | ||
Line 109: | Line 111: | ||
| Einfach die " | | Einfach die " | ||
\\ | \\ | ||
- | ====SPIFFS==== | + | ====FileSystem==== |
- | 2M SPIFFS-Größe auswählen: | + | 1M/2M FS-Größe auswählen: |
- | {{:arduino:arduino-esp8266-spiffs-2m.png?400}}\\ | + | {{: |
- | SPIFFS | + | LittleFS |
Installieren des Arduino-IDE-Plugin für das Hochladen von Daten: | Installieren des Arduino-IDE-Plugin für das Hochladen von Daten: | ||
* https:// | * https:// | ||
- | ====Dunkles Thema==== | ||
- | Wer ein Dunkles Thema für die Arduino-IDE wünscht: | ||
- | * https:// | ||
- | |||
- | \\ | ||
=====WIO-Sketch===== | =====WIO-Sketch===== | ||
- | | //Copyright (c) 2002-2020 Robert Jan Versluis, Rocrail.net// | + | | //Copyright (c) 2002-2022 Robert Jan Versluis, Rocrail.net// |
WIO ist Firmware zur Steuerung von Fahrtregler, | WIO ist Firmware zur Steuerung von Fahrtregler, | ||
- | * https:// | ||
* [[https:// | * [[https:// | ||
+ | * Klonen des Repository: (WIO mit Großbuchstaben!)\\ < | ||
* [[https:// | * [[https:// | ||
- | Der Quellcode ist öffentlich aber "nicht open source" | + | Der Quellcode ist öffentlich aber "nicht open source" |
\\ | \\ | ||
+ | __**WICHTIG**__ | ||
+ | ^ :!::!::!: Das Verzeichnis MUSS nach dem Entpacken des ZIP von " | ||
+ | Ohne Umbennen des Quellen-Hauptverzeichnisses sind die Quellen-Dateien in der Arduino-IDE unbrauchbar und ergeben nur eine Unmenge an Kompilierungsfehlern!\\ | ||
+ | \\ | ||
+ | (**Wichtig: | ||
+ | \\ | ||
+ | \\ | ||
====Binary==== | ====Binary==== | ||
- | {{ : | + | {{ : |
Das Espressif-Tool verwenden, um das WIO-Binary hochzuladen. | Das Espressif-Tool verwenden, um das WIO-Binary hochzuladen. | ||
- | * [[https:// | + | * [[https:// |
* [[https:// | * [[https:// | ||
Line 159: | Line 163: | ||
< | < | ||
------------------------------ | ------------------------------ | ||
- | revision=261 WIO 20200812a | + | 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 | ||
------------------------------ | ------------------------------ | ||
- | Settings: | + | SPIFFS total=1345kb used=0kb |
+ | file: Disco01.led size=110 | ||
+ | ------------------------------ | ||
+ | Configuration: | ||
------------------------------ | ------------------------------ | ||
ssid1= | ssid1= | ||
Line 168: | Line 180: | ||
pwd2= | pwd2= | ||
server= | server= | ||
- | port=8051 | + | name=[local] |
- | name=[wio104] | + | id=45 |
- | id=104 | + | io=i2cled |
- | io=i2cdcc (master) | + | i2c=ooooooooiiiiiiii |
- | iostate=00 00 00 00 | + | |
- | i2c=oooooooobbbbbbbboooooooobbbbbbbb | + | |
steps=64 | steps=64 | ||
sleeptimer=5 | sleeptimer=5 | ||
pulse=5 | pulse=5 | ||
pwmsize=0 | pwmsize=0 | ||
- | options=0x00 0x01 0x18 | + | options=0xC2 0x01 0x00 0x00 |
booster=0 | booster=0 | ||
board=1 | board=1 | ||
- | display=0 | + | display=3 |
railcom=0 | railcom=0 | ||
id12=0 | id12=0 | ||
depart=0 | depart=0 | ||
- | stepper=0 3w=0 | + | stepper=0 |
- | canprot=1(1) | + | canprot=0(0) |
- | canio=1 | + | canio=0 |
canusb=0 | canusb=0 | ||
trace=0 | trace=0 | ||
- | SPIFFS total=1345kb used=0kb | ||
- | |||
- | Change settings by typing: | ||
------------------------------ | ------------------------------ | ||
- | *ssid=< | ||
- | *pwd=< | ||
- | *server=< | ||
- | *port=< | ||
- | *name=< | ||
- | *id=< | ||
- | *io=< | ||
- | *i2c=< | ||
- | *steps=< | ||
- | *pulse=< | ||
- | *pwm=< | ||
- | *boost=< | ||
- | *dccslave=< | ||
- | *board=< | ||
- | *display=< | ||
- | *trace=< | ||
- | *canprot=< | ||
- | *canio=< | ||
</ | </ | ||
Line 227: | Line 216: | ||
- Wenn RailCom aktiviert wurde, schaltet die Baudrate automatisch auf 250000 und der serielle Monitor kann "nur lesen" | - 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" | - Wenn ID12 aktiviert wurde, schaltet die Baudrate automatisch auf 9600 bit/s und der serielle Monitor kann "nur lesen" | ||
+ | |||
+ | Grundsätzliche Verbindungs-Einstellung kann auch über die Registerkarte __**[[: | ||
|< >| | |< >| | ||
Line 232: | Line 223: | ||
| ? | 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=< | + | | *sod | Erzwingt Start of Day |*scan | List all available WiFi APs | |
- | | *pwd=< | + | | *scan | Listet alle verfügbaren WiFi APs | |
- | | *ssid2=< | + | | *ssid1=<value> | Setzt die WiFi-AP SSID. | - | Primäre SSID (max. 30 Zeichen) |
- | | *pwd2=< | + | | *pwd1=< |
- | | *server=< | + | | *ssid2=< |
- | | *port=< | + | | *pwd2=< |
+ | | *server=< | ||
+ | | *autoserver=< | ||
| *name=< | | *name=< | ||
| *id=< | | *id=< | ||
Line 261: | Line 254: | ||
| b | Block: Eingang mit 2 Sekunden Aus-Verzögerung. | | | b | Block: Eingang mit 2 Sekunden Aus-Verzögerung. | | ||
| p | Pulse: Ausgang mit autom. Aus. | | | 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-Konfiguration=== | ===IO-Typ-Konfiguration=== | ||
Line 267: | Line 263: | ||
| throttle | - | - | - | - | - | - | | | throttle | - | - | - | - | - | - | | ||
| i2cled | JA | JA | Nein | Nein | JA | Nein | | | i2cled | JA | JA | Nein | Nein | JA | Nein | | ||
- | | i2cservo | JA | Nein | JA| Nein | JA| Nein | | + | | i2cservo | JA | Nein | JA | Nein | JA | Nein | |
- | | i2crfid | JA| Nein | Nein | JA | JA | Nein | | + | | i2crfid | JA | Nein | Nein | JA | JA | Nein | |
| i2cdcc | JA | Nein | Nein | Nein | JA | JA | | | 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: " | ||
- | Die WIO-APs werden aufgelistet und können ausgewählt werden:\\ | ||
- | |{{: | ||
- | | Netzwerkauswahl | ||
- | Das AP-Standard-**Passwort** ist " | ||
- | Nach dem Herstellen der Verbindung zum WIO kann die Grundeinstellung mit einem WEB-Browser unter folgender URL geändert werden: | ||
- | < | ||
- | http:// | ||
- | </ | ||
- | Nach **Submit** versucht der WIO automatisch, | ||
- | Der AP wird gestoppt nach: | ||
- | * einem **Submit**. | ||
- | * 2 Minuten Leerlauf. | ||
\\ | \\ | ||
====OTA Updating==== | ====OTA Updating==== | ||
Line 301: | Line 279: | ||
\\ | \\ | ||
+ | ====OTA von Grund auf neu==== | ||
+ | * __**[[arduino: | ||
=====RIC - Fahrtregler===== | =====RIC - Fahrtregler===== | ||
| **Hinweis: | | **Hinweis: | ||
Line 357: | Line 336: | ||
Der Analog-Eingang prüft die Batterie-Spannung.\\ | 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.\\ | 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 | + | Die LED beginnt |
===Servererkennung=== | ===Servererkennung=== | ||
- | | UDP-Multicast entleert den Heap-Speicherplatz und ist daher deaktiviert. | + | Wenn beim Rocrail-Server R2RNet auf Multicast-Adresse |
- | <del>Wenn beim Rocrail-Server R2RNet auf Multicast-Adresse | + | |
\\ | \\ | ||
Line 366: | Line 344: | ||
* Verbindet direkt mit dem Rocrail-Server-Client-Port 8051. Siehe **[[https:// | * Verbindet direkt mit dem Rocrail-Server-Client-Port 8051. Siehe **[[https:// | ||
* Wiederherstellung von WiFi- und Server-Verbindung. | * Wiederherstellung von WiFi- und Server-Verbindung. | ||
- | * 32 Digital-I/ | + | * 32 Digital-I/O, MCP23017, kompatibel mit allen GCA-Schnittstellen. |
* Eingang | * Eingang | ||
* Ausgang | * Ausgang | ||
Line 385: | Line 363: | ||
* Ausgangs-/ | * Ausgangs-/ | ||
* 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.) | ||
+ | \\ | ||
+ | ====I/O Extender PCF8574P==== | ||
+ | Bis zu 4 Stück I/ | ||
+ | - 0x20 und 0x21 sollten nicht als I2C-Slave-IDs verfügbar sein. (Keine MCP23017' | ||
+ | - Die Slave-ID' | ||
+ | **Achtung: | ||
- | \\ | + | \\ |
====Adressierung==== | ====Adressierung==== | ||
|< >| | |< >| | ||
Line 406: | Line 390: | ||
Für Weichen mit mehr als einem Port wird die nächste Adresse für den Weichenbefehl verwendet. \\ | 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. \\ | 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 | + | Beide I2C-Ausgänge |
Mögliche Hardware: | Mögliche Hardware: | ||
* **[[: | * **[[: | ||
Line 434: | Line 418: | ||
- Schnittstelle -> Adresse setzt die LED-Nummer | - Schnittstelle -> Adresse setzt die LED-Nummer | ||
- Schnittstelle -> Port-Typ: LED | - Schnittstelle -> Port-Typ: LED | ||
- | - Schnittstelle -> Steuerungs-Typ: | + | - Schnittstelle -> Steuerungs-Typ: |
- | - Helligkeit | + | - Schnittstelle -> Helligkeit |
+ | - Schnittstelle -> Dimmen (0…15) setzt die Dimm-Schritte (Überblenden). Ein Wert von Null deaktiviert Dimmen. | ||
Die Begriffs-Werte sind mit __**[[: | Die Begriffs-Werte sind mit __**[[: | ||
+ | ====Signale==== | ||
+ | - Schnittstelle -> WIO-Kennung: | ||
+ | - Schnittstelle -> Adresse setzt den LED-Offset | ||
+ | - Schnittstelle -> Port-Typ: Ausgang | ||
+ | - Schnittstelle -> Steuerungs-Typ: | ||
+ | Die Begriffs-Werte sind mit __**[[: | ||
+ | \\ | ||
+ | |||
+ | ====Charlieplexing Signal Support==== | ||
+ | |||
+ | Nur verfügbar auf [[: | ||
+ | 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 | ||
+ | |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 | ||
+ | |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. \\ | ||
+ | {{: | ||
+ | |||
+ | \\ | ||
====Servos==== | ====Servos==== | ||
- | {{ : | + | {{ : |
Die Adressierung ist die gleiche, wie bei normalen Ausgängen.\\ | Die Adressierung ist die gleiche, wie bei normalen Ausgängen.\\ | ||
- | |< >| | + | ^ Steuerung ^ Ausgang ^ Weiche |
- | ^ Steuerung ^ Ausgang ^ Weiche ^ Bereich ^ | + | | WIO | Schnittstellenkennung = " |
- | | WIO | Schnittstellenkennung = " | + | | WIO-Kennung | Knoten-ID | Knoten-ID | Knoten-ID | Knoten-ID | 1...255 | |
- | | WIO-Kennung | Node ID (Bus) | Node ID (Bus) | 1...255 | | + | | Servo-Port |
- | | Servo-Port | Adresse | Adresse | 1...4 | | + | | Zusätzliche Option | - | Einzel-Ausgang ON | - | - | |
- | | Zusätzliche Option | - | Einzel-Ausgang ON | - | | + | | Steuerung | - | - | Begriffs-Nummern | - | - | |
- | | Position 1 | Parameter Ein | Parameter | 0...180° | | + | | Position 1 | Parameter Ein | Parameter |
- | | Position 2 | Parameter Aus | Wert | 0...180° | | + | | Position 2 | Parameter Aus | Wert | Grün Begriff 1 **((Signal-Dialog, |
- | | Geschwindigkeit | Verzögerung | Schaltzeit | 1...10 | | + | | Position | - | - | - | Decoder Gleisnummer | PWM 500...2500 ²| |
- | | Ziel | Port Typ " | + | | Geschwindigkeit | Verzögerung | Schaltzeit |
+ | | Ziel | Port Typ " | ||
+ | ² Achtung zu hohe oder niedrige Werte können den Servo beschädigen mit PWM 1500 = 0° beginnen. | ||
+ | * **Hinweis: | ||
\\ | \\ | ||
====RFID==== | ====RFID==== | ||
{{ : | {{ : | ||
| // | | // | ||
+ | Mit WIO Type I/O16 nicht möglich, hier bitte ID-12LA verwenden. | ||
- | - Zwei [[https:// | + | - Zwei RFID RC522-Leser werden unterstützt. |
- Es werden 5 zusätzliche Ports benötigt; Servos sind parallel nicht möglich. | - Es werden 5 zusätzliche Ports benötigt; Servos sind parallel nicht möglich. | ||
- Melde-Adressen sind 100 und 101. (In Rocrail 101 und 102.) | - Melde-Adressen sind 100 und 101. (In Rocrail 101 und 102.) | ||
- Automatisches Rückmelder-Aus-Ereignis nach 1500ms. (Bis dahin muss es vom Server bestätigt sein.) | - Automatisches Rückmelder-Aus-Ereignis nach 1500ms. (Bis dahin muss es vom Server bestätigt sein.) | ||
- Viermaliges Wiederholen bis zur Bestätigung, | - Viermaliges Wiederholen bis zur Bestätigung, | ||
+ | |||
+ | \\ | ||
+ | |||
|< >| | |< >| | ||
- | ^ Signal ^ D1 Mini ^ RFID RC522 ^ | + | ^ Signal ^ D1 Mini 8266 / Lolin D32 ^ RFID RC522 ^ |
| Slave Select 1 | D3 | 1 (SDA) Leser 1 | | | Slave Select 1 | D3 | 1 (SDA) Leser 1 | | ||
| Slave Select 2 | D0 | 1 (SDA) Leser 2 | | | Slave Select 2 | D0 | 1 (SDA) Leser 2 | | ||
Line 470: | Line 507: | ||
| MOSI | D7 | 3 (MOSI) | | | MOSI | D7 | 3 (MOSI) | | ||
| MISO | D6 | 4 (MISO) | | | MISO | D6 | 4 (MISO) | | ||
+ | \\ | ||
+ | |||
+ | ====ID-12LA==== | ||
+ | {{ : | ||
+ | Optional kann ein RFID-Leser vom Typ [[http:// | ||
+ | Der Tag wird als **[[: | ||
+ | Die **[[: | ||
+ | __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.\\ | ||
\\ | \\ | ||
Line 488: | Line 535: | ||
| D8 | LEDs (FastLED) | | | D8 | LEDs (FastLED) | | ||
--></ | --></ | ||
+ | |||
+ | ====Stifte S88==== | ||
+ | |< >| | ||
+ | ^ ESP8266 ^ ESP32 ^ PicoW ^ Verwendung ^ | ||
+ | | D0 | 12 | 10 | PS | | ||
+ | | D5 | 17 | 11 | Reset | | ||
+ | | D6 | 26 | 12 | Takt | | ||
+ | | D7 | 27 | 13 | Daten | | ||
+ | |||
+ | \\ | ||
+ | |||
====Display SSD1306/ | ====Display SSD1306/ | ||
- | {{: | + | |{{: |
+ | | Beispiel. | ||
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.\\ | ||
Formatierter Text ist mit **[[: | Formatierter Text ist mit **[[: | ||
Line 498: | Line 557: | ||
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 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.\\ | Der Adress-Wert wird nicht verwendet.\\ | ||
+ | ===Multiplexing=== | ||
+ | Bis zu 8 Displays können mit **[[: | ||
===Unterstützte Formatierung=== | ===Unterstützte Formatierung=== | ||
Formatierungsbefehle sind in geschweiften Klammern eingeschlossen. | Formatierungsbefehle sind in geschweiften Klammern eingeschlossen. | ||
Line 507: | Line 568: | ||
^ Befehl ^ Parameter ^ Beschreibung ^ Hinweis ^ | ^ Befehl ^ Parameter ^ Beschreibung ^ Hinweis ^ | ||
| {B#} | # | | {B#} | # | ||
- | | {B'// | + | | {B'// |
| 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. | | ||
| {F#} | #=0-2 | Font-Auswahl. 0=7x5 1=6x5w 2=6x5n | Font 5x5 wird nicht unterstützt, | | {F#} | #=0-2 | Font-Auswahl. 0=7x5 1=6x5w 2=6x5n | Font 5x5 wird nicht unterstützt, | ||
| {H#} | #=0-255 | Setzt den Display-Kontrast. | | | {H#} | #=0-255 | Setzt den Display-Kontrast. | | ||
| {I#} | #=0-1 | Invertiert das Display. 0=normal 1=invertiert | | | {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. | | + | | {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 | |
- | | {R#} | #=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. | | ||
| {X#} | #=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. | | ||
| {Y#} | #=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 ^ | ||
- | | {c#} | #=0-16 | Zeichnet eine Analog-Uhr mit dem angegebenen Radius an der aktuellen Position. | | + | | {c#} | #=1-16 | Zeichnet eine Analog-Uhr mit dem angegebenen Radius an der aktuellen Position. | Nur eine (Modellzeit)-Uhr je Display wird aktualisiert. | |
- | | {g#} | # | + | | {g#} | # |
| {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} | | | {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#} | #=1-2 | 7-Segment-Modellzeituhr. |
+ | | {f7} | - | Benutzerdefinierte Modellzeituhr. Benötigte Dateien: '' | ||
+ | | {f8} | - | wie {f7} aber mit führender Null. | Beispiel: 08:22 anstatt von 8:22| | ||
| {p} | - | Displays wechseln. | | | {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 #,# | | ||
+ | | {+} | - | [[: | ||
+ | | {-} | - | Große Zeichen beenden. | | ||
+ | |||
**Hinweis: | **Hinweis: | ||
\\ | \\ | ||
+ | |||
====7-Segment Display HT16K33 ==== | ====7-Segment Display HT16K33 ==== | ||
{{ : | {{ : | ||
Line 583: | Line 654: | ||
^ Stift ^ Verwendung ^ H-Brücke ^ Bemerkung ^ | ^ Stift ^ Verwendung ^ H-Brücke ^ Bemerkung ^ | ||
| D0 | Licht vorne | | Kabine 1 | | | D0 | Licht vorne | | Kabine 1 | | ||
- | | D0 | Licht hinten | | Kabine 2 | | + | | D3 | 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 | | | 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 | | | | D6 | PWM für Vorwärts-Richtung | IN 1 | | | ||
Line 596: | Line 667: | ||
Ein **E**lectronic **S**peed **C**ontroller, | Ein **E**lectronic **S**peed **C**ontroller, | ||
Hinweis: __**Nur Masse und PWM anschliessen, | Hinweis: __**Nur Masse und PWM anschliessen, | ||
- | |||
- | ====ID-12LA==== | ||
- | {{ : | ||
- | Optional kann ein RFID-Leser vom Typ [[http:// | ||
- | Der Tag wird als **[[: | ||
- | Die **[[: | ||
- | __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.\\ | ||
\\ | \\ | ||
Line 634: | Line 695: | ||
====Sound==== | ====Sound==== | ||
Sound kann auf ESP32-Baugruppen durch Verwenden eines der DAC((**D**igital-**A**nalog-**C**onverter))-Stifte (GPIO25 oder GPIO26) abgespielt werden.\\ | Sound kann auf ESP32-Baugruppen durch Verwenden eines der DAC((**D**igital-**A**nalog-**C**onverter))-Stifte (GPIO25 oder GPIO26) abgespielt werden.\\ | ||
+ | Der '' | ||
+ | < | ||
+ | // Sound | ||
+ | #define USER_SOUND | ||
+ | </ | ||
+ | |||
Unterstütztes [[https:// | Unterstütztes [[https:// | ||
* PCM-Typ | * PCM-Typ | ||
Line 659: | Line 726: | ||
|< >| | |< >| | ||
^ WIO-02 ^ 4-Draht ^ 3-Draht ^ Hinweis ^ | ^ WIO-02 ^ 4-Draht ^ 3-Draht ^ Hinweis ^ | ||
- | | Servo 5 | IN1 | CLK+ | | + | | 32 | IN1 | CLK+ | |
- | | Servo 6 | IN2 | DIR+ | | + | | 13 | IN2 | DIR+ | |
- | | Servo 7 | IN3 | ENABLE+ | | + | | 2 | IN3 | ENABLE+ | |
- | | Servo 8 | IN4 | - | | + | | 15 | IN4 | - | |
- | | DA1 | - | | Hall/ | + | | 25 | - | | Hall/ |
| EP1-1 | GND | CLK-, | | EP1-1 | GND | CLK-, | ||
| - | VCC | 12 - 45V DC | Externe Stromversorgung | | | - | VCC | 12 - 45V DC | Externe Stromversorgung | | ||
Line 674: | Line 741: | ||
| Adresse | 1 | //fest// | | | Adresse | 1 | //fest// | | ||
| Beleuchtungen | | Beleuchtungen | ||
+ | | 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 | 1-10 | Größe der Start- und Verzögerungsrampe | | ||
+ | | Offset | -32767...+32767 | Kalibrierungs-Korrektur in Schritten. | | ||
| Typ | wio | | | Typ | wio | | ||
- | | Dekoderschritte | + | | Drehgeschwindigkeit |
//Die Anzahl der Schritte für eine Drehscheiben-Drehung wird zur Berechnung des kurzen Weges benötigt.// | //Die Anzahl der Schritte für eine Drehscheiben-Drehung wird zur Berechnung des kurzen Weges benötigt.// | ||
\\ | \\ | ||
Line 734: | Line 805: | ||
< | < | ||
Die gemeldete RFID muss zu einer __**[[: | Die gemeldete RFID muss zu einer __**[[: | ||
- | Die Adresse dieses | + | Der Rückmelder muss in Rocrail eine eindeutige Adresse ungleich |
Die Kennung muss in dieser __**[[: | Die Kennung muss in dieser __**[[: | ||
Für das Kopieren dieser Kennung können die Rocrail-Traces oder der __**[[: | Für das Kopieren dieser Kennung können die Rocrail-Traces oder der __**[[: | ||
Line 769: | Line 840: | ||
=== Lösung === | === Lösung === | ||
Sicherstellen, | Sicherstellen, | ||
+ | |||
+ | ====macOS "Big Sur" | ||
+ | ===Upload tool ESP8266=== | ||
+ | * https:// | ||
+ | |||
+ | ===Upload tool ESP32=== | ||
+ | * https:// | ||
+ | |||
+ | |||
+ | |||
+ | =====Programmieren WIO-Binary mit Arduino IDE-Tools===== | ||
+ | |< >| | ||
+ | | Arduino IDE 1.8.16 | ||
+ | |||
+ | ====macOS "Big Sur" | ||
+ | ===ESP8266=== | ||
+ | < | ||
+ | export WIOBIN=~/ | ||
+ | |||
+ | / | ||
+ | / | ||
+ | --chip esp8266 --port / | ||
+ | </ | ||
+ | ===ESP32=== | ||
+ | < | ||
+ | ~/ | ||
+ | --chip esp32 \ | ||
+ | --port / | ||
+ | --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 | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ====Windows 10==== | ||
+ | < | ||
+ | set WIOBIN=\Users\%USERNAME%\Downloads\WIO.ino.d1_mini.bin | ||
+ | |||
+ | C: | ||
+ | </ | ||
+ | |||
+ | ====PiOS-64 " | ||
+ | < | ||
+ | export WIOBIN=/ | ||
+ | |||
+ | / | ||
+ | </ | ||
+ | |||
+ | |||
arduino/wio-de.1607729078.txt.gz · Last modified: 2020/12/12 00:24 by rainerk