Робототехника: практическое введение для детей и взрослых
Александр Вячеславович Фролов
Это практическое руководство поможет школьникам и взрослым быстро войти в увлекательный мир робототехники. Вы будете изучать аппаратное и программное обеспечение роботов на примере дистанционно управляемой модели марсохода BoxRover, способного измерять и передавать "на землю" данные телеметрии. Для создания подобного ровера вам не потребуются знания какого-либо языка программирования – все можно будет сделать при помощи графической среды Microsoft MakeCode. В отличие от аналогичных руководств, ориентированных на использование готовых наборов и конструкторов, эта книга поможет вам глубже разобраться в теме. Вы сможете подготовиться к созданию более сложных роботов и устройств для создания умного дома (IOT-устройств).
Вы сейчас читаете черновик книги. В настоящий момент готовы 14 глав.
Свои пожелания, замечания и предложения вы можете оставить в группе по адресу https://www.facebook.com/groups/539933346894981/ (https://www.facebook.com/groups/539933346894981/), а также отправить по почте на адрес microbit@frolov.pp.ru.
==
Содержание книги
В главе1 «Запускаем микроконтроллер micro:bit» вы научитесь создавать простые программы для micro:bit с помощью визуального редактора блоков Microsoft MakeCode for micro:bit.
Эти программы вы будете загружать в микроконтроллер через браузер, через сайт https://makecode.microbit.org/ (https://makecode.microbit.org/), через автономную программу Microsoft MakeCode, установленную на компьютере или ноутбуке, а также через приложение micro:bit, установленное в смартфоне или планшете.
Глава 2 «Управляем светодиодами» расскажем вам о том, как можно легко выводить на экран micro:bit, состоящий из 25 светодиодов, различную графическую, числовую и текстовую информацию.
Также с помощью генератора случайных чисел вы создадите на этом экране простую анимацию – звездное небо и блуждающую точку.
В главе 3 «Работаем с кнопками» мы будем использовать кнопки A и B, расположенные на плате micro:bit. Вы научитесь обрабатывать события, возникающие при нажатии этих кнопок, а также проверять их состояние во время работы программы.
Эти знания помогут вам управлять работой программы звездного неба, созданной во второй главе.
В главе 4 «Измеряем температуру» вы научитесь пользоваться измерителем температуры, встроенным в процессор платы micro:bit. Это позволит вам создать программы, которые показывают текущую температуру процессора, а также контролировать превышение температуры сверх заданного значения.
Глава 5 «Измеряем ускорение» позволит вам контролировать движение платы micro:bit с ускорением или нахождение ее в состоянии невесомости. Вы научитесь обрабатывать жесты – поворот платы микроконтроллера логотипом вверх или вниз, наклон вправо или влево, поворот монитором вверх или вниз, встряхивание.
Все это будет возможно, когда вы научитесь работать с акселерометром, специально предназначенным для измерения ускорения во всех трех направлениях движения. Это устройство встроено в плату micro:bit.
Вы создадите программы, способные обнаружить невесомость и значительные перегрузки, реагировать на жесты, строить гистограмму значений ускорения.
Глава 6 называется «Встроенный магнитометр». В ней вы научитесь использовать магнитометр, расположенный на плате micro:bit, для исследования напряженности магнитного поля, а также сделаете простейший компас.
В главе 7 «Подключаем внешние устройства» мы научим вас работать с некоторыми внешними устройствами из набора DFRobot для micro:bit. Набор хорош тем, что не требует никаких навыков пайки и позволяет легко изучить способы подключения и программирования таких устройств, как светодиод, кнопки, моторы, потенциометры, датчики движения.
Вы сможете управлять яркостью небольшой светодиодной ленты и даже превратите свой micro:bit в простую музыкальную шкатулку.
Глава 8 «Осваиваем GPIO» посвящена подключению различных периферийных устройств к разъему GPIO микрокомпьютера micro:bit. Мы расскажем об этом разъеме и назначении его контактов, научим вас подключать к нему потенциометры, светодиоды, мощные лампочки. МЫ также расскажем об использовании широтно-импульсной модуляции для управления яркостью светодиодов и лампочек, а также скоростью вращения моторов.
Вы подключите ультразвуковой и инфракрасный дальномеры, которые пригодятся при создании роботов, например, для исключения столкновений с препятствиями при движении.
Мы также расскажем об использовании макетных плат для сборки различных схем без помощи пайки.
Глава 9 «Запускаем радиоканал» будет полезна, если в вашем проекте используется несколько плат micro:bit. Для создания радиоканала между платами вы будете использовать контроллеры Bluetooth. Такое контроллер уже встроен в плату micro:bit.
Работая с этой главой, вы сделаете устройство с пультом управления, позволяющее включать и выключать дистанционно лампочку и вентилятор, а также научитесь передавать по радио данные телеметрии. Мы также расскажем, как управлять мощностью передаваемого сигнала, и как измерять мощность принятого сигнала.
Глава 10 «Подключаем micro:bit к компьютеру и второму micro:bit» научит вас передавать данные из micro:bit в терминальную программу, работающую на компьютере, подключенном к плате micro:bit через порт USB. Такая возможность будет очень удобна при отладке программ, работающих на micro:bit.
Также вы научитесь передавать данные между двумя платами micro:bit, соединенными двумя проводами с помощью интерфейса UART.
В главе 11 «Марсоход BoxRover заводит моторы» вы приблизитесь к созданию ровера – модели радиоуправляемого марсохода. Вы научитесь управлять моторами ровера с помощью транзистора и контроллера MX1508, реализующих функции H-моста и создадите программу, управляющую вращением двигателя.
Работая над этой главой, вы создадите первый прототип ровера BoxRover с микроконтроллером micro:bit, управляемого по радио со второго такого же контроллера.
В качестве домашнего задания вы сделаете простейшую систему передачи данных телеметрии, способную передавать в пульт управления температуру процессора micro:bit ровера. При этом на экране ровера будет отображаться температура процессора micro:bit пульта управления.
Глава 12 «Управляем сервоприводами» также посвящена управлению двигателями, только другого типа. В этой главе мы расскажем о сервоприводах, которые могут поворачивать свою ось на заданный угол, а также о сервоприводах непрерывного вращения, способных поддерживать скорость и направление вращения вала.
В этой главе вы узнаете, как устроены сервоприводы, а также научитесь создавать программы для micro:bit, способные ими управлять.
Вы создадите программу для ручного управление сервоприводом при помощи потенциометра, а в качестве домашнего задания – систему автоматического управления шлагбаумом. Она будет открывать шлагбаум, когда к нему приближается автомобиль, а после проезда автомобиля —автоматически закрывать шлагбаум.
В главе 13 «Осваиваем I2C» мы расскажем об интерфейсе I2C, специально предназначенном для подключения периферийных устройств к микроконтроллерам. На плате micro:bit уже есть все необходимое для работы с I2C.
Вы научитесь подключать к этому интерфейсу измеритель освещенности BH1750 FVI GY-30, погодную станцию Grove-BME280 или Grove-BMP280, а также OLED монитор, и, конечно, напишете программы для работы с ними.
Глава 14 «Обновление BoxRover» приблизит нас еще на один шаг к созданию управляемого ровера.
Теперь наш прототип марсохода, управляемый по радио с помощью жестов, научится останавливаться перед препятствием при движении вперед и сигнализировать о такой остановке на экране монитора micro:bit, а также поднятием красного флажка с помощью сервопривода.
Кроме всего этого, наш ровер будет отправлять в пульт управления телеметрические данные – температуру процессора и окружающей среды, давление, влажность, освещенность и температуру точки росы. Эти данные мы будем выводить на OLED-монитор, смонтированный в пульте управления.
В каждой главе предусмотрены домашние задания. Работая над ними самостоятельно, вы не только сможете проверить и закрепить свои знания. Решения домашних заданий вы сможете найти на сайте автора этой книги.
Исходные коды программ
Исходные коды всех программ, опубликованных в книге, вы можете скачать на сайте автора http://frolov-lib.ru/books/boxrover/ (http://frolov-lib.ru/books/boxrover/), а также на GitHub https://github.com/AlexandreFrolov/BoxRover (https://github.com/AlexandreFrolov/BoxRover).
Свои пожелания, замечания и предложения вы можете оставить в группе по адресу https://www.facebook.com/groups/539933346894981/ (https://www.facebook.com/groups/539933346894981/), а также отправить по электронной почте на адрес microbit@frolov.pp.ru.
Введение для родителей и не только
Каждый день вы используете различную технику, даже не задумываясь о том, что в ней есть встроенные микрокомпьютеры. Вещи, которыми мы пользуемся в обиходе, становятся все более интеллектуальными.
Робот-пылесос в процессе уборки сам обследует квартиру, составляя ее карту, сам возвращается на пункт подзарядки, и сообщает о своих действиях голосом. Роботы моют окна, работают на выставках и барах, управляют автомобилями, используются в боевых действиях и в борьбе с терроризмом.
Новостные сайты в интернете забиты статьями о том, что скоро роботы начнут отнимать работу у людей, вытесняя их из ряда профессий, в том числе не требующих высокой квалификации. С этим можно спорить, однако несомненно, что робототехника уже прочно вошла в нашу жизнь, и специалисты в этой области будут всегда востребованы.
Но с чего лучше всего начинать обучение школьников и студентов программированию и робототехнике?
Можно условно выделить два подхода к обучению.
Первый подход предполагает изучение основ электроники, компьютерной техники, программирования на ассемблере и Си, с последующим переходом к более высокоуровневым средствам проектирования программ и схемотехническим решениям на базе современных процессоров и микроконтроллеров, обучения основам численных методов и дискретной математики.
Когда-то давным-давно был доступен только первый способ, и я сам обучался именно так. Я собирал приемники-передатчики на транзисторах и лампах, различные радио устройства, триггеры из транзисторов, регистры из элементов 2И-НЕ на базе К155ЛА3, электронные часы, частотомер и самодельные компьютеры на микросхеме КР580ВМ80А, добавляя россыпь логических микросхем, микросхем памяти и периферийных устройств (рис. В.1). Первые программы были написаны, конечно же, в машинных кодах!
Рис. В.1. Элементная база прошлого века