Бібліотека lilka
Проєкт «Лілка» має однойменну бібліотеку lilka
, яка спрощує роботу з Лілкою та дозволяє вам швидко створювати для Лілки власні прошивки мовою програмування C++.
Ця бібліотека доступна в реєстрі бібліотек PlatformIO.
Звісно ж, ви можете писати код для Лілки і без бібліотеки lilka
- ніхто не змушує вас використовувати її.
Весь код, який ви побачите в цій документації, можна написати самостійно, без використання lilka
.
Крім того, ви без проблем можете використовувати для роботи з Лілкою лише функції Arduino, ESP-IDF та різні сторонні бібліотеки.
Проте бібліолека lilka
допоможе зробити ваші програми простішими та більш «portable» (переносними), а також зменшить кількість помилок при розробці.
Також lilka
спрощує ініціалізацію дисплею, кнопок, батареї, звуку, SD-карти та інших компонентів, що входять до складу Лілки. Для цього потрібно викликати лише одну функцію - lilka::begin()
.
Тому, незалежно від рівня вашої кваліфікації, ми радимо використовувати бібліолеку lilka
для роботи з Лілкою.
-
void lilka::begin()
Ініціалізація Лілки
Ініціалізує всі підсистеми Лілки - дисплей, кнопки, файлову систему, SD-карту, батарею, п’єзо-динамік і т.д.
Рекомендується викликати цю функцію один раз на початку програми в вашій функції
setup()
.
1#include <lilka.h>
2
3void setup() {
4 lilka::begin();
5 // Все залізо готове до роботи!
6}
7
8void loop() {
9 // Заповнити екран чорним кольором
10 lilka::display.fillScreen(lilka::colors::Black);
11
12 while (1) {
13 // Отримати стан кнопок
14 lilka::State state = lilka::controller.getState();
15
16 if (state.a.justPressed) { // Якщо щойно була натиснута кнопка "A"...
17 // Розпочати відтворення звуку на частоті 440 Гц
18 lilka::buzzer.play(lilka::NOTE_A4);
19 // Заповнити екран червоним кольором
20 lilka::display.fillScreen(lilka::colors::Red);
21 } else if (state.a.justReleased) { // Якщо кнопка "A" щойно була відпущена...
22 // Зупинити відтворення звуку
23 lilka::buzzer.stop();
24 // Заповнити екран зеленим кольором
25 lilka::display.fillScreen(lilka::colors::Green);
26 }
27 }
28}
Примітка
Порада для початківців: ви могли помітити, що всі функції та об’єкти бібліотеки lilka
викликаються через ::
. Це означає, що вони належать до простору назв lilka
.
Такий синтаксис дозволяє нам уникнути плутанини з іншими бібліотеками (а також з вашим кодом), які можуть містити функції чи змінні з такими ж назвами.
Якщо не хочете щоразу писати lilka::
перед кожною функцією та об’єктом бібліотеки lilka
, ви можете використати директиву using namespace
:
1#include <lilka.h>
2
3using namespace lilka; // Тепер не потрібно щоразу писати "lilka::"
4
5void setup() {
6 begin();
7 // Все залізо готове до роботи!
8}
9
10void loop() {
11 // Заповнити екран чорним кольором
12 display.fillScreen(colors::Black);
13
14 while (1) {
15 // Отримати стан кнопок
16 State state = controller.getState();
17
18 if (state.a.justPressed) { // Якщо щойно була натиснута кнопка "A"...
19 // Розпочати відтворення звуку на частоті 440 Гц
20 buzzer.play(NOTE_A4);
21 // Заповнити екран червоним кольором
22 display.fillScreen(colors::Red);
23 } else if (state.a.justReleased) { // Якщо кнопка "A" щойно була відпущена...
24 // Зупинити відтворення звуку
25 buzzer.stop();
26 // Заповнити екран зеленим кольором
27 display.fillScreen(colors::Green);
28 }
29 }
30}
Audio
: Звук (I2S)Battery
: БатареяBoard
: Керування платоюBuzzer
: П’єзо-динамікController
: КнопкиDisplay
: ДисплейFileUtils
: Допоміжні функції для роботи з файламиMultiBoot
: Завантажувач прошивокResources
: РесурсиSPI
: Шина SPIUI
: Інтерфейс користувачаfmath
: Швидкі математичні функціїcolors
: 16-бітні кольори- Налаштування бібліотеки