Реклама: Ещё один бортовой компьютер для S3, на BluePill

 

Хочешь стать куратором любимой темы?

* Комментарии к новостям

1. Ковид и ковидобесие (Анекдоты и флУДИЛКА) от Карапузик (28.07.2021 в 20:25)2. Помогите выбрать моноколесо! (Моноколеса (электроунициклы)) от EcoDrift (28.07.2021 в 20:23)3. Как научиться кататься на моноколесе? Уроки мастерства! (Моноколеса (электроунициклы)) от Hukuma54 (28.07.2021 в 20:22)4. Дуалтрон minimotors ДОРАБОТКА , НЕИСПРАВНОСТИ, РЕМОНТ. (Электросамокаты MiniMotors) от volodiaa (28.07.2021 в 20:22)5. Контроллер Kelly (Микроэлектроника) от AUDIMEN (28.07.2021 в 20:21)6. Электросамокат и ПДД (Электросамокаты) от SMILE1 (28.07.2021 в 20:19)
7. BAFANG BBS03 1000W поделитесь знаниями) (Электровелосипеды с подвесным двигателем) от Андрей3 (28.07.2021 в 20:17)8. Kugoo M4 Pro 2020 (Электросамокаты Kugoo M и G серии и аналоги ) от ssilk (28.07.2021 в 20:11)9. Жалобы на модераторов (Улучшаем форум) от satell (28.07.2021 в 20:08)10. Электросамокат Kugo X1 едет 20 км/ч на всех передачах, ошибок нет (Электросамокаты Kugoo M и G серии и аналоги ) от Lexhit (28.07.2021 в 20:07)11. Помогите начинающему электрифицировать велосипед (Электровелосипеды) от Андрей3 (28.07.2021 в 20:06)12. Нужна помощь с акб ninebot 54вольта (Гироскутеры (мини-сигвеи)) от Geo23 (28.07.2021 в 20:03)
Не нравится реклама? Пройдите простую регистрацию на форуме и не будете видеть рекламу.

Прочитано 1673 раз

0 Пользователи и 1 Гость просматривают эту тему.

28 Июн 2021 в 22:06
Прочитано 1673 раз
Оффлайн

MultiMote

Сообщений: 26
Доброго времени суток, уважаемые форумчане. Нашёл я всё же в себе смелости выложить свой проект бортового компьютера для Kugoo S3. Так как проект я временно откладываю, релиз мог бы затянуться  :-D

Итак, немного предыстории. Мною был куплен самокат с убитой электроникой. Контроллер мотор-колеса кое-как получилось восстановить, но бортовой компьютер умер совсем. Было решено наверстать упущенное и вспомнить программирование под STM32. Огромное спасибо всем, кто разобрал протокол передачи данных. Без вас проект бы не существовал, так как оригинального бортового компьютера у меня не было, и функционала его не знаю.

Создавался проект практически из того, что было. Отладочный модуль с stm32f103c8t6 впаивается прямо на плату. На профессионализм не претендую. Насчёт дисплея - увы, был только только ssd1306. Да, маленький. Да, ничего не видно. Но ничего другого не было. При желании, для тестов всё можно собрать даже на макетной плате.

Проект полностью открыт. Код, инструкции и актуальную информацию можно найти на GitHub.

Будет здорово, если что-то окажется кому-то полезным.

Поехали.



На текущий момент (28.07.2021), с этим бортовых компьютером проехал 300 км.

Ещё один бортовой компьютер для S3, на BluePill

Ещё один бортовой компьютер для S3, на BluePill

Ещё один бортовой компьютер для S3, на BluePill

Что умеет

