Стукоскоп
Диагностика двигателя по звуку: приложение, бот, сайт, отчёт для механика
Телефон записывает мотор, ядро находит обороты и ритм стуков, отчёт объясняет причину. Ядро находит пуск в 98,7% записей вместо 54,5%.
Результат
4 замера- 98,7%
- пусков находит ядро
- было 54,5%
- 0%
- шум принят за мотор
- было 55,8%
- 17
- языков, включая арабский
- 567
- автотестов: 308 ядро и API, 259 приложение
Замер: Стенд устойчивости ядра: 989 вариантов записей, docs/robustness.md. Тесты: подсчёт по файлам pytest и vitest.
| Показатель | Было | Стало | Разница |
|---|---|---|---|
| Пуск найден | 54,5% | 98,7% | +44,2 п.п. |
| Всё верно на пуске | 27,3% | 93,5% | +66,2 п.п. |
| Обороты точно до 5% | 87,5% | 100% | +12,5 п.п. |
| Дизель распознан | 28,6% | 100% | +71,4 п.п. |
| Шум принят за мотор | 55,8% | 0% | −55,8 п.п. |
| Ложный пуск | 9,6% | 0% | −9,6 п.п. |
Собственный стенд, 989 вариантов записи
Задача
Дать владельцу машины понятное второе мнение до поездки в сервис: записать звук мотора телефоном и получить вероятные причины, срочность и отчёт для мастера.
Один продукт на нескольких поверхностях: приложение для трёх магазинов, бот, сайт и веб-отчёт механика, на 17 языках.
Точность ядра должна быть измеримой, а не на глаз.
Визуал
Экраны приложения
-
Запись: 30 секунд с открытым капотом
-
Отчёт: вывод, причина и что показать мастеру
-
Обороты и пульс цикла по цилиндрам
-
Схема двигателя из паспорта: подозреваемый узел подсвечен
-
Арабский с письмом справа налево, один из 17 языков
UI-кит проекта
UI-кит проекта6 цветов
- Фон
#0A0C0F - Поверхность
#151A21 - Акцент
#FF6A2B - Акцент 2
#FF9E3D - Сигнал
#2EE6C8 - Текст
#EEF2F6
- Unbounded
- Заголовки
- Inter
- Текст
- JetBrains Mono
- Показания приборов
Техника
Схема связей
Как устроено
Слева направо: путь данных от человека до сервера и внешних сервисов.
Поверхности
- Приложение Android RuStore, Huawei, Google
- Telegram-бот и мини-приложение
- Сайт и отчёт механика
API на FastAPI
- Приём записи очередь Redis, воркер arq
- Обновления по воздуху подпись Ed25519, откат за 20 с
Ядро DSP
- Обороты и ритм numpy, scipy
- Привязка к циклу 69 двигателей в справочнике
Отчёт
- LLM пишет текст основная модель и запасная у другого провайдера
- Стенд LLM 37 случаев
Инженерные решения
- 01
Ядро даёт доказательства, LLM пишет текст
Числа считает DSP, языковая модель только объясняет их человеку. Каждый шаг измеряется своим стендом: устойчивость ядра на 989 вариантах, качество отчёта на замороженном входе.
- 02
Свои обновления по воздуху
Вместо стороннего сервиса весь манифест подписывается ключом Ed25519. Если новая версия не стартовала за 20 секунд, приложение само откатывается. Раскатка по каналу, магазину и доле пользователей.
- 03
3D-двигатель из паспорта
Модель мотора собирается процедурно из параметров двигателя на three.js и анимируется в такт записи, поэтому механик видит, какой узел подозревается.
Стек
- Vue 3
- Capacitor 8
- Kotlin
- Three.js
- Python
- FastAPI
- numpy
- aiogram
- Astro
Ход работ
3 отметок- Неделя 1 Первые сборки Android Capacitor и свои плагины на Kotlin
- Неделя 3 Ядро, API, бот, сайт и мини-приложение стенд устойчивости ядра, процедурный 3D-двигатель
- Неделя 4 Версия 0.2 и выход в Google Play стенд отчётов на 37 случаев, OBD, подписанные обновления, карточка RU и EN
Хочу похожий
Расскажите про свой проект. Разберу задачу так же, как Стукоскоп: спрос, сроки, вилка бюджета и что можно не делать.
Хочу похожий проект
Первая консультация бесплатно. Разберу задачу, назову сроки и вилку бюджета. Если задача решается дешевле или вообще без меня, скажу об этом прямо.
- Ответ
- в течение рабочего дня
- Регион
- Москва и Московская область
- Почта
- hi@bazumax.ru
