Как программист решил электриком стать
Пока все апгрейдят свою жизнь на всяких онлайн-школах, я решил заняться даунгрейдом. Опыт разработки более 10 лет. Сразу к делу: в какой-то момент мне понравилось держать в руках паяльник. Случилось это в преклонном для электрика возрасте. Примерно тогда же по стечению обстоятельств я решил собрать свой первый АКБ для своего электроскутера и Остапа понесло! Пошли сборки АКБ для электровелосипеда, электросамоката, электроскутера и даже инвалидных кресел на электротяге. Затарился литий-ионными (Li-Ion), литий-железо-фосфатными ячейками (Lifepo4) и Li-NMC.
Электровелосипед — самый частый гость
С паяльником и прочим инвентарем я, конечно, разобрался. Но был один жирный минус — общение с заказчиками. Это сильно отличается от того саппорта клиентов, к которому я привык. Я не был готов к такому. Чего не скажешь об электриках, гаражных мастерах. Им поболтать с клиентом как сметанка для котенка.
Решение: разработать веб-сервис, который будет прослойкой между клиентом и сборкой АКБ. В статье пойдет речь о том, как легко и быстро выбрать нужный АКБ, закрыв все волнующие вопросы.
Ссылку на сайт не даю — говорят, это реклама.
Очень странная ситуация — ссылку на сайт не могу дать из-за карающего меча модератора. За сим все скриншоты обрезаны, чтобы ссылки не попали. Статью пришлось сильно порезать, если увидели пробелы и нестыковки — отвечу на любые вопросы. Вот так хотел чем-то полезным поделиться, над чем трудился лично, а оказывается надо рассуждать о чем-то высоком обезличенно.
Прим. мод.: правила едины для всех, даже если статья ну очень классная :-)
Для тех кто любит глазами и не любит много букв, можно просто посмотреть ролик:
Но если вы готовы осилить много букв, то дальше собственно сама статья. :)
Проблематика
Задача поиска АКБ тривиальная, но отнимает много времени у всех участников процесса. Не каждый понимает, какие характеристики АКБ важны, а начитавшись советов «бывалых» из различных источников, начинают хаотично забрасывать инженеров по сборке АКБ различными предложениями и запросами:
А Вы сможете на 36В собрать? Емкость? Не знаю емкость. А сделайте с BMS на 48В, чтобы точно выдержало. BMS на 150А. Мотор? Ну 250Вт, а что? Какая разница? А он не сгорит? А вы точно с BMS платой делаете? С балансиром? Пайка или сварка? А какие никеливые ленты? Марка ячеек? BMS герметичный? Какой ресурс ячеек? А если не 15Ач, а 14Ач — сколько будет стоить? А 13Ач? А размер какой получится у 15Ач и у 13Ач? Как доставляете? Стоимость доставки?
К сожалению, подобная поддержка становится лишней финансовой нагрузкой для самих же клиентов. Время = деньги. Я вот свое время дорожу. Ведь можно как-то автоматизировать решение рутинных задач? Что если сделать сайт?
Простота интерфейса пользователя
Первые вопросы к клиенту: какое номинальное напряжение, емкость требуются? И какова мощность мотора? Что ж, транслировать эти вопросы в форму сайта не составляет труда:
Базовые параметры АКБ
Для самых искушенных есть дополнительные настройки:
Дополнительные настройки для продвинутых клиентов
Здесь уже можно выбрать определенный тип ячеек, BMS платы, топологию (прямоугольная, зигзаги, трапеция) и тип крепления (холдер или клей). В будущем планируется ввести возможность задавать максимальные габариты АКБ. Но если ограничений нет, просто игнорирую дополнительные настройки. Эти параметры важны, так как отталкиваясь от них можно вычислить финальные размеры АКБ, а у клиента зачастую эти ограничения стоят на кону. Если в велосипед можно запихнуть Lifepo4 с низкой млонтостью энергии, то в самокат приходится плотно упаковывать Li-Ion порой без холдера, а просто на клей.
Важно давать выбор из нескольких вариантов АКБ
Введя данные кастомной АКБ, можно просто нажать «Рассчитать» и мы получаем список АКБ. Важно: предложенные АКБ — это опции из имеющихся в наличии комплектующих либо из уже заказанных комплектующих. Как это выглядит:
Сайт предложит сразу множество решений
Как видно из скриншота, пользователю предложено 5 решений, 3 из которых на основе литий-железо-фосфатных аккумуляторов, а 2 из литий-ионных. Сайт на запрос об АКБ на 48В 22Ач отвечает списком релевантных кастомных АКБ. Емкость у предложенных АКБ равна или близка к запрошенному. Есть и 20Ач, и 21Ач и 24Ач. Кто знает, на какой внутренний компромисс готов пойти заказчик? Это сильно экономит мое время, так как привычный сценарий общения с клиентом сводится к расмотрению вариантов и компромиссов, которые я могу предложить или выслушать. Вот тебе список всех вариантов, ни больше, ни меньше. Все с актуальными ценами. Никакого восточного базара. Никаких «напишите нам сообщение», «оставьте номер, мы вам перезвоним», «ответил в личку», «зарегистрируйтесь, чтобы узнать цену».
Сервер-душнила вычисляет точную цену АКБ
Вычислению стоимости АКБ уделенно особое внимание. Вы могли заметить, что в предложенном списке АКБ нет подозрительно круглых цен а-ля »30000 рублей р-р-р-ровно!» или в стиле Эльдарадо «всего каких-то 29999 рублей». Нет, цифры на сайте сложно предугадать, а все потому, что учитывается множество реальных факторов без огульных округлений в пользу сборщика. Вот финальная часть кода по вычислению окончательной стоимости АКБ:
totalCost = cellsCost + bmsCost + heatshrinkCost + plusProtectCost + nickelCost + tapeCost + work + packing + isolationCost + boxCost + wireCost + connector;
Цена АКБ складывается из 12 слагаемых! Для вычисления каждой слагаемой проведена большая работа. Параметры АКБ программно расчитываются исходя из топологии, типа креплений, мощности мотора и т.д. Под мотор подбирается BMS плата для той же химии, что и ячейки, с запасом 30%. Рассмотрим, на сколько глубоко пришлось окунуться на примере одной слагаемой — стоимость холдера. Чтобы рассчитать стоимость холдера, нам необходимо знать ее вес. А это задача не из простых, ведь размер ячеек может меняться (18650, 32700, 21700 и т.д.), холдер литой, а не сборный. Чтобы решить эту задачу, пришлось воспользоваться методом степенной аппроксимации на основе кубической регрессии! Только вышка, только хардкор!
Холдер, напечатанный на 3D принтере
А чтобы посчитать стоимость провода, сервер рассчитывает площадь сечения провода на основе токоотдачи АКБ и потребления мотора (конечно же, с запасом), затем по длине провода с вычисленным сечением определяется цена. И так в каждой компоненте. Зачем, ведь можно было просто плюсануть 500 рублей на все случаи жизни по каждому пункту? Потому что могу.
3D-моделирование
А вот приятный сюрприз и для самодельщиков! Для всех начинающих, для всех чайников, для всех «да я сам с усами» — ни в чем себе не отказывайте, специально для вас 3D моделирование! Вы могли заметить, что напротив каждого предложенного АКБ есть 2 кнопки, одна из которых обозначена как »3D». Нажимаем и видим данную АКБ в 3D, рассматривайте ее со всех сторон, крутите, скролльте, зумьте, наслаждайтесь! В 3D вы увидите не просто схематичное расположение неких цилиндров. Нет, это 3D модели ячеек, вы легко отличите плюсовые контакты от минусовых визуально. Кроме того, плюсовые контакты отмечены зелеными изоляциями. Ниже серия скриншотов с 3D-моделями.
3D-моделирование позволяет детально рассмотреть будущую АКБТа же АКБ без отображения BMS платы и сварки
Вернемся к «дополнительным настройкам» и выберем в качестве крепления «Холдер», а топологию сделаем «Компактной». И вот, что получится:
Та же АКБ, но с холдерами и компактной зигзагообразной компоновкойТа же АКБ, но без холдера
В окне видны три галочки, которые управляют видимостью некоторых комплектующих: Холдер, BMS, Сварка (Никеливые ленты). Можно изучать АКБ вдоль и поперек «под лупой».
Как видно на последнем рисунке, ячейки, действительно, располагаются компактно зигзагами. И да, провода от BMS платы также детально отображены. Можете увидеть, куда подходит минусовой провод, а куда плюсовые — все соответствует тому, как это будет выглядеть в реальности. Размеры BMS платы также соответствуют действительности, т.к. вся информация о комплектующих, включая габариты, берется из базы. Зачем детально показывать распайку проводов BMS платы? Потому что могу. Если у кого-то появилось желание собрать самому АКБ, пусть заходит и смотрит компоновку с распайкой. Делать из этого коммерческий секрет фирмы просто смешно. Но при этом я ставлю заслонку от бесплатных консультаций для самодельщиков под видом «любопытных клиентов».
А сколько стоит доставка?
Итак, определившись с АКБ и нажав напротив АКБ кнопку «Заказать», появится окошко, в котором видны параметры АКБ с детализацией по весу и т.д. Все, что нужно — ввести имя, телефон и город доставки. При вводе названия города, сайт вам услужливо подскажет нужную опцию по первым буквам.
Форма отправки заявки на выбранную АКБ
Поясню за город доставки. АКБ заказывают из разных городов, надо как-то доставлять. Большая часть клиентов просит высылать CDEK-ом (не реклама). А значит, подключаем API от CDEK и через общение с их сервером вычисляем стоимость доставки автоматически на основе размера и веса АКБ. Ну и что? — спросят некоторые. Ведь можно же просто зайти на их сайт, перейти в калькулятор для посылок, выбрать исходящий город, выбрать принимающий город, ввести вес посылки (предварительно спрося у сборщика), ввести габариты посылки и узнать стоимость. Потому что могу. Мне мое время жалко. Более того, случаются кейсы, когда клиент узнав стоимость пересылки, отказывается. Пусть отказываются до того, как потратят мое время.
Есть еще богатый функционал для администратора и инженеров по управлению складами, комплектующими, инженерами в штате, заказами и т.д. Но это все остаётся под капотом.
Сайт еще развивается. Каждый день добавляю новые фичи, устраняю ошибки, работаю над интерфейсом. Например, есть моделирование АКБ на основе призматических Li-NMC:
3D-модель АКБ на основе Li-NMC
В планах есть несколько концептуальных фич:
Платформа для сборщиков АКБ. Как это будет выглядеть: инженер входит в свою учетку, задает локацию, список имеющихся в наличии комплектующих и готово! Теперь он может принимать заказы, сформированные на сайте. Система автоматически определяет, кому уйдет заказ на основе комплектующих, из которых составлен выбранный АКБ.
Внедрение ИИ для определения оптимальной компоновки ячеек в сложных формах. Например, АКБ, повторяющий форму рамы велосипеда.
Планирую в следующей статье рассказать, как могут быть связаны сборка АКБ, САПР, графы и генетические алгоритмы. Если кому-то интересны приключения программиста в электрике.