Выбрать главу

Как можно видеть, алгоритм работает вполне неплохо. В окне вывода мы также получаем координаты прямоугольников:

1092 256 1187 351

853 223 1024 394

30 255 236 461

579 231 791 443

298 238 515 455

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

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

А сейчас мы перейдем к изучению платы для самых маленьких - микрокомпьютера BBC:Micro.

Часть 5. BBC Micro:bit - электроника для самых маленьких

5.1 Введение

Компьютеры BBC Micro имеют давную историю. Еще в 80х британская компания BBC запустила обучающий проект, целью которого было повышение уровня компьютерной грамотности. Компьютер по тем временам был действительно “микро”, и выглядел примерно так:

С тех пор прошло около 30 лет, и на свет появилась новая “модификация” на современной элементной базе - BBC Micro:bit.

Плата предназначена для обучения младших школьников программированию, причем всем школьникам Великобритании она поставляется … бесплатно. Цель устройства - в простой и понятной форме показать как создавать программы, с уклоном именно в современную электронику и “интернет вещей”.

«На борту» BBC Micro:bit есть процессор ARM Cortex-M0, 256Кб Flash ROM, 16Kб RAM, 16МГц тактовая частота. Также есть поддержка BTLE, 2.4ГГц-трансмиттер для одноранговой связи (101 канал), акселерометр, компас, термометр, и линейка пинов GPIO, среди которых довольно много всего:

Также есть 2 кнопки для ввода (еще для ввода доступен жест «встряхивание»), светодиодная матрица 5x5, и 4 «крупных» пина, рассчитанных на то, чтобы ребенок прикрутил проводами или «крокодилами» что-нибудь несложное, например датчик влажности для цветка или переменный резистор.

Гребенка пинов сделана плоской, так что ее можно вставить в плату расширения (цена вопроса 10-15 Евро).

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

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

Для тех же, кому возможностей платы станет мало, можно заказать “Набор изобретателя” (inventor’s kit), состоящий из платы расширения, макетной платы и различных деталей.

А мы пока начнем с самого начала.

5.2 Первая программа для BBC Micro:bit

Первое что удивляет, никакого софта на компьютер ставить не нужно вообще (кстати, это удобно и для школ - им не придется покупать лицензионное программное обеспечение). При подключении платы к компьютеру, она просто видна как съемный диск. Дальше достаточно зайти на сайт http://microbit.org/code/ и выбрать на каком языке мы хотим писать — Javascript или Python. Мы выберем блочный редактор Javascript, как самый простой для начинающих. Сам код писать не придется, все конструкции перетаскиваются мышью прямо на экране.

Редактор Javascript в «блочном» режиме открывается прямо в браузере и выглядит вот так:

Традиционно, начнем с самого простого - мигания светодиодом. Здесь у нас даже не один светодиод, а целая матрица 5х5. Выберем раздел Basic, из него “перетащим” на экран компоненты show leds и pause, как показано на рисунке справа.

Как можно видеть, принципиального отличия от того, что мы делали в Arduino, в общем и нет. Лишь названия немного другие, например, вместо setup используется функция on_start, а вместо функции loop, используется функция forever. Инициализация режима ввода-вывода делается автоматически, что проще.

Сам код очень прост. Мы выводим определенную картинку на матрицу светодиодов, затем делаем паузу на 500мс (0.5с), затем меняем картинку на другую, и процесс повторяется. Режим перетаскивания блоков мышью удобен тем, что не дает сделать синтаксических ошибок, это позволяет создавать программы даже самым маленьким детям. Кстати, желающие посмотреть, как код устроен внутри, могут переключиться из “блочного” редактора в “обычный”, нажав кнопку Javascript. При этом откроется окно с текстом программы: