Настройка ARDUINO IDE для контроллера DCC 

Логотип ARDUINO IDE

Настройка Arduino IDE для контроллера DCC

Шаг 1. Настройка среды IDE. Загрузите платы ESP.

Когда вы впервые устанавливаете Arduino IDE, она поддерживает только платы на базе ARM. Нам нужно добавить поддержку плат на основе ESP. Перейдите к File… Настройки

Настройка среды IDE. Загрузите платы ESP
Настройка среды IDE. Загрузите платы ESP

Введите эту строку ниже в менеджер дополнительных досок. URLС коробка. Обратите внимание, что в нем есть символы подчеркивания, а не пробелы.  http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://dl.espressif.com/dl/package_esp32_index.json
Также установите флажок «Показывать подробные сведения во время компиляции». Это дает нам больше информации, если во время компиляции что-то выйдет из строя.

Обратите внимание, что строка выше добавляет поддержку как для устройств esp8266, так и для более новой версии esp32. Две строки json разделены запятой.
Теперь выберите доску версия 2.7.4 от менеджера досок

Настройка Arduino IDE для контроллера DCC

Установите версию 2.7.4. Это работает. Версия 3.0.0 и выше не работает для этого проекта. Теперь, вернувшись в меню «Инструменты», выберите доску, которую вы будете использовать. Для этого проекта это будет либо nodeMCU 1.0, либо WeMos D1R1.

Настройка Arduino IDE для контроллера DCC

Здесь мы выбираем WeMos D1R1. (изменение этого от Nano)

Шаг 2. Настройка среды IDE. Загрузите надстройку ESP8266 Sketch Data Upload.

Нам нужно загрузить эту надстройку, чтобы мы могли публиковать (размещать) HTML-страницы и другие files на устройстве ESP. Они живут в папке данных внутри папки вашего проекта. https://github.com/esp8266/arduino-esp8266fs-plugin/releases
Перейти к URL выше и загрузите ESP8266FS-0.5.0.zip.
Создайте папку Tools внутри папки Arduino. Распаковать содержимое zip file в эту папку Инструменты. Вы должны закончить с этим;

Настройка Arduino IDE для контроллера DCC

И в разделе «Инструменты» появится новый пункт меню…

Настройка Arduino IDE для контроллера DCC

Если вы вызовете этот пункт меню, среда IDE загрузит содержимое папки данных на доску. Итак, среда IDE настроена для общего использования ESP8266, теперь нам нужно добавить несколько библиотек в папку Arduino/Libraries для этого конкретного проекта.

Шаг 3. Загрузите библиотеки и установите их вручную.

Нам нужно скачать эти библиотеки с Github; https://github.com/me-no-dev/ESPAsyncTCP

Настройка Arduino IDE для контроллера DCC

Нажмите на код, а затем загрузите zip. Он попадет в вашу папку загрузок. Перейдите в загрузку, найдите zip, откройте его и перетащите папку с содержимым «ESPAsyncTCP» в Arduino/libraries.
Если имя папки заканчивается на «-master», переименуйте ее, чтобы удалить «-master» с конца.
то есть из загрузок

Настройка Arduino IDE для контроллера DCC

Откройте .zip для ESPAsyncTCP-master и перетащите папку ESPAsyncTCP-master из него в Arduino/Libraries.

Настройка Arduino IDE для контроллера DCC

Примечание: Arduino/библиотеки не могут использовать версию .zip, вам нужно разархивировать (перетащить) нужную папку. Нам также нужно https://github.com/fmalpartida/New-LiquidCrystal
Загрузите zip, затем перетащите его содержимое в Arduino/libraries и удалите окончание -master.

И напоследок нам понадобится ArduinoJson-5.13.5.zip по ссылке ниже https://www.arduinolibraries.info/libraries/arduino-json

загрузите, а затем перетащите содержимое zip в Arduino/libraries

Шаг 4. Установите еще пару библиотек с помощью Arduino Library Manager.

Нам нужны еще две библиотеки, и они берутся из диспетчера библиотек Arduino, который содержит набор встроенных библиотек. Перейдите в Инструменты… Управление библиотеками…

Настройка Arduino IDE для контроллера DCC
Настройка Arduino IDE для контроллера DCC

Используйте версию 1.0.3 Adafruit INA219. Это работает. 

А также

Настройка Arduino IDE для контроллера DCC

Используйте версию 2.1.0 WebРозетки от Markus Sattler, проверены и работают. Я не тестировал более поздние версии.
Итак, это все библиотеки (также известные как ссылки), которые необходимы IDE для компиляции этого проекта.

Шаг 5. Загрузите проект ESP_DCC_Controller с GitHub и откройте в IDE.

Зайдите на GitHub и скачайте https://github.com/computski/ESP_DCC_controller

Нажмите на зеленую кнопку «Код» и загрузите zip. Затем откройте застежку-молнию file и переместите его содержимое в папку Arduino. Переименуйте папку, чтобы удалить «-main» в конце имени папки. У вас должна получиться папка ESP_DCC_controller в папке Arduino. Он будет содержать .INO file, различные .H и .CPP files и папку данных.

Настройка Arduino IDE для контроллера DCC

Дважды щелкните файл .INO. file чтобы открыть проект в Arduino IDE.
Прежде чем мы начнем компилировать, нам нужно настроить в соответствии с вашими требованиями…

Шаг 6. Задайте свои требования в Global. час

Этот проект может поддерживать nodeMCU или D1R1 WeMo, а также может поддерживать ряд различных вариантов платы питания (щит двигателя), а также может поддерживать устройства на шине I2C, такие как текущий монитор, ЖК-дисплей и клавиатура. И, наконец, он также может поддерживать jogwheel (поворотный энкодер). Самая простая сборка, которую вы можете сделать, — это моторный щит WeMo D1R1 и L298.
Обратите внимание, что самый простой способ отключить параметр — добавить строчную букву n перед его именем в операторе #define.
# определить nNODEMCU_OPTION3
# определить nBOARD_ESP12_SHIELD
#определять ВЕМОС_D1R1_AND_L298_ЩИТ
Напримерample, выше NODEMCU_OPTION3 был отключен, то же самое для nBOARD_ESP12_SHIELD. WEMOS_D1R1_AND_L298_SHIELD является активной опцией, и это заставит компилятор использовать для этого конфигурацию, указанную ниже.

Чтобы пройти через эту конфигурацию: 

#elif определено (WEMOS_D1R1_AND_L298_SHIELD)

/*Wemos D1-R1 совмещен с щитом L298, обратите внимание, что D1-R2 — более новая модель с другой распиновкой*/
/*Разрежьте перемычки BRAKE на щитке L298. Они не требуются, и мы не хотим, чтобы они управлялись контактами I2C, поскольку это искажает сигнал DCC.

Плата выполнена в форм-факторе Arduino, расположение выводов следующее.
D0 GPIO3 RX
D1 GPIO1 TX
D2 GPIO16 кнопка пульсации и поворотного колеса (активный привет)
D3 GPIO5 DCC включение (ШИМ)
D4 GPIO4 Джог1
D5 GPIO14 DCC сигнал (напр.)
D6 GPIO12 DCC сигнал (напр.)
D7 GPIO13 DCC включение (ШИМ)
D8 GPIO0 SDA, с подтяжкой 12k
D9 GPIO2 SCL, с подтяжкой 12k
D10 GPIO15 Джог2
вышеприведенные примечания для людей позволяют узнать, какие ESP GPIO будут выполнять какие функции. Обратите внимание, что Сопоставления Arduino D1-D10 и GPIO отличаются от сопоставлений узла MCU D1-D10 с GPIO. */

#define USE_ANALOG_MEASUREMENT
#define ANALOG_SCALING 3.9 //при параллельном использовании A и B (2.36 для соответствия RMS мультиметра)
Мы будем использовать AD на ESP, а не внешнее устройство мониторинга тока I2C, такое как блокировка INA219.
это с n USE_ ANALOG_ MEASUREMENT, если вы хотите использовать INA219

#define PIN_HEARTBEAT 16 //и кнопка джога
#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};
Определяет, какие контакты будут управлять сигналами DCC. У нас есть два канала, работающие синфазно, поэтому мы можем объединить их вместе. Канал A — это dcc_info [], а канал B — это dcc_info A []. Они определяются как макросы, а обратная косая черта является маркером продолжения строки.

#define PIN_SCL 2 //подтягивание 12k
#define PIN_SDA 0 //подтягивание 12k
#define PIN_JOG1 4
#define PIN_JOG2 15 //выпадающее меню 12k

Определите контакты (GPIO), которые управляют I2C SCL / SDA, а затем также входы 1 и 2 поворотного колеса.

#определить KEYPAD_ADDRESS 0x21 //pcf8574

Используется для дополнительной матричной клавиатуры 4 x 4, которая сканируется с помощью микросхемы pcf8574.

//адрес, en, rw, rs, d4, d5, d6, d7, подсветка, полярность. мы используем это как 4-битное устройство // моя распиновка дисплея — rs, rw, e, d0-d7. используются только d<4-7>. <210> появляется потому, что биты <012> отображаются // как EN, RW, RS, и нам нужно переупорядочить их в соответствии с фактическим порядком на оборудовании, 3 отображается // на подсветку. <4-7> появляются в таком порядке на рюкзаке и на дисплее.

#define BOOTUP_LCD LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, ПОЗИТИВ); //Рюкзак YwRobot

Используется для определения и настройки рюкзака I2C, который управляет ЖК-дисплеем 1602 (дополнительно), он настраивается программно, и есть несколько доступных рюкзаков, конфигурация контактов которых различается.
#endif

Шаг 7. Скомпилируйте и загрузите на доску.

Теперь, когда вы настроили комбинацию плат, которую собираетесь использовать, вы можете скомпилировать проект. Если вы не собираетесь использовать матричную клавиатуру 4x4 и ЖК-дисплей, не проблема, оставьте их определения, поскольку программа ожидает их настройки. Система будет нормально работать через Wi-Fi и без них.
В среде IDE символ галочки (проверить) на самом деле означает «Компилировать». Нажмите на нее, и вы увидите различные сообщения (при условии, что вы включили компиляцию Verbose), поскольку система компилирует различные библиотеки и связывает их все вместе. Если все работает хорошо, а так и должно быть, если вы точно выполнили все вышеперечисленные шаги, вы должны увидеть сообщение об успешном завершении. Теперь вы готовы нажать кнопку со стрелкой вправо (загрузить), но перед этим убедитесь, что вы выбрали правильный COM-порт для платы в меню «Инструменты».
После успешной загрузки (используйте USB-кабель хорошего качества) вам также необходимо вызвать Загрузить меню данных эскиза ESP8266 вариант в разделе «Инструменты». Это поместит содержимое папки данных на устройство (все HTML-страницы).
Вы сделали. Откройте последовательный монитор, нажмите кнопку сброса, и вы должны увидеть загрузку устройства и поиск устройств I2C. Теперь вы можете подключиться к нему через Wi-Fi, и он готов к подключению к плате питания (щиту двигателя).

Документы/Ресурсы

Настройка ARDUINO IDE для контроллера DCC [pdf] Инструкции
Настройка IDE для контроллера DCC, настройка IDE, настройка для контроллера DCC, настройка контроллера DCC Настройка IDE, контроллер DCC

Ссылки

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *