Робототехника: практическое введение для детей и взрослых бесплатное чтение

Скачать книгу

Содержание книги

Эта книга поможет вам быстро освоить основы робототехники и приступить к конструированию собственных роботов, систем автоматизации и даже элементов умного дома.

Если вы не программист, то наша книга позволит вам реализовать свои идеи в области робототехники с помощью визуальных средств разработки, не требующих программирования. Вам не потребуется паяльник – современные компоненты можно устанавливать на макетных платах, не вдыхая запах канифоли.

Изучайте микроконтроллеры и робототехнику по нашей книге, и вы сможете быстро освоить современные профессии.

Вы научитесь программировать micro:bit версий 1.5 и 2, научитесь работать с кнопками, светодиодами, светодиодным и OLED-экраном, измерять температуру, ускорение, напряженность магнитного поля.

Используя интерфейс GPIO, предусмотренный на плате micro:bit, вы подключите такие устройства, как моторы, сервоприводы, обычные и сенсорные кнопки, датчики движения, расстояния и многие другие.

Данные, полученные от контроллеров, вы сможете передавать на другие контроллеры с помощью радиоканала Bluetooth, а также контроллеров LoRa, способных обеспечить радиосвязь на расстояния, исчисляемые километрами.

В отдельной главе мы расскажем о том, как организовать электропитание робота или других конструкций с микроконтроллерами.

В главе 1 «Запускаем микроконтроллер micro:bit» вы научитесь создавать простые программы для micro:bit версий 1.5 и 2 с помощью визуального редактора блоков Microsoft MakeCode for micro:bit.

Эти программы вы будете загружать в микроконтроллер через браузер, через сайт https://makecode.microbit.org/, через автономную программу Microsoft MakeCode, установленную на компьютере или ноутбуке, а также через приложение micro:bit, установленное в смартфоне или планшете.

Глава 2 «Управляем светодиодами» расскажем вам о том, как можно легко выводить на экран micro:bit, состоящий из 25 светодиодов, различную графическую, числовую и текстовую информацию.

Также с помощью генератора случайных чисел вы создадите на этом экране простую анимацию – звездное небо и блуждающую точку.

В главе 3 «Работаем с кнопками» мы будем использовать кнопки A и B, расположенные на плате micro:bit, а также сенсорную кнопку в виде логотипа, доступную в micro:bit версии 2. Вы научитесь обрабатывать события, возникающие при нажатии этих кнопок, а также проверять их состояние во время работы программы. Кроме этого, вы сможете использовать контакты P0, P1 и P2 в качестве сенсорных кнопок.

Эти знания помогут вам управлять с помощью обычных и сенсорных кнопок работой программы звездного неба, созданной во второй главе, и другими различными программами.

В главе 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 монитор, и, конечно, напишете программы для работы с ними.

На базе контроллера часов реального времени DS-3231 вы соберете часы с таймером и погодной станцией, позволяющие устанавливать текущую дату, текущее время, время срабатывания таймера. Когда таймер установлен, горит светодиод желтого цвета, а когда он сработал – белого. С помощью кнопок A и B, расположенных на плате micro:bit, вы сможете установить текущие дату и время, время срабатывания таймера, сбрасывать и устанавливать таймер.

Погодная станция будет показывать на экране монитора OLED температуру, давление, влажность и температуру точки росы.

Глава 14 «Обновление BoxRover» приблизит нас еще на один шаг к созданию управляемого ровера.

Теперь наш прототип марсохода, управляемый по радио с помощью жестов, научится останавливаться перед препятствием при движении вперед и сигнализировать о такой остановке на экране монитора micro:bit, а также поднятием красного флажка с помощью сервопривода.

,Кроме всего этого, наш ровер будет отправлять в пульт управления телеметрические данные – температуру процессора и окружающей среды, давление, влажность, освещенность и температуру точки росы. Эти данные мы будем выводить на OLED-монитор, смонтированный в пульте управления.

В главе 15 «Электропитание робота» рассказано о том, какие существуют батарейки и аккумуляторы, как выбрать нужный тип питающих элементов для вашего робота. Будут рассмотрены особенности работы и зарядки аккумуляторов разных типов, применения контроллеров заряда и разряда Battery Management System (BMS).

Также вы узнаете, как использовать преобразователи и стабилизаторы для устройств, которым нужно разное напряжение питания, как подключать аккумуляторы и батарейки к макетной плате и устройствам робота с помощью отсеков и переходников, как питать робота от электрической сети 220 В на этапе отладки.

В главе 16 «Дальняя радиосвязь» рассмотрено использование технологии LoRa для создания каналов радиосвязи, способных передавать данные на большие расстояния, порядка километров и даже больше. При этом используются недорогие платы micro:bit и модули LoRa производства компании EBYTE.

Вы соберете погодную станцию, способную передавать информацию о температуре, давлении, влажности и температуре точки росы через канал дальней радиосвязи.

Вы также сделаете ретранслятор данных от сервера погодной станции, удваивающий максимальное расстояние передачи данных.

Глава 17 «Умный дом своими руками» содержит краткое введение в технологии умного дома. Мы расскажем о том, как использовать micro:bit и Raspberry Pi для сбора различных данных (о погоде, например) на обширной территории. Это может быть загородная резиденция или даже территория фабрики.

Почти в каждой главе предусмотрены домашние задания. Работая над ними самостоятельно, вы не только сможете проверить и закрепить свои знания. Решения домашних заданий вы сможете найти на сайте автора этой книги.

Исходные коды программ

Исходные коды всех программ, опубликованных в книге, вы можете скачать на сайте автора http://frolov-lib.ru/books/boxrover/, а также на GitHub https://github.com/AlexandreFrolov/BoxRover.

Свои пожелания, замечания и предложения вы можете оставить в группе по адресу https://www.facebook.com/groups/539933346894981/, а также отправить по электронной почте на адрес [email protected].

Введение

Каждый день вы используете различную технику, даже не задумываясь о том, что в ней есть встроенные микрокомпьютеры. Вещи, которыми мы пользуемся в обиходе, становятся все более интеллектуальными.

Робот-пылесос в процессе уборки сам обследует квартиру, составляя ее карту, сам возвращается на пункт подзарядки, и сообщает о своих действиях голосом. Роботы моют окна, работают на выставках и барах, управляют автомобилями, используются в боевых действиях и в борьбе с терроризмом.

Новостные сайты в интернете забиты статьями о том, что скоро роботы начнут отнимать работу у людей, вытесняя их из ряда профессий, в том числе не требующих высокой квалификации. С этим можно спорить, однако несомненно, что робототехника уже прочно вошла в нашу жизнь, и специалисты в этой области будут всегда востребованы.

Но с чего лучше всего начинать обучение программированию и робототехнике?

Можно условно выделить два подхода к обучению.

Первый подход предполагает изучение основ электроники, компьютерной техники, программирования на ассемблере и Си, с последующим переходом к более высокоуровневым средствам проектирования программ и схемотехническим решениям на базе современных процессоров и микроконтроллеров, обучения основам численных методов и дискретной математики.

Когда-то давным-давно был доступен только первый способ, и я сам обучался именно так. Я собирал приемники-передатчики на транзисторах и лампах, различные радио устройства, триггеры из транзисторов, регистры из элементов 2И-НЕ на базе К155ЛА3, электронные часы, частотомер и самодельные компьютеры на микросхеме КР580ВМ80А, добавляя россыпь логических микросхем, микросхем памяти и периферийных устройств (рис. В.1). Первые программы были написаны, конечно же, в машинных кодах!

Рис.78 Робототехника: практическое введение для детей и взрослых

Рис. В.1. Элементная база прошлого века

У этого подхода есть очевидные преимущества и не менее очевидные недостатки.

Из важных преимуществ – на любом этапе будет понятна суть происходящего на самом низком уровне, на уровне сигналов и команд процессора, на уровне элементов и микросхем. Понимание сложных вещей будет достигаться постепенно, по мере продвижения от простого к сложному.

В то же время огромный недостаток метода обучения с самых основ заключается в том, что весь процесс отнимет очень много времени и сил. Двигаясь с самого начала, вы не скоро сможете создать что-нибудь достаточно сложное и интересное. В то же время хочется как можно быстрее насладиться результатами своего труда.

Второй подход предполагает, что обучение начинается с использования готовых наборов, содержащих микроконтроллеры и периферийные блоки, с применением графических инструментов программирования и языков высокого уровня. Далее после достижения определенных результатов, можно перейти к изучению низкоуровневых средств и инструментов. Именно этот подход мы и будем использовать в данной книге.

Проект модели марсохода BoxRover

На мой взгляд, в процессе обучения нужно двигаться к какой-нибудь интересной, но сложной цели, при этом шаги должны быть достаточно крупными, чтобы продвижение было заметно. Сложность цели необходима для получения самых разносторонних знаний, которые пригодятся в дальнейшем на работе в области ИТ и робототехники.

Здесь интересно было бы создать так называемый STEM-проект, реализация которого позволить получить знания, необходимые в реальной жизни. Аббревиатура STEM – это сокращение от Science, Technology, Engineering и Math, т.е. наука, технология, инженерное дело и математика.

Я предлагаю в качестве такого учебного проекта создать несложную модель марсохода (или движущегося робота для изучения каких-либо других планет) с названием BoxRover. Пусть ваше устройство никогда не полетит в космос, но оно сможет управляться по радио или через интернет, измерять различные параметры окружающей среды, получать фотографии и видео, и передавать все это «на землю», например, в ваш компьютер или планшет.

По мере создания модели марсохода BoxRover вы научитесь программировать встроенные микроконтроллеры, управлять движением, получать данные бортовых измерительных устройств и получите другие необходимые знания.

На рис. В.2 мы показали пример современных компонентов, из которых вы будете делать своего первого робота.

Рис.33 Робототехника: практическое введение для детей и взрослых

Рис. В.2. Некоторые современные компоненты для изготовления робота

На следующем этапе вы сделаете и другие проекты, например, элементы автоматизации умного дома.

Выбор платформы для обучения

На различных курсах робототехники для детей используются наборы Lego. С их помощью можно быстро собрать робота из готовых деталей и так же быстро запрограммировать на выполнение различных несложных действий. На мой взгляд, такие наборы, хотя и дают представление о некоторых функциях роботов, все же недостаточно хорошо демонстрируют взаимодействие микрокомпьютеров и периферийных устройств.

Чтобы лучше понимать, что происходит, научиться не только программировать готового робота, но и создавать собственные проекты из электронных блоков и компонентов, на разных стадиях обучения мы будем работать с микроконтроллерами BBC micro:bit, платформой Arduino, STM32 Nucleo, а также Raspberry Pi.

Микроконтроллер BBC micro:bit

Микроконтроллер BBC micro:bit был создан корпорацией BBC как открытый проект, нацеленный на повышение компьютерной грамотности, и в первой версии стал доступен в феврале 2016 года. Сейчас в продаже появилась значительно улучшенная версия 2 этого микроконтроллера.

В России micro:bit версии 1.5 можно купить в нескольких интернет-магазинах по цене ниже 1900 руб., что делает его весьма доступным решением для начала обучения. На момент написания книги версию 2 можно было приобрести в магазине https://mrobot.by (примерно по такой же цене), а также в зарубежных магазинах. На странице https://microbit.org/buy/ представлен список компаний из разных стран, где можно купить micro:bit версии 2.

Даже первая версия этого недорогого микрокомпьютера размером с половину кредитной карты оснащена неплохим набором периферийных устройств. В micro:bit версии 2 был добавлен микрофон, динамик, еще одна сенсорная кнопка, увеличен объем памяти и мощность процессора. Кроме того, появился режим сохранения энергии, что важно при питании от батарей и аккумуляторов.

В табл. 1 вы найдете сравнение характеристик micro:bit версии 1.5 и 2 с другими широко распространенными микроконтроллерами – Arduino UNO и STM32 Nucleo F401RE.

Табл. В1. Сравнение характеристик микроконтроллеров

Рис.49 Робототехника: практическое введение для детей и взрослых

Если вы создаете проект робота или какой-либо другой проект с микроконтроллером, то при использовании micro:bit v2 можете воспользоваться многими устройствами, установленными на плате этого микроконтроллера:

Скачать книгу