====== BBC micro:bit v1.5: техническая документация ======
[[amp>product/bbc-microbit?utm_source=man&utm_campaign=bbc-microbit-v1&utm_medium=wiki|BBC micro:bit v1.5]] — компактная плата для обучения детей и взрослых основам программирования. Платформа из коробки поддерживает среду разработки Microsoft MakeCode, которая со старта научит работать с платой в игровой форме. Программа собирается из визуальных блоков кода за десять–пятнадцать минут, а продвинутые ученики смогут переключить визуализацию на «взрослый» текстовый код JavaScript и Python.
{{ :products:bbc-microbit:bbc-microbit.1.jpg?nolink |}}
Главная особенность платформы BBC micro:bit — на борту уже присутствует всё для быстрого и комфортного старта: микроконтроллер Nordic nRF51822, беспроводной модуль Bluetooth, матричный дисплей из 25 светодиодов, пару кнопок, сенсоры освещённости и температуры, акселерометр и магнитометр.
Весь этот сет позволяет начать обучения с платой из коробки, без покупки дополнительных модулей.
Начинающим пользователям рекомендуем [[amp>product/bbc-microbit-official-user-guide?utm_source=man&utm_campaign=bbc-microbit&utm_medium=wiki|официальное руководство BBC micro:bit]] на русском языке.
===== Видеообзор =====
{{youtube>EIBUhyYEaPM?large}}
===== Подключение и настройка =====
Прямо из коробки платформа поддерживает два среды программирования:
* [[https://makecode.microbit.org/|MakeCode с графическим блочным редактором или текстовым кодом на JavaScript.]]
* [[https://python.microbit.org/v/2|MicroPython с текстовым кодом на Python.]]{{ :products:bbc-microbit:bbc-microbit-software.1.png?nolink |}}
Но эта далеко не все возможности micro:bit, плата так же поддерживает:
* [[https://www.instructables.com/Master-Your-Microbit-With-Arduino-IDE-Light-LED/|Arduino IDE с программированием на C++]]
* [[http://wiki.amperka.ru/js:espruino:bbc-microbit|Espruino IDE с программированием на JavaScript]]
* [[https://scratch.mit.edu/microbit|Scratch: визуальный язык программирования]].
===== Элементы платы =====
{{ :products:bbc-microbit:bbc-microbit-annotation.png?nolink |}}
==== Микроконтроллер Nordic nRF51822 ====
Сердце платы BBC micro:bit — чип {{ :products:bbc-microbit:nrf51822-datasheet.pdf |Nordic nRF51822}}, который выполнен по технологии SoC (англ. System-on-a-Chip — система на кристалле). Кристалл включает в себя микроконтроллер на архитектуре ARM Cortex-M0 с тактовой частотой 16 МГц, беспроводной модуль Bluetooth 4.1 с поддержкой BLE, а также блоки памяти Flash на 256 КБ и RAM на 16 КБ.
{{youtube>Y9tk07CzTAA?large}}
В микроконтроллер также встроен датчик температуры, который подскажет уровень температуры за бортом.
{{youtube>mrHn8eZ9eqg?large}}
==== Микроконтроллер KL26P64M48SF5 ====
Интерфейсный микроконтроллер {{:products:bbc-microbit:kl26p64m48sf5-datasheet.pdf|KL26P64M48SF5}} используется для прошивки и общения платы по USB-соединению. При подключении к ПК платформа micro:bit определяется как жёсткий диск. Интерфейсный сопроцессор также служит для отладки кода во время работы программы.
Так же в чип KL26P64M48SF5 встроен понижающий регулятор напряжение с выходным током до 120 мА, который используется при питании платы от [[#порт_micro-usb|разъёма micro-USB]].
==== Светодиодная матрица ====
Дисплей выполнен в виде светодиодной матрицы 5×5. Программное обеспечение платы многократно обновляет светодиодную матрицу с высокой скоростью, которую не успевает фиксировать человеческий глаз.
{{youtube>eRhlaXqT-0w?large}}
Светодиодная матрица также используется для восприятия окружающего света путем многократного переключения некоторых выводов светодиодов на входы, где измерения времени спада напряжения примерно пропорционально уровню окружающего освещения.
{{youtube>ii0U_FMr-Z4?large}}
Физически светодиоды выполнены матрицей 5×5, но электрически подключены к [[#микроконтроллер_nordic_nrf51822| микроконтроллеру nRF51822]] матрицей 3×9.
==== Светодиодная индикация ====
На плате расположен светодиод для индикации питания платформы и активности USB.
==== Кнопки управления ====
Две пользовательских кнопки ''A'' и ''B'' пригодятся для создания и теста простых программ без подключения дополнительных тактильных сенсоров. Программное обеспечение позволяет фиксировать короткие клики или долгое нажатие. При отпущенном состоянии каждая кнопка возвращает логическую единицу, а при клике или зажатии — логический ноль. Контакты каждой кнопки также продублированы на краевом разъёме BBC micro:bit, более подробно о подключении читайте в разделе [[#распиновка|распиновка]].
Кнопка сброса ''RESET'' предназначена для ручного сброса прошивки — аналог кнопки ''RESET'' обычного компьютера.
{{youtube>hnT0qHM3_hQ?large}}
==== IMU-сенсор LSM303AGR ====
IMU-сенсор на 6 степеней свободы включает в себя акселерометр и магнитометр. Сборка выполнена на чипе {{ :products:bbc-microbit:lsm303agr-datasheet.pdf |LSM303AGR}} по технологии (англ. System-in-Package — система в корпусе), где акселерометр и магнитометр лежат методом бутерброда в пластиковом корпусе.
Акселерометр показывает положение платы в пространстве, работает шагомером и реагирует на встряхивание. А магнитометр можно использовать в роли датчика Холла, детектора металла и поиска скрытой проводки. Сборка подключена к [[#микроконтроллер_nordic_nrf51822|базовому процессору]] по I²C интерфейсу с адресами ''0x19'' для акселерометра и ''0x1E'' для магнитометра.
{{youtube>UT35ODxvmS0?large}}
{{youtube>a3P6LWwPBqM?large}}
==== Порт micro-USB ====
Разъём micro-USB предназначен для прошивки и питания платформы BBC micro:bit. Для подключения к ПК понадобится [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=bbc-microbit&utm_medium=wiki|кабель USB (A — Micro USB)]].
{{youtube>ke04WnxxT5c?large}}
==== Разъём питания JST PH-2 Male ====
Разъём служит для подключения внешнего источника напряжения с ответным коннектором JST PH-2 Female к плате BBC mirco:bit. Воспользуйтесь одним из вариантов:
* [[amp>product/battery-holder-3aa?utm_source=man&utm_campaign=bbc-microbit&utm_medium=wiki|Батарейный отсек]] с [[amp>product/connector-jst-ph-2-pin?utm_source=man&utm_campaign=bbc-microbit&utm_medium=wiki|разъёмом JST PH-2]] и [[amp>product/battery-aa-duracell?utm_source=man&utm_campaign=bbc-microbit&utm_medium=wiki|элементами питания AA.]]
* [[amp>product/microbit-power?utm_source=man&utm_campaign=bbc-microbit&utm_medium=wiki|Модуль питания micro:bit]] с [[amp>product/power-supply-adapter-robiton-tn1000s?utm_source=man&utm_campaign=bbc-microbit&utm_medium=wiki|сетевым адаптером]].
===== Распиновка =====
{{ :products:bbc-microbit:bbc-microbit-pinout.png?nolink |}}
==== Пины питания ====
* **3V:** Вывод питания платы BBC micro:bit, который может использоваться двумя разными способами: источник или потребитель питания.
* Потребитель питания. При подключении платформы по USB, на пин выводится напряжение с [[#микроконтроллер_kl26p64m48sf5|интегрированного регулятора в микроконтроллер KL26P64M48SF5]]. Выходное напряжение с пина 3,3 вольта с максимальным током 120 мА.
* Источник питания. Вывод также может использоваться для непосредственного питания платформы micro:bit. Диапазон входного напряжение от 3 до 3,6 вольт.
* **GND:** Выводы земли.
==== Порты ввода/вывода ====
Внимание! В отличие от большинства плат Arduino, родным напряжением BBC micro:bit является 3,3 В, а не 5 В. Максимальное напряжение, которое могут выдержать вход/выходы составляет 3,3 В. Подав напряжение, например 5 В, можно вывести платформу из строя.
* **Пины общего назначения:** 19 пинов: ''P0''–''P16'', ''P19'' и ''P20''\\ Логический уровень единицы — 3,3 В, нуля — 0 В.
* **АЦП:** 6 пинов: ''P0''–''P4'', ''P19'' и ''P20'' \\ Позволяет представить аналоговое напряжение в виде цифровом виде. Разрядность АЦП не меняется и установлена в 10 бит. Диапазон входного напряжения от 0 до 3,3 В, при подаче большего напряжения микроконтроллер может выйти из строя.
* **ШИМ:** 19 пинов: ''P0''–''P16'', ''P19'' и ''P20''\\ Позволяет выводить аналоговое напряжение в виде ШИМ-сигнала из цифровых значений. Одновременно возможно генерировать ШИМ-сигнал на 3 пинах.
* **I²C** Для общения micro:bit c [[amp>collection/microbit-add-ons?utm_source=man&utm_campaign=bbc-microbit-v2&utm_medium=wiki|платами расширения]] по интерфейсу I²C.
* **I²C**: пины ''SDA/P20'' и ''SCL/P20''
* **SPI** Для общения Arduino c [[amp>collection/microbit-add-ons?utm_source=man&utm_campaign=bbc-microbit-v2&utm_medium=wiki|платами расширения]] по интерфейсу SPI.
* **SPI**: пины ''MOSI/P15'', ''MISO/P14'' и ''SCK/P13''
===== 3D-изображение =====
{{ :products:bbc-microbit:bbc-microbit-360degrees.gif?nolink |}}
===== Габаритный чертёж =====
[[this>_media/products:bbc-microbit:bbc-microbit-dimensions.pdf|{{:products:bbc-microbit:bbc-microbit-dimensions.png}}]]
===== Принципиальная схема =====
[[this>_media/products:bbc-microbit:bbc-microbit-schematic.pdf|{{:products:bbc-microbit:bbc-microbit-schematic.png}}]]
===== Характеристики =====
* Модель: BBC micro:bit v2
* Микроконтроллер: Nordic nRF51822
* Ядро: 32-х разрядный ARM Cortex-M0
* Частота: 16 МГц
* Flash-память: 256 КБ
* RAM-память: 16 КБ
* Дисплей:
* Матрица 5×5 из 25 светодиодов
* Цвет: Красный
* Дополнительная возможность: измеряет освещенность
* IMU-сенсор (6 степеней свободы):
* чип: LSM303AGR
* Датчики: акселерометр и магнитометр
* Интерфейс: I²C
* I²C-адрес: акселерометр — 0x19, магнитометр — 0x1E
* Беспроводная связь:
* Встроен в кристалл Nordic nRF51822
* Bluetooth 4.1 с поддержкой BLE
* Частота: 2,4 ГГц
* Датчик температуры:
* Встроен в кристалл Nordic nRF51822
* Диапазон измерений: −25…+75 °С
* Градация: 0,25 °С
* Входное напряжение через USB: 5 В
* Входное напряжение через JST-разъём: 3–3,6 В
* Напряжение логических уровней: 3,3 В
* Контакты ввода-вывода: 19
* Контакты с ШИМ: 19 (до 3 каналов одновременно)
* Контакты с АЦП: 6
* Разрядность АЦП: 12 бит
* Аппаратные интерфейсы: 1× SPI, 1× I²C
* Порт для автономного питания: JST PH-2
* Габариты: 51,6×42×11,6 мм
===== Ресурсы =====
* [[amp>product/bbc-microbit?utm_source=man&utm_campaign=bbc-microbit&utm_medium=wiki|BBC micro:bit]] в магазине.
* [[amp>product/bbc-microbit-official-user-guide?utm_source=man&utm_campaign=bbc-microbit&utm_medium=wiki|Официальное руководство BBC micro:bit]] в магазине
* [[https://github.com/amperka/hardware-drawings/blob/master/bbc-microbit.svg|Векторное изображение BBC micro:bit]]
* [[https://makecode.microbit.org/|Среда программирования MakeCode]]
* [[https://python.microbit.org/v/2|Среда программирования MicroPython]]
* [[https://tech.microbit.org/|Техническое руководство от производителя]]
* [[https://kitronik.co.uk/blogs/resources/bbc-microbit-cad-resources|BBC micro:bit CAD ресурсы]]