Configurazione IDE ARDUINO per controller DCC 

Logo IDE ARDUINO

Configurazione IDE Arduino per controller DCC

Passaggio 1. Configurazione dell'ambiente IDE. Carica le schede ESP.

Quando installi per la prima volta l'IDE Arduino, supporta solo schede basate su ARM. Dobbiamo aggiungere il supporto per le schede basate su ESP. Navigare verso File… Preferenze

Configurazione dell'ambiente IDE. Carica le schede ESP
Configurazione dell'ambiente IDE. Carica le schede ESP

Digita questa riga di seguito nel Gestore schede aggiuntive URLscatola S. Nota che ci sono trattini bassi, niente spazi.  http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
Seleziona anche la casella che dice Mostra verboso durante la compilazione. Questo ci dà maggiori informazioni se qualcosa fallisce durante la compilazione.

Si noti che la riga sopra aggiunge il supporto per entrambi i dispositivi esp8266 e il più recente esp32. Le due stringhe json sono separate da una virgola.
Ora seleziona la scheda versione 2.7.4 dal direttore del consiglio

Configurazione IDE Arduino per controller DCC

Installa la versione 2.7.4. Questo funziona. La versione 3.0.0 e successive non funziona per questo progetto. Ora, tornando al menu Strumenti, seleziona la scheda che utilizzerai. Per questo progetto sarà un nodeMCU 1.0 o un WeMos D1R1

Configurazione IDE Arduino per controller DCC

Qui selezioniamo WeMos D1R1. (cambiando questo dal Nano)

Passaggio 2. Configurazione dell'ambiente IDE. Carica il componente aggiuntivo per il caricamento dei dati dello schizzo ESP8266.

Abbiamo bisogno di caricare questo componente aggiuntivo per permetterci di pubblicare (mettere) pagine HTML e altro files sul dispositivo ESP. Questi risiedono nella cartella dei dati all'interno della cartella del progetto https://github.com/esp8266/arduino-esp8266fs-plugin/releases
Vai al URL sopra e scarica ESP8266FS-0.5.0.zip.
Crea una cartella Strumenti all'interno della cartella Arduino. Decomprimere il contenuto dello zip file in questa cartella Strumenti. Dovresti finire con questo;

Configurazione IDE Arduino per controller DCC

E una nuova opzione di menu apparirà sotto Strumenti...

Configurazione IDE Arduino per controller DCC

Se invochi quell'opzione di menu, l'IDE caricherà il contenuto della cartella dei dati sulla scheda. Ok, questo è l'ambiente IDE impostato per l'uso generale di ESP8266, ora dobbiamo aggiungere alcune librerie alla cartella Arduino/Libraries per questo specifico progetto.

Passaggio 3. Scarica le librerie e installa manualmente.

Dobbiamo scaricare queste librerie da Github; https://github.com/me-no-dev/ESPAsyncTCP

Configurazione IDE Arduino per controller DCC

Fare clic sul codice, quindi scaricare zip. Andrà nella cartella dei download. Vai in download, trova lo zip, aprilo e trascina la cartella dei contenuti "ESPAsyncTCP" su Arduino/librerie.
Se il nome della cartella termina con "-master", rinominalo per rimuovere "-master" dalla fine.
cioè dai download

Configurazione IDE Arduino per controller DCC

Apri il file .zip per ESPAsyncTCP-master e trascina la cartella ESPAsyncTCP-master dall'interno in Arduino/Librerie

Configurazione IDE Arduino per controller DCC

Nota: Arduino/librerie non possono utilizzare la versione .zip, è necessario decomprimere (trascinare) la cartella desiderata. Abbiamo anche bisogno https://github.com/fmalpartida/New-LiquidCrystal
Scarica lo zip quindi trascina il suo contenuto su Arduino/librerie e rimuovi il finale -master.

E infine, abbiamo bisogno di ArduinoJson-5.13.5.zip dal link sottostante https://www.arduinolibraries.info/libraries/arduino-json

scaricare e quindi trascinare il contenuto zip su Arduino/librerie

Passaggio 4. Installa un altro paio di librerie utilizzando Arduino Library Manager.

Abbiamo bisogno di altre due librerie e queste provengono da Arduino Library Manager che contiene una selezione di librerie integrate. Vai a Strumenti... Gestisci librerie...

Configurazione IDE Arduino per controller DCC
Configurazione IDE Arduino per controller DCC

Usa la versione 1.0.3 di Adafruit INA219. Questo funziona. 

E anche

Configurazione IDE Arduino per controller DCC

Usa la versione 2.1.0 di WebPrese di Markus Sattler, questo è testato e funzionante. Non ho testato le versioni successive.
OK, quindi sono tutte le librerie (ovvero i riferimenti) di cui l'IDE ha bisogno per compilare questo progetto.

Passaggio 5. Scarica il progetto ESP_DCC_Controller da GitHub e aprilo in IDE.

Vai su GitHub e scarica https://github.com/computski/ESP_DCC_controller

Fare clic sul pulsante verde "Codice" e scaricare lo zip. Poi apri la zip file e sposta il suo contenuto nella cartella Arduino. Rinomina la cartella per rimuovere il finale "-main" sul nome della cartella. Dovresti ritrovarti con una cartella ESP_ DCC_ controller nella tua cartella Arduino. Conterrà un file .INO file, vari .H e .CPP filese una cartella di dati.

Configurazione IDE Arduino per controller DCC

Fare doppio clic sul file .INO file per aprire il progetto nell'IDE di Arduino.
Prima di eseguire la compilazione, dobbiamo configurare in base alle tue esigenze...

Passo 6. Imposta i tuoi requisiti in Globale. h

Questo progetto può supportare il nodeMCU o il D1R1 di WeMo e può anche supportare una serie di diverse opzioni di scheda di alimentazione (protezione del motore), inoltre può supportare dispositivi su un bus I2C come monitor di corrente, display LCD e tastiera. E infine può supportare anche un jogwheel (codificatore rotativo). La build più semplice che puoi fare è uno scudo motore D1R1 e L298 di WeMo.
Nota che il modo più semplice per disabilitare un'opzione è aggiungere una n minuscola davanti al suo nome nell'istruzione #define.
#define nNODEMCU_OPTION3
#define nBOARD_ESP12_SHIELD
#definire WEMOS_D1R1_AND_L298_SHIELD
Per esempioample, sopra NODEMCU_OPTION3 è stato disabilitato con n, lo stesso per nBOARD_ESP12_SHIELD. WEMOS_D1R1_AND_L298_SHIELD è l'opzione attiva e questo farà sì che il compilatore utilizzi la configurazione per questo come elencato più in basso.

Per esaminare questa configurazione: 

#elif definito(WEMOS_D1R1_AND_L298_SHIELD)

/*Wemos D1-R1 impilato con scudo L298, nota che il D1-R2 è un modello più recente con piedinature diverse*/
/*Taglia i jumper BRAKE sullo shield L298. Questi non sono richiesti e non li vogliamo pilotati dai pin I2C poiché danneggerebbero il segnale DCC.

La scheda ha un fattore di forma Arduino, i pin sono i seguenti
D0GPIO3RX
D1GPIO1TX
D2 Pulsanti battito cardiaco e jogwheel GPIO16 (attivo hi)
D3 Abilitazione DCC GPIO5 (pwm)
D4 GPIO4 Jog1
D5 Segnale DCC GPIO14 (dir)
D6 Segnale DCC GPIO12 (dir)
D7 Abilitazione DCC GPIO13 (pwm)
D8 GPIO0 SDA, con 12k pullup
D9 GPIO2 SCL, con 12k pullup
D10 GPIO15 Jog2
quanto sopra sono note per gli esseri umani, ti consente di sapere quali GPIO ESP eseguiranno quali funzioni. Si noti che il Le mappature da Arduino D1-D10 a GPIO sono diverse dalle mappature del nodo MCU da D1-D10 a GPIO */

#define USE_ANALOG_MEASUREMENT
#define ANALOG_SCALING 3.9 //quando si usano A e B in parallelo (2.36 per abbinare il multimetro RMS)
Useremo l'AD sull'ESP e non un dispositivo di monitoraggio della corrente I2C esterno come la disabilitazione INA219
questo con n USE_ ANALOG_ MEASUREMENT se si desidera utilizzare un INA219

#define PIN_HEARTBEAT 16 //e pulsante jogwheel
#define DCC_PINS \
uint32 dcc_info[4] = {PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12, 12, 0}; \
uint32 abilita_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 abilita_infoA[4] = { PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO13,13, 0 };
Definisce quali pin guideranno i segnali DCC, abbiamo due canali, funzionanti in fase in modo da poterli mettere in comune insieme. Il canale A è dcc_ info [] e il canale B è dcc_ info A []. Questi sono definiti come macro e la barra rovesciata è un indicatore di continuazione della riga.

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

Definire i pin (GPIO) che pilotano I2C SCL/SDA e quindi anche gli ingressi jogwheel 1 e 2

#define INDIRIZZO_TASTIERA 0x21 //pcf8574

Utilizzato per la tastiera a matrice 4 x 4 opzionale, che viene scansionata utilizzando un chip pcf8574

//addr, en,rw,rs,d4,d5,d6,d7,retroilluminazione, polarità. lo stiamo usando come dispositivo a 4 bit //la mia piedinatura del display è rs, rw, e, d0-d7. vengono utilizzati solo d<4-7>. <210> appare perché i bit <012> sono //mappati come EN,RW,RS e dobbiamo riordinarli in base all'ordine effettivo sull'hardware, 3 è mappato //alla retroilluminazione. <4-7> appaiono in quest'ordine sullo zaino e sul display.

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

Utilizzato per definire e configurare lo zaino I2C che guida il display LCD 1602 (opzionale), questo è softconfigurabile e sono disponibili diversi zaini le cui configurazioni dei pin variano.
#finese

Passaggio 7. Compilare e caricare sulla scheda.

Ora che hai configurato la scheda combo che intendi utilizzare, puoi compilare il progetto. Se non si intende utilizzare la tastiera a matrice 4×4, e l'LCD, nessun problema, lasciare nelle loro definizioni così come il software provvederà a configurarle. Il sistema funzionerà correttamente tramite WiFi senza di loro.
Sull'IDE, il segno di spunta (verifica) è in realtà "Compila". Fai clic su questo e vedrai apparire vari messaggi (a condizione che tu abbia abilitato la compilazione dettagliata) mentre il sistema compila le varie librerie e le collega tutte insieme. Se tutto funziona correttamente, e se hai seguito esattamente tutti i passaggi precedenti, dovresti vedere apparire un messaggio di successo. Ora sei pronto per premere il pulsante con la freccia destra (carica), ma prima di farlo, controlla di aver selezionato la porta COM corretta per la scheda nel menu Strumenti.
Dopo un caricamento riuscito (utilizzare un cavo USB di buona qualità) è necessario richiamare anche il file Carica il menu Dati schizzo ESP8266 opzione sotto Strumenti. Questo metterà il contenuto della cartella dei dati sul dispositivo (tutte le pagine HTML).
Hai fatto. Apri il monitor seriale, fai clic sul pulsante di ripristino e dovresti vedere l'avvio del dispositivo e la scansione dei dispositivi I2C. Ora puoi connetterti tramite Wi-Fi ed è pronto per essere collegato alla sua scheda di alimentazione (protezione del motore).

Documenti / Risorse

Configurazione IDE ARDUINO per controller DCC [pdf] Istruzioni
Configurazione IDE per controller DCC, configurazione IDE, configurazione per controller DCC, configurazione IDE controller DCC, controller DCC

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *