Опыт знакомства с микроконтроллерами ESP ч.2

Dec 18, 2021 02:30





Отладочная плата NodeMCU на базе ESP8266

Заметки серии:


Продолжу про первый опыт взаимодействия с семейством контроллеров ESP от Espressif Systems.

При первой попытке подключения к компьютеру вышла курьезная ситуация. Потратил несколько часов на борьбу с совершенно простой проблемой.

Отладочная плата оборудуется преобразователем интерфейса USB-UART от Silicon Labs CP210x. В моем случае это CP2102 у ESP8266 и CP21084 у ESP32. Грубо говоря это микросхема служит для организации программатора. С одной стороны она взаимодействует с контролером, с другой - с компьютером по интерфейсу USB2.0. Операционная система подключает сборку через виртуальный COM-порт. Для Windows нужны драйвера, в составе Linux они уже есть.

При первом подключении возникала проблема, что драйвер не хотел видеть плату, а в диспетчере устройств Windows драйвер устройства значился с кодом ошибки 10. Ставил разные версии драйверов, подключал и так, и сяк. И через родную ОСь, и через виртуалки. Ни в какую.

Проблема оказалась в проводе. Провод MicroUSB, который взял изначально, предназначен только для питания. Вообще такие вещи надо проверять сразу, но бывает, что очевидные вещи пропускаешь. Не повторяйте моих ошибок :)

Осваивать платы решил с использованием MicroPython. Пару слов о том, что для этого нужно


  1. Установить Python
  2. Установить ПО для прошивки контроллеров esptool для ESP32, для ESP8266. По сути, программка одна и та же. Для Windows еще бинарный вариант.
  3. Скачать прошивки MicroPython для ESP32, ESP8266. В моем случае ESP8266 шли с 4 Мб флэш-памяти, но бывают варианты на 1 и 2 Мб. В этом случае нужно брать прошивки меньшего размера. Они такие есть на сайте проекта.
  4. Прошить устройство в две команды:
    Windows:
    esptool.py --port COM3 erase_flash
    esptool.py --port COM3 --baud 460800 write_flash --flash_size=detect 0 esp8266-20210902-v1.17.bin
    Linux:
    esptool.py --port /dev/ttyUSB0 erase_flash
    esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20210902-v1.17.bin
  5. Установить и запустить редактор. Я использую для этих целей Thonny. Он есть и под Windows, и под Linux.

И как же без «Hello World!» мира потребительских контроллеров - помигать встроенным светодиодом.

from machine import Pin
from time import sleep

def blinkTact(controlled_LED):
for n in range(1, 35):
controlled_LED.value(not controlled_LED.value())
sleep(0.05 + 0.01 * (35 - n))

LED = Pin(2, Pin.OUT)

while True:
LED.value(1)
sleep(2)
blinkTact(LED)

it, esp32, Программирование, esp8266, Электроника

Previous post Next post
Up