Configuració de l'IDE ARDUINO per al controlador DCC 

Logotip ARDUINO IDE

Configuració Arduino IDE per al controlador DCC

Pas 1. Configuració de l'entorn IDE. Carregueu les plaques ESP.

Quan instal·leu per primera vegada l'IDE Arduino, només admet plaques basades en ARM. Hem d'afegir suport per a plaques basades en ESP. Navega a File… Preferències

Configuració de l'entorn IDE. Carregueu les plaques ESP
Configuració de l'entorn IDE. Carregueu les plaques ESP

Escriviu aquesta línia a continuació al Gestor de taulers addicionals URLCaixa S. Tingueu en compte que hi ha guions baixos, sense espais.  http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
Marqueu també la casella que diu Mostra detallada durant la compilació. Això ens dóna més informació si alguna cosa falla durant la compilació.

Tingueu en compte que la línia anterior afegeix suport tant per a dispositius esp8266 com per a l'esp32 més recent. Les dues cadenes json estan separades per una coma.
Ara seleccioneu el tauler versió 2.7.4 del gerent de les juntes

Configuració Arduino IDE per al controlador DCC

Instal·leu la versió 2.7.4. Això funciona. La versió 3.0.0 i superior no funciona per a aquest projecte. Ara, de nou al menú Eines, seleccioneu el tauler que utilitzareu. Per a aquest projecte serà un nodeMCU 1.0 o un WeMos D1R1

Configuració Arduino IDE per al controlador DCC

Aquí seleccionem el WeMos D1R1. (canviant això del Nano)

Pas 2. Configuració de l'entorn IDE. Carregueu el complement de càrrega de dades d'esbós ESP8266.

Hem de carregar aquest complement que ens permeti publicar (posar) pàgines HTML i altres files al dispositiu ESP. Aquests viuen a la carpeta de dades dins de la carpeta del projecte https://github.com/esp8266/arduino-esp8266fs-plugin/releases
Aneu a la URL a dalt i descarregueu ESP8266FS-0.5.0.zip.
Creeu una carpeta Eines dins de la vostra carpeta Arduino. Descomprimiu el contingut del zip file a aquesta carpeta Eines. Hauries d'acabar amb això;

Configuració Arduino IDE per al controlador DCC

I apareixerà una nova opció de menú a Eines...

Configuració Arduino IDE per al controlador DCC

Si invoqueu aquesta opció de menú, l'IDE carregarà el contingut de la carpeta de dades al tauler. D'acord, aquest és l'entorn IDE configurat per a l'ús general de l'ESP8266, ara hem d'afegir algunes biblioteques a la carpeta Arduino/Libraries per a aquest projecte específic.

Pas 3. Baixeu les biblioteques i instal·leu-les manualment.

Hem de descarregar aquestes biblioteques de Github; https://github.com/me-no-dev/ESPAsyncTCP

Configuració Arduino IDE per al controlador DCC

Feu clic al codi i, a continuació, descarregueu el zip. Anirà a la vostra carpeta de descàrregues. Aneu a les descàrregues, busqueu el zip, obriu-lo i arrossegueu la carpeta de contingut "ESPAsyncTCP" a Arduino/biblioteques.
Si el nom de la carpeta acaba amb "-master", canvieu-lo per eliminar "-master" del final.
és a dir, de descàrregues

Configuració Arduino IDE per al controlador DCC

Obriu el .zip per a ESPAsyncTCP-master i arrossegueu la carpeta ESPAsyncTCP-master des d'aquesta a Arduino/Libraries

Configuració Arduino IDE per al controlador DCC

Nota: Arduino/libraries no poden utilitzar la versió .zip, cal descomprimir (arrossegar) la carpeta desitjada. També necessitem https://github.com/fmalpartida/New-LiquidCrystal
Baixeu el zip i arrossegueu el seu contingut a Arduino/libraries i elimineu el final -master.

I, finalment, necessitem ArduinoJson-5.13.5.zip des de l'enllaç següent https://www.arduinolibraries.info/libraries/arduino-json

descarregueu i arrossegueu el contingut del zip a Arduino/biblioteques

Pas 4. Instal·leu un parell de biblioteques més amb Arduino Library Manager.

Necessitem dues biblioteques més, i aquestes provenen de l'Arduino Library Manager que conté una selecció de biblioteques integrades. Vés a Eines... Gestiona les biblioteques...

Configuració Arduino IDE per al controlador DCC
Configuració Arduino IDE per al controlador DCC

Utilitzeu la versió 1.0.3 d'Adafruit INA219. Això funciona. 

I també

Configuració Arduino IDE per al controlador DCC

Utilitzeu la versió 2.1.0 de WebSockets de Markus Sattler, això està provat i funciona. No he provat versions posteriors.
D'acord, així que són totes les biblioteques (també conegudes com a referències) que l'IDE necessita per compilar aquest projecte.

Pas 5. Baixeu el projecte ESP_DCC_Controller de GitHub i obriu-lo a l'IDE.

Aneu a GitHub i descarregueu-lo https://github.com/computski/ESP_DCC_controller

Feu clic al botó verd "Codi" i descarregueu el zip. A continuació, obriu la cremallera file i moveu el seu contingut a la carpeta Arduino. Canvieu el nom de la carpeta per eliminar el final "-main" del nom de la carpeta. Hauríeu d'acabar amb una carpeta controlador ESP_DCC_ a la vostra carpeta Arduino. Contindrà un .INO file, diversos .H i .CPP files i una carpeta de dades.

Configuració Arduino IDE per al controlador DCC

Feu doble clic al fitxer .INO file per obrir el projecte a l'IDE d'Arduino.
Abans de fer la compilació, hem de configurar els vostres requisits...

Pas 6. Definiu els vostres requisits a Global. h

Aquest projecte pot suportar el nodeMCU o el D1R1 de WeMo i també pot suportar diverses opcions de placa d'alimentació (escut de motor), a més d'admetre dispositius en un bus I2C com ara monitor actual, pantalla LCD i teclat. I finalment també pot suportar un jogwheel (codificador rotatiu). La construcció més bàsica que podeu fer és l'escut del motor D1R1 i L298 de WeMo.
Tingueu en compte que la manera més senzilla de desactivar una opció és afegir una n minúscula davant del seu nom a la instrucció #define.
#definir nNODEMCU_OPTION3
#definir nBOARD_ESP12_SHIELD
#definir WEMOS_D1R1_AND_L298_SHIELD
Per example, a sobre de NODEMCU_OPTION3 s'ha desactivat amb n, el mateix per a nBOARD_ESP12_SHIELD. WEMOS_D1R1_AND_L298_SHIELD és l'opció activa, i això farà que el compilador utilitzi la configuració per a això tal com es mostra més avall.

Per recórrer aquesta configuració: 

#elif definit(WEMOS_D1R1_AND_L298_SHIELD)

/* Wemos D1-R1 apilat amb l'escut L298, tingueu en compte que el D1-R2 és un model més nou amb diferents pinouts */
/* Talla els ponts de FRE a l'escut L298. Aquests no són necessaris i no volem que els condueixin els pins I2C, ja que corromprà el senyal DCC.

La placa té un factor de forma Arduino, els pins són els següents
D0 GPIO3 RX
D1 GPIO1 TX
D2 GPIO16 polsador de ritme cardíac i jogwheel (hi actiu)
Habilitació D3 GPIO5 DCC (pwm)
D4 GPIO4 Jog1
Senyal D5 GPIO14 DCC (dir)
Senyal D6 GPIO12 DCC (dir)
Habilitació D7 GPIO13 DCC (pwm)
D8 GPIO0 SDA, amb pullup de 12k
D9 GPIO2 SCL, amb pullup de 12k
D10 GPIO15 Jog2
les anteriors són notes per a humans, us permeten saber quins ESP GPIO realitzaran quines funcions. Tingueu en compte que el Els mapes d'Arduino D1-D10 a GPIO són ​​diferents dels mapes del node MCU D1-D10 a GPIO */

#define USE_ANALOG_MEASUREMENT
#define ANALOG_SCALING 3.9 //quan s'utilitza A i B en paral·lel (2.36 per coincidir amb el multímetre RMS)
Utilitzarem l'AD a l'ESP i no un dispositiu de control de corrent I2C extern com ara la desactivació INA219
això amb n USE_ ANALOG_ MEASUREMENT si voleu utilitzar un INA219

#define PIN_HEARTBEAT 16 //i polsador de jogwheel
#definir 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 };
Defineix quins pins impulsaran els senyals DCC, tenim dos canals, que funcionen en fase perquè puguem compartir-los junts. El canal A és dcc_info [] i el canal B és dcc_info A []. Aquestes es defineixen com a macros i la barra invertida és un marcador de continuació de línia.

#definir PIN_SCL 2 //12k pullup
#define PIN_SDA 0 //12k pullup
#definir PIN_JOG1 4
#define PIN_JOG2 15 //12k desplegable

Definiu els pins (GPIO) que condueixen l'I2C SCL/SDA i, a continuació, també les entrades de jogwheel 1 i 2

#definir KEYPAD_ADDRESS 0x21 //pcf8574

S'utilitza per al teclat matricial de 4 x 4 opcional, que s'escaneja amb un xip pcf8574

//addr, en,rw,rs,d4,d5,d6,d7,backlight, polarity. l'estem utilitzant com a dispositiu de 4 bits // El meu pinout de la pantalla és rs,rw,e,d0-d7. només s'utilitzen d<4-7>. <210> apareix perquè els bits <012> estan //mapejats com EN,RW,RS i hem de reordenar-los per ordre real al maquinari, 3 està assignat //a la llum de fons. <4-7> apareixen en aquest ordre a la motxilla i a la pantalla.

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

S'utilitza per definir i configurar la motxilla I2C que condueix la pantalla LCD 1602 (opcional), aquesta es pot configurar de manera programada i hi ha diverses motxilles disponibles les configuracions de pins varien.
#endif

Pas 7. Compilar i pujar al tauler.

Ara que heu configurat la combinació de taulers que voleu utilitzar, podeu compilar el projecte. Si no teniu intenció d'utilitzar el teclat de matriu 4×4 i la pantalla LCD, cap problema, deixeu les seves definicions tal com el programari espera configurar-les. El sistema funcionarà bé mitjançant WiFi sense ells.
A l'IDE, el símbol de marca (verificar) és en realitat "Compila". Feu clic a això i veureu que apareixen diversos missatges (sempre que hàgiu habilitat la compilació detallada) mentre el sistema compila les diverses biblioteques i les enllaça totes. Si tot funciona bé, i ho hauria de fer si heu seguit tots els passos anteriors exactament, haureu de veure que apareix un missatge d'èxit. Ara esteu preparats per prémer el botó de fletxa dreta (càrrega), però abans de fer-ho, comproveu que heu seleccionat el port COM correcte per al tauler al menú Eines.
Després d'una càrrega correcta (utilitzeu un cable USB de bona qualitat) també heu d'invocar el Carrega el menú de dades d'esbós ESP8266 opció a Eines. Això posarà el contingut de la carpeta de dades al dispositiu (totes les pàgines HTML).
Estàs acabat. Obriu el monitor sèrie, feu clic al botó de restabliment i hauríeu de veure l'inici del dispositiu i buscar dispositius I2C. Ara us podeu connectar a través de Wi-Fi i està llest per connectar-se a la seva placa d'alimentació (escut del motor).

Documents/Recursos

Configuració de l'IDE ARDUINO per al controlador DCC [pdfInstruccions
Configuració IDE per al controlador DCC, Configuració IDE, Configuració per al controlador DCC, Configuració IDE del controlador DCC, controlador DCC

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *