Skip to content

Простой девайс на ATTinyX5, который позволяет упростить управление самокатом на низких скоростях

Notifications You must be signed in to change notification settings

art-den/ScooterSpeedCorrector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 

Repository files navigation

Делаем старт электросамоката менее дёрганным

Небольшое электронное устройство на 8-ногом микроконтроллере ATTiny позволит сделать старт самоката менее дёрганным, а управление на низкой скорости более комфортным.

Устройство подходит только для электросамокатов, у которых ручка (или курок) газа подключается отдельно к контролеру! Если у вас курок газа располагается на дисплее контроллера, то использовать данное устройство не получится!

Как работает это устройство?

Устройство подключается в разрыв между ручкой газа и BLDC-контроллером электросамоката. Оно питается напряжением, которое идёт для питания ручки газа.

Устройство меняет линейную характеристику курка на нелинейную. Внешне это выглядит так: примерно до половины курка плавно регулируется низкая скорость самоката, а далее до конца диапазона курка идёт регулировка высокой скорости самоката.

На картинке показана передаточная характеристика устройства.

Характеристика

По горизонтали — напряжение в вольтах на входе, по вертикали — напряжение на выходе. Жёлтым цветом выделена рабочая зона BLDC-контроллера от начала, когда колесо начинает крутится до момента, когда колесо перестаёт увеличивать скорость.

Что нужно для изготовления данного устройства?

  1. Микроконтроллер ATTiny серий attiny25, attiny45, attiny85. Лучше всего использовать ATTiny85, т. к. скорее всего прошивка будет совершенствоваться и в будущем может не полезть в младшие серии attiny25, attiny45.
  2. Программатор для микроконтроллеров AVR. Не обязательно брать дорогой программатор. Подойдёт любой дешевый клон.
  3. Два электролитических конденсатора 100 мкФ на 6.3 вольта и более
  4. Один мелкий керамический конденсатор 100 нФ
  5. Два резистора 300 Ом
  6. Один резистор 10 кОм
  7. Разъёмы для подключения к микроконтроллеру к ручке газа
  8. Разъём для прошивки

Схема устройства

Схема устройства выглядит следующим образом:

Схема

Аналоговый сигнал поступает с ручки газа на 2-ю ногу микроконтроллера и измеряется при помощи АЦП. Т.к. у данной серии микроконтроллеров нету ЦАП для выдачи аналогового сигнала, то выходной сигнал получается при помощи ШИМ (6-я нога микроконтроллера) и сглаживается RC-цепочкой R2,C3.

Сборка устройства

Устройство собирается без платы навесным монтажом (элементы напаиваются прямо на микросхему микроконтроллера). Можно всё это собрать и на плате, но в этом нету сильной необходимости, т. к. число составных элементов небольшое.

Прошивка устройства

Перед тем, как залить прошивку в устройство, её надо скомпилировать. Для компиляции прошивки необходим компилятор AVR-GCC. Его можно скачать по этой ссылке. После того, как вы распаковали компилятор в папку на своём компьютере, надо дописать в переменную PATH путь к папке bin компилятора (например, D:\avr-gcc-9.1.0-x86-mingw\bin).

Для программатора прошивки могут потребоваться драйверы. Найти драйверы можно по поисковой фразе <название программатора> drivers.

Откуда брать прошивку? Прошивка скачивается с этой страницы при помощи зелёной кнопки «Clone or download». Нажмите на эту кнопку, а затем на «Download ZIP». После этого на ваш компьютер запишется архив с прошивкой. Его надо распаковать в удобную для вас папку.

Компиляция и прошивка. Зайдите в папку firmware распакованной прошивки. Запустите файл build-and-flash.bat. Этот файл скомпилирует прошивку и, если программатор подключен к компьютеру, а устройство к программатору, то сразу прошьёт устройство.

Настройка прошивки

По умолчанию прошивка настроена на распространённые уровни сигналов. Но могут быть контроллеры или ручки газа, у которых уровни отличаются от тех, которые установлены в прошивке по-умолчанию.

Для настройки прошивки необходим вольтметр. Достаточно будет обычного мультиметра, который показывает напряжение до 10 вольт с точностью до 2-х знаков после запятой.

Измеренные значения вводятся прямо в исходный код прошивки. Файл исходного кода, в котором надо менять значения — speed_corrector.cpp в папке firmware. Это файл надо открыть любым текстовым редактором, например блокнотом. Все измеренные значения напряжения указываются в прошивке в милливольтах. Например, если мультиметр показывает напряжение 1.26 вольта, то это значение надо умножить на 1000 и в прошивке указать 1260.

Для самоката надо будет измерить и указать в прошивке 3 напряжения:

  1. Максимальное напряжение, которое выдаёт ручка газа. Это значение надо указать в параметре MaxVg.
  2. Максимальное напряжение на 3-й скорости, когда колесо перестаёт набирать обороты. Значение в прошивке — MaxVk.
  3. Напряжение на ручке газа, когда колесо начинает слегка крутиться. Это значение указывается в параметре MinV.

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

После изменения этих параметров необходимо сохранить файл прошивки и запустить скрипт build-and-flash.bat, прошить устройство и поставить его в электросамокат. Теперь надо измерить входное и выходное напряжение на устройстве при минимуме ручки газа, чтобы компенсировать падение напряжения на выходе. Например, на входе у вас получилось 0.85, а на выходе 0.79. Делим первое напряжение на второе и умножаем на 100, а результат округляем до целых. В итоге получается 108. Это значение надо будет указать в прошивке в параметре OutGain, после чего снять устройство с электросамоката, прошить его и поставить заново.

После всех этих манипуляций можно пользоваться устройством в составе электросамоката.

Что ещё умеет это устройство?

Автор этого устройства делал его для своего самодельного полноприводного электросамоката. Т.к. электросамокат полноприводный, то устройство выдаёт сигнал раздельно для переднего и заднего колёс. На схеме это не показано (т. к. схема приведена для одноприводного электросамоката), но выход 3 микросхемы можно подцепить RC-цепочку и подать с ней сигнал на BLDC-контроллер переднего колеса. Нелинейность характеристики ручки газа для переднего колеса настраивается параметром K2. Кроме того, можно задать огарничение напряжения для переднего колеса в процентах (параметр V2BorderPercent)

About

Простой девайс на ATTinyX5, который позволяет упростить управление самокатом на низких скоростях

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages