ARDUINO IDE ingesteld voor DCC-controller 

ARDUINO IDE-logo

Arduino IDE-opstelling voor DCC-controller

Stap 1. Instellen van de IDE-omgeving. Laad de ESP-borden.

Wanneer u de Arduino IDE voor het eerst installeert, ondersteunt deze alleen op ARM gebaseerde boards. We moeten ondersteuning toevoegen voor op ESP gebaseerde borden. Navigeren naar File… Voorkeuren

IDE-omgeving instellen. Laad de ESP-borden
IDE-omgeving instellen. Laad de ESP-borden

Typ deze regel hieronder in de Extra Boards Manager URLS-doos. Merk op dat er onderstrepingstekens in staan, geen spaties.  http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
Vink ook het vakje aan dat zegt Toon uitgebreid tijdens compilatie. Dit geeft ons meer informatie als er iets niet lukt tijdens de compilatie.

Merk op dat de bovenstaande regel ondersteuning toevoegt voor zowel esp8266-apparaten als de nieuwere esp32. De twee json-tekenreeksen worden gescheiden door een komma.
Selecteer nu bord versie 2.7.4 van boardmanager

Arduino IDE-opstelling voor DCC-controller

Installeer versie 2.7.4. Dit werkt. Versie 3.0.0 en hoger werkt niet voor dit project. Selecteer nu, terug in het Tools-menu, het bord dat je gaat gebruiken. Voor dit project zal het een nodeMCU 1.0 of een WeMos D1R1 zijn

Arduino IDE-opstelling voor DCC-controller

Hier selecteren we de WeMos D1R1. (dit wijzigen van de Nano)

Stap 2. Instellen van de IDE-omgeving. Laad de invoegtoepassing ESP8266 Sketch Data Upload.

We moeten deze invoegtoepassing laden om ons in staat te stellen HTML-pagina's en andere te publiceren (putten). files op het ESP-apparaat. Deze staan ​​in de datamap in uw projectmap https://github.com/esp8266/arduino-esp8266fs-plugin/releases
Ga naar de URL hierboven en download ESP8266FS-0.5.0.zip.
Maak een map Tools in uw Arduino-map. Pak de inhoud van de zip uit file naar deze map Tools. Je zou hiermee moeten eindigen;

Arduino IDE-opstelling voor DCC-controller

En er verschijnt een nieuwe menu-optie onder Tools...

Arduino IDE-opstelling voor DCC-controller

Als je die menu-optie oproept, zal de IDE de inhoud van de datamap uploaden naar het board. Oké, dus dat is de IDE-omgeving die is ingesteld voor algemeen ESP8266-gebruik, nu moeten we enkele bibliotheken toevoegen aan de Arduino/Libraries-map voor dit specifieke project.

Stap 3. Download bibliotheken en installeer handmatig.

We moeten deze bibliotheken downloaden van Github; https://github.com/me-no-dev/ESPAsyncTCP

Arduino IDE-opstelling voor DCC-controller

Klik op code en download vervolgens zip. Het gaat naar je downloadmap. Ga naar downloads, zoek de zip, open deze en sleep de inhoudsmap "ESPAsyncTCP" naar Arduino/libraries.
Als de mapnaam eindigt op "-master", hernoem deze dan om "-master" van het einde te verwijderen.
dwz van downloads

Arduino IDE-opstelling voor DCC-controller

Open de .zip voor ESPAsyncTCP-master en sleep de map ESPAsyncTCP-master van binnenuit naar Arduino/Libraries

Arduino IDE-opstelling voor DCC-controller

Opmerking: Arduino/bibliotheken kunnen de .zip-versie niet gebruiken, u moet de gewenste map uitpakken (slepen). We hebben ook nodig https://github.com/fmalpartida/New-LiquidCrystal
Download de zip en sleep de inhoud naar Arduino/bibliotheken en verwijder het einde -master.

En tot slot hebben we ArduinoJson-5.13.5.zip nodig via de onderstaande link https://www.arduinolibraries.info/libraries/arduino-json

download en sleep de zip-inhoud naar Arduino/bibliotheken

