PikaPython - Python на микроконтроллерах без компромиссов
Когда мне впервые попался STM32F103C8T6 с его 20КБ RAM и 64КБ Flash, я подумал: "На таком железе Python? Да ну, нереально!". Но команда PikaPython доказала, что это возможно — их интерпретатор ужимается в невероятные 4КБ оперативки.
Что это за зверь?
PikaPython — это:
- Ультралегкий интерпретатор Python 3 для embedded-систем
- Полноценная поддержка ООП (классы, наследование, полиморфизм)
- REPL прямо через UART-интерфейс
- Минимальные требования: 4КБ RAM / 64КБ Flash
Почему это круто? Представьте, что вы можете:
import STM32G0
time = STM32G0.Time()
io1 = STM32G0.GPIO()
io1.setPin('PA8')
io1.high()
time.sleep_ms(500) # И все это на STM32G030!
Ключевые фишки
-
Полноценный Python в миниатюре
- Поддержка классов, методов, исключений
- Списки, словари, срезы
- Все операторы от
+=до**
-
Готовые драйверы под капотом Встроенная поддержка для:
- GPIO, UART, PWM, ADC, I2C
- LCD-дисплеев и RGB-светодиодов
- Даже есть демка с игрой "Змейка" на LCD!
-
REPL прямо в MCU Подключаетесь по UART и получаете интерактивную консоль Python. Хотите мигать светодиодом? Пожалуйста:
>>> io1.high() # Включаем >>> time.sleep(1) >>> io1.low() # Выключаем
Как это работает внутри?
Проект использует хитрый прекомпилятор на Rust, который:
- Анализирует
.pyi-файлы с описанием API - Генерирует C-биндинги автоматически
- Собирает минимальный рантайм без зависимостей
Архитектура настолько легковесная, что даже не требует файловой системы — скрипты можно загружать прямо через UART.
Где уже используют?
- Pika-Pi-Zero — готовый dev-борд на STM32G030 с LCD и USB-C
- RT-Thread — популярная RTOS для встраиваемых систем
- ESP32/STM32/CH582 — десятки поддерживаемых платформ
Особенно впечатляет демка с ARM-2D — анимация вращающихся объектов на слабом железе.
Стоит ли пробовать?
Если вы:
- Разрабатываете для embedded и устали от голого C
- Хотите быстро прототипировать на Python
- Работаете с STM32/ESP32/RISC-V
...то PikaPython — ваш новый лучший друг. Проект активно развивается, имеет подробную документацию и поддерживает даже PlatformIO.
Лично мне нравится, как они переосмыслили embedded-разработку. Это не "еще один MicroPython", а принципиально новый подход к скриптингу на микроустройствах. Попробуйте — и влюбитесь в их "Hello World" на 3.56КБ RAM!
