The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Руководство для начинающих конструкторов написано в форме практических проектов по построению мобильных роботов на новых высокоскоростных контроллерах ESP32. Использована единая базовая двухколесная конструкция на популярных высокоточных шаговых моторах. Все детали вырезаны из фанеры, их также можно напечатать на 3D-принтере. Описаны наиболее распространенные компоненты. Доступно изложено проектирование механики, приводов, элементов питания и стабилизации напряжения, электронных схем, программирование в среде Arduino IDE на примерах конструирования роботов различной функциональности. Особое внимание уделено созданию двухколесного балансирующего робота. Описано взаимодействие с датчиками нажатия (кнопка) и расстояния, гироскопом и акселерометром.
Электронный архив, находящийся на сайте издательства, содержит чертежи деталей для печати на 3D-принтере и листинги.

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by BHV.RU Publishing House, 2020-06-26 03:15:30

Мобильные роботы на базе ESP32 в среде Arduino IDE

Руководство для начинающих конструкторов написано в форме практических проектов по построению мобильных роботов на новых высокоскоростных контроллерах ESP32. Использована единая базовая двухколесная конструкция на популярных высокоточных шаговых моторах. Все детали вырезаны из фанеры, их также можно напечатать на 3D-принтере. Описаны наиболее распространенные компоненты. Доступно изложено проектирование механики, приводов, элементов питания и стабилизации напряжения, электронных схем, программирование в среде Arduino IDE на примерах конструирования роботов различной функциональности. Особое внимание уделено созданию двухколесного балансирующего робота. Описано взаимодействие с датчиками нажатия (кнопка) и расстояния, гироскопом и акселерометром.
Электронный архив, находящийся на сайте издательства, содержит чертежи деталей для печати на 3D-принтере и листинги.

Keywords: Arduino,ESP32

Михаил Момот

Мобильные роботы

на базе ESP32
в среде Arduino IDE

Санкт-Петербург
«БХВ-Петербург»

2020

УДК 007.52
ББК 32.816

М76

Момот М. В.
М76 Мобильные роботы на базе ESP32 в среде Arduino IDE. — СПб.: БХВ-Петербург,

2020. — 272 с.: ил.

ISBN 978-5-9775-6647-6

Руководство для начинающих конструкторов написано в форме практических
проектов по построению мобильных роботов на новых высокоскоростных
контроллерах ESP32. Использована единая базовая двухколесная конструкция на
популярных высокоточных шаговых моторах. Все детали вырезаны из фанеры, их
также можно напечатать на 3D-принтере. Описаны наиболее распространенные
компоненты. Доступно изложено проектирование механики, приводов, элемен-
тов питания и стабилизации напряжения, электронных схем, программирование
в среде Arduino IDE на примерах конструирования роботов различной функцио-
нальности. Особое внимание уделено созданию двухколесного балансирующего
робота. Описано взаимодействие с датчиками нажатия (кнопка) и расстояния,
гироскопом и акселерометром.

Электронный архив, находящийся на сайте издательства, содержит чертежи
деталей для печати на 3D-принтере и листинги.

Для читателей, интересующихся электроникой, робототехникой
и программированием микроконтроллеров

УДК 007.52
ББК 32.816

Группа подготовки издания:

Руководитель проекта Евгений Рыбаков
Зав. редакцией Екатерина Сависте
Компьютерная верстка Людмилы Гауль
Дизайн серии Марины Дамбиевой
Оформление обложки Карины Соловьевой

«БХВ-Петербург», 191036, Санкт-Петербург, Гончарная ул., 20.

ISBN 978-5-9775-6647-6 © ООО «БХВ», 2020
© Оформление. ООО «БХВ-Петербург», 2020

ОГЛАВЛЕНИЕ

Введение................................................................................... 7

Глава 1. Контроллеры на базе ESP32
и их применение в робототехнике ....................................11

От Ардуино к ESP32............................................................................... 11
Сравнение характеристик контроллеров Arduino Nano,
Arduino Mega2560 и микроконтроллера ESP32....................... 12
Модули на основе ESP32 для создания прототипов.............. 17

ESP32 с 4 Мбайт Flash-памяти .........................................................................17
ESP32 Lolin Lite .......................................................................................................17
ESP32 LOLIN D32 ....................................................................................................18
ESP32 AI-Thinker с видеокамерой ..................................................................18

Функциональная схема ESP32 и его распиновка .................... 21
Среды и средства программирования ESP32 ........................... 21

Arduino IDE ...............................................................................................................21
Экосистема Espruino ...........................................................................................21
Экосистема Whitecat ...........................................................................................24
Операционная система FreeRTOS..................................................................26
Язык программирования MicroPython........................................................26

Глава 2. Настройка среды программирования
Arduino IDE для работы с ESP32......................................... 29

Установка поддержки в Arduino IDE контроллеров ESP32.. 29

Установка среды Arduino IDE ...........................................................................29
Подключение репозитория .............................................................................30
Установка платы ESP32 из Менеджера плат..............................................32
Выбор платы и настройка параметров .......................................................33

Тестирование работы ESP32.............................................................. 35

Подключение к компьютеру и выбор COM-порта .................................35
Установка AdvancedWebServer .......................................................................35
Модификация проекта AdvancedWebServer: вывод графика
температуры от внутреннего датчика ESP32 ...........................................37
Тестирование поддержки Bluetooth.............................................................39

4 Оглавление

Глава 3. Выбор двигателей, тесты программного
управления шаговыми моторами .....................................41

Моторы коллекторные, бесколлекторные, шаговые
и сервомоторы ........................................................................................ 41

Коллекторные моторы........................................................................................41
Бесколлекторные моторы.................................................................................42
Шаговые моторы ...................................................................................................42
Сервомоторы ..........................................................................................................42
Обоснование выбора шагового мотора.....................................................42

Основы работы шаговых моторов ................................................. 43

Принцип работы ...................................................................................................43
Выбор конкретной модели...............................................................................44
Драйвер DRV8825 и особенности его использования.........................45

Практическая проверка работы шагового мотора ................ 46

Сборка тестовой схемы .....................................................................................46
Регулировка тока драйвера .............................................................................49
Программа управления......................................................................................50
Разгон/торможение, перезапуск....................................................................55
Внешнее интерактивное управление скоростью, количеством
и направлением шагов, ускорением............................................................63

Глава 4. Собираем базовую модель.................................. 69

Сборка механики робота.................................................................... 69

Конструкция и крепление шаговых моторов...........................................69
Требования к колесам.........................................................................................71
Сборка корпуса .....................................................................................................73

Сборка электроники............................................................................. 76

Особенности установки контроллера ESP32 на макетную плату ...76
Сборка схемы электропитания.......................................................................78
Схема управления.................................................................................................82

Тестовая программа ............................................................................. 83
Работа с прерываниями ...................................................................... 84
Базовая программа управления роботом.................................. 89

Определение моторов в программе (файл motorstep.h)....................89
Настройка генерации шагов (файл irq_robot.h)......................................93
Создание примитивов движений (файл move_case.h)...................... 105
Выбор системы управления и основная программа для робота 110

Оглавление 5

Пробный старт.......................................................................................114
Неполадки и пути их устранения..................................................115
Выводы ...................................................................................................... 116

Глава 5. Учим робота самостоятельно повторять
пройденный путь.................................................................117

Обоснование системы хранения записанного маршрута 119

Работа с энергонезависимой памятью контроллера ESP32........... 120

Обоснование выбора элементов управления .......................124

Выбор способа переключения режимов ................................................ 124
Выбор индикатора режима ........................................................................... 128

Установка элементов управления на робота ..........................131

Кнопки выбора режима................................................................................... 131
Информационный адресный светодиод................................................. 134

Программирование ............................................................................135

Описание алгоритма работы робота ........................................................ 135
Особенности программы .............................................................................. 142

Глава 6. Автономное движение, обход препятствий
и прохождение лабиринта.................................................151

Схемотехника ........................................................................................156
Программная реализация ...............................................................158

Алгоритм измерения расстояния............................................................... 158
Sonar() — функция одновременной работы
с четырьмя сонарами ...................................................................................... 160
Основная программа ...................................................................................... 164

Самостоятельное задание ...............................................................171
Выводы ...................................................................................................... 171

Глава 7. Робот телеприсутствия ........................................173

Смартфон на роботе в роли камеры ..........................................173

Настройка смартфона управления ............................................................ 176
Соединение смартфонов................................................................................ 177
Соединение смартфона на роботе с роботом ...................................... 178
Управляем роботом через Интернет ........................................................ 182

Модуль ESP32-CAM на роботе в роли камеры........................184

6 Оглавление

Модернизация робота..................................................................................... 190
Подключение модуля ESP32-CAM к роботу ........................................... 198

Глава 8. Балансирующие роботы..................................... 205

Гироскоп-акселерометр-термометр MPU-6050 .....................206

Шина I2C .................................................................................................................. 207
Электронный гироскоп ................................................................................... 208
Электронный акселерометр ......................................................................... 209
Шкала значений MPU-6050............................................................................ 211
Получение и обработка данных от MPU-6050 ...................................... 211

Основы регулирования: ПИД-регулятор ..................................220
Настройка ПИД-регулятора балансирующего робота........224

Как остановить робота? .................................................................................. 229
Подключаем внешнее управление и подъемный рычаг
(окончательная версия программы)......................................................... 236

Приложение. Содержание файлового архива .............. 257

Предметный указатель...................................................... 263

ВВЕДЕНИЕ

Здравствуйте, дорогие читатели!

Возможно, вы уже знакомы с моей предыдущей, выдержавшей уже два издания
книгой «Мобильные роботы на базе Arduino»1. В чем же отличие от нее этой
новой книги — «Мобильные роботы на базе ESP32»?

Это не просто замена плат Arduino Nano или Uno на ESP32 и повторение старых
проектов на новом микроконтроллере. В новой книге мы раскроем возможно-
сти современных микроконтроллеров типа ESP32, которые существенно богаче
как по производительности, так и по функционалу, что позволяет создавать ка-
чественно новых мобильных роботов с совершенно новым интересным функ-
ционалом.

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

Вы освоите работу в среде Arduino с контроллером ESP32, разберетесь с особен-
ностями управления шаговыми моторами, научитесь создавать и использовать
функции, которые запускаются в фоновом режиме через определенные проме-
жутки времени (прерывание по таймеру), создадите робота с камерой, управля-
емого из любой точки планеты через Интернет, запустите своего балансирую-
щего двухколесного робота и поймете, как он работает.

Для таких роботов требуется скорость обработки информации, которую не-
возможно получить при использовании 8-разрядных Arduino-контроллеров
Arduino Uno или Mega и пр. Но контроллер ESP32 не только быстро работает,
он также обладает рядом других полезных качеств, отраженных в этой книге:
поддерживает программирование в среде Arduino IDE, имеет 32 разряда и ча-
стоту 240 МГц, содержит на борту современные интерфейсы Wi-Fi и Bluetooth.

1 См. http://www.bhv.ru/books/book.php?id=199367.

8 Введение

Кроме того, ESP32 обеспечен масштабной поддержкой производителя и сооб-
щества Arduino (большинство библиотек для периферии Arduino адаптированы
для ESP32). Важно также учитывать низкую стоимость ESP32, сравнимую со
стоимостью Arduino Uno.

Книга будет полезна тем, кому интересно освоить новый микроконтроллер, но
нет желания покидать уютную среду Arduino, поможет она также и начинающим
робототехникам, поскольку создать управляемого робота на базе ESP32 проще,
чем на базе контроллера Arduino Nano или Uno, — им не потребуется искать и
подключать для организации управления внешние модули. Схемотехника рас-
сматриваемых в книге роботов предельно проста — упор сделан на беспаечный
монтаж при помощи макетных плат и соединительных проводов.

Книга не содержит рассмотрения основ электрики, пайки и программирования,
и если вам это необходимо, обратитесь к уже упомянутой книге «Мобильные
роботы на базе Arduino» или к книге Марко Шварца «Интернет вещей с
ESP8266»2.

Книгу традиционно сопровождает файловый архив, содержащий полные ли-
стинги программ и чертежи элементов корпуса робота, описанные в книге
(см. приложение). Если вы начинающий робототехник, которому сложно само-
стоятельно составить программу по описанию из книги, можете взять готовую
работающую из архива. Скачать этот архив можно с FTP-сервера издательства
«БХВ-Петербург» по ссылке ftp://ftp.bhv.ru/9785977566476.zip или со стра-
ницы книги на сайте www.bhv.ru.

Книга разбита на главы:

• первая глава — обзорная и знакомит с особенностями микроконтроллера
ESP32;

• вторая глава посвящена настройке оболочки Arduino IDE для поддержки
ESP32;

• третья глава — это выбор моторов для мобильного робота и изложение
основ управления шаговыми моторами;

• в четвертой главе мы соберем базовую платформу робота и научимся
управлять роботом удаленно;

• пятая глава покажет, как научить робота запоминать и повторять пройден-
ный путь;

• шестая глава описывает применение алгоритма одновременной обработки
данных с нескольких ультразвуковых датчиков расстояния типа HC-SR04.
В результате мы получим робота, способного обходить препятствия;

2 См. http://www.bhv.ru/books/book.php?id=203565.

Введение 9

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

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

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

В любом случае, если у вас возникнут вопросы, вы можете смело обращаться
к нам по адресу [email protected], мы всегда рады ответить на ваши во-
просы, постарайтесь только четко их сформулировать и привести достаточный
объем информации, чтобы мы смогли понять их суть. В этом случае вам гаран-
тирован ответ.

С уважением, Михаил Момот



ГЛАВА 1

КОНТРОЛЛЕРЫ НА БАЗЕ ESP32 И ИХ
ПРИМЕНЕНИЕ В РОБОТОТЕХНИКЕ

От Ардуино к ESP32

Сложные «думающие» роботы управляются сложными и дорогими компьюте-
рами. Простые мобильные роботы, о которых пойдет речь в книге, управля-
ются более простыми и недорогими микроконтроллерами и контроллерами.
Микроконтроллеры также могут успешно управлять несложными промышлен-
ными роботами.

Контроллер по структуре очень похож на компьютер (рис. 1.1), но, как пра-
вило, имеет больше ограничений, и специфика его применения не столь уни-
версальна. Отличается контроллер от микроконтроллера тем, что все состав-
ляющие микроконтроллера расположены на одной микросхеме. Например,
ATmega328 — микроконтроллер, потому что его микропроцессор, оперативная
память и постоянная память (аналог жесткого диска компьютера) скомпонова-
ны в пределах одной микросхемы.

Контроллер Таймеры
прерываний

Контроллер Процессор Порты
последовательного ввода/вывода
интерфейса UART

Оперативная Энергонезависимая
память память

Рис. 1.1. Упрощенная структура контроллера

12 Глава 1

На микроконтроллерах ATmega основана популярная аппаратная вычислитель-
ная платформа контроллеров Arduino. Контроллеры Arduino представляют собой
платы с распаянным микроконтроллером ATmega и всей необходимой для него
обвязкой, регулятором напряжения и USB-UART-мостом. Все контакты платфор-
мы выведены на края платы и, как правило, уже оборудованы разъемами.

ESP32 — современный микроконтроллер, обладающий расширенным функци-
оналом и многообещающими возможностями. В состав ESP32 входят модули
Wi-Fi и Bluetooth, два процессорных ядра и богатый набор периферии. Именно
поэтому применение его в робототехнике вполне обоснованно.

Замечу, что мы не призываем отказаться от использования Arduino Nano и Uno,
но требования, предъявляемые к проектам, рассмотренным в этой книге, упи-
раются в нехватку ресурсов ATmega328 и даже ATmega2560 (Arduino Mega) по
скорости, по разрядности и по количеству встроенных интерфейсов. Arduino
Nano и Uno применяют для решении задач, которые им по плечу, а при помощи
ESP32 можно существенно расширить арсенал простых в монтаже, использова-
нии и программировании контроллеров, «заточенных» на решение современ-
ных относительно скоростных задач. Вот несколько параметров, по которым
ESP32 превосходит распространенные недорогие контроллеры Arduino: ско-
рость опроса датчиков, скорость и качество управления шаговыми двигателями,
возможность создания веб-сервера с поддержкой сетевого интерфейса Wi-Fi.
Впрочем, рассматривать возможности лучше всего в сравнении с аналогами.

Сравнение характеристик контроллеров
Arduino Nano, Arduino Mega2560
и микроконтроллера ESP32

Первая версия микроконтроллера ESP32 была выпущена компанией
Espressif Systems (Китай, головной офис находится в Шанхае) в 2015 году.
Микроконтроллер несколько раз незначительно модернизировался и к настоя-
щему моменту представляет собой двухъядерный модуль, способный работать
на частоте 240 МГц, имеющий 512 Кбайт встроенной оперативной памяти (той
памяти, в которой располагаются код программы и данные при выполнении),
а также большое количество поддерживаемых на аппаратном уровне интерфей-
сов. В то же время ESP32 рассчитан на работу с внешней энергонезависимой
памятью.

ESP32 — микроконтроллер 32-разрядный, он может обработать за один такт

( /1 доля секунды) число длиной 4 байта (32 двоичных разряда), тогда
240000000

как микроконтроллеры ATmega328, стоящие на платах Arduino Nano и Uno,

ГЛАВА 2
НАСТРОЙКА СРЕДЫ
ПРОГРАММИРОВАНИЯ ARDUINO IDE
ДЛЯ РАБОТЫ С ESP32

Arduino IDE — открытая среда программирования, поэтому по мере появления
нового «железа» быстро появляется и новый софт для него от независимых
разработчиков. Вот и для ESP32 инженеры-программисты из Espressif Systems
реализовали поддержку самостоятельно и разработали инструкции по добав-
лению ее в среду Arduino. Все достаточно просто, но никогда не будет лишним
обратить ваше внимание на все этапы настройки среды Arduino IDE для работы
с ESP32.

Установка поддержки в Arduino IDE
контроллеров ESP32

Установка среды Arduino IDE

Для подготовки программного обеспечения идем на сайт https://www.arduino.
cc/en/Main/Software (рис. 2.1), выбираем последнюю версию Arduino IDE, со-
ответствующую вашей операционной системе (Windows, Linux или macOS), ска-
чиваем ее и устанавливаем стандартными средствами ОС.

Для операционной системы Ubuntu среду Arduino IDE можно установить, вы-
брав ее пакет из репозитория в самой ОС, так что отсюда для этого ничего ска-
чивать не нужно.

Дальнейшие действия производятся внутри оболочки Arduino IDE и не зависят
от типа ОС.

30 Глава 2

Рис. 2.1. Страница загрузки Arduino IDE

Подключение репозитория

Запускаем среду Arduino IDE (рис. 2.2) и выполняем команду меню Файл |
Настройки.

Рис. 2.2. Выбор меню Настройки

Настройка среды программирования Arduino IDE для работы с ESP32 31

В открывшемся окне настроек (рис. 2.3) нас интересует поле Дополнительные
ссылки для Менеджера плат. Нажатием на кнопку , расположенную спра-
ва от этого поля, попадаем в окно ввода ссылок (рис. 2.4) и добавляем ссыл-
ку на ESP32: https://dl.espressif.com/dl/package_esp32_index.json — эта
ссылка подключает дополнительный репозиторий, созданный программиста-
ми Espressif и содержащий основные компоненты для работы с ESP32 в среде
Arduino IDE.

Кнопка добавления
ссылок

Рис. 2.3. Окно настроек Arduino IDE: добавляем ссылку

Рис. 2.4. Окно ввода дополнительных ссылок для Менеджера плат

32 Глава 2

Рис. 2.5. Окно настроек Arduino IDE: ссылка добавлена

Закрываем окно ввода ссылок кнопкой ОК, проверяем наличие введенной строки
в поле Дополнительные ссылки для Менеджера плат (рис. 2.5) и подтверж-
даем внесенные изменения, закрыв окно настроек нажатием на кнопку ОК.

Установка платы ESP32 из Менеджера плат

Для установки библиотек и компилятора для ESP32 выполним команду меню
Инструменты | Плата:. В открывшемся меню выбора плат выберем Менеджер
плат… (рис. 2.6). В строке поиска Менеджера плат введем: ESP32. Если пред-
варительные настройки были сделаны правильно, получим в окне ссылку на
скачивание модулей поддержки ESP32 (рис. 2.7). Нажмем кнопку Установка
и дождемся завершения процесса скачивания недостающих файлов с сайта ком-
пании Espressif (рис. 2.8).

Рис. 2.6. Открываем Менеджер плат

ГЛАВА 3
ВЫБОР ДВИГАТЕЛЕЙ, ТЕСТЫ
ПРОГРАММНОГО УПРАВЛЕНИЯ

ШАГОВЫМИ МОТОРАМИ

Моторы коллекторные, бесколлекторные,
шаговые и сервомоторы

ESP32 может поддерживать все решения по подключению моторов (двигате-
лей), которые доступны проектам на Arduino:

• коллекторные моторы;
• бесколлекторные моторы;
• шаговые моторы;
• сервомоторы.

Рассмотрим все эти устройства подробнее.

Коллекторные моторы

Коллекторные моторы — это наиболее распространенный тип двигателей для
сборки ходовой части роботов. Используя понижающие редукторы, от них
можно добиться достаточной мощности для организации движения робота.
Недостаток коллекторных моторов заключается в требующихся для их работы
коллекторных щетках, которые находятся на статоре и замыкаются на обмотки
ротора, — эти щетки постепенно снашиваются и выходят из строя. Кроме того,
вследствие прерывистого контакта щеток с обмотками происходит искрение,
вызывающее электромагнитные помехи. В книге «Мобильные роботы на базе
Arduino» мы решали эту проблему установкой на клеммах моторов фильтрую-
щих конденсаторов. Коллекторные моторы отличаются простотой управления:
для организации вращения вала двигателя в одну сторону достаточно одного
транзистора или реле, при вращении вала в обе стороны обычно применяется
специальный драйвер.

42 Глава 3

Бесколлекторные моторы

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

Шаговые моторы

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

Сервомоторы

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

Обоснование выбора шагового мотора

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

Выбор двигателей, тесты программного управления шаговыми моторами 43

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

Основы работы шаговых моторов

Принцип работы Рис. 3.1. Шаговый двигатель со снятой
нижней крышкой
Шаговый мотор представляет собой
синхронный бесщеточный (бесколлек-
торный) электродвигатель с несколь-
кими обмотками (рис. 3.1). Подача на
разные его обмотки тока различного
направления и величины приводит к
появлению электромагнитного поля,
которое воздействует на противопо-
ложно намагниченные полюса ротора,
заставляя его перемещаться в заданное
положение. Управление подобными
двигателями относительно непростое,
и обычно этим занимается отдельное
устройство — драйвер шагового мотора.

Пояснение

Обмотки статора (см. рис. 3.1) намагничиваются после подачи на них тока определен-
ной величины и направления. Ротор же представляет собой вал с насаженным на него
намагниченным неодимовым постоянным магнитом. Намагниченный током обмоток
статора имеет участки, которые отталкиваются от также намагниченных полюсов
(участков) ротора, и имеет участки, которые притягиваются к противоположно намаг-
ниченным полюсам ротора. Ротор стремится перейти в состояние, в котором участки
статора и ротора взаимно притягиваются, возникает сила, направленная в сторону со-
стояния притяжения, и ротор поворачивается на необходимую величину. Затем на-
правление и величина тока обмоток статора изменяется на противоположные (эту
операцию как раз производит драйвер, выполняя команду «сделать шаг»). Те участки,
которые только что притягивались друг к другу, начинают отталкиваться, и ротор «пе-
репрыгивает» в следующее положение взаимного притяжения электрически намагни-
ченных участков статора и полюсов магнита ротора. Так как ток в обмотках статора
не может изменяться мгновенно (мешает индуктивное сопротивление), требуется вре-
мя, чтобы перемагнитить статор, а также совершить работу по перемещению ротора
в «комфортное положение», и это время зависит от нагрузки на ротор.

44 Глава 3

Выбор конкретной модели

Конструкций шаговых моторов много, но мы остановимся на моторе, имеющем

200 дискретных состояний на один оборот своего вала, — подобное перемеще-

ние (шаг) соответствует повороту на 1,8°. Его мощность должна быть достаточ-

ной для вращения колеса под нагрузкой, которую создает робот при движении.

В нашем случае следует выбрать двигатель с активным сопротивлением обмо-

ток 2–3 Ом и номинальным током обмоток не менее 1,2 А. Под эти требова-

ния подходит, к примеру, двигатель 23,5±0,5 38 MAX
17HS4401 (рис. 3.2) с крутящим мо-

ментом 420 mN•m, углом шага 1,8° и 18±0,2
током фазы 1,5 А.

Крутящий момент Ø22-8.052
4,5±0,1
Крутящий момент, — это сила, кото-
рую способен развивать мотор.

2±0,2 9,4

4–М3 42,3 MAX
Deep: 4.5 MIN 31±0,1

42,3 MAX 5Ø –0.003
31±0,1 –0.008

PH–06AWJ 123456
A BC D

16,2

аб
Рис. 3.2. Шаговый мотор 17HS4401 (а) и его размеры (б)

A

M Схематично шаговый мотор изобра-
жают в виде круга с буквой «М» вну-
C три и двумя обмотками (рис. 3.3). На
деле обмоток больше (см. рис. 3.1), но
BD подключены они только к двум управ-
Рис. 3.3. Шаговый двигатель (схема) ляющим источникам.

Собираем базовую модель 79

Подключаем драйверы, подаем питание и настраиваем максимальный ток фазы
на 1,5 А при помощи подстроечного резистора (напряжение на нем должно быть
порядка 0,7–0,8 вольт).

Монтажная и электрическая принципиальная схемы питания контроллера
ESP32 приведены на рис. 4.20 и 4.21 соответственно.

В главе 3 подразумевалось, что стенд будет использоваться в соединении с ком-
пьютером, поэтому внешнее питание на ESP32 там не подавалось (питание

Рис. 4.18. Монтажная схема электропитания шаговых моторов

80 Глава 4

ESP32 производилось по кабелю USB). Однако наш робот становится автоном-
ным, поэтому на модуль ESP32 требуется подать напряжение 5 вольт — для этого
можно применить линейный или импульсный стабилизатор. Импульсный ста-
билизатор экономичнее, линейный — надежнее. Мы воспользуемся линейным
стабилизатором L7805, а для отвода тепла (если стабилизатор будет сильно
греться) рекомендуется прикрепить к нему небольшой радиатор. Конденсатор
на входе должен быть рассчитан на напряжение не ниже 16 вольт, емкость кон-
денсаторов от 0,33 мкФ или более.

S 2 21
21

DRV 2 12 C1
DRV8825
+ 0,1mF
16V

1 8 M2
ENABLE VMOT A ROB-08420
2 7
M0 GND1
3 M1 a1 6
4 M2 a2 5
5 RESET b1 4
6 SLEEP b2 3 C
7 STEP VDD 2 B
8 DIRECTION GND2 1
D

DRV 2 12 C1
DRV8825
+ 0,1mF
16V

1 VMOT 8 M1
ENABLE A ROB-08420
2 M0 7
GND1
3 6
M1 a1
4 M2 a2 5
5 RESET b1 4
6 SLEEP b2 3 C
7 STEP 2 B
VDD
8 DIRECTION GND2 1
D

Рис. 4.19. Электрическая принципиальная схема электропитания шаговых моторов

ГЛАВА 5
УЧИМ РОБОТА САМОСТОЯТЕЛЬНО

ПОВТОРЯТЬ ПРОЙДЕННЫЙ ПУТЬ

Представим ситуацию: мы управляем роботом посредством дистанционного
пульта, он от места старта проходит по нашим командам определенный путь
до места финиша — пусть это будет прохождение территории с препятствия-
ми. Затем устанавливаем робота в место старта и ставим ему задачу повторить
пройденный путь самостоятельно. Если робот повторяет путь, цель считается
достигнутой.

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

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

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

Шаги моторов робота всегда имеют строго определенную длину — то есть вал
за один шаг (команду шага) поворачивается на определенный угол (см. главу 3).
Этот угол настраивается в драйвере мотора и в дальнейшем не меняется.

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

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

118 Глава 5

дальнейшем использовать. Поскольку колеса робота одинаковы, нам не важен
их диаметр, база между колесами или реальная скорость перемещения робо-
та, — достаточно информации в относительных единицах.

На рис. 5.1 представлена наглядная демонстрация изменения скоростей мото-
ров робота при движении (процессы разгона и торможения моторов для про-
стоты исключены). Робот стартует из точки 1, и до момента начала движения
начальные скорости обоих моторов равны нулю (шаги не генерируются). Затем
из точки 1 в точку 2 робот движется по прямой — скорости обоих его моторов
равны как по знаку, так и по значению (время между шагами обоих моторов
и количество сделанных шагов для обоих моторов совпадают). Из точки 2 в точ-
ку 3 робот движется по дуге: для движения по дуге правый двигатель уменьшает
скорость до величины 0.5 × Vmax (при этом в программе для него сигналы шагов
генерируются реже). Из точки 3 в точку 4 робот снова движется прямо. В точке 4
робот поворачивает на месте: для этого левый двигатель заданное время делает
шаги вперед, а правый — меняет направление вращения на обратное (при этом
количество шагов, сделанных обоими моторами, совпадает, а угол реального
поворота робота зависит от количества шагов и диаметра колеса). Из точки 4
в точку 5 робот опять движется прямолинейно и, сделав определенное количе-
ство шагов, замирает в точке 5.

3 VL = VR = Vmax 4 VL = Vmax
VR = –Vmax
VL = Vmax
VR = 0,5 × Vmax
VL = VR = Vmax
2 VL = VR = Vmax

5 ФИНИШ
VL = 0
VR = 0

1 VL = 0
VR = 0

СТАРТ
Рис. 5.1. Демонстрация маршрута робота

ГЛАВА 6
АВТОНОМНОЕ ДВИЖЕНИЕ,

ОБХОД ПРЕПЯТСТВИЙ
И ПРОХОЖДЕНИЕ ЛАБИРИНТА

Подобная задача уже рассматривалась нами в книге «Мобильные роботы на
базе Arduino», но здесь мы постараемся решить ее намного проще, по воз-
можности заменив логический анализ математическим расчетом, а вишенкой
на торте станет алгоритм измерения расстояния до препятствий, осущест-
вляемого практически одновременно тремя или четырьмя ультразвуковыми
сонарами.

Рассмотрим маршрут с препятствиями, представляющий собой замкнутый ла-
биринт (рис. 6.1). В этом случае для достижения роботом финишной позиции,
отмеченной перечеркнутым кругом, ему достаточно двигаться вдоль правой или
левой стены лабиринта.

Альтернативное решение

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

Если вы не имеете возможности построить сложный лабиринт, достаточно взять
большую коробку (рис. 6.2). Робот — чтобы достигнуть финиша — должен дви-
гаться вдоль правой или левой внешней стены коробки.

В качестве сенсоров, измеряющих расстояние, мы применим недорогие ультра-
звуковые сонары (рис. 6.3), а чтобы робот «смотрел» не только вперед, но и в
стороны, расположим их в передней части робота под углом 30–40 градусов к
его продольной оси (рис. 6.4 и 6.5). Для крепления сонаров рекомендую исполь-
зовать термоклей, тогда в случае необходимости сенсоры можно будет легко от-
соединить.

152 Глава 6

Рис. 6.1. Робот обходит лабиринт вдоль правой стенки
Рис. 6.2. Робот обходит коробку вдоль правой ее стенки

Автономное движение, обход препятствий и прохождение лабиринта 153

Рис. 6.3. Ультразвуковой датчик US-025, выполненный на основе чипа CS100

Рис. 6.4. Расположение сонаров на роботе:
вид сверху

Рис. 6.5. Расположение сонаров на роботе: вид спереди

154 Глава 6

Памятка по работе с клеем

Налейте обильно клей на палубу робота по длине ребра сонара, на которое планиру-
ется его установить, установите сонар и придержите его до тех пор, пока клей не за-
твердеет (остынет). Повторите эту операцию для всех сонаров.

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

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

Файловый архив

В сопровождающем книгу файловом архиве (см. приложение) вы найдете 3D-модель
крепежа датчиков для 3D-принтера (файл Фиксатор датчиков.STL).

Ультразвуковой дальномер предназначен для определения расстояния от дат-
чика до объекта. В основе его работы лежит принцип эхолокации — как у дель-
финов или летучих мышей. Датчик состоит из передатчика, генерирующего
ультразвуковые волны, приемника, который «слушает» эхо, и обвязки для нор-
мальной работы модуля (рис. 6.6).

Чтобы определять расстояние от робота до препятствия, нам потребуется изме-
рять время между излученным и отраженным от препятствия ультразвуковыми
импульсами. Для одновременной обработки сигналов от нескольких ультра-
звуковых датчиков расстояния типа HC-SR04 и им подобных мы используем
высокие скоростные характеристики контроллера ESP32 — они позволят нам
снимать информацию с датчиков практически одновременно, что открывает
совершенно новые функциональные возможности применения этих датчиков.

Приемник О
Передатчик б
ъ
е
к
т

Рис. 6.6. Демонстрация прохождения звукового сигнала до объекта и прием отраженного
сигнала

ГЛАВА 7
РОБОТ ТЕЛЕПРИСУТСТВИЯ

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

Смартфон на роботе в роли камеры

Проще всего установить на робота смартфон под управлением ОС Android
(рис. 7.1).
Нам, соответственно, потребуется смартфон, работающий на ОС Android версии
не ниже 5. Состояние смартфона не принципиально, главное — наличие рабо-
чей камеры, батареи и возможность установить и запустить программу, которая
будет всем этим управлять.

Рис. 7.1. Вариант установки робота смартфона в роли камеры

174 Глава 7

Для передачи нам информации от камеры робота мы воспользуемся каналом
Wi-Fi — это значит, что в зоне обитания робота должна функционировать сеть
Wi-Fi, и вы должны иметь возможность подключить к этой сети установленный
на робота смартфон.
Каким образом будет установлен смартфон на робота — не столь принципиаль-
но: на рис. 7.1, например, показаны три фиксирующих смартфон элемента, мож-
но также использовать фиксатор от селфи-палки.
Для управления камерой смартфона мы применим программу VideoRobot от
компании NECO (рис. 7.2, а) — найдите ее в Google Play и выполните установку.
Если программы VideoRobot в Google Play почему-то не окажется, обратитесь на
сайт разработчика (https://neco-desarrollo.es) и скачайте ее оттуда. При этом
для установки приложения на смартфон вам потребуется в настройках безопас-
ности смартфона разрешить установку приложений из сторонних источников.

Файловый архив

Программу VideoRobot от компании NECO можно скачать на Play Маркете,
с сайта издательства или по ссылке
https://neco-desarrollo.es/wp-content/uploads/2019/10/video_robot_v_1.1.6-2.rar

Запустите на смартфоне приложение VideoRobot. Если смартфон подключен
к сети Wi-Fi, вы увидите главное окно программы с индексацией IP-адреса

аб
Рис. 7.2. Программа VideoRobot: а — установка; б — окно программы с индексацией IP-адреса

смартфона

176 Глава 7

Настройка смартфона управления

Для управления роботом нам понадобится и второй смартфон — на него бу-
дет транслироваться изображение с камеры робота. Требования к смартфону
удаленного управления не столь жесткие — он может работать на ОС Android
4-й версии, но также должен быть подключен к сети Wi-Fi.

Для работы с этим смартфоном мы применим программу VideoControl от ком-
пании NECO (рис. 7.5, а). Найдите ее в Google Play и выполните установку.

Главное окно программы VideoControl показано на рис. 7.5, б. Центральную его
часть занимает принимаемое видеоизображение и два экранных джойстика, а в
верхней части расположены кнопки управления — четыре левые кнопки управ-
ляют удаленным смартфоном, установленным на роботе: включение фонарика
(1), включение Bluetooth (2), подключение удаленного смартфона к роботу по
Bluetooth (3), смена камеры для трансляции — передняя/задняя (4). Далее идет
кнопка настройки связи с удаленным смартфоном (5) и кнопка вызова помощи
по обеим управляющим смартфонами программам (6).

Для подключения к смартфону, установленному на роботе, нажмите в глав-
ном окне программы кнопку настройки связи с этим смартфоном (кнопка 5

12 3 456

абв

Рис. 7.5. Программа VideoControl: а — установка; б — главное окно и кнопки управления;
в — настройки IP-адреса и порта

Робот телеприсутствия 177

абв

Рис. 7.6. Настройка программы VideoControl: а — установка внешнего IP-адреса; б — установка
внутреннего IP-адреса; в — задание порта

на рис. 7.5, б) и в открывшемся окне настроек (рис. 7.5, в) установите флажок
Включить внешний адрес IP — без этого не получится связать смартфоны.
Затем поочередно пройдите из этого окна по ссылкам Внешний адрес IP,
Внутренний адрес IP и Порт и введите в поля Внешний адрес IP (рис. 7.6, а)
и Внутренний адрес IP (рис. 7.6, б) один и тот же IP-адрес — тот, который отоб-
ражался на смартфоне робота (см. рис. 7.2, б), а в поле ввода порта (рис. 7.6, в) —
то же число, что было введено на смартфоне робо-
та, — у нас это число 5543.

Соединение смартфонов

В главном окне установленного на роботе смарт-
фона (с программой VideoRobot) нажмите кнопку
Start — смартфон перейдет в режим соединения.

В главном окне смартфона удаленного управления
(с программой VideoControl) нажмите центральную
кнопку, похожую на знак воспроизведения, — чер-
ный экран сменится на транслируемое со смартфона
робота изображение (рис. 7.7).

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

Что ж, смартфоны соединены, но пока они никак не Рис. 7.7. Изображение,
управляют нашим роботом. Попробуем разобраться транслируемое со смартфона
в этом вопросе.
робота

ГЛАВА 8
БАЛАНСИРУЮЩИЕ РОБОТЫ

Каждый начинающий конструктор должен уметь сделать балансирующего ро-
бота. Такой робот получает информацию о своем наклоне от гиродатчиков и
подкручивает колеса в сторону наклона (балансирует), тем самым уменьшая на-
клон и восстанавливая равновесие.

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

Квадрокоптеры также летают устойчиво, потому что получают информацию по
своему наклону от гироприборов и имеют возможность на нее правильно реа-
гировать, уменьшая/увеличивая мощность, подаваемую на определенный винт,
пропорционально отклонению от вертикали (рис. 8.1).

Увеличить
мощность

Уменьшить
мощность

Рис. 8.1. Квадрокоптер в режиме рассогласования мощности моторов

206 Глава 8

Применяемые в робототехнике инерционные приборы называют акселероме-
трами и гироскопами (гироприборами). Они также широко используются в со-
временных самолетах, ракетах, кораблях и подводных лодках.

Благодаря встроенным гироприборам, большинство смартфонов умеет реаги-
ровать на наклон: переворачивать картинку или управлять игрой без помощи
экранных кнопок.

Процесс балансировки робота состоит из двух этапов:
• получение данных от гироприборов и ходовых моторов;
• обработка данных с выработкой команд на исполнительные механизмы
(моторы колес).

Начнем мы знакомство с гироприборами с популярного совмещенного гиро-
скопа-акселерометра-термометра MPU-6050.

Примечание

Существуют и более дорогие и современные гироприборы с гораздо большим потен-
циалом — например, BNO055, но существенных преимуществ конкретно нашему ро-
боту они не дают.

Гироскоп-акселерометр-термометр MPU-6050

На плате MPU-6050 (рис. 8.2) имеются 8 контактов, но для работы доста-
точно подключить 4 из них: VCC — питание 3,3 В (возьмем от платы ESP32),

Напряжение питания 3,3–5 В

Отрицательный контакт питания («земля»)

Контакт шины I2C (вывод тактового сигнала)

Контакт шины I2C (передача/прием данных)

Служат для подключения к шине I2C
дополнительных устройств (не используются)

Изменяет адресацию (не используется)
Индикатор наличия электропитания

Настраиваемый сигнал о событии — например,
о переполнении буфера (использовать не обязательно)

Рис. 8.2. Микросхема гироскопа-акселерометра MPU-6050, смонтированная на плате

Балансирующие роботы 207

Рис. 8.3. MPU-6050 подключен к ESP32 (питание от внутреннего стабилизатора)

GND — «земля», SDA и SCL — контакты шины I2C: SCL — вывод тактового сиг-
нала, а SDA — передача/прием данных в обоих направлениях (рис. 8.3).

Шина I2C

I2C — последовательный интерфейс, к которому могут быть подключены одно-
временно несколько устройств, одно из которых является ведущим, а осталь-
ные — ведомыми. В нашем случае ведущим будет контроллер ESP32, а гироскоп-
акселерометр MPU-6050 — ведомым. Каждое устройство на шине I2C должно
иметь уникальный адрес. Когда ведущий начинает передачу, он передает по
шине адрес устройства, к которому выполняется обращение. Устройства, под-
ключенные к шине, проверяют этот адрес, и в случае совпадения начинают об-
мен информацией.

Балансирующие роботы 237

диаметром 2 мм по периметру для крепления рычагов винтами или шурупами.
Фланец после установки на сервомотор фиксируется винтом 3 мм. В места кре-
пления сервомотора на роботе устанавливаются резиновые вибропрокладки.

Фланец сервомотора устанавливаем в подъемный рычаг и фиксируем шурупа-
ми либо винтами по периметру (рис. 8.16). Затем крепим подъемный рычаг с
фланцем к сервомотору, установленному на робота (рис. 8.17), — робот с этими
доработками будет выглядеть, как показано на рис. 8.18.

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

Рис. 8.15. Сервомотор малой мощности
Рис. 8.16. Подъемный рычаг с установленным на него фланцем

238 Глава 8

Рис. 8.17. Установка рычага на сервомотор робота

Рис. 8.18. Робот с установленным подъемным рычагом

Балансирующие роботы 239

будет провести только после электрического подключения и проведения тестов:
поворотов на 0 и на 180 градусов.

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

Сервомотор, подобный показанному на рис. 8.15, не должен питаться напряже-
нием более 6 вольт, а в режиме нагрузки может потреблять ток до одного ампе-
ра. Следовательно, его требуется подключать к понижающему стабилизатору.
Воспользуемся для этого линейным стабилизатором L7805CV. Стабилизатор
для сервомотора должен быть отдельным — использование общего стабилиза-
тора для контроллера ESP32 и сервомотора приводит к нестабильной работе
ESP32. Логически сервомотор будет управляться от контакта GPIO 19. Схема
подключения питания к сервомотору и управления подъемным рычагом при-
ведена на рис. 8.19.

Рис. 8.19. Схема подключения питания и управления подъемного рычага

ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ

А Н

Адресный светодиод 128 Несколько кнопок на одном аналого-
Акселерометр 206, 207, 209 вом GPIO 125
Аналого-цифровой преобразователь,
О
АЦП 16
Аппаратный UART 15 Оперативная память 15

Б П

Бесколлекторные моторы 42 ПИД-регулятор 220, 224, 240
Плоттер по последовательному соеди-
В
нению 217
Веб-сервер 35 Получение данных от MPU-6050 211,

Г 217
Проброс портов 182
Гироскоп 208 Пропорциональное регулирование

Д 220–222

Двоичный редактор 191 Р
Дифференциальное регулирование
Регистр GPIO_OUT_REG 94
221, 223 Роботы телеприсутствия 173
Драйвер шагового мотора 43 Ротор 43

И С

Интегральное регулирование 221, 224 Сервомоторы 42

К Т

Коллекторные моторы 41 Таймеры 15
Конвертер USB-UART 184 Тестовая программа движений робота
Крутящий момент 44
262
М
У
Механизм прерываний 84
Микросхема MPU-6050 206, 207, 211, Ультразвуковой дальномер 154
Ультразвуковой сигнал 156
216, 217
Монитор порта 35, 40

264 Предметный указатель

Ц Э

Цифроаналоговое преобразование, Электронный архив 8
ЦАП 16 Электронный гироскоп 208, 209
Энергонезависимая память 15, 119
Ш

Шаговые моторы 42
ШИМ 221
Широтно-импульсная модуляция,

ШИМ 16

A E

Arduino IDE 29–32, 35, 40 ESP32-CAM 184

D I

DRV8825 45 I2C-интерфейс 16

www.bhv.ru Момот М.

Мобильные роботы на базе Arduino,
2-е изд.

Отдел оптовых поставок:
E-mail: [email protected]

Мобильные роботы любой сложности легко и быстро!

«Эту книгу я составлял как руководство
для начинающих Конструкторов, людей,
которым нравится конструировать. А за
основу взял конструирование мобиль-
ных роботов на популярной платформе
Arduino, позволяющей реализовывать
как простейших, так и достаточно ин-
теллектуальных роботов. Платформа
открытая, изготавливать дополнитель-
ные модули для нее может любой чело-
век или организация, то же относится
и к программам.

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

Михаил Момот, автор книги

Момот Михаил Викторович, доцент кафедры информационных систем Томского поли-
технического университета. Увлекается робототехникой, поклонник и пропагандист проекта
Arduino с 2014 года. Основатель неформального клуба робототехников «Лига роботов
ЮТИ ТПУ», объединяющего школьников, студентов, преподавателей и энтузиастов.

Григорьев А., Винницкий Ю.

www.bhv.ru Игровая робототехника для юных
программистов и конструкторов:

mBot и mBlock

Отдел оптовых поставок:
E-mail: [email protected]

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

Конструируя и программируя своего ро-
бота для игр, вы освоите вполне серьез-
ные инструменты, научитесь использо-
вать среду программирования mBlock,
различные электронные и механические
дополнения компании Makeblock, эле-
ментную базу Arduino.

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

Читайте, пробуйте, творите, создавай-
те новое. Дерзайте — вы талантливы!
А мы — немножко поможем!

Авторы работают в школе № 169 с углубленным изучением английского языка (Санкт-
Петербург), и все проекты, с которыми вы познакомитесь в книге, опробованы учениками
этой школы на кружковых и внеурочных занятиях. Предыдущая книга авторов «Scratch и Ar-
duino для юных программистов и конструкторов» быстро завоевала признательность юных
читателей и стала бестселлером.

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

Винницкий Юрий Анатольевич, кандидат педагогических наук, преподаватель инфор-
матики, неоднократный победитель профессиональных конкурсов, автор книг и статей по
робототехнике и конструированию, автор-разработчик более 200 электронных ресурсов
Единой коллекции цифровых образовательных ресурсов school-collection.edu.ru.

Тиммонс-Браун М.

Робототехника на Raspberry Pi
www.bhv.ru для юных конструкторов и программистов

Отдел оптовых поставок:
E-mail: [email protected]

Опыт не требуется!

С помощью этой книги вы быстро и легко пройдете путь от неопытного пользова-
теля до настоящего конструктора роботов. Вы начнете со сборки макета двухко-
лесного робота на базе мини-компьютера Raspberry Pi и запрограммируете его на
популярном языке Python. Затем будете постепенно улучшать собранного робота,
добавляя новые функциональные возможности: он научится следовать линиям,
избегать препятствия, распознавать объекты и цвет с помощью компьютерного
зрения.

Вы узнаете, как:
• управлять роботом удаленно
с помощью пульта игровой
консоли Wii компании Nintendo;

• применять датчики для обхода
роботом препятствий;

• запрограммировать робота
следовать по линии;

• настроить робота, чтобы он сиял
огнями и воспроизводил звуки;

• наблюдать окружающий мир
«глазами робота» с помощью
видеокамеры Pi.

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

Мэтт Тиммонс-Браун (Matt Timmons-Brown) — создатель самого популярного в мире
YouTube-канала, посвященного Raspberry Pi — The Raspberry Pi Guy. На этом канале он
выкладывает различные образовательные видеоматериалы для сообщества Raspberry Pi.
Канал Мэтта, запущенный в 2012 году, в настоящее время набрал более 5 миллионов
просмотров и поддерживается напрямую британским разработчиком процессоров ARM и
Фондом Raspberry Pi.

Мобильные роботы

на базе Аrduino + КНИГА

www.bhv.ru

Отдел оптовых поставок: www.bhv.ru/books/robot
E-mail: [email protected] ISBN 978-5-9775-3774-2

Если вы хотите научиться конструиро- • изучить базовые алгоритмы
вать мобильного робота, но у вас пока управления роботом;
нет знаний, опыта, деталей и электрон-
ных компонентов, то этот набор разра- • модернизировать и обучить
ботан специально для вас. В его состав базового робота
входят: плата Arduino, необходимые движению по линии,
электронные компоненты, двигатели, выходу из лабиринта,
4-колесное шасси, а также популярная игре в кегельринг.
книга М. Момота «Мобильные роботы
на базе Arduino».

Вы сможете:

• сконструировать базовую модель
мобильного робота;

• дистанционно управлять роботом
с помощью IR-пульта или смарт-
фона Android;

Умный дом на базе Аrduino.

Большой набор + КНИГА

www.bhv.ru

Отдел оптовых поставок: ISBN 978-5-9775-3988-3
E-mail: [email protected] www.bhv.ru/books/kits

Набор поможет вам с головой окунуть- В состав набора входят:
ся в удивительный мир Arduino. Вы на-
учитесь подключать к плате Arduino и • плата Arduino Uno;
программировать различные датчики • датчики;
и модули, соберете макет «Умного до- • модули;
мика» и разместите в нем собственную • светодиоды и дисплеи;
«систему умного дома», которую мож- • серводвигатель и микронасос;
но впоследствии частично реализовать • блок питания 9 В и 4 батерейки AA;
и у себя в квартире или на даче. • популярная книга Дж. Блума

Набор будет интересен как начинаю- «Изучаем Arduino: инструменты и
щим разработчикам, у которых еще методы технического волшебства»;
нет опыта создания проектов Arduino, • макет фанерного домика.
так и тем, кто уже сделал первые шаги
в разработке электронных проектов.

Интерфейс для iOS и Android Система «умного полива» Автономное питание

АRDUINO для изобретателей.

www.bhv.ru Набор электронных компонентов
+ КНИГА

Отдел оптовых поставок: http://www.bhv.ru/books/200380
E-mail: [email protected] ISBN 978-5-9775-3988-3

В состав набора входят:

• плата, совместимая с Arduino
Uno;

• датчики;
• двигатели;
• светодиоды;
• базовые компоненты;
• макетная плата и провода;
• книга Б. Хуанга и Д. Ранберга

«Аrduino для изобретателей:
обучение электронике
на 10 занимательных
проектах».

Набор подготовлен по материалам популярной книги Б. Хуанга, Д. Ранберга
«Аrduino для изобретателей. Обучение электронике на 10 занимательных проек-
тах», которая на практических примерах вводит читателя в увлекательный мир
разработчика электронных устройств на базе микроконтроллера Arduino. Вы-
полнив описанные в книге проекты, вы научитесь не только собирать и програм-
мировать конкретные устройства, но и модифицировать их по своему желанию.
Кроме того, вы научитесь использовать подручные средства (картон, мячи для
пинг-понга и др.) для создания полноценных изделий. Сложность и трудность про-
ектов повышается с каждым последующим.

• Классический первый проект Arduino — мигание светодиодом
• Миниатюрный светофор
• Экран из светодиодов для отображения анимированных узоров и фигур
• Увлекательная игра для тестирования быстроты реакции
• Светочувствительный разноцветный ночник
• Трудная, но занимательная игра балансирования мячика на балке
• Миниатюрная теплица с автоматически управляемым вентилятором и окном

для регулировки температуры
• Робот-рисовальщик
• Устройство для хронометрирования гонок игрушечных

автомобилей
• Цифровая музыкальная труба

ИНТЕРНЕТ ВЕЩЕЙ.

www.bhv.ru Набор для экспериментов
с контроллером ESP8266 + КНИГА

Отдел оптовых поставок: www.bhv.ru/books/198905
E-mail: [email protected] ISBN 978-5-9775-3932-6

Набор предназначен для тех, кто хо-
чет разрабатывать мощные и недо-
рогие проекты Интернета вещей (IoT)
на основе ESP8266. Он идеально под-
ходит новичкам в области IoT и тем,
у кого уже есть опыт работы с платфор-
мой Arduino.

В набор входят:

• книга М. Шварц «Интернет вещей
с ESP8266»;

• две платы NodeMCU ESP8266;
• беспаечная макетная плата

и провода;
• датчики и электронные

компоненты;
• дверная защелка

соленоидного типа.

ESP8266 — это недорогой микроконтроллер с функцией Wi-Fi, при помощи которого раз-
личные объекты реализуют обмен данными. Благодаря недорогим модулям на основе
этого сетевого микроконтроллера, IoT переживает взрывной рост.

Вы научитесь: • построить простую систему
домашней автоматики
• создавать и программировать с управлением через облако;
проекты IoT на основе ESP8266;
• отправлять пользователям
• считывать, отправлять и отсле- ESP8266 сообщения по email,
живать данные через облачные SMS;
сервисы;
• создавать различные устройства
• применять ESP8266 для взаимо- на основе ESP8266 (дверной замок
действия с социальными сетями с управлением через облако,
Twitter и Facebook; индикатор курса Биткоина и др.).

• организовывать межмашинное
взаимодействие без участия
человека;


Click to View FlipBook Version