Stap 4. Installeer nog een paar bibliotheken met behulp van Arduino Library Manager.

We hebben nog twee bibliotheken nodig, en deze komen van de Arduino Library Manager die een selectie van ingebouwde bibliotheken bevat. Ga naar Extra... Bibliotheken beheren...

Arduino IDE-opstelling voor DCC-controller
Arduino IDE-opstelling voor DCC-controller

Gebruik versie 1.0.3 van Adafruit INA219. Dit werkt. 

En ook

Arduino IDE-opstelling voor DCC-controller

Gebruik versie 2.1.0 van WebStopcontacten van Markus Sattler, deze is getest en werkend. Ik heb geen latere versies getest.
OK, dus dat zijn alle bibliotheken (ook wel referenties genoemd) die de IDE nodig heeft om dit project te compileren.

Stap 5. Download het ESP_DCC_Controller-project van GitHub en open het in IDE.

Ga naar GitHub en download https://github.com/computski/ESP_DCC_controller

Klik op de groene knop "Code" en download de zip. Open vervolgens de ritssluiting file en verplaats de inhoud ervan naar de Arduino-map. Hernoem de map om de "-main" die eindigt op de mapnaam te verwijderen. Je zou moeten eindigen met een map ESP_ DCC_ controller in je Arduino-map. Het zal een .INO bevatten file, diverse .H en .CPP files en een gegevensmap.

Arduino IDE-opstelling voor DCC-controller

Dubbelklik op de .INO file om het project in de Arduino IDE te openen.
Voordat we compileren, moeten we configureren naar uw vereisten...

Stap 6. Stel uw vereisten in Global in. H

Dit project kan de nodeMCU of WeMo's D1R1 ondersteunen en het kan ook een aantal verschillende voedingskaart (motorafscherming) opties ondersteunen, plus het kan apparaten op een I2C-bus ondersteunen, zoals stroommonitor, LCD-scherm en toetsenbord. En tot slot kan het ook een jogwheel (roterende encoder) ondersteunen. De meest eenvoudige build die u kunt doen, is een WeMo's D1R1- en L298-motorschild.
Merk op dat de gemakkelijkste manier om een ​​optie uit te schakelen, is door een kleine letter n toe te voegen voor de naam ervan in de #define-instructie.
#define nNODEMCU_OPTION3
#define nBOARD_ESP12_SHIELD
#definiëren WEMOS_D1R1_AND_L298_SHIELD
Bijvoorbeeldample, hierboven NODEMCU_OPTION3 is uitgeschakeld met n, hetzelfde voor nBOARD_ESP12_SHIELD. WEMOS_D1R1_AND_L298_SHIELD is de actieve optie, en dit zorgt ervoor dat de compiler de configuratie hiervoor gebruikt zoals hieronder vermeld.

Om door deze configuratie te lopen: 

#elif gedefinieerd(WEMOS_D1R1_AND_L298_SHIELD)

/*Wemos D1-R1 gestapeld met L298-schild, merk op dat de D1-R2 een nieuwer model is met verschillende pinouts*/
/*Verbreek de BRAKE-jumpers op het L298-schild. Deze zijn niet vereist en we willen niet dat ze worden aangestuurd door de I2C-pinnen, omdat dit het DCC-signaal zal beschadigen.

Het bord heeft een Arduino-vormfactor, de pinnen zijn als volgt
D0 GPIO3 RX
D1 GPIO1 TX
D2 GPIO16 hartslag- en jogwieldrukknop (actieve hi)
D3 GPIO5 DCC inschakelen (pwm)
D4 GPIO4 Jog1
D5 GPIO14 DCC-signaal (direct)
D6 GPIO12 DCC-signaal (direct)
D7 GPIO13 DCC inschakelen (pwm)
D8 GPIO0 SDA, met 12k pull-up
D9 GPIO2 SCL, met 12k pull-up
D10 GPIO15 Jog2
het bovenstaande zijn opmerkingen voor mensen, laat u weten welke ESP GPIO's welke functies zullen uitvoeren. Merk op dat de Arduino D1-D10 naar GPIO-toewijzingen verschillen van het knooppunt MCU D1-D10 naar GPIO-toewijzingen */

#defineUSE_ANALOG_MEASUREMENT
#define ANALOG_SCALING 3.9 //bij gebruik van A en B parallel (2.36 om overeen te komen met multimeter RMS)
We zullen de AD op de ESP gebruiken en niet een extern I2C-stroombewakingsapparaat zoals de INA219 uitschakelen
dit met n USE_ANALOG_MEASUREMENT als u toch een INA219 wilt gebruiken

#define PIN_HEARTBEAT 16 //en jogwiel drukknop
#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 };
Bepaalt welke pinnen de DCC-signalen zullen aansturen, we hebben twee kanalen die in fase lopen zodat we ze samen kunnen gebruiken. A-kanaal is dcc_info [] en B-kanaal is dcc_info A []. Deze worden gedefinieerd als macro's en de backslash is een regelvoortzettingsmarkering.

#define PIN_SCL 2 //12k pull-up
#define PIN_SDA 0 //12k pull-up
#define PIN_JOG1 4
#define PIN_JOG2 15 //12k pulldown

Definieer de pinnen (GPIO's) die de I2C SCL/SDA aansturen en vervolgens ook de jogwheel-ingangen 1 en 2

#define KEYPAD_ADDRESS 0x21 //pcf8574

Wordt gebruikt voor het optionele 4 x 4 matrixtoetsenbord, dat wordt gescand met een pcf8574-chip

//addr, en,rw,rs,d4,d5,d6,d7,backlight, polariteit. we gebruiken dit als een 4-bits apparaat // mijn display-pinout is rs, rw, e, d0-d7. alleen d<4-7> worden gebruikt. <210> verschijnt omdat bits <012> //gemapt zijn als EN,RW,RS en we moeten ze opnieuw ordenen volgens de daadwerkelijke volgorde op de hardware, 3 is toegewezen //aan de achtergrondverlichting. <4-7> verschijnen in die volgorde op de rugzak en op het display.

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

Gebruikt om de I2C-rugzak te definiëren en te configureren die het 1602 LCD-scherm aanstuurt (optioneel), dit is softconfigureerbaar en er zijn verschillende rugzakken beschikbaar waarvan de pinconfiguraties variëren.
#endif

Stap 7. Compileer en upload naar het bord.

Nu je de bordcombinatie hebt geconfigureerd die je wilt gebruiken, kun je het project compileren. Als u niet van plan bent om het 4×4 matrixtoetsenbord en het LCD-scherm te gebruiken, geen probleem, laat de definities zoals de software ze verwacht te configureren. Zonder hen werkt het systeem prima via wifi.
Op de IDE is het vinkje (verifiëren) eigenlijk "Compileren". Klik hierop en u zult verschillende berichten zien verschijnen (mits u Verbose-compilatie hebt ingeschakeld) terwijl het systeem de verschillende bibliotheken compileert en alles aan elkaar koppelt. Als alles goed werkt, en als je alle bovenstaande stappen precies hebt gevolgd, zou je een succesbericht moeten zien verschijnen. U bent nu klaar om op de pijl naar rechts (uploaden) te drukken, maar voordat u dit doet, controleert u of u de juiste COM-poort voor het bord hebt geselecteerd in het menu Tools.
Na een succesvolle upload (gebruik een USB-kabel van goede kwaliteit) moet u ook het Laad ESP8266 Sketch Data-menu optie onder Tools. Hierdoor wordt de inhoud van de gegevensmap op het apparaat geplaatst (alle HTML-pagina's).
Je bent klaar. Open de seriële monitor, klik op de resetknop en je zou het apparaat moeten zien opstarten en scannen naar I2C-apparaten. Je kunt er nu via wifi verbinding mee maken en het is klaar om te worden aangesloten op het voedingsbord (motorafscherming).

Documenten / Bronnen

ARDUINO IDE ingesteld voor DCC-controller [pdf] Instructies
IDE-configuratie voor DCC-controller, IDE-configuratie, configuratie voor DCC-controller, DCC-controller IDE-configuratie, DCC-controller

Referenties

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *