Электронный компонент:Шилд-бот V1.2
Шилд-бот V1.2 [1]

Шилд-бот V1.2 – это мобильная робо-платформа начального уровня. В комплекте с нею идут также библиотека и скетчи, с помощью которых из шилд-бота легко сделать робота, умеющего следовать по линии.
Версия 1.2 почти не изменилась по сравнению с V1.1.
Купить шилд-бот можно по этой ссылке.
Особенности
- Просто начать. Настройка шилд-бота выполняется за считанные минуты
- Расширяемость. Шилд-бот оснащен Grove-коннекторами, которые не требуют пайки и позволяют быстро подключить к нему различные устройства ввода и вывода данных (датчики, светодиоды, дисплеи и пр.). Кроме того, на шилд-боте имеются гребешки контактов, с помощью которых к нему можно подключать Arduino-совместимые шилды
- Открытый код. Шилд бот создан с прицелом на то, чтобы его можно было модифицировать, трансформировать и адаптировать под самые разные нужды
- Совместимость с Arduino. Шилд-бот – это Arduino-шилд, что делает его совместимым со множеством шилдов и прочих устройств семейства Arduino
- Эффективная зарядка. Шилд-бот очень быстро заряжается.
Примечание: В предыдущей версии выходное напряжение было выше 4.0 вольт, а в новой версии оно было увеличено до 4.5 вольт.
Характеристики
- Датчики – 5 шт. (ИК-отражающие, для слежения и следования по линии)
- Батарея – 900 мАч (литий-ионная, перезаряжаемая)
- Моторы – 2 шт. (маленькие металлические моторы-редукторы; передаточное число – 160:1)
- Grove-порты – 6 шт. (для расширения проекта)
- Гребешки контактов – для Arduino-совместимых шилдов
Режимы зарядки
Режим | Сила тока (амперы) | Выходная мощность (ватты) | Мощность зарядки (ватты) | Эффективность зарядки (%) | Время зарядки (часы) |
---|---|---|---|---|---|
Через USB | 0.396 | 3.94 | 3.56 | 90.36 | 2.50 |
Через контакт Vin | 0.7 | 6.78 | 6.30 | 92.92 | 1.41 |
Интерфейсы, моторы и датчики
- Переключатель питания. Если поставить его в положение «OFF» (т.е. «выкл»), то шилд-бот не будет работать, но вы по-прежнему сможете заряжать его батарею от USB-порта
- USB-порт. Порт MiniUSB, предназначенный для зарядки батареи
- Grove-порты. Предназначены для подключения Grove-модулей. Дают доступ к контактам D0, D1, D2, D3, D4, D5, A4 и A5
- Потенциометр. Предназначен для настройки чувствительности ИК-датчиков. Если крутить его по часовой стрелке, чувствительность будет увеличиваться, а если против – уменьшаться
- ИК-датчики. Используются для обнаружения линии. Пронумерованы от S1 до S5. Оснащены светодиодами, которые загораются синим, если датчики обнаруживают неотражающую поверхность
- Переключатель ИК-датчиков. Если поставить его в положение «ON», это подключит ИК-датчики к I/O контактам A0, A1, A2, A3 и D4. В демо-примере «LineFollowingSimple» эта возможность позволяет использовать данные от ИК-датчиков для управления шилд-ботом. Если этот переключатель стоит в положении «OFF», Seeeduino/Arduino не сможет управлять шилд-ботом при помощи данных от ИК-датчиков
- Гребешки для шилдов. Позволяют подключать к шилд-боту другие шилды
Примечания:
- Если ИК-датчик S5 включен, вы не сможете использовать Grove-коннекторы J14 и J13
- Можно использовать только одну последовательную линию Arduino (Grove-порт UART или J11), т.к. у всех них коммуникация проходит через линию D1/TX
Статусные индикаторы
Шилд-бот оснащен множеством светодиодных индикаторов, информирующих пользователя о различных состояниях устройства:
Номера индикаторов | Функция | Статус |
---|---|---|
D22 | Питание | Горит зеленым, если светодиод включен |
D23 и D24 | Статус зарядки | Загорается красный светодиод, если шилд-бот заряжается, или зеленый – если зарядка завершена. |
D18 | Сброс | Горит красным, если нажата кнопка сброса. |
D11 и D12 | Индикаторы правого мотора | Загорается зеленый светодиод, если мотор движется вперед, или красный – если назад. Если горят оба, то мотор неподвижен. |
D13 и D15 | Индикаторы левого мотора | Загорается зеленый светодиод, если мотор движется вперед, или красный – если назад. Если горят оба, то мотор неподвижен. |
D5, D10, D14, D17, D19 | Индикаторы датчиков света | Горит синим, если обнаружена неотражающая поверхность (например, линия черной ленты). |
Структура

