====== 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 ресурсы]]