Комментарии 11
ESP32 нет достаточно ОЗУ с возможностями DMA для хранения двух буферов кадров
Не вяжется с
ESP32 имеет 520 КБ встроенного ОЗУ
И да в спеке не 40Мгц, а только 80 наносекунд на бит, что гораздо медленнее. Впрочем почти все экземпляры работают быстрее 36 МГц.
Потому игры смотрятся позорно.30 ФПС им мало
Я понимаю, что это перевод, но вдруг кто-то будет пытаться реализовать.
В проекте ESP32 Jumpstart есть компонент для работы со стандартными кнопками. Отлично отрабатывает события press, release, tap (нажали и отпутили), hold (нажали и держим, причём можно несколько таймеров настроить — например, установили таймеры на 2, на 5 и на 7 секунд и держали кнопку 6 секунд, — и вызвать соответствующий callback либо при срабатывании каждого, т.е. на 2 и на 5 секунде, либо только последнего — на 5 секунды) и serial (т.е. пока держим кнопку — будут идти уведомления через заданное время). Удобно, что не нужно писать самому.
Драйвер дисплея тоже может иметь смысл взять готовый, особенно если речь идёт не об Odroid Go. Есть как отдельные библиотеки, так и проекты типа LittlevGL для создания GUI в embedded-системах, там есть и для esp32 вариант с десятком поддерживаемых дисплеев\контроллеров. Можно вытащить драйвер оттуда.
Кстати, идея опрашивать кнопки вместо использования прерываний для меня выглядит несколько странно: автор говорит, что хочет сэкономить заряд, понижая тактовую частоту, и при этом загружает проц поллиногом.
P.S. Вообще, esp32 очень мощная штука. Особенно для своей цены (баксов за 5-6 с доставкой можно получить готовую дев-плату, ещё 2-5 баксов — дисплей, а чип для установки на свою плату — ~$2.5). Вообще не понимаю, почему люди до сих пор используют всякие Arduino-платы, которые и дороже, и имеют в разы, если не на порядки, меньше возможностей. При этом те, кто по какой-то непонятной мне причине предпочитает Arduino IDE и библиотеки — спокойно могут продолжать с ним работать, хотя esp-idf — отличная штука, особенно если нужно чуть больше, чем просто поморгать светодиодиками.
Программирование игры для embedded-устройства на ESP32