Python на микроконтроллере звучит как мечта-теперь она сбылась. Вы можете скачать и начать работать с ним уже сегодня, и вскоре будет выпущена плата за разработку.
Существуют и другие версии Python, ориентированные на небольшие системы, но они являются очень ограниченными реализациями языка.
Micro Python-это довольно полная повторная реализация Python 3 в C99 ANSI C. Он реализует весь синтаксис Python 3.4 и следующие основные типы данных: str (пока не поддерживается Unicode), bytes, bytearray, tuple, list, dict, set, array.array, collections.namedtuple, классы и экземпляры. Встроенные модули включают в себя sys, time и struct. Он утверждает, что компилирует 99,99% стандартной библиотеки.
Существует также специальный модуль, который обеспечивает ввод-вывод и управление датчиками. Вы можете писать такие заявления, как:
импорт pybpyb.LED(4).вкл.()
Ваш следующий вопрос должен заключаться в том, сколько всего этого нужно для запуска?
Ответ заключается в том, что минимальная сборка ARM требует 80 тыс., а со всеми функциями ей требуется 200 тыс. в Linux.
» .. стремится быть должным образом совместимым с CPython, обладая при этом очень минимальным объемом оперативной памяти, компактным компилятором и быстрой и эффективной средой выполнения. Эти цели были достигнуты за счет использования множества трюков с указателями и битовой начинкой, а также размещения как можно большего количества данных в памяти, доступной только для чтения.»
Вы можете запустить его на ПК в качестве бережливой версии Python или на ПК, используемом, скажем, в качестве устройства. Утверждается, что версия для ПК работает быстрее, чем CPython, даже при использовании байтового кода и намного быстрее при компиляции в собственный код.
Micro Python компилируется в сжатый байтовый код, который выполняется на виртуальной машине. Есть также некоторые оптимизации скорости — вы можете добавить декоратор, который компилирует функцию в машинный код, который занимает больше памяти, но работает в два раза быстрее. Существует также встроенный ассемблер, позволяющий вам вручную кодировать все, что действительно должно быть быстрым.
На данный момент система нацелена на 32-битную ARM, и существует новая система разработки под названием pyboard, на которой можно использовать Micro Python благодаря успешной привлекательности Kickstarter. Плата Micro Python, основанная на микропроцессоре STM32F405 с тактовой частотой 168 МГц, имеет 1 МБ флэш — памяти и 192 КБ оперативной памяти. Он подключается к ПК через USB-порт, и вы можете взаимодействовать с ним через командную строку Python. Он также может компилировать и запускать скрипты Python без какой-либо помощи с ПК. Он имеет хороший набор периферийных устройств — 2 светодиода, переключатель, часы реального времени, акселерометр и 30 контактов ввода-вывода — 5 USART, 2SPIs, 2 шины I2C, 14 контактов переменного тока, 2 ЦАП и 4 сервопривода.
Pyboard поддерживается модулем pyb, который включает в себя функцию включения светодиодов, сенсорных переключателей, считывания акселерометра, управления сервоприводами. Есть также функции для часов реального времени, UART, I2C и так далее.
Если вы хотите, чтобы Micro Python работал на другой плате разработки, вам придется заново реализовать модуль pyb. Не ожидайте реализации Arduino в ближайшее время, так как у Uno, например, просто нет памяти для этого. Версия Raspberry Pi, безусловно, была бы возможна.
В настоящее время pyboard поставляется на Kickstarter, и когда это будет завершено, он поступит в общую продажу. Цены пока нет, но из обещаний Kickstarter 50 долларов кажутся примерно правильными. Вы также можете использовать стандартные модули для добавления Wi-Fi и Ethernet.
Micro Python и pyboard имеют открытый исходный код, и вы можете получить исходный код и схемы.