BBC Micro:bit — детский обучающий микрокомпьютер: возможности ввода/вывода

Привет geektimes. В первой части кратко рассказывалось о детском обучающем микрокомпьютере BBC Micro: bit.
f6d20758ac7a4e4d85c485d5e0f56c74.jpg

Как говорилось ранее, платы BBC Micro: bit предоставляются всем британским школьникам бесплатно, они также используются на уроках информатики. Очевидно, что многие задачи и алгоритмы куда интереснее попробовать «вживую», да и теория гораздо лучше усваивается когда подкрепляется практикой. Поэтому интересно посмотреть, какие возможности предоставляет BBC Micro: bit, и что на ней можно делать.

Начнем с возможностей ввода/вывода.

Напомню, что для использования платы никакого софта ставить не нужно, все делается онлайн (для параноиков — оффлайн-редактор тоже существует). Через обычный браузер доступны как редактор, так и вполне полноценный симулятор (в нем кстати, удобно тестировать программу, даже не имея платы в наличии). BBC Micro: bit может программироваться в визуальном редакторе, с помощью Javascript или на языке Python (пользуясь случаем, передаю привет министерству образования и преподавателям информатики, до сих пор пользующихся Турбо Паскалем).

Ввод-вывод


Напомним, как выглядит плата, с точки зрения «железа».
af936619e53647928853007388ff9577.png

На плате есть 2 кнопки, акселерометр, компас и линейка пинов. Для вывода используется LED-экран в виде матрицы 5×5 светодиодов. Не очень много, тем не менее разработчикам удалось обеспечить вполне разнообразные способы ввода и вывода данных.

Можно использовать все способы одновременно:
7f1f08f8f3a148e28ee824575fa555fa.png

Как можно видеть, для вывода пользователю доступны такие функции, как:
— вывод строки
— вывод числа
— вывод графических иконок (также есть возможность индивидуальной активации/деактивации светодиодов, что может использоваться для создания мини-игр, например «змейки»).

Возможности ввода также весьма разнообразны для платы такого размера:
— аппаратные кнопки А или В, также их одновременное нажатие
— весьма необычный режим касания пальцем одного из пинов 1, 2 или 3, вторая рука должна касаться пина GND
— функции, использующие акселерометр: встряхивание, поворот платы экраном вверх или вниз, и даже «свободное падение».

Помимо этого, можно использовать компас или детектор освещенности.

Компас


Программно можно получить значения компаса, затем использовать их в коде, например так:
37cadc1d8b1e413998ba9f78b20e61dc.png

Увы, в отличие от симулятора, на реальной плате точность компаса оказалась не столь высокой, впрочем возможно я как-то неправильно делал его калибровку. В реале компас показывал что угодно, кроме направления на север.

Акселерометр


Пользователю доступны все 3 оси акселерометра. Для примера можно привести простую программу, позволяющую наклонами платы двигать точку на экране:
7de420b1a672421c93112a717f457bc2.png
(Для совсем «чайников» на youtube я выкладывал подробный разбор этого примера)

Датчик температуры


Имеется возможность программного получения значения температуры.
657fcf3fafca46bb908a34d0db3df121.png

Serial port


И наконец, для любителей Arduino, есть возможность выводить данные в Serial port. Это значительно расширяет возможности устройства, позволяя например, подключить Micro: bit к компьютеру или Raspberry Pi и сохранять в лог полученные данные. Также бывает удобно выводить в порт данные для отладки.

Для использования последовательного порта, вначале необходимо установить драйвер с сайта developer.mbed.org, далее прием данных осуществляется как обычно, любой программой.

Вот такая программа выводит данные с акселерометра в Serial-port:
4b331685da6c409ab554e79a32b39ff7.png

Данные можно на компьютере сохранить как csv, потом вывести в виде графика:
34a01870eb4a460da18c90dfb8ddedfe.png

Датчик освещенности


И наконец, датчик освещенности, его значения также легко вывести в serial port:
dfababa3f6ac49a1998417165038ba86.png

Заключение


В целом можно отметить, что для своей цены в 15 фунтов (а это 4 поездки на метро в Лондоне), плата получилась весьма неплохой. Она предназначена для детей в возрасте от 11 лет, и позволяет на практике изучать основы информатики и алгоритмов, что конечно, гораздо интереснее абстрактных теоретических задач. Также есть возможность изучения взаимодействия компьютера с датчиками и «внешним миром», не углубляясь при этом в тонкости схемотехники: набор предустановленных в плате датчиков, как можно видеть, для такой цены весьма неплох.

Здесь были рассмотрены не все возможности Micro: bit. Например, плата еще может управлять сервомашинкой, или выводить звук на один из пинов. Micro: bit имеет также радио-модуль, что позволяет делать даже многопользовательские игры и программы. Для желающих использовать дополнительные устройства, в продаже стали появляться дополнительные наборы, например «Grove Inventor Kit».

Конечно, плата неидеальна, например не хватает слота для SD-карт или полноценного эмулятора при использовании Python. Но даже в таком виде как сейчас, BBC Micro: bit вполне может сделать уроки информатики гораздо более интерактивными и интересными. По крайней мере, для британских школьников.

© Geektimes