Список примерный.

  • Подавление неотключаемой автоматической фиксации ускорения ("круиз-контроль"). Осуществляется за счёт подачи нулевого ускорения, затем плавного возврата в режим.
  • Поддержание заданной скорости (П-регулятор, почти).
  • Настоящий круиз-контроль (с поддержанием скорости, а не ускорения) с включением по кнопке. Это значит что устройство будет поддерживать заданную скорость независимо от уклона дороги.
  • Переключение максимальной скорости в км/ч.
  • Отображение ошибок: неподключенная ручка тормоза, неподключенная ручка газа, перегрузка по току, проблема с двигателем, нет ответа от контроллера мотор-колеса.
  • Программное ограничение тока.
  • Плавный старт.
  • История поездок ( последние 8 ).
  • Экранная заставка для предотвращения выгорания пикселей.
  • Защита от зависаний при помощи сторожевого таймера.
  • Внешняя EEPROM память. Настройки не сбрасываются при перепрошивке.
  • Многое (в том числе и коэффициенты) настраивается из меню.
  • Печатная плата совместима с оригинальной.

Планы

  • ⚠ Довести до ума механизм подавления штатного круиз-контроля.
  • ⚠ Разобраться с редким зависанием c последующей перезагрузкой. Кажется, это связано с дисплеем. Серьёзно?
  • Реализовать "расстояние с последней зарядки". То, что самокат был на зарядке, определять по разнице напряжения между включениями.
  • Редактирование конфигурации по USART/Bluetooth.
  • Последовательности звуков.
  • Моргание фары, шаблоны мигания.
  • Как-нибудь применить стоп-сигнал.
  • Немного зарефакторить код, не всё находится в логичных местах.
  • Провести тесты на другом контроллере мотор-колеса. Возможно, мой контроллер - источник проблем.
  • Изменение шаблонов значений ограничения скорости.
  • Поддержка трёхпозиционного переключателя скоростей.

Информация

Схема:

Ещё один бортовой компьютер для S3, на BluePill

Проект DipTrace (печатная плата, схема)

Руководство пользователя

Загрузки

Руководство пользователя (PDF)

Прошивка (v0.1): kugoo-s3-bluepill-0.1-MinSizeRel.hex
Актуальный список прошивок всегда тут.
« Последнее редактирование: 28 Июн 2021 в 22:20 от MultiMote »


28 Июн 2021 в 22:43
Ответ #1
Оффлайн

Sonar

Санкт-Петербург, Приморский Сообщений: 1267
, Отлично, что вы начали сразу с использования графического дисплея. Если всё это разовьётся до дисплея по размерам как стоковое стекло самоката - то это будет весьма интересная замена штатному контроллеру. При разработке своего контроллера мне постоянно приходится ломать голову, как то или иное отобразить на штатном куговском стекле. У вас же - полная свобода :)
Интересно, как себя покажет в реальных условиях ваш круиз-контроль с поддержанием скорости. Я пытался применить несколько простеньких алгоритмов поддержания скорости, но все они давали разные побочные эффекты. То медленные, то скорость толком не держат, то уходят в самовозбуд. В итоге оставил штатный вариант, когда просто фиксируется уровень газа. Использую его и прям наслаждаюсь :)
А как у вас реализован сброс штатного круиза, который срабатывает в контроллере мотор-колеса? Понял, что вы тоже сбрасываете значение курка газа в ноль и снова его поднимаете, но это делается постоянно или есть какие-то дополнительные условия? Я в своём проекте добавил лишь одно условие - если значение курка газа уменьшается.


28 Июн 2021 в 23:17
Ответ #2
Оффлайн

MultiMote

Сообщений: 26
Интересно, как себя покажет в реальных условиях ваш круиз-контроль с поддержанием скорости
Уже показал, причём хорошо :)
Постоянно езжу в режиме стабилизации скорости + плавное ускорение.
Из того, что стоит заметить - есть небольшое перерегулирование. Это когда самокат уже достиг нужной скорости, но регулятор не успел отреагировать, и из-за этого самокат несколько секунд едет быстрее, чем нужно. Но я этого особо не замечаю, меня устраивает.

Этот же алгоритм используется и для ручки акселератора. Если выставлена скорость (ограничение скорости), допустим, 15 км/ч, то при режиме "ручка на максимум" самокат будет поддерживать эти самые 15 км/ч. А включение круиза - это просто запомнить значение ручки.

А как у вас реализован сброс штатного круиза, который срабатывает в контроллере мотор-колеса?
В пакете от мотор-колеса есть бит статуса в первом байте после заголовка. Определяется по маске 0x02.



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




28 Июн 2021 в 23:32
Ответ #3
Оффлайн

Sonar

Санкт-Петербург, Приморский Сообщений: 1267
В пакете от мотор-колеса есть бит статуса в первом байте после заголовка. Определяется по маске 0x02
Спасибо. Этот момент завтра посмотрю, благо есть стоковый комплект как рас на изучение. Видимо я этот бит упустил из виду.


28 Июн 2021 в 23:46
Ответ #4
Оффлайн

MultiMote

Сообщений: 26
Я пытался применить несколько простеньких алгоритмов поддержания скорости, но все они давали разные побочные эффекты. То медленные, то скорость толком не держат, то уходят в самовозбуд

Да, и насчёт алгоритма. Вся магия происходит вот тут. Тут несколько хитростей. Регулятор оперирует со значениями в км/ч. И есть функция (kugoo_s3_set_speed_approx), которая конвертирует километры в час в примерное ускорение. Точность конвертации не сильно важна, регулятор сам подгонит значение до нужного.
В самом конце тут значение регулятора передаётся на контроллер мотор-колеса. Причём складывается с требуемым, за счёт чего достигается быстрая реакция.

В двух словах - мы сначала подаём требуемую скорость, а потом по ситуации отклоняем её в нужную сторону.



29 Июн 2021 в 15:08
Ответ #5
Оффлайн

Sonar

Санкт-Петербург, Приморский Сообщений: 1267
, спасибо. Есть над чем подумать :) Сегодня проверил бит статуса круиз-контроля - он действительно есть. Наверное будет сложнее с золотистыми контроллерами мотор-колеса. Там, в протоколе, такой бит не предусмотрен.


11 Июл 2021 в 15:12
Ответ #6
Онлайн

Magic David

Россия, Санкт-Петербург Сообщений: 129
Если всё это разовьётся до дисплея по размерам как стоковое стекло самоката - то это будет весьма интересная замена штатному контроллеру. При разработке своего контроллера мне постоянно приходится ломать голову, как то или иное отобразить на штатном куговском стекле.
Графический дисплей такого размера будет стоить недешево. Может лучше рассмотреть возможность подключения вместо дисплея обычного смартфона через web-интерфейс?
Это касается и данного проекта и Вашего. Получилось бы  хорошее универсальное решение. При этом требования к смартфону минимальны, значит вполне можно использовать старенький, который на руль вешать не жалко.


11 Июл 2021 в 15:42
Ответ #7
Онлайн

Night Fury

Москва - Московская область - Россия Сообщений: 337
Графический дисплей такого размера будет стоить недешево.

Терпимо.
ссылка

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


11 Июл 2021 в 15:49
Ответ #8
Оффлайн

Sonar

Санкт-Петербург, Приморский Сообщений: 1267
, в моем проекте однозначно не будет поддержки управления со смартфона. Пока экрана хватает. Да и надежнее так. Смартфон ещё попробуй разгляди на солнце.


13 Июл 2021 в 19:24
Ответ #9
Онлайн

Magic David

Россия, Санкт-Петербург Сообщений: 129
А использовать смартфон для индикации, по-моему, жуткий оверхед. Придется поднимать вебсервер, беспроводной интерфейс. Обеспечивать  прожорливый смартфон питанием итд
Веб-сервер не проблема, например, если использовать ESP8266. Ей и цена рублей 100 и связь в другим контроллером простейшая, хоть с STM32, хоть с Атмегой.  Думаю, что по сравнению с  самокатом, прожорливость смартфона не проблема.   


13 Июл 2021 в 19:30
Ответ #10
Онлайн

Magic David

Россия, Санкт-Петербург Сообщений: 129
в моем проекте однозначно не будет поддержки управления со смартфона. Пока экрана хватает. Да и надежнее так. Смартфон ещё попробуй разгляди на солнце.
Ну, не обязательно управление. В-основном настройки и просмотр. Не думаю, что это будет  угрозой для надежности. Зато очень универсальное решение и почти не ограниченные возможности для отображения информации.