Не удается импортировать скрипт Python из основного скрипта для BBC Micro::bit в редакторе Mu

Я кодирую пример на микропитоне для BBC Micro::bit. Я использую редактор Mu, который проверяет код и записывает его на плату.

Дело в том, что я не могу найти способ импортировать собственные скрипты из основного. Несмотря на то, что проверка кода завершилась успешно (и работает на моем компьютере), после прошивки плата будет жаловаться на то, что импортированный модуль не существует. Как будто только основной сценарий попадает на доску. Кроме того, если я вставлю весь свой код в один скрипт, Mu будет жаловаться на то, что скрипт слишком длинный (около 300 строк). Что я здесь делаю неправильно? Почему максимальная длина скрипта?


person dvilela    schedule 27.10.2016    source источник


Ответы (1)


Причина, по которой существует максимальная длина сценария, заключается в ограниченном объеме памяти внутри micro:bit. Это очень мощный «маленький компьютер», но у него есть несколько ограничений, одним из наиболее важных из которых является память.

Когда вы нажимаете кнопку Flash на Mu, он копирует только текущий сценарий. Вы можете использовать новую функцию хранения от MicroPython (ссылка на документацию, объясняющую эту функцию), для которого потребуется последняя версия Mu (http://codewith.mu). Вы должны иметь в виду, что прошивка нового скрипта всегда удалит все сохраненное, поэтому вам придется сначала прошить ваш основной скрипт, а затем добавить другой файл, нажав кнопку «Файлы» на Mu. Там вы можете перетащить любой скрипт из вашей локальной папки Mu в micro:bit.

Самый простой способ сделать то, что вы хотите, — это объединить все в один файл, как вы пытались раньше. Если это не подходит, вы можете попробовать уменьшить размер скрипта, например, уменьшив количество комментариев или как-то уменьшив объем кода.

person carlosperate    schedule 27.10.2016
comment
Полностью работает. Большое спасибо! Я догадался, что ограничение на количество файлов было связано с объемом доступной памяти, но... ограничение количества строк? Мне это кажется странным. - person dvilela; 27.10.2016
comment
Это не столько ограничение количества строк, сколько количество кода, которое умещается в микробитном флеше. Каждый раз, когда вы прошиваете с помощью Mu, он берет интерпретатор MicroPython и прикрепляет ваш скрипт в один шестнадцатеричный файл, который копируется в микробит. На данный момент для вашего Python-скрипта, закодированного в UTF-8, всего 8Кб. Таким образом, в лучшем случае у вас есть место для 8192 символов в вашем сценарии, независимо от количества строк. Полезный совет: в файловой системе внутри микробита доступно 30 КБ, поэтому вы можете таким образом включать файлы большего размера (main.py всегда будет выполняться при сбросе). - person carlosperate; 28.10.2016