Hoʻonohonoho ʻia ʻo ARDUINO IDE no DCC Controller 

ARDUINO IDE Logo

Hoʻonohonoho ʻia ʻo Arduino IDE no ka mana DCC

KaʻAnuʻu 1. Hoʻonohonoho kaiapuni IDE. E hoʻouka i nā papa ESP.

Ke hoʻokomo mua ʻoe i ka Arduino IDE, kākoʻo wale ia i nā papa ARM. Pono mākou e hoʻohui i ke kākoʻo no nā papa ESP. E hoʻokele i File… Nā Koho

Hoʻonohonoho kaiapuni IDE. E hoʻouka i nā papa ESP
Hoʻonohonoho kaiapuni IDE. E hoʻouka i nā papa ESP

Kākau i kēia laina ma lalo i loko o ka Manakia Papa Hoʻohui URLS pahu. E hoʻomanaʻo, aia nā kaha lalo, ʻaʻohe hakahaka.  http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
E nānā pū i ka pahu e ʻōlelo ana Hōʻike Verbose i ka wā e hōʻuluʻulu ai. Hāʻawi kēia iā mākou i ka ʻike hou aku inā hāʻule kekahi mea i ka wā o ka hōʻuluʻulu ʻana.

E hoʻomaopopo i ka laina ma luna e hoʻohui i ke kākoʻo no nā polokalamu esp8266 a me ka esp32 hou. Hoʻokaʻawale ʻia nā kaula json ʻelua e kahi koma.
I kēia manawa koho i ka papa mana 2.7.4 mai ka luna papa

Hoʻonohonoho ʻia ʻo Arduino IDE no ka mana DCC

E hoʻouka i ka mana 2.7.4. Hana kēia. ʻAʻole hana ka mana 3.0.0 a ʻoi aku no kēia pāhana. I kēia manawa, hoʻi i ka menu Tools, koho i ka papa āu e hoʻohana ai. No kēia papahana he nodeMCU 1.0 a i ʻole WeMos D1R1

Hoʻonohonoho ʻia ʻo Arduino IDE no ka mana DCC

Maanei mākou e koho ai i ka WeMos D1R1. (e hoʻololi i kēia mai ka Nano)

KaʻAnuʻu 2. Hoʻonohonoho kaiapuni IDE. E hoʻouka i ka ESP8266 Sketch Data Upload add-in.

Pono mākou e hoʻouka i kēia mea hoʻohui e ʻae iā mākou e paʻi (hoʻokomo) i nā ʻaoʻao HTML a me nā mea ʻē aʻe files ma ka polokalamu ESP. Noho lākou i loko o ka waihona ʻikepili i loko o kāu waihona papahana https://github.com/esp8266/arduino-esp8266fs-plugin/releases
E hele i ka URL ma luna a hoʻoiho iā ESP8266FS-0.5.0.zip.
E hana i kahi waihona Tools i loko o kāu waihona Arduino. Wehe i nā mea o ka zip file i kēia waihona Mea Hana. Pono ʻoe e hoʻopau i kēia;

Hoʻonohonoho ʻia ʻo Arduino IDE no ka mana DCC

A e ʻike ʻia kahi koho papa inoa hou ma lalo o Tools…

Hoʻonohonoho ʻia ʻo Arduino IDE no ka mana DCC

Inā ʻoe e kāhea i kēlā koho papa inoa, e hoʻouka ka IDE i nā mea o ka waihona ʻikepili i ka papa. ʻAe, ʻo ia ka IDE kaiapuni i hoʻonohonoho ʻia no ka hoʻohana maʻamau ESP8266, pono mākou e hoʻohui i kekahi mau hale waihona puke i ka waihona Arduino/Libraries no kēia papahana kikoʻī.

KaʻAnuʻu Hana 3. Download hale waihona puke a me ka lima hoʻouka.

Pono mākou e hoʻoiho i kēia mau hale waihona puke mai Github; https://github.com/me-no-dev/ESPAsyncTCP

Hoʻonohonoho ʻia ʻo Arduino IDE no ka mana DCC

Kaomi ma ke code, a laila hoʻoiho i ka zip. E hele ana ia i kāu waihona hoʻoiho. E hele i nā hoʻoiho, e ʻimi i ka zip, wehe a kauo i ka waihona waihona "ESPAsyncTCP" i Arduino / hale waihona puke.
Inā pau ka inoa o ka waihona me "-master", a laila e hoʻololi i ka inoa e wehe iā "-master" mai ka hopena.
ʻo ia hoʻi mai nā hoʻoiho

Hoʻonohonoho ʻia ʻo Arduino IDE no ka mana DCC

E wehe i ka .zip no ESPAsyncTCP-master, a e kauo i ka waihona ESPAsyncTCP-master mai loko mai i Arduino/Libraries.

Hoʻonohonoho ʻia ʻo Arduino IDE no ka mana DCC

Nānā: ʻAʻole hiki i nā Arduino / hale waihona puke ke hoʻohana i ka mana .zip, pono ʻoe e wehe i ka waihona i makemake ʻia. Pono mākou https://github.com/fmalpartida/New-LiquidCrystal
Hoʻoiho i ka zip a laila e huki i kāna ʻike i Arduino / hale waihona puke a wehe i ka hopena -master.

A ʻo ka hope, pono mākou iā ArduinoJson-5.13.5.zip mai ka loulou ma lalo nei https://www.arduinolibraries.info/libraries/arduino-json

hoʻoiho a laila kauo i nā mea zip i Arduino / hale waihona puke

KaʻAnuʻu 4. E hoʻouka i ʻelua mau hale waihona puke me ka hoʻohana ʻana i Arduino Library Manager.

Pono mākou i ʻelua mau hale waihona puke, a mai ka Arduino Library Manager e paʻa i kahi koho o nā hale waihona puke i kūkulu ʻia. E hele i nā mea hana… Hoʻoponopono i nā waihona puke…

Hoʻonohonoho ʻia ʻo Arduino IDE no ka mana DCC
Hoʻonohonoho ʻia ʻo Arduino IDE no ka mana DCC

E hoʻohana i ka mana 1.0.3 o Adafruit INA219. Hana kēia. 

A no hoi

Hoʻonohonoho ʻia ʻo Arduino IDE no ka mana DCC

E hoʻohana i ka mana 2.1.0 o WebSockets mai Markus Sattler, ua hoʻāʻo ʻia kēia a hana. ʻAʻole au i hoʻāʻo i nā mana hope.
ʻAe, ʻo ia nā hale waihona puke (aka references) e pono ai ka IDE e hōʻuluʻulu i kēia papahana.

KaʻAnuʻu Hana 5. Hoʻoiho i ka papahana ESP_DCC_Controller mai GitHub a wehe i ka IDE.

E hele i GitHub a hoʻoiho https://github.com/computski/ESP_DCC_controller

Kaomi ma ka pihi ʻōmaʻomaʻo "Code", a hoʻoiho i ka zip. A laila wehe i ka zip file a hoʻoneʻe i kāna mau mea i ka waihona Arduino. Hoʻololi hou i ka waihona e wehe i ka "-main" pau ma ka inoa waihona. Pono ʻoe e hoʻopau me kahi waihona ESP_ DCC_ controller ma kāu waihona Arduino. Loaʻa i kahi .INO file, nā .H a me .CPP like ʻole files a me kahi waihona ʻikepili.

Hoʻonohonoho ʻia ʻo Arduino IDE no ka mana DCC

Kaomi pālua ma ka .INO file e wehe i ka papahana ma ka Arduino IDE.
Ma mua o ka paʻi ʻana i ka compile, pono mākou e hoʻonohonoho i kāu mau koi…

KaʻAnuʻu 6. E hoʻonoho i kāu mau koi ma Global. h

