Небольшое электронное устройство на 8-ногом микроконтроллере ATTiny позволит сделать старт самоката менее дёрганным, а управление на низкой скорости более комфортным.
Устройство подходит только для электросамокатов, у которых ручка (или курок) газа подключается отдельно к контролеру! Если у вас курок газа располагается на дисплее контроллера, то использовать данное устройство не получится!
Устройство подключается в разрыв между ручкой газа и BLDC-контроллером электросамоката. Оно питается напряжением, которое идёт для питания ручки газа.
Устройство меняет линейную характеристику курка на нелинейную. Внешне это выглядит так: примерно до половины курка плавно регулируется низкая скорость самоката, а далее до конца диапазона курка идёт регулировка высокой скорости самоката.
На картинке показана передаточная характеристика устройства.
По горизонтали — напряжение в вольтах на входе, по вертикали — напряжение на выходе. Жёлтым цветом выделена рабочая зона BLDC-контроллера от начала, когда колесо начинает крутится до момента, когда колесо перестаёт увеличивать скорость.
- Микроконтроллер ATTiny серий attiny25, attiny45, attiny85. Лучше всего использовать ATTiny85, т. к. скорее всего прошивка будет совершенствоваться и в будущем может не полезть в младшие серии attiny25, attiny45.
- Программатор для микроконтроллеров AVR. Не обязательно брать дорогой программатор. Подойдёт любой дешевый клон.
- Два электролитических конденсатора 100 мкФ на 6.3 вольта и более
- Один мелкий керамический конденсатор 100 нФ
- Два резистора 300 Ом
- Один резистор 10 кОм
- Разъёмы для подключения к микроконтроллеру к ручке газа
- Разъём для прошивки
Схема устройства выглядит следующим образом:
Аналоговый сигнал поступает с ручки газа на 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 напряжения:
- Максимальное напряжение, которое выдаёт ручка газа. Это значение надо указать в параметре MaxVg.
- Максимальное напряжение на 3-й скорости, когда колесо перестаёт набирать обороты. Значение в прошивке — MaxVk.
- Напряжение на ручке газа, когда колесо начинает слегка крутиться. Это значение указывается в параметре MinV.
Кроме напряжений, в прошивке настраивается параметр K – степень нелинейности курка. Чем больше этот параметр, тем плавнее регулируется низкая скорость в начале диапазона ручки газа и тем быстрее нарастает высокая в конце диапазона.
После изменения этих параметров необходимо сохранить файл прошивки и запустить скрипт build-and-flash.bat, прошить устройство и поставить его в электросамокат. Теперь надо измерить входное и выходное напряжение на устройстве при минимуме ручки газа, чтобы компенсировать падение напряжения на выходе. Например, на входе у вас получилось 0.85, а на выходе 0.79. Делим первое напряжение на второе и умножаем на 100, а результат округляем до целых. В итоге получается 108. Это значение надо будет указать в прошивке в параметре OutGain, после чего снять устройство с электросамоката, прошить его и поставить заново.
После всех этих манипуляций можно пользоваться устройством в составе электросамоката.
Автор этого устройства делал его для своего самодельного полноприводного электросамоката. Т.к. электросамокат полноприводный, то устройство выдаёт сигнал раздельно для переднего и заднего колёс. На схеме это не показано (т. к. схема приведена для одноприводного электросамоката), но выход 3 микросхемы можно подцепить RC-цепочку и подать с ней сигнал на BLDC-контроллер переднего колеса. Нелинейность характеристики ручки газа для переднего колеса настраивается параметром K2. Кроме того, можно задать огарничение напряжения для переднего колеса в процентах (параметр V2BorderPercent)