Части 1, 2 и 3 сделаны на 3D-принтере. Части 1 и 2 (держатели мотора) одинаковы.
С чего начать
В этой главе будет рассказано, как настроить шилд-бота.
Подготовка
1. Подключите плату Arduino к нижней части шилд-бота, а затем подключите его к ПК при помощи USB-кабеля
2. Перед загрузкой кода переключатель ИК-датчиков лучше выставить в положение «OFF». В противном случае шилд-бот может неожиданно начать двигаться и даже напугать вас!
Для того, чтобы управлять шилд-ботом, разработчики написали библиотеку «Shieldbot» (ссылку на скачивание смотрите ниже, в разделе «Полезные ссылки»). В комплекте с нею также идет несколько демо-скетчей, демонстрирующих различные функции шилд-бота.
3. Загрузите библиотеку «Shieldbot» (ссылка на скачивание) и распакуйте ее. 4. Скопируйте папку библиотеки «Shieldbot» и поместите ее в папку библиотек IDE Arduino. Она находится по маршруту «...\arduino-1.0.1\libraries»
Подключение батареи
Чтобы шилд-бот мог ездить по земле, в него нужно установить батарею. Когда батарея будет установлена, вы сможете заряжать ее при помощи кабеля MiniUSB. Во время зарядки батареи будет гореть красный светодиод, а когда зарядка будет завершена – зеленый.
Примечание: Если вам нужно загрузить код, USB-порт платы Arduino/Seeeduino нужно подключить к ПК. USB-порт шилд-бота используется для зарядки батареи
Демо-скетчи
Эта глава расскажет о скетчах, демонстрирующих различные функции шилд-бота.
Демо-скетч 1: Управление моторами
- Откройте IDE Arduino и кликните на Файл > Примеры > Shieldbot > drive (File > Examples > Shieldbot > drive). Также выберите правильные плату и порт в меню Инструменты > Плата (Tools > Board) и Инструменты > Порт (Tools > Port)
- Загрузите этот скетч на Arduino/Seeeduino. Если код будет загружен успешно, в нижней части должна появиться надпись «Загрузка завершена» («Done uploading»)
- Загрузив код, отключите кабель от USB-порта
- Поставьте шилд-бот на просторное место и поставьте переключатель питания в положение «ON»
- После этого шилд-бот начнет перемещаться с заданной скоростью
Демо-скетч 2: Следование по черной линии
Шилд-бот оснащен ИК-датчиками (S1, S2, S3, S4, S5), которые умеют определять неотражающую поверхность (например, линию из черной ленты). Если ИК-датчик обнаруживает такую поверхность, у него загорается синий светодиод.
Демо-скетч ниже демонстрирует, как сделать так, чтобы шилд-бот следовал по черной линии. Важно: убедитесь, что переключатели ИК-датчиков стоят в положении «ON», и ни один из шилдов не использует контакты A0, A1, A2, A3 и D4.
1. При помощи USB-кабеля подключите Seeeduino к ПК и загрузите на шилд-бота скетч «LineFollowingSimple»
2. Загрузив код, поставьте шилд-бота на заранее подготовленный «трек»:

3. Покрутите потенциометр, чтобы изменить чувствительность ИК-датчиков. Если покрутить потенциометр по часовой стрелке, чувствительность будет увеличиваться, а если против – уменьшаться
Примеры использования
Эта глава расскажет о проектах, в которых используется шилд-бот V1.2.
Проект 1: Часы
Это очень простые часы. В этом проекте одно колесо шилд-бота движется вперед, а другое – назад. В результате ИК-датчики (вместе с шилд-ботом) перемещаются внутри круглого «обода», указывая на минуты. Спустя час шилд-бот передвигается по линейным рельсам, на которых расположены часовые отметки. Линейные «рельсы» сделаны из целлофановой ленты и дерева, оставшегося после лазерной резки.

Проект 2: Бот-бармен
Шилд-бот принимает заказ, а затем начинает двигаться по линии к трем бутылкам, где использует сервомоторы для того, чтобы налить определенное количество напитка. Налив нужные жидкости, шилд-бот возвращается к клиенту, сделавшему заказ.

Проект 3: Игра «Саймон»
Интересный, но незаконченный проект по созданию клона игры «Саймон» на два игрока. Шилд-бот проигрывает ноты, после чего игрок должен показать эти ноты на выпиленном «привидении». Затем шилд-бот подъезжает вперед и при помощи ИК-датчиков определяет, правильные ли ноты отметил игрок. В игру могут играть даже незрячие – благодаря тексту на шрифте Брайля.

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

Функции библиотеки «Shieldbot»
Чтобы воспользоваться в своем скетче библиотекой «Shieldbot», просто установите ее в IDE Arduino, а затем, работая над скетчем, просто создайте экземпляр класса Shieldbot в верхней части скетча, выше блока setup():
#include <Shieldbot.h> // подключение библиотеки «Shieldbot»
Shieldbot shieldbot = Shieldbot(); // объявление объекта «shieldbot»
Кроме того, библиотека «Shieldbot» включает в себя несколько функций:
- Функция setMaxSpeed(both). Задает максимальную скорость обоих моторов. Аргумент both – это и есть задаваемая скорость. Тип данных – int. Значения для аргумента both варьируются между «0» (полностью выключен) и «255» (полная скорость).
- Функция setMaxSpeed(left, right). Задает максимальную скорость для левого и правого моторов. Аргументы left – скорость для левого мотора, right – для правого. Тип данных – int. Значения для аргументов left и right варьируются между «0» (полностью выключен) и «255» (полная скорость).
- Функция rightMotor(mag). Активирует правый мотор. Чтобы мотор поехал вперед, в аргументе mag (тип данных – char) нужно указать положительное значение, а назад – отрицательное. Значение «-128» – полная скорость назад, «0» – не двигаться, «128» – полная скорость вперед. Если уменьшить скорость правого мотора, то шилд-бот начнет поворачиваться в этом направлении. Если направить моторы в противоположные стороны, шилд-бот начнется вертеться.
- Функция leftMotor(mag). Активирует левый мотор. Чтобы мотор поехал вперед, в аргументе mag (тип данных – char) нужно указать положительное значение, а назад – отрицательное. Значение «-128» – полная скорость назад, «0» – не двигаться, «128» – полная скорость вперед.
- Функция forward(). Включает моторы и заставляет их двигаться прямо вперед на скорости, заданной функцией setMaxSpeed().
- Функция backward(). Включает моторы и заставляет их двигаться прямо назад на скорости, заданной функцией setMaxSpeed().
- Функция drive(left, right). Напрямую вызывает функции leftMotor() и rightMotor(). Аргумент left – для левого мотора, а right – для правого мотора. Тип данных для обоих аргументов – char. Значения для этих аргументов варьируются между «-128» (полный назад), «0» (остановка») и «128» (полный вперед).
- Функция stop(). Отключает моторы. В качестве альтернативы можно воспользоваться drive(0,0)
- Функция stopLeft(). Отключает левый мотор. В качестве альтернативы можно воспользоваться drive(0,X)
- Функция stopRight(). Отключает правый мотор.
- Функция fastStop(). Быстро отключает оба мотора. Негативно влияет на драйвер моторов, так что используйте на свой страх и риск.
- Функция fastStopLeft(). Быстро отключает левый мотор. Негативно влияет на драйвер моторов, так что используйте на свой страх и риск.
- Функция fastStopRight(). Быстро отключает правый мотор. Негативно влияет на драйвер моторов, так что используйте на свой страх и риск.
- Функции readS1(), readS2(), readS3(), readS4(), readS5(). Используются для считывания данных с ИК-датчиков. Но просто добавить эти функции в код недостаточно – вам также нужно подключить эти ИК-датчики к портам Arduino-чипа, выставив переключатель нужного ИК-датчика в положение «ON». Если переставить его в «OFF», это освободит порты Arduino-чипа для других задач. Возвращаемое значение: LOW – если датчик обнаружил светоотражающую (например, белую) поверхность, HIGH – если обнаружил поверхность, которая не отражает свет (например, черная).

Полезные ссылки
- Библиотека «Shieldbot»
- Eagle-файлы со схемой шилд-бота
- PDF-файл со схемой шилд-бота
- Даташит ИК-датчика RPR-220
- Даташит повышающего регулятора напряжения ISL97516
- Даташит чипа-контроллера BQ2057, предназначенного для управления зарядкой от литий-ионного аккумулятора
- Даташит драйвера моторов (Н-мост) L298
- Даташит операционного усилителя LMV358 (служит компаратором для ИК-датчиков)
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Электронный компонент
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Шилд-бот V1.2
- Платформа Arduino
- Arduino платформа
- Arduino