Застрял в кустах с севшим электровеликом. В итоге завайбкодил свое приложение
Езжу на самосборном электровелосипеде. Летом ещё на пакрафте с мотором, но речь не о нём.
Был у меня штатный индикатор заряда: пять палочек. Когда я жму в горку, палочек две. Отпускаю ручку — четыре. Еду под горку — снова полный бак. В общем, индикатор жил своей жизнью и честно отражал моё настроение, а не заряд.
В августе он показывал «примерно половину». Через двенадцать километров велосипед молча выключился посреди поля. До дома оставалось девять. Электровелосипед весом 28 кг без мотора едет примерно как шкаф на колёсиках. Под дождём. В горку.
Дома я полез разбираться и выяснил простую вещь. Почти все дешёвые индикаторы считают заряд по напряжению. А напряжение литиевой батареи под нагрузкой проседает, без нагрузки отскакивает обратно, и угадать по нему остаток — примерно как определить уровень бензина, раскачивая машину.
Нормальный способ — считать, сколько ампер-часов реально ушло из батареи, а по напряжению только сверяться, когда батарея отдыхает. Плата BMS в аккумуляторе это всё знает и даже умеет отдавать по Bluetooth. Только родное приложение к ней ничего полезного считать не умеет.
Короче, я завайбкодил своё.)
Теперь на экране:
скорость и мощность одновременно, на одном графике;
запас хода по моему реальному расходу, а не по паспорту. В тот злополучный день он показал бы 9 км вместо «половины»;
напряжение каждой банки: сразу видно, если какая-то начала проседать;
реальная ёмкость батареи и её износ;
трек на карте, раскрашенный по скорости и расходу. Сразу видно, на какой горке ушла вся энергия (спойлер: на той самой).
Работает без интернета и в фоне, треки выгружаются в GPX. Проверено на велосипеде, самокате и электропакрафте.
Теперь я точно знаю, сколько ещё проеду. А домой пешком под дождём больше не хожу. Ну, почти.
Ролик, как это работает:

