Контроллер для кордовых электричек

Маркс

пока решаю вопросы c ремонтом автомобиля,
никакие “программирования и трассировки” в голову не лезут,
но … “нашел в себе сил”(шутка естессно) и заказал вот такую платку

Супер мини макетная плата ESP32 с Wi-Fi и Bluetooth


все удовольствие 190 рублей, на 20 рублей дороже чем Arduino Pro Mini, но …

дьявол, как известно, кроется в деталях,
у этой платы есть WiFi и BT, а значит реально реализовать управление через WEB интерфейс
но это пока только проекты )

VitalikV

Читал я тесты про esp32, пишут что она намного слабее чем ардуино и аналоги, что то там со скоростью вычислений связано, в “простонародье тупит”))

Маркс

хрень пишут )), у Меги 328 16МГц тактовая частота, т.е. 16 млн простых операций в секунду,
а у ESP32 40МГц в два с половиной раза больше.
в таймере нет большого количества вычислений, а один цикл больше 2 мс, т.е. больше 32000 тактов,
до хрена времени )
FLASH память, то куда программа записывается 4МБ супротив 32КБ у 328,
с энергонезависимой памятью примерна та же байда,
безусловно какое то количество ресурсов будет отбирать WiFi, но не так много и только при работе

VitalikV

За что купил, за то и продаю, тест был не с про мини, а с аналогами от ардуино и им подобным. Отсюда у него и цена как у про мини, а сравнивали его с какими то чипами с похожими характеристиками.

Маркс

Ардуинки в основной массе на Atmega328p, есть на Atmega2560,
но там тоже не далеко ушли теже 16МГц и чуть больше (256КБ) Флэш память,
но при этом куча портов выведенных на гребенку

я бы с удовольствием все сделал на STM32, там и среда разработки сильно лояльная
и возможности даже у младших процессоров на порядок выше,
но плат разработки маленького размера типа Про Мини на STM32 нет
а платка ESP32 из поста выше, размерами гораздо меньше, а возможностей в разы больше

дело в том, что портов I/O на таймере много не надо,

  • I - кнопка
  • I - прерывание от частотомера
  • O - порт управления регулятором
  • O - светодиод
  • i2c - для подключения гироскопа (опционально)
VitalikV

Предложенная плата, это аналог climb and dive таймера.

А вообще, все удачные зарубежные таймеры сделаны на pic-контроллерах, и их ресурсов достаточно и для гувернера и для акселерометра с гироскопом, но надо рисовать и паять плату.

Почему то таймеры на базе макетных плат по типу ардуино,особого распространения не получили. Толи не смогли заставить работать правильно, толи боятся экспериментов)))

VitalikV

Что касается wifi, то многие телефоны хреново работают в режиме точка точка, да и многим пользователям вбить статику на телефоне, целая проблема… Поэтому надо поднимать точку доступа на платке, нагружать dhcp сервер, чтобы телефон подключался к контроллеру, плюс туда загружаем веб интерфейс. Круто, но сколько всего надо запихать в таймер. А еще надо как то телефону объяснить, что если нет интернета на этой точке доступа, то не надо от нее отключаться и переключатся на 4g.

У блютус, надо программку для андройда написать, через готовые терминалы, не совсем удобно настраивать ,надо подсказку с собой таскать, так сделан kordtimer, который продают в фасршопе.

VitalikV

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

Маркс
VitalikV:

Поэтому надо поднимать точку доступа на платке, нагружать dhcp сервер, чтобы телефон подключался к контроллеру, плюс туда загружаем веб интерфейс. Круто, но сколько всего надо запихать в таймер. А еще надо как то телефону объяснить, что если нет интернета на этой точке доступа, то не надо от нее отключаться и переключатся на 4g.

все придумано до нас
есть готовый
jeecrypt / JeeUIFramework

VitalikV

Это веб интерфейс, про подключение через вайфай, к модулю как к точке доступа ни слова.

Проблема автоматического переключения между 4г и вайфай, при отсутствии интернета, так же остается.

И это не проблема модуля, так сделаны телефоны.

Я на это напоролся, когда на модуле esp8266, собирал проект для rgb - конвертера. Такая же проблема наблюдается при использовании диагностики автомобиля obd2, через вайфай, мобила отключается от модуля и ломится в инет через 4г.

Единственным выходом было, глушить любой интернет на телефоне, на время настроек, что очень не удобно, ни чего не посмотреть в интернете, пока не закончишь настройки, а потом главное не забыть включить инет обратно))

Маркс

я с таким до сих пор не сталкивался, спорить не стану.
да и тут толком пока не разбирался, пока не до того.
на днях повешу машину на подъемник, вот тогда успокоюсь.

ЕМНИП в данном случае все работает как в китайских квадрах и вертолетиках с камерой.
смартфон подключается к открытой сети и в окне браузера открывается страничка.
Для внука в свое время делал управление катером через RemoteXY,
судя по всему тут работает примерно так же )

А кстати, использовать RemoteXY (remotexy.com/ru/editor/) тоже как вариант.
Поддержку ESP32 в среду они прикрутили, у меня на ESP8266 катер метров на 20 от берега бегал )

Маркс

Кста, в RemoteXY добавлен функционал подключения ардуинок к смартфону по USB OTG.
На днях посмотрю, что это такое.

Маркс

с RemoteXY засада, бесплатно получится только пять элементов на экране,
если нужно больше, тогда Pro версия программы для смартфона и она стоит 1200 рублей.

RandomJ

Ну не настолько это и дорого, если софтина толковая и в ней будет необходимость.

VitalikV

Я думаю, со смартфоном заморачиваться рано, надо хотя бы на ардуино проект довести до конца. Предновогодняя суета, не дает возможности, сесть за паяльник, чтобы собрать таймер и потестить(((

8 days later
Маркс

В результате “теоретических” исследований и анализа экспериментов,
поставленных на WeMos ESP8266 Mini …
Короче, применение данного девайса на данный момент не целесообразно.

Суть эксперимента - запустил на девайсе простую программу в цикле,

  • изменение уровня сигнала на выходе МК в каждом цикле программы.

А дальше смотрел меандр на выводе МК с помощью осциллографа.

Был сильно удивлен результатами измерения периода меандров.
Nano v3 ATMEGA238P 16МГц - ~2мкс, т.е. один цикл примерно 16 тактов.
WeMos на тактовой частоте 80МГц - ~8мкс - 320 тактов
WeMos 80МГц с поднятым WEB интерфейсом - >30мкс - 2500 тактов

Маркс

“Георгия Ивановича”, так зовут мою машину, после ДТП на колеса поставили,
дальше буду ждать кузовной ремонт, но можно выдоохнуть.
Так что продолжу кропать программу, осталось вспомнить - на чем остановился

Маркс

хотя … нашел видео

и все сразу стало не настолько однозначно.
не знаю откуда берется такая задержка в переключении выхода микросхемы 8266,
но “математика” у ESP8266/ESP32 работает значительно быстрее.

В общем, выявлю “отложенный” на месяц баг и попробую запустить таймер на ESP8266.

Маркс
VitalikV:

Я думаю, со смартфоном заморачиваться рано

стоит определится с платформой.
вариантов Pro Mini, как выяснилось, существует как минимум три варианта,
с разным расположением A4/A5.
а это влияет на разведение печатной платы.
Сделать на “все случаи жизни” я попытался,
но в варианте “однослойного монтажа” у меня получилось не очень красиво.
А “двухслойные” платы придется заказывать на стороне, а это лишние деньги.

А маленькая и легкая ESP32C3 существует в одном варианте
и может занимать значительно меньше места на кросс-плате.

Маркс

Плюс от использования ESP32C3 в качестве вычислительной платформы таймера

  • USB разъем для программирования, не нужен USB-UART.
  • пока “теоретическая”, возможность программирования параметров через WEB со смартфона,
    платформу для реализации уже нашел, JeeUI2 позволяет реализовать точку доступа,
    стартовую страницу с сохранением введенных значений.
    Этот функционал я уже опробовал на WeMos D1 ESP8266.
  • отсюда становится не нужен программатор на UNO с LCD KEYPAD

Пока что на мой взгляд сплошные плюсы, осталось понять, хватит ли ресурсов )

Маркс

Продолжил изыскания в сторону ESP в качестве платформы для проекта
И выяснил, что большая задержка вызывается переходом от завершения основного цикла в его начало.
Сделал маленькую WEB-мордочку

и начал эксперименты

void loop()
{
  stateLed = !stateLed;
  digitalWrite(2, stateLed);  // Turn the LED on (Note that LOW is the voltage level
  stateLed = !stateLed;
  digitalWrite(2, stateLed);  // Turn the LED on (Note that LOW is the voltage level
  jee.handle();
  restart_handle();
  jee.btnCallback("btn1", btnUI);
}

этот код дал вот такую картинку

Промежуток между импульсами, это внутренние “терки процессора”,
связанные с WEB интерфейсом, примерно 35мкс, пауза постоянная, не зависимо от написанного кода до выхода из loop()
На таймер импульсы от формирователя приходят с частотой 20-25КГц/~40мкс,
думаю проблем с совместимостью быть не должно

Вывод, на днях приедет ESP32C3 протестирую ее в качестве “мозга”