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

Михаил Семионенков • 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 и консоли, "слушающей" порт. 

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

Александр Григорьев
Спасибо, что делитесь своими решениями! :) Я как раз тоже разбираюсь с платой Микробит и готовлю задания по внеурочке для своих ребят. Могу сказать, что давно пришёл к выводу, что визуальная среда Makecode, в отличие от многих других визуальных сред программирования, крайне неудобна и годится для создания лишь самых простых проектов. Если её продолжать использовать, лучше уж переходить на текстовое программирование в JavaScript. Зато могу порекомендовать использовать вместо Makecode среды MindPlus, Kittenblock и Microblocks, хоть там и нет эмулятора, к сожалению.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Михаил Семионенков
    И Вам спасибо! Слабо знаю другие визуальные среды, но есть ощущению, что в таких средах в принципе лучше не засиживаться: освоили базовые идеи программирования - и вперёд на текстовое программирование. Может, в других средах этот период можно подрастянуть, но не берусь судить. Вероятно, это ещё от возраста зависит: маленьких можно помариновать, а старших побыстрее в бой. Опять же, суждения людей с большим практическим опытом и эрудицией были бы куда ценнее моих спекуляций :-)
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Александр Григорьев
    Пользуясь визуальным программированием в средах mBlock3, Snap4arduino и Microblocks можно создавать проекты (почти) профессионального уровня. В средах mBlock5 и Makecode - нет.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Александр Григорьев
    "Менее спартанская" версия предполагает, что необходимо продемонстрировать создание проекта (почти) профессионального уровня, тогда станет понятно, чего не хватает для полного счастья недоработанным средам визуального программирования.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Лора Кравченко
    С удовольствием читаю. Когда-то работала информатиком и понимаю, что с радостью бы окунулась в программирование и робототехнику. Но, увы, физиков в школах катастрофически не хватает, поэтому времени на роботов не остается совсем. Но читаю каждый пост))
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Ольга Тузова
    Михаил Семионенков Михаил, добрый день. Я когда-то занималась этой темой и тоже использовала Tera Term. Сейчас опять вернулась к этому вопросу и мне никакой Tera Term не потребовался. Просто подключила микро:бит с программой использования последовательного порта, увидела появившуюся при этом кнопку Show console device и нажала на неё. Увидела на web-странице и данные от датчиков, и график. Всё как описано здесь: https://support.microbit.org/support/solutions/articles/19000022103-out… в части Using Windows 10 App. У меня следующий шаг не получается. Хотелось бы данные увидеть в таблице Excel, но у меня csv файл загружается с ошибкой, таблица в Excel формируется неправильно. Интересно было бы потом обработать эти данные, как это сделано здесь: https://techcommunity.microsoft.com/t5/excel-blog/excel-and-micro-bit-h…. Но для этого нужен правильный файл
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Михаил Семионенков
    Ольга, спасибо за новость! Это было ожидаемое развитие событий, но было не ясно, когда это произойдёт. Рад, что этот вопрос решается в цивилизованном русле
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Ольга Тузова
    Михаил Семионенков Михаил, я думаю, что это результат последнего апгрейда, но вопросы остаются. 1. CSV файл после загрузки из веб-монитора открывается в неправильном виде. 2. Связка с Excel через VBA, как описано в https://techcommunity.microsoft.com/t5/excel-blog/excel-and-micro-bit-h… работает отлично, но мне приходится сначала запускать Tera Term, чтобы узнать, во-первых, какой именно порт подключён, и, во-вторых, установить скорость обмена 115200, иначе Ecel зависает или сообщает об ошибке открытия файла. Как бы без всего этого обойтись? Действия простые, но для детей такие заморочки вырастают в проблему.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Михаил Семионенков
    Ольга, боюсь, помочь не смогу: как я и опасался, после всех экспериментов WebUSB у меня не работает совсем, надо что-то где-то чистить, но не знаю что, нет пока времени разбираться.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Михаил Семионенков
    Ольга, а что значит в неправильном виде открывается? У меня файл, правда с эмулятора, открывается с добавкой двух строчек сверху (в Open Office). Это проблема или у Вас другой случай?
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Ольга Тузова
    Пропустила ответ, извините, реагирую с опозданием :( Какая-то была ошибка, наверное, с моей стороны в подготовке данных для вывода. И всё было совсем плохо. После более аккуратных действий файл сформировался, но пришлось вмешиваться в установки для Excel, так как в записанном файле десятичная часть числа отделяется точкой, а не запятой. Для работы в классе это неудобно, и я пока отложила затею использовать запись данных в файл таким образом на уроках.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии