243

Знакомимся с ESP32, часть 1: установка в Arduino IDE

Всем привет! С этого поста я начинаю серию "Знакомимся с ESP32". В этой части я опишу сам микроконтроллер, а так же процесс установки в Arduino IDE. Поехали!

ESP32 - это современный микроконтроллер от компании Espressif Systems, который был выпущен совсем недавно. Под "недавно" я имею в виду лето 2016. Он имеет очень нескромные характеристики:

-Двухъядерный 32-х битный процессор, работающий на частоте 80, 160 или 240 МГц (ну  плюс ещё одно энергосберегающее ядро с урезанным набором команд и на частоте 32 КГц)

-520 КБ оперативки

-448 КБ flash-памяти (на самом деле доступно больше, рассмотрим далее)

-Питание 2.2 - 3.6В

-Дополнительно внешняя flash-память на 4-16 МБ (о чём я говорил ранее)


-Wi-Fi 802.11n с максимальной скоростью 150 Мбит в секунду

-BT 4.2 BR/EDR и Low Energy


-АЦП 12-бит х18

-ЦАП 8-бит х2

-Встроенный датчик температуры

-SPI х4

-I2S x2

-I2C x2

-UART x3

-Ethernet контроллер

-CAN 2.0

-Инфракрасный контроллер, причём, как на приём, так и на передачу

-PWM на всех портах вроде

-Встроенный датчик Холла


-Куча периферии для криптографии (шифровальщики, хешеры, ГСЧ)


А так же энергопотребление:

-При передаче Wi-Fi 160-260 мА

-Без Wi-Fi и BT 20 мА

-Режим "мягкого" сна 0.8 мА

-Режим "глубокого" сна 10 мкА

-Гибернизация со включенным ядром низкого энергопотребления 5 мкА


АХТУНГ! Вы часто будете встречать слово RTC при использовании ESP32. Однако, это не Real Time Clock, а ядро низкого энергопотребления.


Я заказал отладочную плату на Али, которая обошлась мне в 335 рублей, это без доставки.


Установка


1. Скачиваем Arduino IDE

2. Устанавливаем Git с сайта

3. Запускаем Git GUI

3.1. Выбираем Clone Existing Repository

3.2. В Source Location пишем

https://github.com/espressif/arduino-esp32.git

3.3. В Target Directory пишем

C:/Users/[ИМЯ_ПОЛЬЗОВАТЕЛЯ]/Documents/Arduino/hardware/espressif/esp32

3.4. Нажимаем Clone

4. Открываем директорию

C:/Users/[ИМЯ_ПОЛЬЗОВАТЕЛЯ]/Documents/Arduino/hardware/espressif/esp32/tools

и запускаем файл get.exe

5. Подключаем нашу плату

5.1. Если драйвера сами не установились, то устанавливаем драйвера для CP210x (у меня был CP2102) отсюда

6. Запускаем Arduino IDE

7. Выбираем плату в Tools > Board (Инструменты > Плата) (У меня DOIT ESP32 DEVKIT V1)

8. Выбираем COM-порт, в который установилась плата

8.1. Как определить порт?

8.1.1. Открываем диспетчер устройств

8.1.2. Раскрываем группу "Порты (COM и LPT)"

8.1.3. Смотрим название устройств. Среди них должно быть что-то подобное

COM7 - это и есть наш порт.

9. Выбираем любой пример (например, вот)

10. Загружаем, нажав Ctrl+U

10.1. В некоторых инструкциях говорят, что во время загрузки нужно нажать кнопку BOOT на плате. Однако, у меня всё завелось и без неё.


Поздравляю, теперь вы загрузили свою первую программу на ESP32! Ждите следующих частей, в которых я расскажу некоторые тонкости и трудности, с которыми я столкнулся.

Arduino & Pi

1.5K пост20.8K подписчиков

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Автор поста оценил этот комментарий
А она чем-то принципиально отличается от arduino nano?
раскрыть ветку (1)
7
Автор поста оценил этот комментарий

Конечно! Два 32-битных ядра, встроенные Wi-Fi и Bluetooth, куча других прибамбасов, другая архитектура процессора. Простите, вы видимо невнимательно пост читали

показать ответы
Автор поста оценил этот комментарий
А как виндовс на нее установить? Хотя бы 3.1!? Или линукс!
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Так. Спасибо за идею.

показать ответы
0
Автор поста оценил этот комментарий

Привет! В сети есть инструкции, как прошить Pro mini через Nano. Удобно, когда нет программатора. Пользовался несколько раз.


Сейчас в наличии esp32 и надо прошить pro mini. Опыта с 32 почти нет. Подскажите, можно ли и как прошить про мини через исп32?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

У ESP32 точно такие же цифровые входы-выходы, дайте мне пару часов, я вам отвечу, в принципе просто должно быть.

показать ответы
1
Автор поста оценил этот комментарий

> "-Двухъядерный 32-х битный процессор, работающий на частоте 80, 160 или 240 МГц (ну плюс ещё одно энергосберегающее ядро с урезанным набором команд и на частоте 32 КГц)"


Это разные версии платы или программно регулируется?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Программно регулируется

1
Автор поста оценил этот комментарий
А дайте ссылку на али, где именно покупали? Плата, конечно, шикарная! Там случайно hdmi выхода встроенного нет?)) а то они ее так нашпиговали, как будто хотят распберри переплюнуть. А так получилась хорошая плата для embedded применений. И в авто можно поставить. Как по стабильности работы?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Нет, HDMI нету. Стабильность, если 0% - очень нестабильно, а 100% - очень стабильно, где-то 85%. Часто перезагружается от нехватки питания в момент запуска Wi-Fi, при внешнем БП такой проблемы не наблюдается.

показать ответы
0
Автор поста оценил этот комментарий

Привет! В сети есть инструкции, как прошить Pro mini через Nano. Удобно, когда нет программатора. Пользовался несколько раз.


Сейчас в наличии esp32 и надо прошить pro mini. Опыта с 32 почти нет. Подскажите, можно ли и как прошить про мини через исп32?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Каким вы способом собираетесь прошивать Pro Mini? Как SPI-программатор или как UART-конвертер?

показать ответы
0
Автор поста оценил этот комментарий

Про ядро понятно, а про часы нет.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Часов нету. То, что называется RTC - это ядро, не Real Time Clock

показать ответы
0
Автор поста оценил этот комментарий

Набрасывался на этот вопрос пару раз, но так и не понял, есть ли в ЕПС32 RTC, тот что Real Time Clock с батарейным бэкапом.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

RTC - это энергосберегающее ядро

показать ответы
Автор поста оценил этот комментарий

А зачем она нужна? для майнинга что-ли?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Хотите - можете и майнить. Аппаратные вычислители хеша помогут

3
Автор поста оценил этот комментарий

Разумеется, не особо оценит. Куча аббревиатур в характеристиках, понятных только тем, кто в теме. А содержимое текста - "hello world" для новичков.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Чукча не писатель, тут уж извините. Текст ориентирован на тех, кто знаком с Arduino, но совсем не знаком с ESP32

2
Автор поста оценил этот комментарий
Если оперативу расширить до 16 метров, то характеристики будут круче чем у моего первого компа в начале нулевых....
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Кто мешает вам извратиться и хранить переменные на SD-карте?)

показать ответы
0
DELETED
Автор поста оценил этот комментарий

Собственно, как это есть в 8266. BT и I2S ковыряли?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Пока нет. Ждите следующие части :)

0
Автор поста оценил этот комментарий

а как двухядерный процессор работает там? в ардуино вроде нет многопоточности

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Одно ядро занимается задачами BT/Wi-Fi, на втором крутится прошивка. Если бы двухъядерности не было, то программа бы зависала на время работы Wi-Fi/BT

показать ответы