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



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

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

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

Ввод-вывод


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



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

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



Как можно видеть, для вывода пользователю доступны такие функции, как:

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

Возможности ввода также весьма разнообразны для платы такого размера:

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

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

Компас


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



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

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


Пользователю доступны все 3 оси акселерометра. Для примера можно привести простую программу, позволяющую наклонами платы двигать точку на экране:


(Для совсем «чайников» на youtube я выкладывал подробный разбор этого примера)

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


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



Serial port


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

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

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



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



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


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



Заключение


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

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

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

Как подсказали в комментариях, в Германии тоже тестируется аналогичный проект, с использованием платы собственной разработки Calliope mini. Эксперимент проводится в федеральной земле Saarland, школьники знакомятся с микрокомпьютером с третьего класса.

Комментарии (35)


  1. GeMir
    28.08.2017 02:55

    В качестве «более продуманной» альтернативы для школьников 3 класса и старше у нас предлагается плата Calliope Mini (пока, увы, вдвое дороже Micro:bit).


    1. DmitrySpb79 Автор
      28.08.2017 08:34

      По описанию, тоже вполне неплохо. Удобно что наиболее полезные интерфейсы выведены на отдельные порты, легко подключать периферию.


  1. poznawatel
    28.08.2017 04:20

    Очень плохое соотношение цена/качество! За 20фунтов продаётся pyboard store.micropython.org/#/products/PYBLITEv1_0, которая на две головы выше по созданию мотивации к обучению.


    1. artskep
      28.08.2017 08:29

      На micro:bit стоит вся нужная периферия. На pyboard без паяльника делать нечего.
      Так что pyboard явно не для школы.


      1. kx13
        28.08.2017 09:49
        -1

        Зачем школьникам, которые не умеют паять вообще какие-то микроконтроллеры?


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


        Вообще любая железка ничего не стоит без правильно методики обучения.


        1. DmitrySpb79 Автор
          28.08.2017 10:40

          Micro:bit вообще имхо не позиционируется как микроконтроллер.

          И это не замена компьютеру, разумеется, а так скажем, интерактивное дополнение к нему. Методика конечно нужна, тут никто не спорит.


        1. flatscode
          28.08.2017 16:40

          Зачем школьникам, которые не умеют паять

          А почему вы решили, что школьники не умеют паять?
          Пайка — это что, rocket science какой-то?


          1. kx13
            29.08.2017 07:51

            Умеют, но не многие. Да и не надо это большинству.


            Но если изучать это устройство как некий компьютер оснащенный "неонкой и думателем", то без дальнейшего изучения электроники и сопутствующих практических навыков (той же пайки) данное устройство лишь еще одна прикольная штука, которая подключается по USB к компьютеру.


        1. artskep
          28.08.2017 21:26

          А зачем тогда уроки труда тем, кто не знает СНИПы? :-)
          Задача школы (в моем понимании) не в том, чтобы закрепить конкретные навыки, а в том, чтобы показать возможности современной науки/техники/общества.
          Устройства с контроллерами и датчиками уже де-факто стали неотъемлимой частью нашей жизни. Для молодого поколения так вообще очевидными, как для нас электричество — они смартфон видят раньше, чем букварь.

          Чтобы это не стало для них великим колдунством, стоит показать «как это работает» и дать попробовать самим что-то сделать. Обучение пайке, сбору схемы и прочему займет слишком много времени, и для многих будет занудно и не нужно. Но «пощупать» устройство и посмотреть «кишочки», когда это сделано на одной плате — вполне возможно. Те, кто захочет идти дальше, могут и пайку освоить (и припаяться хоть к этой плате, хоть к другой). А потом от Питона перейти на что-то другое (кстати, почему-то вы ополчились на тех, кто не может паять, но совершенно спокойно отнеслись к тому, что плата, которую я комментировал, позиционирует себя как заточенная на Python — не боитесь, что сейчас придут программисты МК и будут долго говорить, что тех, кто АСМа не знает нельзя к контроллерам подпускать?).


          1. kx13
            29.08.2017 07:38

            А зачем тогда уроки труда тем, кто не знает СНИПы? :-)

            СНИПы, не надо, но на уроках труда тоже должна быть некоторая теория, которая сочетается с практикой.


            Задача школы (в моем понимании) не в том, чтобы закрепить конкретные навыки, а в том, чтобы показать возможности современной науки/техники/общества.

            Я с вами согласен.


            Устройства с контроллерами и датчиками уже де-факто стали неотъемлимой частью нашей жизни.

            Но для многих это по сути коробочка с кнопочками и экранчиками. А что там внутри — великое колдунство.


            Мне это устройство нравится я недоволен только одним тезисом: что оно помогает изучать информатику. Весь этот вау-эффект: смотрите оно может моргать диодами и реагирует на кнопки по сути одноразовый. Далее процесс ничем не отличается от вывода светящихся точек на монитор и реагирования на кнопки мыши.


            Вот когда человек знает основы информатики, тогда можно брать это устройство и работать с ним. Вот здесь — это отличный инструмент.


            кстати, почему-то вы ополчились на тех, кто не может паять, но совершенно спокойно отнеслись к тому, что плата, которую я комментировал, позиционирует себя как заточенная на Python

            Это тоже большая тема, но можно и о ней порассуждать.


            не боитесь, что сейчас придут программисты МК и будут долго говорить, что тех, кто АСМа не знает нельзя к контроллерам подпускать

            В зависимости от поставленной цели надо выбирать язык. Если тебе надо сделать практическую задачу, лучше брать язык высокого уровня (если ресурсы устройства позволяют).


            Если надо разобаться в деталях как работает устройство (или нужен полный контроль), то нужен АСМ.


            В плане обучение все зависит от того, какие цели ставит методика. Если просто научить детей взаимодействовать с устройством, Питон подойдет. Просто и понятно.
            Если цель изучения как все работает на самом деле, надо брать АСМ.


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


            1. artskep
              31.08.2017 21:34
              +1

              Вот когда человек знает основы информатики, тогда можно брать это устройство и работать с ним. Вот здесь — это отличный инструмент.


              Да нет «основ информатики» для школьников, если вы говорите о теории. Нет еще достаточно абстрактного мышления, чтобы школьник заинтересовался алгоритмами как таковыми.

              И так было всегда. Школьников к программированию привлекали не рисованием блок-схемы на листке бумаги (хотя это тоже делали), а программами игры в Быки-Коровы, «посадку на луну» на программируемом калькуляторами, муаровыми узорами на каких-то БК и прочему.
              Точно так же, как к радиоэлектронике привлекали не описанием законов Киргоффа, а пайкой детекторного приемника.

              О каких «выборах языка», «полном контроле» и прочем вы говорите? Вспомните себя в школьные годы. Вы уверенны, что если бы учитель вам бы стал рассказывать предмет с позиции профессиональных тонкостей, то вы бы выбрали свою текущую профессию?


              1. DmitrySpb79 Автор
                31.08.2017 21:46

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

                Я писал уже, как-то открыл учебник информатики для 10 класса — это же скука смертная, всякая муть типа «основы системологии», «информационнные процессы в естественных и искуственных системах», гост по защите информации, и так далее. При этом все сверхкратко (и в итоге малопонятно), только по верхам, и никакой практики. Не делается это все так. Если ученик и заинтересуется компьютерами, то вопреки а не благодаря такому учебнику…


                1. kx13
                  01.09.2017 09:15

                  Суть информатики имхо — показать, как красиво и эффективно решать на компьютере различные практические задачи.

                  Хорошо, показали как все красиво и эффективно. У нас цель показать или научить?
                  А если ребенок скажет: "я так же хочу красиво делать"?.. Все, мы должны заняться теорией.
                  Такие дерби как «основы системологии», «информационнные процессы в естественных и искуственных системах» нам, конечно, не нужны т.к. не существенны для текущей задачи.
                  Но объяснить что такое условие, цикл, переменная — это тоже все теория. Без нее программу толком не написать.


                  Теория это вредно? Нам нужна практика? Отлично. Дайте ребенку исходный код того, что ему понравилось. Пусть сам разберется как сделать похожее. Этот путь очень долгий и сложный. Поэтому в обучении используют теорию, чтобы не повторять долгий и длинный путь сомостоятельного обучения.


                  Вот пример хорошей теории.
                  Энциклопедия профессора Фортрана


                  1. DmitrySpb79 Автор
                    01.09.2017 09:27

                    В том и дело, нужна теория, достаточная для решения практических задач, как работают циклы, переменные и пр. Вместо этого школьники месяцы решают на бумажки абстрактные задачи на несуществующие системы счисления (типа «посчитать в системе счисления по основанию „5“») и учат определения типа тех что я привел выше. Кому это надо, мне непонятно.

                    Да ладно бы только информатика, знаете как сейчас физика в школе сдается? Школьники почти не решают задач, зато зубрят и сдают _наизусть_ определения, называется это «образовательный минимум». Ответил, зачет, нет, учи дальше, как стих, понимать суть вовсе необязательно. Маразм же.


                    1. kx13
                      01.09.2017 09:50

                      В том и дело, нужна теория, достаточная для решения практических задач,

                      Плюс еще немного, чтобы у человека горизонт знаний был пошире, чем узко решаемая практическая задача.


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


                      Школьники почти не решают задач, зато зубрят и сдают наизусть определения, называется это «образовательный минимум».

                      То что вы пописали — это просто имитация процесса обучения.


                      Это как раз происходит от того, что цели обучения изменились в связи с изменением "общественного бытия". Сейчас нет цели развития мыслящего, разностороннего человека умеющего думать системно, поэтому и знания подаются кусками и разрозненно.


                      Такие знания можно сравнить с кирпичной стеной без связующего бетона.


                      Сейчас пытаются как раз готовить узких специалистов: вот тебе практика, немного теории и все. Иди работай.


                      Маразм же.

                      Это закономерный результат изменений общества.


              1. kx13
                01.09.2017 08:57

                Школьников к программированию привлекали не рисованием блок-схемы на листке бумаги (хотя это тоже делали), а программами игры в Быки-Коровы...

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


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


                О каких «выборах языка», «полном контроле» и прочем вы говорите?

                Дети разные бывают, я в школе на ассемблере писал.


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


                Если обучают обычный класс, то его привлекают каким-нибудь Скратчем, где за 5 минут можно объяснить теорию и дети могут делать убогие программки делать.
                А если это кружок ботанов-программистов, то для них нужно что-то посерьезнее, например С :)


  1. DmitrySpb79 Автор
    28.08.2017 08:30

    2 poznawatel, это совсем другое — плат типа arduino, stm, esp, на рынке действительно много, но они ориентированы на любителей электроники. Micro:bit же сразу можно использовать «из коробки» как есть, да и целевая аудитория это младшие школьники с 11 лет. В общем, micro:bit имхо ориентирован на изучение информатики а не электроники, как говорится, почувствуйте разницу.


    1. kx13
      28.08.2017 09:44

      Micro:bit же сразу можно использовать «из коробки» как есть,

      Всяких отладочных плат с установленными свистелками и моргалками очень много. На любой кошелек.
      Отличие Micro:bit лишь в том, что его целенаправленно и централизовано раздают учащимся. Соответственно шумихи вокруг него побольше.


    1. kx13
      28.08.2017 09:55

      В общем, micro:bit имхо ориентирован на изучение информатики

      Чтобы изучать информатику вообще не нужно специальное оборудование типа micro:bit.
      Как оно может помочь изучить информатику?
      Например, как вызвов функций для снятия данных с определенной железки поможет в освоении информатики?


      Точно такие же программы в Scratch можно писать без дорогостоящей железки.


      1. DmitrySpb79 Автор
        28.08.2017 10:37

        Может помочь тем, что гораздо интереснее работать с объектами реального мира, а не просто с чем-то абстрактным.


      1. saboteur_kiev
        28.08.2017 12:51

        А что такое информатика в вашем понимании?


        1. kx13
          28.08.2017 14:45

          В моем понимании это наука (на школьном уровне это больше прикладная дисциплина) изучающая обработку и хранение информации.
          По большому счету для ее изучения и компьютер не нужен.


          Применение компьютера в том или ином виде это лишь практическая часть этой диспциплины.


          Micro:bit в контесте изучения информатики по сути лишь способ визуализации и источник некоторой информации, поэтому качественно улучшить изучение этой дисциплины он не может.


          А вот если изучается уже электроника, то здесь это неплохой инструмент для изучения. В него можно осциллографом потыкать, а если сгорит, то не сильно жалко.


          1. DmitrySpb79 Автор
            28.08.2017 14:54

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

            С точки зрения изучения электроники, кстати, micro:bit как раз мало удобен, порты у него по умолчанию не выведены, надо плату расширения докупать.

            Информатику «без компьютера» изучать теоретически можно, но это будет настолько скучно, что нафиг никому не нужно будет.


          1. saboteur_kiev
            28.08.2017 16:06

            Если информатику изучать на бумажке, ты не увидишь практику.
            Если применять только компьютер, ты не освоишь железо.

            А сейчас информационные технологии вышли далеко за пределы советского определения «информатики», и что немаловажно, не так критично привязан к компьютеру. Огромный выбор ИоТ, себестоимость которых на глаз видно что копеечная, но недоработанных, недонастроенных, с огромной наценкой показывают, что было бы неплохо, чтобы появилось поколение, которое могло бы делать простые доступные гаджеты, понимая как оно работает.

            Электронику на низком уровне при этом изучать не обязательно, ибо область стала настолько широкой, что специализации пора разделять.


          1. artskep
            28.08.2017 21:30

            «Осциллографом потыкать» — это уже не школа. Кружок «Умелые Руки» — да.
            Но не лучше ли иметь одно серийное устройство, которое можно «пощупать» и в школе в рамках общеобразовательной программы, и, при желании, использовать в поделках на внешкольных занятиях «по интересам»?
            В современный комп залезть осциллографом школьнику практически нереально.


            1. kx13
              29.08.2017 07:23

              Так идея с Micro:bit отличная, только не надо говорить, что он помогает изучать информатику. Для уроков информатики это просто еще один экран с кнопочками и датчиками.


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


              1. DmitrySpb79 Автор
                29.08.2017 10:46

                Именно что помогает — как наглядное пособие, почему нет. Например легко показать детям как работает акселерометр в играх. И им это будет интересно, т.к. это и современно и актуально.


                1. kx13
                  01.09.2017 08:43

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


                  Я бы сказал, что такие устройство позволяют закреплять полученые знания, как любая другая работа руками. В этом плане да, устройство помогает изучать информатику.


              1. artskep
                31.08.2017 21:40

                Если пойти по такому пути, то получается, что для уроков информатики достаточно листка бумаги и карандаша.
                Блок-схемы рисовать хватит.

                Однако могу уверенно заявить — не выйдет.

                Школьникам нужна не теория, а практика. И подобное устройство даст больше практики.


                1. kx13
                  01.09.2017 08:35

                  Если пойти по такому пути, то получается, что для уроков информатики достаточно листка бумаги и карандаша.

                  Надо вовремя остановится и не доводить идею до абсурда.


                  Школьникам нужна не теория, а практика.

                  Им нужно и то и другое. Одно без другого не существует.


                  Вопрос в какой пропроции их дают. Будет много теории — будет скучновато, будет много практики будет непонятно.
                  Если не хватает теории люди создают ее сами, но это дольше и не исключает ошибок.


  1. ToSHiC
    28.08.2017 17:55

    Контакты, соединённые с отверстиями под винт, стрёмная тема. Через эти отверстия так и хочется прикрутить платку к корпусу, а если он окажется металлическим, то может случится небольшой бабах.


    1. DmitrySpb79 Автор
      28.08.2017 18:01

      Отверстие видимо подразумевалось не под винт, а под коннектор «банан», типа такого:
      sciencescope.uk/wp-content/uploads/2016/02/microbit-sound-cable-600x600px.jpg


      1. artskep
        28.08.2017 21:42

  1. Sonzanie
    28.08.2017 20:41

    Уже была такая статья, разве нет?


    1. DmitrySpb79 Автор
      29.08.2017 10:48

      Была первая часть, это продолжение.