Вы можете очень просто превратить свой микроконтроллер micro:bit в термометр. Достаточно использовать программу, показанную на рис. 4.2.
Рис. 4.2. Программа для измерения температуры процессора micro:bit
Эта программа находится в файле BoxRover/ch04/microbit-измеритель-температуры.hex.
Здесь мы добавили в блок постоянно блок показать число, предназначенный для вывода числа на экран микрокомпьютера, а также блок задержки на одну секунду. В качестве значения мы вставили из панели Ввод блок температура (°C). Этот блок возвращает значение температуры процессора micro:bit в градусах Цельсия.
Таким образом, на экран раз в секунду выводится текущее значение температуры в виде бегущей строки (рис. 4.3).
Рис. 4.3. На монитор micro:bit выводится текущая температура процессора
Как можно использовать встроенный измеритель температуры?
Например, с его помощью можно контролировать перегрев процессора микрокомпьютера. Если температура превысила максимально допустимое значение, можно предпринимать какие-либо действия.
Подготовим программу, которая при превышении температуры сверх заданного значение (30 °C) включает сразу все светодиоды экрана micro:bit. Если же температура нормальная, на экране будет нарисовано сердце (рис. 4.4).
Рис. 4.4. Программа контроля температуры
Программа сохранена в файле microbit-проверка-температуры.hex.
Здесь в палитре Переменные мы определили переменную с именем температура. При помощи блока задать мы задаем значение этой переменной, равной блоку температура (°С), добавленному из панели Ввод.
Когда срабатывает условие, что значение, записанное в переменную температура, превышает 30 °С, блок показать светодиоды включает на экране все светодиоды сразу.
Если же перегрева нет, то блок показать значок выводит на экран изображение сердца.
Попробуйте поместить плату micro:bit на пару минут в холодильник (только не в морозильную камеру), а также оставить на солнце. Посмотрите, как это скажется на результатах измерения температуры процессора.
Проследите, чтобы в ходе экспериментов с холодильником на плату micro:bit не попала влага.
Учтите, что значительны перегрев платы micro:bit, а также переохлаждение могут привести к выходу платы из строя. Согласно описанию https://tech.microbit.org/hardware/, датчик температуры в micro:bit работает в диапазоне от -25C до 75C, а его точность составляет ±4C.
В этой главе вы узнали, что в микроконтроллере micro:bit имеется встроенный измеритель температуры. И хотя он установлен непосредственно внутри микропроцессора и показывает его температуру, а не температуру окружающей среды, все равно он может принести определенную пользу. Например, вы можете обнаружить перегрев процессора, опасный для работы вашей модели марсохода BoxRover или модуля автоматизации умного дома.
Вы составили программу, которая показывает текущее значение температуры, а также программу контроля превышения заданного значения температуры.
В следующих главах книги вы научитесь подключать к micro:bit миниатюрную погодную станцию, способную показывать не только температуру окружающей среды, но и давление, влажность, а также температуру точки росы.
Микроконтроллер micro:bit оборудован очень интересным устройством – акселерометром, или измерителем ускорения.
Вспомним знания, полученные еще в школе. Ускорением называется быстрота изменения скорости тела. Например, когда вы сбрасываете кирпич с крыши дома (никогда так не делайте), то его скорость будет увеличиваться с ускорением свободного падения, равном примерно 9,8 м/c². Это означает, что каждую секунду скорость падающего кирпича будет увеличиваться на 9,8 м/с.
Обычно при вычислениях ускорение свободного падения обозначается как g.
Обратите внимание, что ускорение свободного падения не зависит от массы тела. Иначе говоря, не важно, сбрасываете ли вы тяжелый кирпич, или легкий металлический шарик, ускорение будет одинаковым. Другое дело, что на изменение скорости может повлиять сопротивление воздуха (надувной шарик может вообще полететь не вниз, а вверх), но все это вам известно из школьного курса физики.
Когда вы летите в самолете, то можете испытывать ускорение (или иными словами, перегрузки) до 1,5g. Парашютисты и космонавты подвержены более серьезным перегрузкам, порядка 4g и более. Очень большие перегрузки возникают, когда вы едете в автомобиле и он на ходу врезается в стену или в автомобиль, который едет вам навстречу. Значительные перегрузки, как ударные, так и постоянно действующие, могут привести к серьезным проблемам в здоровье.
Наверное вы уже поняли, как важно контролировать ускорение, например, при испытании различной техники. Но как измеряется ускорение?
В микрокомпьютере micro:bit используются так называемый емкостной акселерометр. Его принцип действия иллюстрируется на рис. 5.1.
Рис. 5.1. Иллюстрация принципа действия емкостного акселерометра
Представьте себе, что в пластмассовой коробке на двух пружинах закреплен небольшой металлический груз. Снизу и справа от груза имеются две металлические пластины.
Когда корпус перемещается с ускорением вверх или вниз, вправо или влево, расстояние между грузом и пластинами будет изменяться. Это происходит из-за инертной массы груза, закрепленного на гибкой пластине.
Груз и пластины образуют два конденсатора, обозначенные на рис. 5.1 как CX и CY. Когда расстояние между грузом и пластинами изменяется, меняются и емкости этих конденсаторов.
Таким образом, измеряя емкости конденсаторов в процессе движения, можно отслеживать изменение ускорения по горизонтальной и вертикальной оси. А если добавить третью пружину и еще одну металлическую пластину, то можно будет измерять ускорение во всех трех направлениях.
Что касается акселерометра, встроенного в micro:bit, то там применяется три пластины, что дает возможность измерять ускорение по всем трем осям координат.
Согласно документации, акселерометр micro:bit может измерять ускорение в диапазоне от -2g до 2g. При этом возвращаются положительные и отрицательные значения в тысячных долях g, с диапазоном от 0 до 1024.
Одно из самых интересных применений акселерометра micro:bit – это обнаружение жестов. Это поворачивание платы микроконтроллера логотипом вверх или вниз, наклон вправо или влево, поворачивание монитором вверх или вниз, встряхивание, свободное падение, а также движение с ускорением в 3g, 6g и 8g.
Когда вы совершаете с платой микроконтроллера описанные выше действия, создаются соответствующие события. Их можно обрабатывать в блоке по жесту из палитры Ввод. Список доступных жестов показан на рис. 5.2.
Рис. 5.2. Жесты в микрокомпьютере micro:bit
Расскажем, как вы можете обрабатывать жесты от акселерометра в своих программах.
Самое простое что можно придумать с жестами – это сделать игру в кости. Когда вы встряхиваете плату своего micro:bit, на его экране высвечивается случайное число от 0 до 6. Конечно, это упрощенный вариант игры, так как тут мы «бросаем» только одну кость.
Программа игры в кости показана на рис. 5.3.
Рис. 5.3. Программа обработки события встряхивания
Когда микроконтроллер обнаруживает, что его начали трясти, он создает событие на жест встряхивание. Обработчик этого события показывает на экране случайное число в диапазоне от 0 до 6.
Эта программа находится в файле BoxRover/ch05/microbit-Кости.hex архива, который можно скачать с сайта автора книги по адресу http://frolov-lib.ru/books/boxrover/.
Когда вы работаете со смартфоном, то независимо от его положения в пространстве просматриваемая страница поворачивается таким образом, что вы никогда не видите ее вверх ногами. Акселерометр, встроенный в смартфон, позволяет все время держать на контроле положение экрана смартфона, отслеживая повороты экрана.
Давайте создадим такую программу для micro:bit, которая будет рисовать стрелку, показывающую вверх независимо от того, как вы держите плату микроконтроллера.
Эта программа показана на рис. 5.4.
Рис. 5.4. Программа для отслеживания положения платы micro:bit в пространстве
Как видите, программа обрабатывает шесть жестов. Это поворот платы микроконтроллера логотипом вверх, вниз, наклон вправо или влево, а также расположение платы экраном вверх и экраном вниз.
Каждый раз, когда возникает событие, связанное с тем или иным жестом, программа при помощи блока показать стрелку направлением рисует стрелку таким образом, что она всегда показывает вверх.
Если вы кладете контроллер горизонтально на стол экраном вверх, на экране будет нарисован квадрат большого размера. Если же вы перевернете плату контроллера экраном вниз, то увидите на экране квадрат маленького размера.
Все возможные варианты показаны на рис. 5.5.
Рис. 5.5. Изображение на экране контроллера зависит от его расположения в пространстве
Программа находится в файле BoxRover/ch05/microbit-Жесты.hex.
Если ваш микроконтроллер micro:bit находится в космосе, или просто упал со стола, то возникнет событие от жеста свободное падение.
На рис. 5.6 показана очень простая программа, которая может обнаружить состояние невесомости.
Рис. 5.6. Программа обнаружения невесомости
Когда ваш micro:bit окажется в невесомости, на его экране будет нарисован ромб (рис. 5.7).
Рис. 5.7. Обнаружено состояние невесомости
Код программы мы сохранили в файле BoxRover/ch05/microbit-Невесомость.hex.
Испытывая программу, соблюдайте осторожность чтобы не повредить ваш micro:bit. Вы можете бросать его на что-то мягкое, на подушку или диван, либо просто ловить рукой.
Невесомость не всегда означает опасность, но вот перегрузки – совсем другое дело. Давайте создадим программу, которая обнаруживает перегрузки из-за слишком сильного ускорения (рис. 5.8). Эта программа записана в файл BoxRover/ch05/microbit-Перегрузка.hex.
Рис. 5.8. Программа обнаружения перегрузок
Когда будет обнаружена перегрузка свыше 8g, на экране сначала будет нарисована галочка, потом на одну секунду —крестик (рис. 5.9), и затем снова галочка.
Рис. 5.9. Обнаружена перегрузка
Вы можете менять значение порога ускорения в блоке по жесту, указывая там 3g, 6g или 8g.
Но будьте осторожны, подвергая плату микроконтроллера перегрузкам – она может выйти из строя. Для проверки работы программы возьмите плату micro:bit в руку и встряхните. Если плата подключена к компьютеру через разъем микро-USB, не держите ее за кабель, чтобы не повредить разъем. Прикладывайте усилия таким образом, чтобы не сломать разъем на плате контроллера.
Возможно, вы никогда не сталкивались с понятием гистограммы. Расскажем кратко, что это такое.
Гистограммой называется графический способ представления табличных данных. При построении графика гистограммы по горизонтальной оси откладываются интервалы, в которые могут попадать значения. В нашем случае мы будем использовать здесь значения ускорения, полученные от акселерометра micro:bit.
О проекте
О подписке