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/10/12 00:08]
rainerk [RICi - Fahrtregler]
arduino:wio-de [2019/10/20 20:31] (current)
rainerk
Line 1: Line 1:
-======W I O - WiFi Fahrtregler - 32 I/O - LEDs - Servos - RFID======+======W I O - WiFi Fahrtregler - 32 I/O - LEDs - Servos - RFID -  OLED - 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]]
Line 11: Line 11:
 =====Einführung===== =====Einführung=====
 Diese Lösung basiert auf einem LOLIN D1 Mini. (ESP8266)\\ Diese Lösung basiert auf einem LOLIN D1 Mini. (ESP8266)\\
-Sie kann als Fahrtregler ​oder 32 I/O zusätzlich mit LED-Steuerung WS2812 ​oder 4 Servos ​oder 2 RC522-RFID-Lesern verwendet werden.\\+Sie kann ferwendet werden für: 
 +  - Drahtloser ​Fahrtregler 
 +  - 32 I/O  
 +  - 2 Displays 
 +  - LED-Steuerung WS2812 
 +  - Vier Servos 
 +  - 2 RC522-Leser 
 +  ​DCC-Generator
  
  \\  \\
Line 27: Line 34:
 ''​LOLIN(WEMOS)D1 R2 & mini''​\\ ''​LOLIN(WEMOS)D1 R2 & mini''​\\
 ====Bibliotheken==== ====Bibliotheken====
-  * ESP8266WiFi+  * ESP8266WiFi ​(Board Manager)
   * Wire   * Wire
   * FastLED   * FastLED
   * RotaryEncoder   * RotaryEncoder
-  * MFRC522+  * MFRC522 ​​1.4.5
   * Servo   * Servo
  
Line 55: Line 62:
 Global variables use 33104 bytes (40%) of dynamic memory, leaving 48816 bytes for local variables. Maximum is 81920 bytes. Global variables use 33104 bytes (40%) of dynamic memory, leaving 48816 bytes for local variables. Maximum is 81920 bytes.
 </​code>​ </​code>​
 +
 +^ 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 [[#​user_configuration|USERCNF.h]]:​ Das Einrichten des WiFi kann mit dem Arduino Serial Monitor 9600bps erfolgen oder durch modifizieren der [[#​user_configuration|USERCNF.h]]:​
Line 79: Line 88:
 steps=127 steps=127
 pulse=5 pulse=5
 +display=00
 RSSI=-62 RSSI=-62
  
Line 89: Line 99:
 *name=<​Node name> *name=<​Node name>
 *id=<​Node number> *id=<​Node number>
-*io=<​type>​ <​throttle>​ or <​i2cled>​ or <​i2cservo>>​ or <​i2crfid>​+*io=<​type>​ <​throttle>​ or <​i2cled>​ or <​i2cservo>>​ or <i2crfid> or <i2cdcc>
 *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=<​​geometry>​​ 0=96x16 1=128x32 2=128x64
 </​code>​ </​code>​
  
Line 114: Line 125:
 | *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 |
-**Note:​** ​ Den <​value>​ (Wert) entsprechend der lokalen Bedingungen ersetzen.\\+| *display=<​value>​ | Standard-Display-Geometrie:​ 0=96x16 1=128x32 2=128x64 | 00 | 
 +**Note:​** ​ Den <​value>​ (Wert) entsprechend der lokalen Bedingungen ersetzen. 
 +\\ 
 +===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  |
  
 + \\
 =====RICi - Fahrtregler===== =====RICi - Fahrtregler=====
 ** Hinweis: ** // RICi steuert Loks nach Adresse, nicht nach Kennung. Es wird also die erste in der Liste verwendet, wenn mehrere Loks dieselbe Adresse haben .// \\ ** Hinweis: ** // RICi steuert Loks nach Adresse, nicht nach Kennung. Es wird also die erste in der Liste verwendet, wenn mehrere Loks dieselbe Adresse haben .// \\
Line 225: Line 247:
 ====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 ^ Bereich ^ ^ Steuerung ^ Ausgang ^ Weiche ^ Bereich ^
 | WIO | Schnittstellenkennung="​WIO"​ | Schnittstellenkennung="​WIO"​ | - | | WIO | Schnittstellenkennung="​WIO"​ | Schnittstellenkennung="​WIO"​ | - |
Line 269: Line 292:
 | D8 | LEDs (FastLED) | | D8 | LEDs (FastLED) |
 --></​html>​​ --></​html>​​
 +
 +====Display SSD1306====
 +{{:​arduino:​wio-oled-128x32.jpg?​400}}\\
 +An I2C können zwei Displays vom Typ SSD1306 mit den I2C-Adressen 0x3C und 0x3D angeschlossen werden.\\
 +Formatierter Text ist mit **[[:​rocnet:​rocdisplay-en#​text_format|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:​
 +<​code>​
 +{g1}{E}{L0}{X0}Hello World!{P}
 +</​code>​
 +|< >|
 +^ Befehl ^ Parameter ^ Beschreibung ^ Hinweis ^
 +| {Bn} | n=0-19 | Zeichnet ein Bitmap an der aktuellen Position. |
 +| E | - | Lösche Display-Puffer. Ein zusätzliches {P} wird für das Löschen des Display benötigt. |
 +| {Fn} | n=0-1 | Font-Auswahl. 0=normal 1=schmal |
 +| {Hn} | n=0-255 | Setzt den Display-Kontrast. |
 +| {In} | n=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. |
 +| P | - | Puffer zum Display kopieren |
 +| {Rn} | n=0,2 | Legt die Drehung der Anzeige fest. 0=0° 2=180° |
 +| {?V} | - | Zeige Firmware-Version. |
 +| {Xn} | n=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. |
 +^ Neue Befehle ^ Parameter ^ Beschreibung ^
 +| {cn} | n=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. |
 +| {i} | - | Invertierten Text umschalten. |
 +**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.
 +|< >|
 +^ Nummer ^ Beschreibung ^
 +| 13 | Nederlandse Spoorwegen (NS) |
 + \\
 +
 +====DCC-Generator====
 +Der WIO unterstützt folgende DCC-Pakete: (In Arbeit ...)
 +  * Lok-Geschwindigkeit und -Fahrtrichtung.
 +  * Lok-Funktionen 0 - 28.
 +  * ...
 +===Stifte DCC===
 +|< >|
 +^ Stift ^ Verwendung ^
 +| D0 & D3 | Symmetrisches DCC-Signal. |
 +===ORD3===
 +Zur Verwendung des 3,3V-Pegels muss parallel zum R1 ein 470Ω-Widerstand hinzugefügt werden.\\
 +===Mobil-Adressierung===
 +|< >|
 +^ Schnittstellenkennung | WIO | Bemerkung |
 +^ Bus | WIO-Kennung |
 +^ Adresse | DCC-Decoder-Adresse. | Adressen > 99 werden als lange DCC-Adressen berücksichtigt. |
 +^ Fahrstufen | 128 |
 +
 +
  \\  \\
 =====Mobil===== =====Mobil=====
arduino/wio-de.1570831726.txt.gz · Last modified: 2019/10/12 00:08 by rainerk