Configurar ARDUINO IDE para o controlador DCC 

Logotipo ARDUINO IDE

Configuración de Arduino IDE para controlador DCC

Paso 1. Configuración do contorno IDE. Carga as placas ESP.

Cando instalas por primeira vez o IDE de Arduino, só admite placas baseadas en ARM. Necesitamos engadir soporte para placas baseadas en ESP. Navega ata File… Preferencias

Configuración do entorno IDE. Carga as placas ESP
Configuración do entorno IDE. Carga as placas ESP

Escriba esta liña a continuación no Xestor de placas adicionais URLCaixa S. Teña en conta que hai guións baixos, sen espazos.  http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
Marque tamén a caixa que di Mostrar detallado durante a compilación. Isto dános máis información se algo falla durante a compilación.

Teña en conta que a liña anterior engade soporte para os dispositivos esp8266 e o ​​esp32 máis recente. As dúas cadeas json están separadas por coma.
Agora selecciona o taboleiro versión 2.7.4 do xestor de xuntas

Configuración de Arduino IDE para controlador DCC

Instalar a versión 2.7.4. Isto funciona. A versión 3.0.0 ou superior non funciona para este proxecto. Agora, de novo no menú Ferramentas, selecciona o taboleiro que vai usar. Para este proxecto será un nodeMCU 1.0 ou un WeMos D1R1

Configuración de Arduino IDE para controlador DCC

Aquí seleccionamos o WeMos D1R1. (cambiando isto do Nano)

Paso 2. Configuración do contorno IDE. Carga o complemento de carga de datos de sketch ESP8266.

Necesitamos cargar este complemento para que poidamos publicar (poñer) páxinas HTML e outras files no dispositivo ESP. Estes viven no cartafol de datos dentro do cartafol do teu proxecto https://github.com/esp8266/arduino-esp8266fs-plugin/releases
Vaia ao URL arriba e descarga ESP8266FS-0.5.0.zip.
Crea un cartafol Ferramentas dentro do teu cartafol Arduino. Descomprimir o contido do zip file a este cartafol Ferramentas. Deberías acabar con isto;

Configuración de Arduino IDE para controlador DCC

E aparecerá unha nova opción de menú en Ferramentas...

Configuración de Arduino IDE para controlador DCC

Se invocas esa opción de menú, o IDE cargará o contido do cartafol de datos no taboleiro. Ok, ese é o ambiente IDE configurado para o uso xeral de ESP8266, agora necesitamos engadir algunhas bibliotecas ao cartafol Arduino/Libraries para este proxecto específico.

Paso 3. Descarga bibliotecas e instala manualmente.

Necesitamos descargar estas bibliotecas de Github; https://github.com/me-no-dev/ESPAsyncTCP

Configuración de Arduino IDE para controlador DCC

Fai clic no código e despois descarga zip. Irá ao cartafol de descargas. Entra en descargas, busca o zip, ábreo e arrastra o cartafol de contido "ESPAsyncTCP" a Arduino/bibliotecas.
Se o nome do cartafol remata con "-master", cámbiao para eliminar "-master" do final.
é dicir, de descargas

Configuración de Arduino IDE para controlador DCC

Abre o .zip para ESPAsyncTCP-master e arrastra o cartafol ESPAsyncTCP-master desde dentro a Arduino/Libraries

Configuración de Arduino IDE para controlador DCC

Nota: Arduino/libraries non poden usar a versión .zip, cómpre descomprimir (arrastrar) o cartafol desexado. Tamén necesitamos https://github.com/fmalpartida/New-LiquidCrystal
Descarga o zip, arrastra o seu contido a Arduino/bibliotecas e elimina o final -master.

E, finalmente, necesitamos ArduinoJson-5.13.5.zip desde a seguinte ligazón https://www.arduinolibraries.info/libraries/arduino-json

descarga e despois arrastra o contido do zip a Arduino/bibliotecas

Paso 4. Instala un par de bibliotecas máis usando Arduino Library Manager.

Necesitamos dúas bibliotecas máis, e estas veñen do Arduino Library Manager, que ten unha selección de bibliotecas integradas. Ir a Ferramentas... Xestionar bibliotecas...

Configuración de Arduino IDE para controlador DCC
Configuración de Arduino IDE para controlador DCC

Use a versión 1.0.3 de Adafruit INA219. Isto funciona. 

E tamén

Configuración de Arduino IDE para controlador DCC

Use a versión 2.1.0 de WebSockets de Markus Sattler, isto está probado e funcionando. Non probei versións posteriores.
OK, así que son todas as bibliotecas (tamén coñecidas como referencias) que precisa o IDE para compilar este proxecto.

Paso 5. Descarga o proxecto ESP_DCC_Controller de GitHub e ábreo en IDE.

Vai a GitHub e descarga https://github.com/computski/ESP_DCC_controller

Fai clic no botón verde "Código" e descarga o zip. A continuación, abra o zip file e move o seu contido ao cartafol Arduino. Cambia o nome do cartafol para eliminar o final "-main" do nome do cartafol. Deberías ter un cartafol ESP_DCC_ controlador no teu cartafol Arduino. Conterá un .INO file, varios .H e .CPP files e un cartafol de datos.

Configuración de Arduino IDE para controlador DCC

Fai dobre clic no .INO file para abrir o proxecto no IDE de Arduino.
Antes de comezar a compilar, necesitamos configurar os teus requisitos...

Paso 6. Establece os teus requisitos en Global. h

Este proxecto pode soportar o nodeMCU ou o D1R1 de WeMo e tamén pode admitir unha serie de opcións de placa de alimentación (escudo de motor) diferentes, ademais de admitir dispositivos nun bus I2C como monitor actual, pantalla LCD e teclado. E, finalmente, tamén pode soportar un jogwheel (codificador rotativo). A construción máis básica que podes facer é o escudo do motor D1R1 e L298 de WeMo.
Teña en conta que a forma máis sinxela de desactivar unha opción é engadir unha n minúscula diante do seu nome na instrución #define.
#definir nNODEMCU_OPTION3
#define nBOARD_ESP12_SHIELD
#definir WEMOS_D1R1_AND_L298_SHIELD
Por example, por riba de NODEMCU_OPTION3 desactivouse con n, o mesmo para nBOARD_ESP12_SHIELD. WEMOS_D1R1_AND_L298_SHIELD é a opción activa, e isto fará que o compilador use a configuración para isto como se indica máis abaixo.

Para percorrer esta configuración: 

#elif definido(WEMOS_D1R1_AND_L298_SHIELD)

/*Wemos D1-R1 apilado con escudo L298, teña en conta que o D1-R2 é un modelo máis novo con pinouts diferentes*/
/*Cortar os puentes de FREO no escudo L298. Estes non son necesarios e non queremos que sexan conducidos polos pinos I2C xa que corrompera o sinal DCC.

A placa ten un factor de forma Arduino, os pinos son os seguintes
D0 GPIO3 RX
D1 GPIO1 TX
Pulsador de latido cardíaco e jogwheel D2 GPIO16 (hi activo)
Activación D3 GPIO5 DCC (pwm)
D4 GPIO4 Jog1
D5 GPIO14 sinal DCC (dir)
D6 GPIO12 sinal DCC (dir)
Activación D7 GPIO13 DCC (pwm)
D8 GPIO0 SDA, con pullup de 12k
D9 GPIO2 SCL, con pullup de 12k
D10 GPIO15 Jog2
as anteriores son notas para humanos, permíteche saber que ESP GPIO realizarán que funcións. Teña en conta que o As asignacións de Arduino D1-D10 a GPIO son diferentes das asignacións de nodos MCU D1-D10 a GPIO */

#define USE_ANALOG_MEASUREMENT
#define ANALOG_SCALING 3.9 //ao usar A e B en paralelo (2.36 para coincidir con multímetro RMS)
Usaremos o AD no ESP e non un dispositivo de monitorización de corrente I2C externo como a desactivación INA219
isto con n USE_ ANALOG_ MEASUREMENT se desexa usar un INA219

#define PIN_HEARTBEAT 16 //e botón 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 };
Define que pinos impulsarán os sinais DCC, temos dúas canles, que funcionan en fase para que poidamos compartilos xuntos. A canle A é dcc_info [] e a canle B é dcc_ info A []. Estes defínense como macros e a barra invertida é un marcador de continuación de liña.

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

Define os pinos (GPIO) que impulsan o I2C SCL/SDA e despois tamén as entradas 1 e 2 do jogwheel

#definir KEYPAD_ADDRESS 0x21 //pcf8574

Úsase para o teclado matricial 4 x 4 opcional, que se escanea usando un chip pcf8574

//addr, en,rw,rs,d4,d5,d6,d7,backlight, polarity. estamos a usar isto como un dispositivo de 4 bits // o pinout da miña pantalla é rs,rw,e,d0-d7. só se utilizan d<4-7>. <210> aparece porque os bits <012> están //mapeados como EN,RW,RS e necesitamos reordenalos por orde real no hardware, 3 está asignado //a luz de fondo. <4-7> aparecen nesa orde na mochila e na pantalla.

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

Úsase para definir e configurar a mochila I2C que manexa a pantalla LCD 1602 (opcional), esta é configurable por software e hai varias mochilas dispoñibles cuxas configuracións de pin varían.
#endif

Paso 7. Compila e carga no taboleiro.

Agora que configuraches o combo de placas que queres usar, podes compilar o proxecto. Se non pensas usar o teclado matricial 4×4 e LCD, non hai problema, deixa as súas definicións como o software espera configuralas. O sistema funcionará ben por WiFi sen eles.
No IDE, o símbolo de verificación é en realidade "Compilar". Fai clic neste e verás que aparecen varias mensaxes (sempre que teñas activado a compilación Verbose) mentres o sistema compila as distintas bibliotecas e enlazaas todas. Se todo funciona ben, e debería facelo se seguiu todos os pasos anteriores exactamente, entón debería ver unha mensaxe de éxito. Agora xa estás preparado para premer o botón da frecha cara á dereita (cargar), pero antes de facelo, comprobe que seleccionou o porto COM correcto para o taboleiro no menú Ferramentas.
Despois dunha carga exitosa (use un cable USB de boa calidade) tamén cómpre invocar o Menú Cargar datos de esquema ESP8266 opción en Ferramentas. Isto colocará o contido do cartafol de datos no dispositivo (todas as páxinas HTML).
Xa estás feito. Abre o monitor en serie, fai clic no botón de reinicio e deberías ver o arranque do dispositivo e buscar dispositivos I2C. Agora podes conectarte a el a través de wifi e está listo para conectarse á placa de alimentación (protección do motor).

Documentos/Recursos

Configurar ARDUINO IDE para o controlador DCC [pdfInstrucións
Configuración IDE para controlador DCC, Configuración IDE, Configuración para controlador DCC, Controlador DCC Configuración IDE, Controlador DCC

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *