цифровая электроника
вычислительная техника
встраиваемые системы

 

Программируем ESP32 в Arduino IDE

Автор: Mike(admin) от 3-11-2016, 07:25

Скрещивание набирающего популярность микроконтроллера ESP32 и уже ставшей чрезвычайно популярной экосистемы Arduino является очень нужным и полезным делом для сообщества радиолюбителей. Успех платформы Arduino возник не в последнюю очередь из-за очень простого подхода к программированию, который могли быстро освоить даже далекие от электроники и программирования люди.


Программируем ESP32 в Arduino IDE

Теперь вслед за ESP8266 на рельсы Arduino встал самый мощный «поезд» компании Espressif – микроконтроллер ESP32. Сочетание мощности и простоты обеспечит грандиозные возможности для разработки новых интеллектуальных устройств.


Итак, для программирования ESP32 в среде Arduino IDE в первую очередь необходимо скачать репозиторий с GitHub и клонировать его в директорию hardware/espressif/esp32 в папке Arduino IDE. После этого можно начинать писать программы для ESP32 в этой среде.


Конечно, пока данный проект реализует не все возможности и функции Arduino, но основные уже доступны и работают полностью. Так, например, управлять линиями GPIO в данном случае также легко, как и у классического Arduino – просто пользуемся функциями digitalWrite() и digitalRead(). Интерфейсы SPI и I2C работают также, как и в Arduino. На данном этапе есть возможность управлять только двумя модулями SPI в ESP32. Скорость работы SPI задается через SPI_CLOCK_DIV_XX, где XX число делителя частоты. I2C (Wire) имеет только один модуль с выводами GPIO21 в качестве линии данных и GPIO22 в качестве линии тактирования. Ниже представлена распиновка ESP32 с функциональным назначением каждого вывода.


Программируем ESP32 в Arduino IDE

Для реализации связи по WiFi используются те же функции, что и изначально у Arduino с внешним модулем WiFi. В микроконтроллере ESP32 есть также встроенный модуль Bluetooth, но пока для него не реализованы функции должным образом.


Помимо функций изначально предназначенных для Arduino имеются специализированные функции для ядра ESP32. Их можно найти в директории /arduino-esp32/tree/master/cores/esp32/. Они представлены в файлах с «-hal-» в наименовании (esp32-hal-xxx.h и esp32-hal-xxx.c). Например, в esp32-hal-matrix.* можно найти функции, дающие легкий доступ к матрице назначения выводов.


С помощью специализированных функций можно управлять внешними устройствами, например, светодиодами или сервомоторами. Для этого имеются файлы esp32-hal-ledc.*, обеспечивающие функции для генерации ШИМ. Ниже приведен код для управления серводвигателем, в котором с помощью функции ledcSetup устанавливается первый канал ШИМ с частотой 50 Гц и разрядностью 16 бит. Функция ledcAttachPin подключает этот первый канал ШИМ к линии GPIO22. Функция ledcWrite обеспечивает на первом канале ШИМ генерацию импульсов шириной 3300 и 6500 с изменяемым в цикле на 100 шагом.



#include "esp32-hal-ledc.h"
void setup() {
   ledcSetup(1, 50, 16);
   ledcAttachPin(22, 1);
}
 
void loop() {
   for (int i=3300 ; i < 6500 ; i=i+100){
    ledcWrite(1, i);
    delay(100);
   }
}

Таким образом, микроконтроллер ESP32 уже можно программировать в среде Arduino IDE. Хотя реализованы еще не все функции, но даже с помощью имеющихся вполне возможно делать какие-либо несложные устройства на базе ESP32.




© digitrode.ru


Теги: ESP32, Arduino



Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

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