Hiki i kēia pāhana ke kākoʻo i ka nodeMCU a i ʻole WeMo's D1R1 a hiki iā ia ke kākoʻo i nā koho o nā papa mana like ʻole (pale kaʻa), a hiki iā ia ke kākoʻo i nā mea hana ma kahi kaʻa I2C e like me ka nānā ʻana o kēia manawa, ka hōʻike LCD a me ke kī. A ʻo ka hope hiki ke kākoʻo i kahi jogwheel (rotary encoder). ʻO ka hana maʻamau hiki iā ʻoe ke hana he WeMo's D1R1 a me L298 pale kaʻa.
E hoʻomaopopo i ke ala maʻalahi loa e hoʻopau i kahi koho e hoʻohui i kahi haʻahaʻa n i mua o kona inoa ma ka ʻōlelo #define.
#define nNODEMCU_OPTION3
#define nBOARD_ESP12_SHIELD
#define WEMOS_D1R1_AND_L298_SHIELD
No exampa, ma luna aʻe o NODEMCU_OPTION3 ua pio me ka n, ua like ia no nBOARD_ESP12_SHIELD. ʻO WEMOS_D1R1_AND_L298_SHIELD ke koho ikaika, a na kēia e hoʻohana i ka mea hoʻopili i ka hoʻonohonoho no kēia e like me ka mea i helu ʻia ma lalo.

No ka hele ʻana i kēia config: 

#elif i wehewehe ʻia(WEMOS_D1R1_AND_L298_SHIELD)

/* Ua hoʻopaʻa ʻia ʻo Wemos D1-R1 me ka pale L298, e hoʻomaopopo ʻo D1-R2 he kumu hoʻohālike hou me nā pinout ʻokoʻa*/
/*ʻoki i nā mea lele BRAKE ma ka pale L298. ʻAʻole koi ʻia kēia mau mea a ʻaʻole mākou makemake iā lākou e alakaʻi ʻia e nā pine I2C no ka mea e hōʻino ia i ka hōʻailona DCC.

Aia ka papa i ka Arduino form factor, penei na pine
D0 GPIO3 RX
D1 GPIO1 TX
D2 GPIO16 puʻuwai puʻuwai a me ka pihi pahu huila (hoʻoikaika hi)
Hiki iā D3 GPIO5 DCC (pwm)
D4 GPIO4 Jog1
D5 GPIO14 DCC hōʻailona (dir)
D6 GPIO12 DCC hōʻailona (dir)
Hiki iā D7 GPIO13 DCC (pwm)
D8 GPIO0 SDA, me 12k hukihuki
D9 GPIO2 SCL, me 12k hukihuki
D10 GPIO15 Jog2
ʻO nā memo ma luna nei no nā kānaka, e hōʻike iā ʻoe i nā ESP GPIO e hana i nā hana. E hoʻomaopopo i ka ʻOkoʻa ka Arduino D1-D10 i nā palapala palapala GPIO i ka node MCU D1-D10 i nā palapala palapala GPIO */

#define USE_ANALOG_MEASUREMENT
#define ANALOG_SCALING 3.9 //i ka hoʻohana ʻana iā A a me B i ka like (2.36 e hoʻohālikelike i ka multimeter RMS)
E hoʻohana mākou i ka AD ma ka ESP a ʻaʻole kahi mea nānā I2C o waho e like me ka INA219 disable.
kēia me n USE_ ANALOG_ MEASUREMENT inā makemake ʻoe e hoʻohana i kahi INA219

#define PIN_HEARTBEAT 16 //a me ka pihi pahu huila
#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 };
E wehewehe i nā pine e hoʻokele i nā hōʻailona DCC, loaʻa iā mākou ʻelua kahawai, e holo ana i loko o ka pae i hiki iā mākou ke hoʻohui pū iā lākou. ʻO ke kahawai A ʻo ka dcc_ ʻike [] a ʻo ke ala B ʻo ka dcc_ ʻike A []. Ua wehewehe ʻia kēia mau macros a ʻo ka backslash he hōʻailona hoʻomau laina.

#define PIN_SCL 2 //12k huki
#define PIN_SDA 0 //12k huki
#define PIN_JOG1 4
#define PIN_JOG2 15 //12k huki iho

E wehewehe i nā pine (GPIOs) e hoʻokele i ka I2C SCL/SDA a laila hoʻi i nā mea hoʻokomo jogwheel 1 a me 2.

#define KEYPAD_ADDRESS 0x21 //pcf8574

Hoʻohana ʻia no ke kīʻaha matrix 4 x 4 koho, i ʻimi ʻia me ka chip pcf8574.

//addr, en,rw,rs,d4,d5,d6,d7,kukui hope, polarity. ke hoʻohana nei mākou i kēia ma ke ʻano he mea 4 bit //ʻo kaʻu pinout hōʻike ʻo rs, rw, e, d0-d7. hoʻohana wale ʻia ka d<4-7>. <210> 'ike 'ia no ka mea, ua ho'opa'a 'ia nā bits <012> ma ke 'ano he EN,RW,RS a pono mākou e ho'onohonoho hou ia mau mea no ke kauoha maoli ma ka lako, ua palapala 'ia ka 3 //i ke kukui hope. <4-7> ʻike ʻia ma kēlā ʻano ma ka ʻeke ʻeke a ma ka hōʻike.

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

Hoʻohana ʻia e wehewehe a hoʻonohonoho i ka ʻeke ʻeke I2C e hoʻokele i ka hōʻike LCD 1602 (koho), hiki ke hoʻonohonoho ʻia kēia a he nui nā ʻeke ʻeke i loaʻa nā ʻano hoʻonohonoho pine.
#endif

KaʻAnuʻu 7. Hoʻopili a hoʻouka i ka papa.

I kēia manawa ua hoʻonohonoho ʻoe i ka combo papa āu e manaʻo ai e hoʻohana, hiki iā ʻoe ke hōʻuluʻulu i ka papahana. Inā ʻaʻole ʻoe i manaʻo e hoʻohana i ka 4 × 4 matrix keypad, a me LCD, ʻaʻohe pilikia, waiho i kā lākou wehewehe ʻana e like me ka manaʻo o ka polokalamu e hoʻonohonoho iā lākou. E hana maikaʻi ka ʻōnaehana ma luna o WiFi me ka ʻole o lākou.
Ma ka IDE, ʻo ka hōʻailona tick (hōʻoia) ʻo ia ka "Compile". Kaomi i kēia a ʻike ʻoe i nā memo like ʻole (inā hiki iā ʻoe ke hoʻohui ʻia ʻo Verbose) ʻoiai ʻo ka ʻōnaehana e hōʻuluʻulu i nā waihona like ʻole a hoʻopili iā ia a pau. Inā maikaʻi nā mea a pau, a inā ʻoe e hahai pono i nā ʻanuʻu a pau ma luna, a laila pono ʻoe e ʻike i kahi memo kūleʻa. Ua mākaukau ʻoe e paʻi i ka pihi ʻākau (hoʻouka), akā ma mua o ka hana ʻana i kēia, e nānā ua koho ʻoe i ke awa COM kūpono no ka papa ma lalo o ka papa kuhikuhi Mea Hana.
Ma hope o ka hoʻouka ʻana (e hoʻohana i ke kelepona USB maikaʻi) pono ʻoe e kāhea i ka E hoʻouka i ka papa kuhikuhi ESP8266 Sketch Data koho ma lalo o Tools. E hoʻokomo kēia i nā mea o ka waihona ʻikepili ma luna o ka hāmeʻa (nā ʻaoʻao HTML āpau).
Ua pau ʻoe. E wehe i ka monitor serial, kaomi i ke pihi hoʻihoʻi a ʻike ʻoe i ka boot o ka hāmeʻa a nānā i nā polokalamu I2C. Hiki iā ʻoe ke hoʻohui iā ia ma luna o Wifi, a ua mākaukau ʻo ia e uea i kona papa mana (pale kaʻa).

Palapala / Punawai

Hoʻonohonoho ʻia ʻo ARDUINO IDE no DCC Controller [pdf] Na kuhikuhi
Hoʻonohonoho IDE no ka Mana DCC, Hoʻonohonoho IDE, Hoʻonohonoho no ka Mana DCC, Hoʻonohonoho IDE DCC, Hoʻonohonoho DCC

Nā kuhikuhi

Waiho i kahi manaʻo

ʻAʻole e paʻi ʻia kāu leka uila. Hōʻailona ʻia nā kahua i makemake ʻia *