Я новичок в Arduino, многое делаю методом проб и ошибок. В определенный момент времени я устал от бесконечных циклов исправил\скомпилировал\залил\проверил и написал шелл, в котором наиболее частые и простые вещи можно делать командами в консоли.
С помощью этого шелла я отлаживаюсь сам, в частности - он мне помог с i2c устройствами и GSM модемом sim7600e
Шелл представляет собой один файл, espshell.c , который нужно просто положить в каталог со скетчем (в каталог с вашим .ino файлом) и нажать кнопку компиляции и прошивки в Arduino IDE. Шелл автоматически перехватит управление при старте скетча и запустит CLI на UART0
Общаться с шелом можно через Arduino IDE Serial Monitor, но лучше - через Tera Term. Или PuTTY. Это связано с тем, что Serial Monitor не умеет посылать CTRL+C и CTRL+Z которые нужны при отладке устройств с uart интерфейсом.
Вся эта красота НЕ будет работать на USB-Serial бордах (где серийник - не
class HardwareSerial, а class USBCDC, например Nano ESP32). Как обзаведусь платой с USB-OTG, тогда доработаю шелл.
Отлично README написан, за 15 секунд глазами, наискось листа смог прочитать!
(на Гитхабе)
а class USBCDC, например Nano ESP32) есть ещё ESP32C3 (но они бывают и с CH340)
какой такой шелл, мой юный друг, ты наверное не в курсе, но данный чип поддерживает аппаратную отладку. надо всего лишь приобрести простой советский программатор ESP-PROG за 15 долларов / 1500 рублей с доставкой
какието шеллы люди делают, во блин, еще криптоалгоритмы начните делать.
ну я делаю то, чем сам пользуюсь. скоро приделаю spi. :). всю переферию - это незачем. надо чтобы use cases были какие-то. вот с уартом и и2ц я намучался (вернее, с устройствами, подключенными по уарт и и2ц), поэтому сделал команды для работы с и2ц и уарт-устройствами
ну а основная идея-то в том, что просто кинув 1 файл в свой скетч ты получаешь шелл, в котором можно какие-то простенькие штуки проверять не перекомпилируя скетч каждый раз. Этот шел - программа-паразит :). Ему нужен скетч, к которому она прилипнет
кстати о либах, не вижу ничего плохого, особенно для таких как я - не настоящих сталеваров )))
PS сегодня пытался запустить для ядра от STM дисплей ILI9341, ни на библиотеках от Adafruit ни на TFT_eSPI не зарабатоло (а позиционируются как поддерживающие), пришлось из кубиков собирать свою
Например, хотим в цикле посылать последовательность (мигать светодиодиком) и при этом не дожидаться ее окончания, а исполнять , например, другие команды:
esp32#>pin& 2 high delay 500 low delay 500 high del 250 low del 250 loop 9999
% Repeating 9999 times, press <Enter> to abort
% Use "kill 3ffb8fe4" to stop command execution
esp32#>
esp32#>
esp32#>kill 3ffb8fe4
% Aborted
esp32#>
Такая же возможность есть и для счетчика импульсов\частотомера: считать импульсы можно в бекграунде (команда “count&” вместо команды “count”). Прерванная команда “count&” выведет на экран, сколько импульсов насчитала до момента прерывания.
Ах да, кнопкой /Tab/ теперь можно прыгать по аргументам команды, если их дофига. Ну и вообще по кнопкам появилась целая страничка помощи: нужно написать “? keys” и нажать /Enter/. Autocmpletion отсутствует, но вместо этого, в качестве утешительного приза, можно писать команды и аргументы не до конца. Т.е. даже /Tab/ нажимать не надо. Вместо “suspend” проканает и “sus”. Или даже “su”
Обновил документацию. Документация вся - example-based, мне кажется, что так доходчивее
Посмотрел код - написано понятно , без зауми. Надо будет почитать повнимательнее. Единственное что смущает - это то что файл 6 тыс строк.
Все-таки оформить оболочку в виде библиотеки было бы правильнее, тем более что для этого ничего переделывать не нужно. И пользователю не нужно будет файлы копировать, достаточно вставить инклюд в начало кода
У меня тестовый сетап такой: китайская плата esp32, со светодиодиком на GPIO2 и двумя модулями - один прицеплен к пинам 18 и 19, LTE модем (uart) а к пинам 21 и 22 прицеплен модуль с RTC с EEPROM (i2c). Средствами шелла можно (например) записать что-то на еепромку, установить часы, пообщаться с модемом напрямую, (at командами).
Три файловые системы поддерживаются: FAT, SPIFFS и LittleFS. На том и остановимся, пожалуй. Командой cat можно не только просматривать файлы (текстовые или бинарные), но и посылать их в какой-нибудь uart, на выбор.
Ну и примитивное редактирование файлов текстовых: вставка и удаление строк, и т.п.