Разработка полностью открытая будет, т.е. все исходники и т.п. для повторения. Алгоритм если надо будет доделывать, то будем доделывать.
Поддерживать в нескольких местах трудно, поэтому вся полная информация на канале:
ссылка, а здесь некоторые основные моменты обозначу.
На базе платы digispark tiny85. Поэтому себестоимость меньше 500р, программатор ненужен, в общем взяли плату чуть напаяли элементов, прошили через arduino ide.
Отличие от аналогичных плат (распространённых всего две, это плата на дискретных элементах - транзисторы, резисторы, диоды и УПГ на базе tiny13):
1) возможность настраивать диапазоны курка (акселератора) и точки трогания мотора по месту (ненужен вольтметр для этого, ну разве что определить назначение проводов).
2) ненужно настраивать уровни плавности, всё адаптируется само в зависимости от скорости нажатия газа.
3) Для прошивки платы ненужен программатор.
Ну а минус тут конечно тоже есть:
Проект открытый и поэтому поддержка соответствующая будет.
Общее представление как это подключается (ставиться аналогично другим подобным в разрыв сигнала газа):

Что переделать (основное):

Схема digispark после переделки (нового ничего, минимум из возможного, можно добавить и того и другого, но зачем, тогда теряются все плюсы):

Первый вариант скетча. Работает значит так (курок и мотор подключены разумеется) в штатном режиме:
1) При штатном запуске ждём 5 секунд пока отработает ожидание встроенного загрузчика (это можно изменить если критично, как? решение гуглиться чтобы сделать по замыканию пина на землю). Потом загорается светодиод, который уже есть на плате, на 1 секунду (не путать со светодиодом питания) и после этого работает основная программа.
2) В основной программе реализованна не прямая зависимость между нажатием на курок и выходным сигналом газа уже в контроллер, а немного "дугой" (нет, не экспонента, это сильно крутой прогиб был бы), это немного улучшает модуляцию.
3) Также есть задержка между нажатием на газ и откликом контроллера, но эта задержка зависит от скорости нажатия на газ, т.е. нажимаете медленно получаете большую задержку и плавное трогание, нажимаете быстро на газ и задержки нету вовсе.
4) При отпускании курка - выход газа сам калибруется (подстраивается) в минимальное значение (это актуально насколько мне известно в контролерах которые имеют возможность реверсировать мотор - задний ход).
Работа платы в режиме обучения (ненужны замеры вольтметром различных пределов):
1) Запускаете плату и ждём 5 секунд, потом когда загорается светодиод, в течении 1 секунды нужно замкнуть кнопку (перемычку) на землю и дождаться пока светодиод начнёт моргать 5 раз, пока он моргает нужно разомкнуть кнопку.
2) Когда светодиод моргнёт 5 раз нужно обучить нижний предел по курку, а именно слегка его прижать (то что будет считаться минимальной подачей газа) и кратковременно нажать кнопку, светодиод моргнёт один раз (1 секунда), значит перешли к следующему этапу настройки.
3) Настраиваем теперь уровень у курка максимального газа, для этого зажимает курок на максимум и в таком положении нажимает кратковременно кнопку, светодиод моргнёт 2 раза (2 раза по 1 секунде), значит перешли к следующему этапу настройки.
4) Далее настраивается точка трогания колеса (мотор должен быть вывешен), для этого плавно нажимаете на курок до момента пока колесо не начнёт крутиться (положение курка может быть различное) и немного (прям совсем совсем доли миллиметра) отжимаете курок в положение когда колесо не крутиться и кратковременно нажимаете кнопку, светодиод начинает моргать (можно отпустить курок) 3 раза(3 раза по 1 секунде), значит перешли к следующему этапу настройки.
5) Колесо может начать крутиться даже при отпущенном курке (это нормально), плавно нажимаете курок и ищите максимальную скорость вращения колеса, фиксируете курок в этом положении и нажимаете кратковременно кнопку, после этого колесо перестаёт вращаться светодиод быстро моргает 10 раз (10 раз по 0.4 секунды) и значения настройки записываются в энергонезависимую память.
6) Плата начинает работать в штатном режиме (проверить) и можно пользоваться.
На канале открыты комментарии, если есть предложения по софтовой части в рамках текущего алгоритма, пишите.