Публикации сообщества

Михаил Семионенков • 22 апреля 2020

Вывод с контроллера микро:бит на компьютер

Этот материал предназначен для тех, кто освоил программирование элементарных задач на микро:бит в среде программирования MakeCode и планирует переходить к более сложным проектам.
Одна из проблем, возникающих по мере мере усложнения решаемых задач - ограниченные возможности вывода информации на микро:бит. Это сказывается двояко: 

  •  трудно получить содержательную отладочную информацию непосредственно на микро:бит
  •  в проектах, использующих сбор относительно больших объёмов данных (типичная ситуация для работы с датчиками), нет возможности полноценной визуализации этих данных 

Для Ардуино, например, аналогичная проблема решается поддержкой вывода информации на консоль на компьютере по протоколу последовательного порта.

Последовательный порт

Посредовательный порт - старое решение для подключения устройств к компьютеру. Физическая реализация последовательных портов на компьютерах устарела, компьютеры  теперь обычно оснащаются более современными портами USB. Тем не менее, протокол последовательного порта остаётся востребованным в ряде случаев, включая подключение микроконтроллеров типа Ардуино или микро:бит. 
Протокол последовательно порта на компьютере эмулируется (программно реализуется) "поверх" порта USB: благодаря специальной программной поддержке порт USB может "выглядеть" как 
традиционный последовательный порт.

Поддержка последовательного порта в среде MakeCode

Честно говоря, я надеялся, что поддержка интерфейса между средой программирования MakeCode и платой микро:бит будет органично включена в среду программирования, по протоколу последовательного порта или иначе, особенно в этом смысле обнадёжила работа над реализацией в среде makecode протокола WebUSB и, как следствие, прямая загрузка программы из среды программирования на контроллер (подробнее о прямой загрузке программы можно посмотреть здесь ).
Более того, в документации makecode прямо сказано (относительно реализации WebUSB): "MakeCode will be able to “listen” to your micro:bit and display the console output." То есть, "MakeCode будет способен "слушать" микро:бит и отображать вывод на консоль". Примеры, тем не менее, не приведены.
Означает ли эта фраза документации в будущем времени, что это - план на неопределённое будущее? Возможно. Более того, в документации к папке Последовательный порт, где содержатся блоки работы с последовательным портом, говорится о том, что для вывода на компьютер нужна довольно существенная подготовительная работа.  
 
Поскольку моё терпение кончилось smiley, я решил попробовать описанную текущую возможность.
Я излагаю документацию в сокращении, только для Windows (описаны ещё Linux и Mac OS) и только для консоли Tera Term, со своими комментариями (оригинал документации на английском здесь https://makecode.microbit.org/device/serial).
Для Windows описана ещё консоль Putty: я выбрал первую, поскольку она описана первой и я её встретил впервые (Putty - старая известная консоль), я подумал, что, возможно, в  Tera Term есть что-то новое и интересное (честно говоря, ничего особенного не заметил, но на кое-какие грабли наступил, так что удовольствия от знакомства не получил). 

Прежде чем перейти к инструкциям, рекомендовал бы взвесить актуальность для вас этой задачи: не исключено, что в обозримом будущем консоль всё-таки будет интегрирована в среду makecode, и всё это станет лишним 
(в худшем случае может даже создать проблемы для перехода на "родное" решение): в процессе работы я заметил, что консоль в MakeCode уже реализована для эмулятора микро:бит и, вероятно, находится в стадии отладки.

Для версий Windows, предшествующих 10-ой, нужно установить драйвер последовательного порта (https://os.mbed.com/docs/mbed-os/v5.15/tutorials/windows-serial-driver…).
Не рекомендую ставить дврайвер на 10-ую версию: у меня перестала работать прямая загрузка программы на микро:бит. Вообще не факт, что у меня на компьютере WebAPI будет в будущем поддерживаться без специальных усилий.

Установка, конфигурирование и проверка работы консоли Tera Term

Консоль Tera Term загружается со страницы https://ttssh2.osdn.jp/index.html.en, раздел Download

После установки, подсоединим микро:бит к компьютеру и запустим программу Tera Term

  • В меню File выбрать New Connection 
  • Отметить Serial
  • Из меню Port выбрать “mbed Serial Port”, нажать OK
  • В меню Setup... выбрать Serial Port и установить Speed 115200, зафиксировать выбор 

(Здесь появилось какое-о меню, которого я не вижу при настройке консоли заново. Правильность операций можно проверить выйдя из меню Setup и вернувшись туда, чтобы убедиться, что Speed имеет правильное значение).

Можно сохранить выбранные установки: Setup > Save Setup: при следующем запуски консоли не нужно будет заново выполнять установки.

Проверить работу вывода по последовательному на компьютер можно, например, со следующей программой

Последовательный порт
Проверка вывода по последовательному порту

 

Естественно, проверка должна выполняться  при микро:бит, подключённом к компьютеру по USB и консоли, "слушающей" порт. 

Кол-во комментариев: (6)

Александр Григорьев
Спасибо, что делитесь своими решениями! :) Я как раз тоже разбираюсь с платой Микробит и готовлю задания по внеурочке для своих ребят. Могу сказать, что давно пришёл к выводу, что визуальная среда Makecode, в отличие от многих других визуальных сред программирования, крайне неудобна и годится для создания лишь самых простых проектов. Если её продолжать использовать, лучше уж переходить на текстовое программирование в JavaScript. Зато могу порекомендовать использовать вместо Makecode среды MindPlus, Kittenblock и Microblocks, хоть там и нет эмулятора, к сожалению.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Михаил Семионенков
    И Вам спасибо! Слабо знаю другие визуальные среды, но есть ощущению, что в таких средах в принципе лучше не засиживаться: освоили базовые идеи программирования - и вперёд на текстовое программирование. Может, в других средах этот период можно подрастянуть, но не берусь судить. Вероятно, это ещё от возраста зависит: маленьких можно помариновать, а старших побыстрее в бой. Опять же, суждения людей с большим практическим опытом и эрудицией были бы куда ценнее моих спекуляций :-)
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Александр Григорьев
    Пользуясь визуальным программированием в средах mBlock3, Snap4arduino и Microblocks можно создавать проекты (почти) профессионального уровня. В средах mBlock5 и Makecode - нет.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Михаил Семионенков
    Александр, спасибо: Ваш обзор, хоть и предельно лаконичен, но очень ценен. Есть ли у читателя шанс на менее спартанскую версию обзора? :-)
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Александр Григорьев
    "Менее спартанская" версия предполагает, что необходимо продемонстрировать создание проекта (почти) профессионального уровня, тогда станет понятно, чего не хватает для полного счастья недоработанным средам визуального программирования.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Лора Кравченко
    С удовольствием читаю. Когда-то работала информатиком и понимаю, что с радостью бы окунулась в программирование и робототехнику. Но, увы, физиков в школах катастрофически не хватает, поэтому времени на роботов не остается совсем. Но читаю каждый пост))
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии