Розробка інтерфейсної частини (frontend) на C+LVGL за макетами в Figma
Необхідно реалізувати інтерфейс додатку відповідно до макетів у Figma на стеку LVGL + C під Raspberry Pi Zero 2W
Що являє собою пристрій
Raspberry Pi Zero 2W з встановленим образом системи, в якому вже інтегровано LVGL, відключено стандартний графічний інтерфейс Raspberry і є наступні пристрої введення-виведення:
- дисплей 320х480 (драйвер інтегровано)
- тач (інтегровано в систему, стандартний драйвер)
- мембранна клавіатура (підключається по SPI, API\SDK буде надано)
- вимірювальний датчик, підключений по USB (вам не потрібно буде з ним працювати і реалізовувати протокол обміну, будемо працювати або з імітатором датчика, або просто в коді віртуально будете вважати, що дані отримані).
Що потрібно зробити
- Реалізувати інтерфейс з Figma на пристрої з використанням бібліотеки LVGL і мови програмування C (реалізація графічного інтерфейсу і логіки). Інтерфейс повинен бути повністю функціональним (всі переходи між екранами, введення і відображення значень, робота з архівом тощо), але з реальними даними працювати не потрібно. Наприклад, ви реалізовуєте кнопку "Зберегти" вимір, реалізовуєте інтерфейс архіву збережених вимірів, при цьому по кнопці зберегти і при перегляді виміру просто ставите функції-заглушки, які імітують це, в подальшому там буде дописаний потрібний код.
- Комунікації (wifi, usb, Novotest lab) - на даному етапі повноцінно реалізовувати обмін не потрібно, достатньо просто реалізованого повністю інтерфейсу з оглядом мереж\пристроїв і підключенням\спарюванням + програмними заглушками для підключення зовнішніх бібліотек і\або запуску зовнішнього додатку і\або подальшої реалізації обміну на C\LVGL.
- Збереження результатів вимірів в архів пристрою (пам'ять) і читання їх з архіву(пам'яті) (перегляд збережених в Архів вимірів) пристрою на екрані пристрою. Вам достатньо реалізувати інтерфейс відповідно до макетів і залишити заглушки, які імітують запис на диск і читання з диска.
- Забезпечити 30 FPS при роботі інтерфейсу. Це виходить автоматично при роботі на вказаному стеку, але потрібно написати цю вимогу формально, тому що обов'язково знайдуться ті, хто зможе і тут зробити так, щоб стабільне рішення перестало працювати стабільно.
Отже, результат вашої роботи - це повністю макет інтерфейсу приладу відповідно до Figma, з усіма екранами, з усіма переходами між екранами і імітацією виводу значень.
Результат розробки
- Працюючий додаток на стеку LVGL\C, FPS не менше 30.
- В додатку повністю реалізований інтерфейс відповідно до Figma (графічний і логіка роботи). Вимірювання, калібрування, архів на пристрої(збереження, перегляд), налаштування пристрою - всі екрани, всі переходи між екранами, імітація виводу всіх значень.
- Комунікації (USB, Wifi), Архів і інші режими, де потрібні реальні фізичні дані - інтерфейс - реалізовано повністю, дані використовуєте самі віртуальні + функції-заглушки, які імітують отримання і передачу даних.
Макети Figma в відкритий доступ не викладаю. Якщо ви відчуваєте в собі сили і головне маєте досвід реалізації подібного на вищевказаному стеку - прошу написати особисте повідомлення з запитом, я дам посилання і надам доступ для перегляду макетів. Дуже бажано відразу ж тут у запиті вказати приклади реалізацій чогось близького за суттю або за стеком, або описати досвід у розробці подібного.
Для розуміння інтерфейсу в принципі даю кілька варіантів вікон (всього буде півсотні).
Вимірювання

Архів

Налаштування

-
Доброго дня.
Є досвід роботи з різними системами: і вбудованими, і настільними. Зробив невелику демонстраційну програму. Але оскільки моя "рпи" поки в дорозі,
то працював з тим, що є під рукою: мережевий мінікомп'ютер (СНК Hi3516). Оскільки мінікомп не має відеовиходів, то демонстраційне ПЗ
поділено на дві частини:
1. на мінікомпі запущено графічний клієнт - містить логіку, використовує LVGL, а вміст графічного буфера відправляє графічному серверу.
2. звичайний ПК виступає графічним сервером і відправляє події від миші.
Оскільки посилання в ставках не вітаються, то можу надіслати її в особистому повідомленні.
… Вартість і терміни залежать від макетів і вимог до реалізації: точь в точь або щоб така ж функціональність була.
Наприклад, сторінка "Measurements" використовує віджет типу колеса, але з постійними елементами по краях - перший і сотий. У LVGL точно такого
віджета немає, є тільки "колесо". Але, це не проблема, можна зробити віджет як на макеті, склавши його з "примітивів" LVGL.
Приблизно можу оцінити так:
1. Сторінка "Memory & Archive": 100-200 грн.
2. Сторінка "Measurements": 500-700 грн.
Під "сторінкою" розуміється як зображення, так і супутній корисний код.
Термін - приблизно місяць.
> Забезпечити 30 FPS при роботі інтерфейсу.
#if LV_DEF_REFR_PERIOD > 33
# error "Не балуй. Залиш 30 кадр/с."
#endif
-
739 6 0 Доброго дня!
Я вже виконував два замовлення, де розробляв графічний інтерфейс на LVGL під контролери waveshare esp32, які я налаштовував на роботу з 30-45 фпс (фото та відео проектів на оцінку можу надіслати в особисті повідомлення). Також маю великий досвід у створенні графічних інтерфейсів на С++ Qt та golang fyne (у LVGL та цих двох фреймворках дуже схожий алгоритм реалізації інтерфейсів). Для мене не буде складно просто перенести візуал з фігми на Сі/LVGL код.
Можу почати розробку інтерфейсу на симуляторі, щоб не втрачати час. Однак для фінальної здачі проекту, гарантії 30-60 FPS та коректної роботи мембранної клавіатури (по SPI вона може не завжди працювати коректно) мені фізично необхідно саме пристрій. Я вже мав такий досвід роботи через емулятор: завантаження прошивки та налаштування параметрів МК дистанційно, щоб все працювало - це було дуже стресово як для мене, так і для замовника, особливо з нестабільним інтернетом через відключення світла, тому в попередніх проектах всі замовники мені напряму відсилали свої МК по НП (відповідно я їм відсилав назад також по НП).
Вартість моєї роботи я вказав умовно, оскільки поки не ознайомлений з обсягом Вашого завдання.
Буду дуже радий подальшій роботі над Вашим проектом!!!
Актуальні фриланс-проєкти в категорії C та C++
Реверс-інжиніринг консольних утиліт для опитування контролерів SSD (Flash ID)1. Мета роботиВиділення програмного інтерфейсу (API) взаємодії з контролерами SSD/NVMe з наданого набору консольних утиліт (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron та ін.). Результатом має стати робочий код мовою C/C++ або точна документація структур для… C та C++, Десктопні додатки ∙ 10 днів 3 години тому ∙ 6 ставок |
Розробка Minecraft Java Seed Map / Seed Viewer для сайтуРозробка Minecraft Java Seed Map / Seed Viewer для сайтуОпис проєкту Потрібно розробити browser-based інструментMinecraft Java Seed Map / Seed Viewer, який буде працювати на нашому сайті та дозволятиме користувачу ввести seed Minecraft Java Edition і переглянути інтерактивну… C та C++, HTML та CSS верстання ∙ 10 днів 10 годин тому ∙ 17 ставок |