Pull to refresh

rusEfi автомобильный блок управления: улучшили железо, теперь будем писать к нему софт

Reading time3 min
Views31K
Два месяца назад мы остановились на том, что rusEfi стал полнофункциональным блоком управления — вот только аппаратная часть напоминала взрыв на макаронной фабрике. Напомню, rusEfi — это автомобильный блок управления с открытым кодом и железом на платформе stm32.

Мы не сидели сложа руки и сфокусировались как раз на аппаратной стороне вопроса: задача была сделать шаг вперёд по железу, и я думаю прогресс на лицо:

Было no name v3:

image

Стало Франкенштейт 0.1:

image

Понятно что и это еще исключительно инженерная платформа, а не конечный продукт — но главное, что прогресс есть :)

Плата естественно работает:



10 плат “Франкенштейн 0.1” уже изготовлены, еще 10 плат — заказаны. Сейчас мне нужно собрать две платы и послать одну в Канаду, а вторую в Словакию — вот такой у нас проект интернациональный. Исходники платы кстати тут.

Разработку железа поставили на паузу и возвращаемся к софту и внедрению. С точки зрения самого управления двигателем прошивка вперёд не продвинулась — прошивка продвинулась вперёд в плане настраивоемости и удобства отладки: появилась поддержка HD44780 символьного экранчика, резко уменьшилось количество условной компиляции — значительно больший процент настроек теперь можно изменять на лету, через нашу отладочную консоль или через популярную универсальную программу настройки ЭБУ. Появился SD слот. Появилась CAN шина — которая по большому счёту нам пока не нужна. Появился драйвер популярного GPS модуля — который на текущий момент вообще чистой воды баловства :) Одним словом, мы строили фундамент — и мне кажется мы его построили.

Теперь можно заняться самым вкусным — теперь из всего этого можно сделать удобный, универсальный и простой автомобильный блок управления.

Лично я в первую очередь — опытный программист, так что прошивку будем писать основательно:
Юнит тесты & непрерывная интеграция.
Три дня назад перешли с C на С+ — будет совсем немного ООП, так что пока будем считать только один плюс в слове “C+”.
Неделю назад появилась возможность компилировать основную логику прошивки под Windows — из этого должно скоро получиться автоматизированное функциональное тестирование.

Вы спросите, так чего же тут не хватает пока в прошивке? Многого пока не хватает. Изменения некоторых параметров пока требует перезагрузки прошивки — не умеет она пока на лету переключаться из одного режима в другой. Конфигурирование в онлайне нужно доделать аккуратно — некоторые вещи до сих пор задаются в коде.

Так что пока программировать нейронные сети немного рано, пока нужно допрограммировать весь фундаментальный функционал. Да, пока задачи относительно скучные — но интерес добавляют требования кристальной чистоты коды и удобства для пользователя.

Так что если здесь есть педантичные программисты-перфекционисты, которые хотят научиться чему-то новому — присоединяйтесь.

Ссылки по теме:
http://rusefi.com/wiki/index.php?title=Main_Page/ru
http://rusefi.com/forum/

PS: поступила просьба конкретнее озвучить стоящие задачи по программированию.
Итак, мотор уже работает — т.е. сами управляющие процессы в режиме прототипа, с привязкой под конкретный мотор есть. Улучшить нужно параметризацию этих процессов — т.е. во-первых конфигурация должна полностью изменяться через последовательный порт, а во-вторых параметры новые должны видимо начать применяться без перезапуска программы. Это самое важное на данный момент.

Следующий этап — усложнение управляющих процессов. Например входным параметром 'нагрузка' должен быть не медленный аналоговый датчик, а быстрый аналоговый датчкик — который нужно опрашивать только внутри конкретного окна времени и усреднять. Алгоритм поддержания холостых оборотов сейчас более чем наивный — нужно что-то делать. Алгоритм обработки двойного датчика положения дроссельной заслонки, и так далее и так делее. Алгоритм управления электронной дроссельной заслонкой плюс электроника этого упарвления. А еще в какой-то момент нужно переменные времени со странных тиков в секунды/миллисекунды. И так далее.

Я начну с автоматизированного функционального тестирования — мне спокойнее что-то рефакторить, когда оно само проверяет, что внешнее поведение не меняется неожиданно.
Tags:
Hubs:
+45
Comments52

Articles

Change theme settings