-
Введение
-
Глава 1. Аппаратная основа
- Содержание Главы 1
- Подготовка
- Плата Arduino UNO
- Плата управления моторами
- Плата связи с датчиками
- Аппаратная основа на базе набора miniQ
- Аппаратная основа на базе набора Turtle
- Аппаратная основа на базе набора ShieldBot
- Как ученики строили своих miniQ роботов
- Этапы сборки
- Система электропитания робота
- Провода энкодеров и датчиков линии
- Завершение главы 1
-
Глава 2. Начало работ с системой программирования Arduino
- Содержание Главы 2
- Подготовка
- Общие правила организации систем управления
- Входные данные. Датчики
- Обработка данных. Микроконтроллер
- Выходные данные. Исполнительные устройства
- То, что нужно всегда помнить
- Начало работы с системой Arduino
- Загрузка программы-примера “Мигающий огонь”
- Модификация программы “Мигающий огонь”
- Алгоритм программы “Мигающий огонь”
- Завершение Главы 2
-
Глава 3. Управление тяговыми моторами
-
Глава 4. Связь с ультразвуковым датчиком расстояния
- Содержание Главы 4
- Подготовка
- Постановка задач
- Электрическое подключение датчиков расстояния
- Разработка алгоритма
- Исходный текст
- Адреса Echo и Trigger как глобальные переменные
- Отладка и испытание программы
- Руководство пользователя
- Приложение 4.1. Подсказки по сложному алгоритму
- Приложение 4.2. Исходный текст (для упрощённого алгоритма)
- Завершение главы 4
- Факультативная часть главы 4
-
Глава 5. Робот следует за рукой или лидером
- Содержание главы 5
- Подготовка
- Релейный регулятор
- Пропорциональный регулятор
- Утилиты
- UTILIT_OneRangeMeter ()
- UTILIT_Motors_Control ()
- UTILIT_Hand_Follow_Proportional (int _range_needed)
- Два факультативных упражнения после перерыва
- Программа следования за лидером
- Постановка задачи
- Макрос следования за Лидером
- Отладка и испытание программы Programm_modul_5_Leader_Follow.ino
- Если что-то не так
- Исследуем робота
- Важные замечания
- Приложение 5.1 Алгоритм пропорционального регулирования
- Приложение 5.2. Исходный текст утилиты регулятора для следования за рукой
- Приложение 5.3. Документация для макроса и утилит следования за лидером
- MACROS_Leader_Follow (int _distasnce_to_leader)
- UTILIT_LeftRightRangeMeter ()
- UTILIT_Leader_Follow_Proportional (int _range_needed)
- UTILIT_Motors_Control () & UTILIT_Motors_Stop ()
- Завершение главы 5
- Как можно улучшить нашего робота?
-
Глава 6. Структура программного обеспечения
- Содержание главы 6
- Подготовка
- Уровни программного обеспечения
- loop ()
- Задачи
- Макросы
- Утилиты
- Драйверы. Библиотеки. Калькуляторы
- Ввод-вывод
- Глобальные переменные
- Правила обмена информации между уровнями
- Практическое занятие 6.1. Учтём трение в механизмах
- Практическое занятие 6.2. Доворот в сторону лидера умножением
- Практическое занятие 6.3. Доворот в сторону лидера сложением
- Практическое занятие 6.4. Доворот в сторону лидера обнулением
- Практическое занятие 6.5. Делаем калькулятор
- Гонки за лидером
- Послесловие
- Список программ для Ардуино
- Лицензионное соглашение
Плата управления моторами
Плата управления моторами, например MotorShield, использует два мощных управляемых электрических моста. Каждый мост подключается к одному щёточному электродвигателю постоянного тока и обеспечивает его вращение в заданном направлении с заданной мощностью. Мосты расположены в специальной микросхеме и управляются четырьмя цифровыми выходами платы Arduino UNO.
Подробное описание платы MotorShield можно найти во всех интернет-магазинах, торгующих этой платой, поэтому в данном руководстве оно не приводится.
На рисунке представлена монтажная схема подключения платы MotorShield производства компании “Амперка” к моторам и основной батарее питания. Не забудьте в Вашей конструкции между батареей и платой вставить выключатель питания.

Функциональные аналоги платы MotorShield подключаются к батарее и моторам точно так же. В некоторых вариантах может быть другое расположение винтовых колодок для подключения проводов.
В интернете можно найти много сайтов показывающих, как выглядит плата типа MotorShield, и как подключать её к моторам.
Для нормальной работы платы управления моторами важно следующее:
- Разводка контактов управления микросхемы на плате управления моторами сделана так, чтобы для подключения её к плате Arduino UNO достаточно было аккуратно сверху воткнуть плату MotorShield своими ножками в боковые разъёмы Arduino UNO. Это создаёт удобства, но в то же время ограничивает разработчика, так как 4 из 14 цифровых выводов жёстко задействованы для управления моторами и не могут быть использованы ни для чего другого. Для наших задач это ограничение несущественно.
- Подключение электродвигателей к плате управления моторами необходимо производить отдельными парами проводов. Подключение проводов к плате производится винтовыми зажимами специальных колодок, расположенными на плате. А вот подключение проводов к моторам делается пайкой. Поэтому в конструкции робота необходимо предусмотреть механическое крепление проводов от двигателя к несущей платформе, чтобы избежать их случайного обрыва.
- Подачу электроэнергии на моторы нельзя производить непосредственно от платы Arduino UNO. Необходимо подключить основную батарею питания третьей парой проводов к специальным винтовым зажимам платы управления моторами. Особое внимание необходимо обратить на соблюдение полярности подключения.
- Для удобства работы с роботом желательно питание от батареи подавать на плату Arduino UNO и плату управлением моторами через выключатель питания. При этом для наладки программы можно будет отключать батарею и питать электронику робота через USB кабель платы Arduino UNO, подключённый к компьютеру. Тяговые моторы в этом случае работать не будут.
Иногда на рисунках в интернете можно увидеть шесть батарей, а не восемь. Дело в том, что одноразовые батарейки выдают напряжение 1.5 вольта, поэтому для получения выходного напряжения 9 вольт достаточно шести батарей. Но мы используем перезаряжаемые аккумуляторы, которые выдают 1.2 вольта. Поэтому их необходимо 8 штук. Разница между 9.6 и 9.0 вольт роли не играет.