Текст книги "Робототехника: практическое введение для детей и взрослых"
Автор книги: Александр Фролов
Жанр:
Подросткам
сообщить о нарушении
Текущая страница: 5 (всего у книги 5 страниц)
Обнаружение невесомости и перегрузок
Если ваш микроконтроллер 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.
По вертикальной оси откладывается частота попадания значений в тот или иной интервал. При этом площадь прямоугольника, соответствующая интервалам горизонтальной оси, соответствует количеству значений, попавших в данный интервал.
Перейдем от теории к практике.
Подготовим программу, которая строит гистограмму значений, полученных от акселерометра микроконтроллера, на его экране (рис. 5.10). Она находится в файле BoxRover/ch05/microbit-Гистограмма-ускорения.hex.
Рис. 5.10. Построение гистограммы значений ускорения
Здесь мы определяем переменную ускорение, после чего запускается бесконечный цикл. В цикле в эту переменную записывается значение ускорения в тысячных долях g, полученное от акселерометра micro:bit.
Далее управление получает блок plot bar graf, добавленный из палитры Светодиоды.
В качестве параметра мы передаем этому блоку текущее значение ускорения, полученное от акселерометра. В параметра up to нужно указать максимальное значение, которое может вернуть акселерометр. Мы знаем, что это значение равно 1023.
Теперь загрузим программу в память микроконтроллера и оставим его плату спокойно лежать на столе. На экране будет картина, показанная слева на рис. 5.11.
Рис. 5.11. Гистограммы значений от акселерометра
Если потихоньку трясти плату микрокомпьютера, то вы увидите быстро меняющуюся гистограмму (средняя и правая картинка на рис. 5.11). Чем сильнее вы будете трясти плату micro:bit, тем больше будет высота линий, нарисованных на экране.
Домашнее задание
В качестве первого домашнего задания доработайте программу бросания костей BoxRover/ch05/microbit-Кости.hex (рис. 5.3). Сделайте так, чтобы через секунду после встряхивания на экране micro:bit по очереди показывалось два случайных числа (как будто мы бросаем две кости). При этом сначала должно показываться одно случайное число, потом символ ромбика, а затем – второе случайное число.
Решение вы найдете в файле BoxRover/ch05/microbit-Бросаем-кости.hex.
Вторым домашним заданием будет сделать прототип пульта управления вашим марсоходом. Для управления движением ровера используйте кнопки A и B, а также жесты.
Результатом выполнения любой команды должно быть отображение кода команды на экране micro:bit. Вот список кодов команд:
0 – движение вперед при нажатии кнопки A или жесте «логотип вниз»;
1 – движение назад при нажатии кнопки B или жесте «логотип вверх»;
2 – поворот вправо при жесте «наклон вправо»;
3 – поворот влево при жесте «наклон влево»;
4 – останов при одновременном нажатии кнопок A и B или жесте «экран вверх»;
Пока вы получите только коды команд, но в дальнейшем эти коды будут отправляться по радио с пульта управления в ваш ровер, и будут использованы для управления его моторами.
Решение второго домашнего задания находится в файле BoxRover/ch05/microbit-Прототип-пульта.hex.
Итоги
В этой главе мы познакомились с очень интересным устройством, расположенным на плате микроконтроллера micro:bit – акселерометром.
С помощью акселерометра вы научились обнаруживать и обрабатывать события, связанные с жестами – поворот платы микроконтроллера логотипом вверх или вниз, наклон вправо или влево, поворот монитором вверх или вниз, встряхивание, свободное падение, а также движение с ускорением в 3g, 6g и 8g.
Вы запустили программу, которая показывает стрелку, указывающую всегда вверх, независимо от положения платы микрокомпьютера. Кроме этого, вы познакомились со способом обнаружения невесомости и перегрузок, а также научились строить гистограмму значений ускорения.
В качестве домашнего задания вы сделали программу для игры в кости, а также прототип пульта управления моделью марсохода. Ваш пульт управления использует не только кнопки, расположенные на плате micro:bit, но и жесты.
6. Встроенный магнитометр
В детстве вы наверняка играли с магнитами и знаете, что они могут притягиваться и отталкиваться друг от друга. Магниты притягиваются к железу, но игнорируют алюминий, дерево и другие материалы, которые называются немагнитными.
У магнита есть северный и южный полюса. Если взять два магнита, то они будут притягиваться друг к другу разными полюсами и отталкиваться, если вы попытаетесь прижать их друг другу одинаковыми полюсами.
Наша планета Земля тоже представляет собой огромный магнит! И у нее тоже есть северный и южный магнитные полюса, которые, кстати, не совсем совпадают с географическими полюсами.
Для того чтобы ориентироваться на местности, до появления спутниковых систем позиционирования, таких как GPS и ГЛОНАСС, путешественникам приходилось пользоваться магнитным компасом и бумажной картой.
Стрелка компаса представляет собой магнит в виде стрелки. Один конец стрелки покрашен синей краской и всегда показывает на сервер, а другой – красной краской и смотрит на юг. С помощью компаса можно сориентировать карту таким образом, чтобы ее верхний край был направлен в сторону сервера. После этого, привязавшись к местности, можно будет понять, в какую сторону следует идти, чтобы не заблудиться.
Отправляя ровер на другую планету, вам будет полезно уметь ориентироваться на местности. Кроме того, измеряя магнитное поле, можно найти залежи полезных ископаемых, а может быть какие-нибудь инопланетные машины, спрятанные под землей.
Обычный компас и карта не помогут нам в этом, но на плате микроконтроллера micro:bit имеется встроенный магнитометр. Он способен измерять напряженность магнитного поля по трем осям.
На базе этого магнитометра вы можете сделать компас, или прибор для исследования магнитных полей, создаваемых, например, постоянными магнитами или соленоидами, для обнаружения металла или скрытой проводки.
Микросхема магнитометра находится в том же месте, что и акселерометр (рис. 6.1).
Рис. 6.1. Расположение магнитометра на плате micro:bit
Магнитометр micro:bit способен измерять интенсивность магнитного поля по трем пространственным осям (x, y, z). Он возвращает значения в микротеслах (мкТл).
Перед использованием необходимо выполнить калибровку магнитометра. К сожалению, эта процедура довольно длительная – вам нужно поворачивать и опрокидывать плату микроконтроллера до тех пор, пока на мониторе не будут гореть все светодиоды. Хотя калибровку можно запустить явным образом, она будет запущена автоматически в любом случае, если вы добавите в программу блоки магнитометра.
Обнаружение магнита
Давайте начнем изучение магнитометра с изготовления прибора для поиска магнитов и залежей железа. На рис. 6.2. показана программа, которая пригодится нам для такого прибора.
Рис. 6.2. Программа обнаружения магнитов
Код программы вы можете загрузить из файла BoxRover/ch06/ microbit-Детектор-магнитного-поля.hex (файл находится в архиве на сайте автора книги http://frolov-lib.ru/books/boxrover/).
Эта программа записывает в созданную нами переменную сила_магнитного_поля значение интенсивности магнитного поля, полученное от блока сила магнитного поля в (мкТл) с параметром сила. Этот блок вы найдете в палитре Ввод еще.
Блок сила магнитного поля в (мкТл) в зависимости от выбранного параметра может возвращать значение силы магнитного поля по осям (x, y, z), или интенсивность магнитного поля, если задан параметр сила.
В бесконечном цикле наша программа показывает на экране micro:bit численное значение интенсивности магнитного поля в микротеслах. Если интенсивность превышает 100 мкТл, то на экране отображается значок галочки, если она меньше этого значения – экран стирается при помощи блока очистить экран.
Сразу после запуска программы на мониторе micro:bit в режиме бегущей строки появится надпись TILT TO FILL SCREEN, что можно перевести как «наклоняйте, чтобы заполнить экран», а затем – мигающая точка в центре экрана. Это означает, что нужно выполнить калибровку магнитометра.
Наберитесь терпения, поворачивайте и опрокидывайте плату микроконтроллера до тех пор, пока не загорятся все светодиоды на его экране. Если в процессе калибровки снова появится упомянутая выше надпись, дождитесь когда она будет полностью показана, а затем продолжите повороты и опрокидывания платы micro:bit.
Постарайтесь по возможность проводить калибровку вдали от магнитов и массивных металлических предметов, чтобы избежать их влияния на этот процесс.
Как только калибровка будет завершена, на экране micro:bit появится текущее значение интенсивности магнитного поля. Оказалось, что у автора этой книги на столе это значение равно примерно 42-44 мкТл.
Теперь возьмите любой магнит и медленно подносите его к плате micro:bit. Вы будете фиксировать увеличение значения интенсивности магнитного поля, измеренного магнитометром.
Если поднести магнит достаточно близко к микроконтроллеру, так что интенсивность магнитного поля превысит 100 мкТл, то на экране вслед за цифровым значением будет показан символ галочки.
Когда вы уберете магнит подальше, ваш micro:bit будет фиксировать обычное значение магнитного поля, типичное для вашей обстановки.
Проверьте, как влияют на показания вашего прибора магнитики с холодильника и другие магниты, которые вы найдете у себя дома.
Если поднести к плате micro:bit очень сильный неодимовый магнит, то прибор «намагнитится» и какое-то время будет показывать завышенное значение магнитного поля даже после того, как вы уберете магнит. Поэтому лучше не экспериментировать со слишком сильными магнитами.
Вы можете попробовать подносить к магнетометру различные металлические предметы, провода и катушки провода, по которым идет ток. Следите за тем, как это влияет на показания вашего магнитометра.
Делаем из micro:bit компас
При помощи магнитометра, встроенного в micro:bit, можно сделать программный компас. В палитре Ввод есть блок компасный курс, который возвращает значение от 0 до 359 градусов. Значение 0 соответствует направлению на север, значение 180 – направлению на юг.
Простейшая программа компаса показана на рис. 6.3 (файл microbit-Компас.hex).
Конец ознакомительного фрагмента.
Текст предоставлен ООО «ЛитРес».
Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.