2026-09-15 17:52:45 +03:00
2026-01-07 23:14:24 +03:00
2026-01-07 23:14:24 +03:00
2026-01-09 02:57:15 +03:00
2026-04-01 04:14:23 +03:00
2026-09-15 17:13:57 +03:00
2026-04-01 03:41:19 +03:00
2026-09-15 17:47:41 +03:00
mda
2026-04-01 05:28:03 +03:00
2026-09-15 17:13:57 +03:00
2026-04-01 02:06:09 +03:00
2026-04-01 05:53:13 +03:00
2026-09-15 16:46:58 +03:00
2026-04-01 05:40:57 +03:00
2026-04-01 04:28:16 +03:00
2026-09-15 15:44:35 +03:00
2026-01-09 03:06:15 +03:00
2026-09-15 17:04:13 +03:00
2026-01-08 01:15:39 +03:00
2026-09-15 17:52:45 +03:00

Car UI

Интерфейс автомобильной мультимедийной системы для Raspberry Pi 4B с сенсорным дисплеем.

Приложение разработано на Python с использованием PySide6 / Qt 6 и рассчитано на работу как в обычном Desktop Environment во время разработки, так и напрямую через Qt EGLFS / DRM/KMS в production-режиме.

Car UI reference hardware

Current reference hardware. The product image is temporary and will be replaced with a photo of the final prototype.

Reference hardware

Текущая конфигурация:

  • Raspberry Pi 4 Model B (4 GB RAM);
  • 7" IPS touchscreen (1024×600);
  • HDMI video / USB touch.

Подробное описание аппаратной конфигурации:

docs/hardware.md

Architecture

В production-режиме полноценный Desktop Environment не используется.

Raspberry Pi 4B
      ↓
Debian 13 (Trixie)
      ↓
systemd
      ↓
multi-user.target
      ↓
tty1
      ↓
car-ui.service
      ↓
Qt EGLFS
      ↓
DRM/KMS
      ↓
Car UI

Bluetooth подготавливается отдельным bt-unblock.service, который снимает RFKill-блокировку перед запуском Car UI.

Project structure

car_ui/
├── assets/             # Ресурсы приложения
├── audio/              # Работа с аудио
├── controllers/        # Контроллеры приложения
├── docs/               # Документация
├── screens/            # Экраны интерфейса
├── scripts/            # Build / run / deploy scripts
├── services/           # Сервисы приложения
├── system_configs/     # systemd units и системная конфигурация
├── themes/             # Темы интерфейса
├── ui/                 # UI-компоненты
│
├── car_ui.spec         # Конфигурация PyInstaller
├── main.py             # Entry point
├── requirements.txt    # Python-зависимости
└── README.md

Quick start

Development

Сделать скрипты проекта исполняемыми:

chmod +x scripts/*.sh

Подготовить окружение и собрать проект:

./scripts/build.sh

build.sh автоматически:

  • создаёт .venv, если окружение отсутствует;
  • устанавливает зависимости из requirements.txt;
  • собирает приложение через PyInstaller.

Для запуска исходного кода:

./scripts/run.sh

Логи прямого запуска сохраняются в:

debug.log

Build

Собрать standalone-приложение:

./scripts/build.sh

Результат сборки:

dist/car_ui/
├── car_ui
└── _internal/

PyInstaller использует конфигурацию:

car_ui.spec

Deploy

Установить готовую сборку в систему:

sudo ./scripts/deploy.sh

Приложение устанавливается в:

/opt/car_ui/

Production systemd service запускает:

/opt/car_ui/car_ui

Production and Development modes

Car UI поддерживает два режима работы системы.

Car mode

Используется для штатной работы магнитолы:

multi-user.target
        ↓
       tty1
        ↓
    Qt EGLFS
        ↓
      Car UI

Desktop Environment при этом не запускается.

Development mode

Для разработки используется обычный:

graphical.target
        ↓
Desktop Environment
        ↓
scripts/run.sh

Инструкции по настройке и переключению режимов находятся в:

docs/auto-start.md

First system setup

Инструкция по подготовке чистой Debian 13 (Trixie), установке системных зависимостей, сборке и первоначальному развёртыванию:

docs/first-system-setup.md

Configuration

Конфигурация UI хранится в:

~/.config/car_ui/ui.conf

Marker files

В корне проекта могут использоваться специальные marker-файлы.

reset

Сигнал приложению выполнить сброс до заводских настроек.

Создать:

touch reset

Удалить:

rm reset

dev_mode_enable

Включает режим разработчика приложения.

Создать:

touch dev_mode_enable

Удалить:

rm dev_mode_enable

Documentation

Основная документация проекта находится в docs/:

  • first-system-setup.md — подготовка чистой системы;
  • auto-start.md — systemd, автоматический запуск и переключение Car / Development mode.
Description
No description provided
Readme 1.5 MiB
Languages
Python 95.6%
Shell 4.4%