ARDUINO IDE für DCC-Controller eingerichtet 

ARDUINO IDE-Logo

Arduino IDE-Setup für DCC-Controller

Schritt 1. Einrichtung der IDE-Umgebung. Laden Sie die ESP-Boards.

Wenn Sie die Arduino IDE zum ersten Mal installieren, unterstützt sie nur ARM-basierte Boards. Wir müssen Unterstützung für ESP-basierte Boards hinzufügen. Navigieren Sie zu File… Vorlieben

Einrichtung der IDE-Umgebung. Laden Sie die ESP-Boards
Einrichtung der IDE-Umgebung. Laden Sie die ESP-Boards

Geben Sie diese Zeile unten in den Manager für zusätzliche Boards ein URLS-Box. Beachten Sie, dass es Unterstriche gibt, keine Leerzeichen.  http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
Aktivieren Sie auch das Kontrollkästchen Verbose während der Kompilierung anzeigen. Dies gibt uns mehr Informationen, wenn während der Kompilierung etwas fehlschlägt.

Beachten Sie, dass die obige Zeile Unterstützung sowohl für esp8266-Geräte als auch für das neuere esp32 hinzufügt. Die beiden JSON-Strings werden durch ein Komma getrennt.
Wählen Sie nun das Brett aus Version 2.7.4 vom Vorstand

Arduino IDE-Setup für DCC-Controller

Installieren Sie Version 2.7.4. Das funktioniert. Version 3.0.0 und höher funktioniert für dieses Projekt nicht. Wählen Sie nun im Menü Extras das Board aus, das Sie verwenden möchten. Für dieses Projekt wird es entweder eine nodeMCU 1.0 oder ein WeMos D1R1 sein

Arduino IDE-Setup für DCC-Controller

Hier wählen wir das WeMos D1R1 aus. (ändere dies vom Nano)

Schritt 2. Einrichtung der IDE-Umgebung. Laden Sie das ESP8266 Sketch Data Upload-Add-In.

Wir müssen dieses Add-In laden, damit wir HTML-Seiten und andere veröffentlichen (einfügen) können files auf dem ESP-Gerät. Diese befinden sich im Datenordner innerhalb Ihres Projektordners https://github.com/esp8266/arduino-esp8266fs-plugin/releases
Gehen Sie zum URL oben und laden Sie ESP8266FS-0.5.0.zip herunter.
Erstellen Sie einen Tools-Ordner in Ihrem Arduino-Ordner. Entpacken Sie den Inhalt der Zip-Datei file in diesen Tools-Ordner. Sie sollten damit enden;

Arduino IDE-Setup für DCC-Controller

Und eine neue Menüoption erscheint unter Extras…

Arduino IDE-Setup für DCC-Controller

Wenn Sie diese Menüoption aufrufen, lädt die IDE den Inhalt des Datenordners auf das Board hoch. Ok, das ist die IDE-Umgebung, die für die allgemeine ESP8266-Nutzung eingerichtet ist. Jetzt müssen wir einige Bibliotheken für dieses spezielle Projekt zum Arduino/Libraries-Ordner hinzufügen.

Schritt 3. Bibliotheken herunterladen und manuell installieren.

Wir müssen diese Bibliotheken von Github herunterladen; https://github.com/me-no-dev/ESPAsyncTCP

Arduino IDE-Setup für DCC-Controller

Klicken Sie auf Code und laden Sie dann die ZIP-Datei herunter. Es wird in Ihren Download-Ordner verschoben. Gehen Sie zu Downloads, suchen Sie die Zip-Datei, öffnen Sie sie und ziehen Sie den Inhaltsordner „ESPAsyncTCP“ nach Arduino/libraries.
Wenn der Ordnername mit „-master“ endet, benennen Sie ihn um, um „-master“ am Ende zu entfernen.
dh von Downloads

Arduino IDE-Setup für DCC-Controller

Öffnen Sie die .zip-Datei für ESPAsyncTCP-master und ziehen Sie den ESPAsyncTCP-master-Ordner daraus nach Arduino/Libraries

Arduino IDE-Setup für DCC-Controller

Notiz: Arduino/Bibliotheken können die .zip-Version nicht verwenden, Sie müssen den gewünschten Ordner entpacken (ziehen). Wir brauchen auch https://github.com/fmalpartida/New-LiquidCrystal
Laden Sie die ZIP-Datei herunter, ziehen Sie den Inhalt auf Arduino/libraries und entfernen Sie die Endung -master.

Und schließlich brauchen wir ArduinoJson-5.13.5.zip aus dem Link unten https://www.arduinolibraries.info/libraries/arduino-json

Laden Sie den ZIP-Inhalt herunter und ziehen Sie ihn dann in Arduino/libraries

Schritt 4. Installieren Sie ein paar weitere Bibliotheken mit dem Arduino Library Manager.

Wir benötigen zwei weitere Bibliotheken, und diese stammen aus dem Arduino Library Manager, der eine Auswahl an integrierten Bibliotheken enthält. Gehen Sie zu Extras… Bibliotheken verwalten…

Arduino IDE-Setup für DCC-Controller
Arduino IDE-Setup für DCC-Controller

Verwenden Sie Version 1.0.3 von Adafruit INA219. Das funktioniert. 

Und auch

Arduino IDE-Setup für DCC-Controller

Verwenden Sie Version 2.1.0 von WebSteckdosen von Markus Sattler, diese sind getestet und funktionieren. Spätere Versionen habe ich nicht getestet.
OK, das sind also alle Bibliotheken (auch bekannt als Referenzen), die die IDE benötigt, um dieses Projekt zu kompilieren.

Schritt 5. Laden Sie das ESP_DCC_Controller-Projekt von GitHub herunter und öffnen Sie es in der IDE.

Gehen Sie zu GitHub und laden Sie es herunter https://github.com/computski/ESP_DCC_controller

Klicken Sie auf die grüne Schaltfläche „Code“ und laden Sie die ZIP-Datei herunter. Öffnen Sie dann den Reißverschluss file und verschieben Sie den Inhalt in den Arduino-Ordner. Benennen Sie den Ordner um, um die Endung „-main“ im Ordnernamen zu entfernen. Sie sollten am Ende einen Ordner ESP_ DCC_ Controller in Ihrem Arduino-Ordner haben. Es enthält eine .INO file, verschiedene .H und .CPP files und einen Datenordner.

Arduino IDE-Setup für DCC-Controller

Doppelklicken Sie auf die .INO file um das Projekt in der Arduino IDE zu öffnen.
Bevor wir auf Kompilieren klicken, müssen wir nach Ihren Anforderungen konfigurieren …

Schritt 6. Legen Sie Ihre Anforderungen in Global fest. h

Dieses Projekt kann die nodeMCU oder den D1R1 von WeMo unterstützen und es kann auch eine Reihe verschiedener Optionen für Leistungsplatinen (Motorschild) unterstützen, außerdem kann es Geräte auf einem I2C-Bus wie Strommonitor, LCD-Anzeige und Tastatur unterstützen. Und schließlich kann es auch ein Jogwheel (Drehgeber) unterstützen. Der einfachste Aufbau, den Sie machen können, ist ein D1R1- und L298-Motorschild von WeMo.
Beachten Sie, dass der einfachste Weg, eine Option zu deaktivieren, darin besteht, ein kleines n vor ihrem Namen in der #define-Anweisung hinzuzufügen.
#define nNODEMCU_OPTION3
#define nBOARD_ESP12_SHIELD
#definieren WEMOS_D1R1_AND_L298_SHIELD
Zum Beispielample, oben wurde NODEMCU_OPTION3 mit n deaktiviert, das gleiche für nBOARD_ESP12_SHIELD. WEMOS_D1R1_AND_L298_SHIELD ist die aktive Option, und dies bewirkt, dass der Compiler die unten aufgeführte Konfiguration dafür verwendet.

So gehen Sie durch diese Konfiguration: 

#elif definiert (WEMOS_D1R1_AND_L298_SHIELD)

/*Wemos D1-R1 gestapelt mit L298-Schild, beachten Sie, dass das D1-R2 ein neueres Modell mit anderen Pinbelegungen ist*/
/*Durchtrennen Sie die BRAKE-Jumper auf dem L298-Schild. Diese sind nicht erforderlich und wir wollen nicht, dass sie von den I2C-Pins angesteuert werden, da dies das DCC-Signal beschädigen würde.

Das Board hat einen Arduino-Formfaktor, die Pins sind wie folgt
D0 GPIO3 RX
D1 GPIO1-TX
D2 GPIO16 Heartbeat- und Jogwheel-Taster (aktiv hi)
D3 GPIO5 DCC aktivieren (pwm)
D4 GPIO4 Jog1
D5 GPIO14 DCC-Signal (dir)
D6 GPIO12 DCC-Signal (dir)
D7 GPIO13 DCC aktivieren (pwm)
D8 GPIO0 SDA, mit 12k-Pullup
D9 GPIO2 SCL, mit 12k-Pullup
D10 GPIO15 Jog2
Das Obige sind Hinweise für Menschen, die Sie wissen lassen, welche ESP-GPIOs welche Funktionen ausführen. Notiere dass der Arduino D1-D10-zu-GPIO-Zuordnungen unterscheiden sich von den Knoten-MCU-D1-D10-zu-GPIO-Zuordnungen */

#define USE_ANALOG_MEASUREMENT
#define ANALOG_SCALING 3.9 // wenn A und B parallel verwendet werden (2.36, um Multimeter RMS abzugleichen)
Wir werden das AD auf dem ESP verwenden und kein externes I2C-Stromüberwachungsgerät wie das INA219 deaktivieren
dies mit n USE_ ANALOG_ MEASUREMENT, wenn Sie einen INA219 verwenden möchten

#define PIN_HEARTBEAT 16 //und Jogwheel-Taster
#define DCC_PINS \
uint32 dcc_info[4] = {PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12, 12, 0}; \
uint32 enable_info[4] = {PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO5, 5, 0}; \
uint32 dcc_infoA[4] = {PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO14, 14, 0}; \
uint32 enable_infoA[4] = {PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO13,13, 0};
Definiert, welche Pins die DCC-Signale ansteuern, wir haben zwei Kanäle, die in Phase laufen, damit wir sie zusammenführen können. A-Kanal ist dcc_ info [] und B-Kanal ist dcc_ info A []. Diese werden als Makros definiert und der umgekehrte Schrägstrich ist eine Zeilenfortsetzungsmarkierung.

#define PIN_SCL 2 //12k-Pullup
#define PIN_SDA 0 //12k Pullup
#define PIN_JOG1 4
#define PIN_JOG2 15 //12k-Pulldown

Definieren Sie die Pins (GPIOs), die den I2C SCL/SDA ansteuern, und dann auch die Jogwheel-Eingänge 1 und 2

#define KEYPAD_ADDRESS 0x21 //pcf8574

Wird für die optionale 4 x 4-Matrixtastatur verwendet, die mit einem pcf8574-Chip gescannt wird

//adr, en,rw,rs,d4,d5,d6,d7,Hintergrundbeleuchtung, Polarität. Wir verwenden dies als 4-Bit-Gerät // Meine Display-Pinbelegung ist rs, rw, e, d0-d7. nur d<4-7> werden verwendet. <210> erscheint, weil die Bits <012> //als EN,RW,RS abgebildet sind und wir sie pro tatsächlicher Reihenfolge auf der Hardware neu anordnen müssen, 3 wird //auf die Hintergrundbeleuchtung abgebildet. <4-7> erscheinen in dieser Reihenfolge auf dem Rucksack und auf dem Display.

#define BOOTUP_LCD LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIV); //YwRobot-Rucksack

Wird verwendet, um den I2C-Rucksack zu definieren und zu konfigurieren, der das 1602-LCD-Display (optional) antreibt, dieser ist weich konfigurierbar, und es sind mehrere Rucksäcke verfügbar, deren Pin-Konfigurationen variieren.
#endif

Schritt 7. Kompilieren und auf das Board hochladen.

Nachdem Sie die Board-Kombination konfiguriert haben, die Sie verwenden möchten, können Sie das Projekt kompilieren. Wenn Sie nicht beabsichtigen, die 4×4-Matrixtastatur und das LCD zu verwenden, kein Problem, belassen Sie deren Definitionen, da die Software erwartet, dass sie konfiguriert werden. Das System funktioniert auch ohne sie über WLAN.
In der IDE ist das Häkchen-Symbol (verify) eigentlich „Compile“. Wenn Sie darauf klicken, werden verschiedene Meldungen angezeigt (vorausgesetzt, Sie haben die ausführliche Kompilierung aktiviert), während das System die verschiedenen Bibliotheken kompiliert und alle miteinander verknüpft. Wenn alles gut funktioniert, und wenn Sie alle oben genannten Schritte genau befolgt haben, sollte eine Erfolgsmeldung angezeigt werden. Sie können jetzt auf die Schaltfläche mit dem Rechtspfeil (Hochladen) klicken, aber bevor Sie dies tun, überprüfen Sie, ob Sie den richtigen COM-Anschluss für das Board im Menü „Extras“ ausgewählt haben.
Nach einem erfolgreichen Upload (verwenden Sie ein hochwertiges USB-Kabel) müssen Sie auch die aufrufen Menü ESP8266 Sketch Data laden Option unter Extras. Dadurch wird der Inhalt des Datenordners auf das Gerät übertragen (alle HTML-Seiten).
Du bist fertig. Öffnen Sie den seriellen Monitor, klicken Sie auf die Reset-Schaltfläche und Sie sollten sehen, wie das Gerät bootet und nach I2C-Geräten sucht. Sie können sich jetzt über WLAN mit ihm verbinden und es ist bereit, es mit seiner Leistungsplatine (Motorschild) zu verdrahten.

Dokumente / Ressourcen

ARDUINO IDE für DCC-Controller eingerichtet [pdf] Anweisungen
IDE-Setup für DCC-Controller, IDE-Setup, Setup für DCC-Controller, DCC-Controller IDE-Setup, DCC-Controller

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *