Опубликовано

Представляем 3-е издание книги “Мобильные роботы на базе Arduino”

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

Представляем третье издание книги Михаила Момота “Мобильные роботы на базе Arduino”.

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

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

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

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

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

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


Книгу “Мобильные роботы на базе Arduino, 3-е изд.” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Содержание

Предисловие………………………………………………………………………………………….. 9

Глава 1. Основные составные части робота………………………………………. 13
Информационно-измерительная система………………………………………………………. 13
Датчик касания…………………………………………………………………………………….. 14
Датчик температуры……………………………………………………………………………… 14
Датчик освещенности……………………………………………………………………………. 15
Датчик препятствия………………………………………………………………………………. 15
Ультразвуковой датчик расстояния………………………………………………………… 16
Оптический рефлекторный датчик расстояния………………………………………….. 16
Детектор шума…………………………………………………………………………………….. 17
Энкодер……………………………………………………………………………………………… 17
Датчик движения………………………………………………………………………………….. 18
Датчик газа………………………………………………………………………………………….. 18
Датчик влажности………………………………………………………………………………… 18
Видеокамера……………………………………………………………………………………….. 19
Система принятия решений………………………………………………………………………….. 20
Контроллер Arduino……………………………………………………………………………… 20
Система связи…………………………………………………………………………………………… 22
Инфракрасный приемник……………………………………………………………………….. 22
Канал Bluetooth……………………………………………………………………………………. 23
Канал Wi-Fi………………………………………………………………………………………….. 23
Устройства отображения информации (дисплеи)………………………………………. 24
Исполнительная система…………………………………………………………………………….. 24
Электрический двигатель постоянного тока……………………………………………… 25
Сервомотор………………………………………………………………………………………… 26
Шаговый двигатель………………………………………………………………………………. 26
Система энергоснабжения…………………………………………………………………………… 27
Механика робота……………………………………………………………………………………….. 27
Элементы электрической схемы…………………………………………………………………… 27
Резистор…………………………………………………………………………………………….. 27
Светодиод………………………………………………………………………………………….. 28
Выключатель………………………………………………………………………………………. 28
Сервисные платы……………………………………………………………………………………….. 28
Arduino Sensor Shield v5.0……………………………………………………………………… 28
Макетная плата……………………………………………………………………………………. 29
Выводы……………………………………………………………………………………………………. 30

Глава 2. Провода и их соединения………………………………………………………. 31
Виды проводов…………………………………………………………………………………………. 31
Одножильные………………………………………………………………………………………. 31
Многожильные…………………………………………………………………………………….. 31
Тип изоляции……………………………………………………………………………………….. 32
Способы соединений проводов……………………………………………………………………. 32
Скрутка………………………………………………………………………………………………. 32
Разъемные соединения…………………………………………………………………………. 33
Пайка и ее основы………………………………………………………………………………… 35
Оборудование и материалы……………………………………………………………. 35
Этапы пайки………………………………………………………………………………….. 36
Выбор паяльника………………………………………………………………………….. 37
Уход за паяльником………………………………………………………………………. 38
Припои………………………………………………………………………………………… 38
Флюсы…………………………………………………………………………………………. 39
Выводы……………………………………………………………………………………………………. 39

Глава 3. Электропитание……………………………………………………………………… 40
Закон Ома………………………………………………………………………………………………… 40
Электрическая мощность……………………………………………………………………………. 40
Характеристики элементов питания………………………………………………………………. 40
Номинальное напряжение……………………………………………………………………… 40
Номинальный ток…………………………………………………………………………………. 41
Внутреннее сопротивление источника питания…………………………………………. 41
Емкость батареи или аккумулятора………………………………………………………… 41
Форм-фактор………………………………………………………………………………………. 41
Типы элементов электрического питания……………………………………………………….. 41
Солевые батареи…………………………………………………………………………………. 42
Алкалиновые батареи…………………………………………………………………………… 42
Никель-металлогидридные аккумуляторы………………………………………………… 42
Литий-ионные и литий-полимерные аккумуляторы…………………………………….. 42
Стабилизация электропитания……………………………………………………………………… 43
Стабилизация напряжения……………………………………………………………………… 44
Стабилизация электрического тока…………………………………………………………. 46
Измерение электрического тока, напряжения и сопротивления…………………………. 46
Защита от короткого замыкания по питанию………………………………………………….. 48
Защита от неверной установки элементов питания (переполюсовки)…………………. 50
Зарядка аккумуляторов на примере Li-ion и Li-pol…………………………………………… 51
Выводы……………………………………………………………………………………………………. 52

Глава 4. Основы программирования Arduino…………………………………….. 53
Компьютерная программа…………………………………………………………………………… 53
Алгоритм………………………………………………………………………………………………….. 54
Среда разработки Arduino IDE…………………………………………………………………….. 55
Установка Arduino IDE…………………………………………………………………………… 55
Начало работы с Arduino IDE…………………………………………………………………. 56
Подключение контроллера Arduino к ПК………………………………………………….. 56
Мигаем светодиодом………………………………………………………………………………….. 60
Мониторинг работы программы…………………………………………………………………… 61
Переменные………………………………………………………………………………………………. 62
Условные операторы………………………………………………………………………………….. 64
Оператор if … else……………………………………………………………………………….. 64
Оператор switch … case………………………………………………………………………… 67
Операторы циклов while и for……………………………………………………………………….. 68
Функции……………………………………………………………………………………………………. 70
Элементы объектно-ориентированного программирования……………………………… 71
Разделение программы (внутренние библиотеки)……………………………………………. 72
Выводы……………………………………………………………………………………………………. 73

Глава 5. Ходовая часть………………………………………………………………………… 74
Типы ходовых частей………………………………………………………………………………….. 74
Гусеницы…………………………………………………………………………………………….. 74
Колеса с дифференциалом…………………………………………………………………… 75
Колеса на моторах………………………………………………………………………………. 75
Летающие роботы………………………………………………………………………………… 76
Выбор двигателей……………………………………………………………………………………… 76
Драйверы двигателей…………………………………………………………………………………. 78
Сборка макета…………………………………………………………………………………………… 80
Управляем двигателем без Arduino…………………………………………………………. 80
Широтно-импульсная модуляция……………………………………………………………. 82
Подключаем контроллер Arduino……………………………………………………………. 83
Подключаем библиотеку mobrob3.zip и пишем тестовую программу…………….. 86
Добавляем регулирование на основе ШИМ……………………………………………… 87
Тестовая программа управления двигателями
с регуляцией на основе ШИМ…………………………………………………………………. 87
Выводы……………………………………………………………………………………………………. 89

Глава 6. Сборка базовой модели…………………………………………………………. 90
Минимальный комплект………………………………………………………………………………. 90
Двигатели…………………………………………………………………………………………………. 92
Система электропитания…………………………………………………………………………….. 93
Подбираем компоненты………………………………………………………………………………. 96
Схемы………………………………………………………………………………………………………. 98
Проверка правильности подключения платы драйвера и двигателей……………….. 102
Пример использования платы Arduino Sensor Shield……………………………………… 103
Установка устройств обратной связи………………………………………………………….. 104
Укладка проводов……………………………………………………………………………………. 107
Выводы…………………………………………………………………………………………………… 107

Глава 7. Схема управления движением…………………………………………….. 108
Переменные и функции управления моторами………………………………………………. 108
Подключение управления моторами……………………………………………………… 108
Управление мощностью………………………………………………………………………. 108
Движение в нужном направлении………………………………………………………….. 109
Первая поездка………………………………………………………………………………………… 109
Алгоритм…………………………………………………………………………………………… 109
Программа………………………………………………………………………………………… 110
Сигнал светодиодом…………………………………………………………………………………. 111
Выводы…………………………………………………………………………………………………… 112

Глава 8. Дистанционное управление роботом………………………………….. 113
Способы дистанционного управления…………………………………………………………. 113
Управление роботом по каналу инфракрасной связи…………………………………….. 114
Схема подключения……………………………………………………………………………. 114
Рекомендации по установке…………………………………………………………………. 116
Установка библиотеки IRremote…………………………………………………………….. 117
Получение кодов кнопок для используемого пульта……………………………….. 117
Программа………………………………………………………………………………………… 120
Управление роботом по каналу Bluetooth…………………………………………………….. 123
Подбор элементной базы…………………………………………………………………….. 124
Подключение к Arduino………………………………………………………………………… 125
Смена имени контроллера Bluetooth и робота………………………………………… 126
Настройка смартфона…………………………………………………………………………. 127
Устранение радиопомех………………………………………………………………………. 129
Программа………………………………………………………………………………………… 129
Управляем роботом по Wi-Fi (ESP-01)…………………………………………………………. 133
Выводы…………………………………………………………………………………………………… 138

Глава 9. Робот, держащий направление по электронному гироскопу-акселерометру……………………………………… 139
Гироскоп…………………………………………………………………………………………………. 139
Акселерометр………………………………………………………………………………………….. 141
Электронный гироскоп………………………………………………………………………………. 142
Подключение гироскопа-акселерометра MPU-6050……………………………………….. 143
Получение данных с MPU-6050…………………………………………………………………… 145
Шкала значений MPU-6050…………………………………………………………………………. 148
Модернизация робота………………………………………………………………………………. 148
Монтаж устройства…………………………………………………………………………….. 148
Программирование…………………………………………………………………………….. 148
Основные функции для получения углов…………………………………………. 148
Стабилизация поворотов: ПИД-регулятор……………………………………….. 150
Добавляем функцию движения………………………………………………………. 153
Выводы…………………………………………………………………………………………………… 157

Глава 10. Движение по черной линии………………………………………………… 158
Обнаружение черной линии……………………………………………………………………….. 159
Фотодиод………………………………………………………………………………………….. 159
Фоторезистор……………………………………………………………………………………. 160
Фототранзистор…………………………………………………………………………………. 161
Инфракрасный датчик отражения TCRT 5000…………………………………………… 161
Подготовка робота: установка датчиков……………………………………………………… 163
Упрощенная программа движения………………………………………………………………. 166
Используем аналоговые данные «на всю катушку»………………………………………… 169
Выводы…………………………………………………………………………………………………… 173

Глава 11. Измерение расстояния и поворотная голова……………………. 174
Измеряем расстояние……………………………………………………………………………….. 174
Инфракрасный датчик расстояния GP2Y0A021YK0F………………………………………. 175
Лазерный датчик расстояния VL53L1X…………………………………………………………. 176
Ультразвуковые дальномеры HC-SR04 и US-026/25……………………………………….. 177
Поиск препятствия……………………………………………………………………………………. 179
Поворотная голова…………………………………………………………………………………… 184
Схемы подключения……………………………………………………………………………. 185
Управление сервомашинкой…………………………………………………………………. 187
Монтаж головы………………………………………………………………………………….. 189
Тестовая программа «Ведение цели»…………………………………………………….. 190
Если что-то пошло не так………………………………………………………………………….. 191
Выводы…………………………………………………………………………………………………… 192

Глава 12. Ходовые испытания: обход препятствий…………………………. 193
Программа проверки и настройки основных функций робота…………………………. 193
Выводы…………………………………………………………………………………………………… 200

Глава 13. Робот, находящий выход из лабиринта…………………………….. 201
Способ обхода лабиринта…………………………………………………………………………. 202
Обход лабиринта без модернизации робота………………………………………………… 203
Программа………………………………………………………………………………………… 207
Выводы…………………………………………………………………………………………………… 213
Глава 14. Робот с видеокамерой………………………………………………………… 214
Аналоговое видео с робота………………………………………………………………………. 214
Цифровое видео для робота: ESP32-CAM…………………………………………………… 216
Робот с камерой ESP32-CAM…………………………………………………………………….. 218
Добавление контроллеров ESP в среду ArduinoIDE………………………………… 219
Прошивка ESP32-CAM…………………………………………………………………………. 221
Настройка программного обеспечения робота……………………………………………… 222
Сборка электроники…………………………………………………………………………………. 224
Сборка механики……………………………………………………………………………………… 224
Выводы…………………………………………………………………………………………………… 226

Глава 15. Робот и пройденное расстояние………………………………………… 227
Моторы с инкрементальным энкодером………………………………………………………. 227
Как работает инкрементальный энкодер?………………………………………………. 228
Получение информации о вращении с инкрементальных энкодеров…………… 229
Следим за энкодерами в приложении……………………………………………………. 236
Выводы…………………………………………………………………………………………………… 243

Глава 16. Балансирующий робот……………………………………………………….. 244
Теория……………………………………………………………………………………………………. 244
Как найти угол наклона робота?…………………………………………………………… 246
Регулятор балансировки робота………………………………………………………….. 247
Программирование…………………………………………………………………………………… 248
Порядок подбора коэффициентов пропорциональности регулятора…………. 254
Выводы…………………………………………………………………………………………………… 260

Приложение. Описание электронного архива…………………………………… 261
Предметный указатель………………………………………………………………………. 265

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

Добавить комментарий