Skip to content

Про проєкт

Що таке Meowui

Meowui - це фреймворк для мікроконтролерів esp32/s3, написаний мовою с++ з використанням Arduino. Його призначення - полегшення створення прошивок з графічним інтерфейсом користувача.
За визначенням з Вікіпедії: Програмний фреймворк (англ. software framework) — це готовий до використання комплекс програмних рішень, включаючи дизайн, логіку та базову функціональність системи або підсистеми. Програмний фреймворк може містити в собі також допоміжні програми, деякі бібліотеки коду, скрипти та загалом все, що полегшує створення та поєднання різних компонентів великого програмного забезпечення чи швидке створення готового і не обов'язково об'ємного програмного продукту.

Якщо говорити коротко, Meowui це каркас, в якому вже вирішено багато різноманітних задач, з якими постійно зтикається будь-який розробник під час створення прошивок до своїх пристроїв. Замість того, щоб кожного разу програмувати з чистої сторінки весь проєкт, достатньо клонувати репозиторій, налаштувати його під свою задачу і додавати тільки потрібну логіку.

Історія створення

З самого початку даний проєкт створювався, як набір бібліотек, для швидкої побудови простого багаторівневого графічного інтерфейсу. Мета - управління різноманітними датчиками за допомогою мікроконтролера ESP32. Після знайомства з проєктом «Лілка», автором Meowui було прийнято рішення про розширення та доопрацювання можливостей Meowui. На даний момент фреймворк знаходиться в активній розробці. Регулярно додається новий функціонал та виправляються помилки у старому коді.

На кого розрахований

Фреймворк Meowui розрахований для використання розробниками, що мають міцні базові знання мови програмування С++ та розуміють, як працює механізм керування пам’яттю.

Коли не варто використовувати

Meowui не підійде у випадку, коли в прошивці потрібен сучасний графічний інтерфейс користувача зі стильними віджетами, як в LVGL. Графічний компонент фреймворку розроблений в стилі “Quadratisch. Praktisch. Gut” для випадків коли потрібна не стільки краса інтерфейсу, але максимальна продуктивність при мінімальному використанні ресурсів мікроконтролера. Хоча, "Quadratisch" це більше метафора, аніж визначення, адже віджети в Meowui можуть бути скругленими =)
Також варто зазначити важливу деталь: Meowui це не про красу коду. Уся архітектура фреймворку тримається на компромісах між продуктивністю програми і простотою розробки прошивки. Все інше не має значного впливу на прийняття рішень щодо стилю коду. Якщо ви досвідчений програміст і вам не подобається робота з “сирими” вказівниками, чи порушення принципів чистого коду, тоді, без перебільшення, тікайте, доки не пізно! :)

Де підійде найкраще

На основі Meowui можна створити прошивку, мабуть, будь-якої складності, яка тільки може вміститися в ресурси esp32. Це може бути, як пульт керування чим завгодно чи пристрій для контролю датчиків, так і складна багаторівнева прошивка з зображеннями та звуком, наприклад, для ігрової консолі.

На якому “залізі” працюватиме

Meowui може працювати без змін на будь-якому двоядерному мікроконтролері з серії esp32, що має підтримку Arduino фреймворку(не плутати з Arduino IDE). Для роботи з одноядерними esp32, можуть знадобитися деякі правки, наприклад, зміна номеру ядра, на якому повинні виконуватися деякі задачі.
Підтримка мікроконтролерів інших виробників наразі не розглядається.

Увага

Базовий функціонал Meowui не вимагає значних ресурсів. Проте деякі функції, такі як подвійна буферизація чи створення ігор на вбудованому ігровому рушії, працюватимуть тільки на мікроконтролерах з додатковою PSRAM пам’яттю!