Для микроконтроллеров ESP32 вышла новая версия операционной системы MicroPythonOS 0.18.0 — проект продолжает развиваться в сторону «умных» интерфейсов, напоминающих мобильные платформы.
MicroPythonOS — это полноценная ОС для встраиваемой техники, написанная с использованием MicroPython и сочетающая код на Python с низкоуровневыми компонентами на C. Ключевая «фишка» системы — графическая оболочка, по духу близкая к Android и iOS. Работать с ней можно как с сенсорного экрана, так и с помощью аппаратных кнопок. Проект ориентирован на широкий спектр задач: от управления «умным домом» и интерактивными панелями до робототехники, IoT-устройств и носимых гаджетов с жестовым управлением. Благодаря тому, что код распространяется под лицензией MIT, его можно смело использовать в коммерческих прототипах и разработках.
Архитектура новой версии построена по модульному принципу. Базовая система отвечает исключительно за инициализацию «железа», работу с накопителями и многозадачность, в то время как вся прикладная функциональность, вроде настройки Wi-Fi или обновления прошивки, вынесена в отдельные приложения. Базовый набор включает меню программ, конфигуратор, виджет для работы с сетями, а также установщик приложений. Расширять функциональность можно через каталог App Store: там доступны внешние утилиты, включая просмотрщик изображений или приложение для камеры. Обновления доставляются «по воздуху» (OTA). Платформа поддерживает работу с Wi-Fi, Bluetooth, звуковыми кодеками, датчиками IMU, тачскринами и камерами.
Что нового появилось в версии 0.18: добавлена поддержка платы Waveshare ESP32-S3-Touch-LCD-3.5 с 3.5-дюймовым экраном (320×480 пикселей) и аудиокодеком ES8311. Для скачивания программ из каталога App Store стала доступна кнопка «Scan QR» для распознавания ссылок (на https://badgehub.eu/page/project/APP_ID, micropythonos://app/APP_ID или mpos://app/APP_ID). Сканер в приложении камеры теперь умеет распознавать такие ссылки и предлагать открыть их в каталоге. AppManager позволяет привязывать URL-обработчики к конкретным программам. Музыкальный плеер на всех платформах получил корректную поддержку режима зацикленного воспроизведения. Улучшена совместимость со звуковыми решениями на базе шины I2S (Inter-IC Sound). Менеджер шрифтов теперь кэширует Emoji-коды. Заметно переработан TaskManager — он позволяет контролировать запущенные процессы и автоматически перезапускать их в случае остановки (например, для консоли aiorepl).
Оптимизация не обошла стороной и размер прошивки. Было добавлено сжатие статичных архивов ФС, включена чистка pycache-файлов и резервных копий, что суммарно сократило прошивку на 39 КБ. Дополнительно сжатие шрифтов Montserrat для размеров 10-18 позволило сэкономить еще 19 КБ. Для написания приложений используется стандартный MicroPython (упрощенный вариант Python 3) с подмножеством стандартных библиотек.
