Электронный компонент:Шилд-бот 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 не сможет управлять шилд-ботом при помощи данных от ИК-датчиков
  • Гребешки для шилдов. Позволяют подключать к шилд-боту другие шилды

Примечания:

  1. Если ИК-датчик S5 включен, вы не сможете использовать Grove-коннекторы J14 и J13
  2. Можно использовать только одну последовательную линию 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: Управление моторами

  1. Откройте IDE Arduino и кликните на Файл > Примеры > Shieldbot > drive (File > Examples > Shieldbot > drive). Также выберите правильные плату и порт в меню Инструменты > Плата (Tools > Board) и Инструменты > Порт (Tools > Port)
  2. Загрузите этот скетч на Arduino/Seeeduino. Если код будет загружен успешно, в нижней части должна появиться надпись «Загрузка завершена» («Done uploading»)
  3. Загрузив код, отключите кабель от USB-порта
  4. Поставьте шилд-бот на просторное место и поставьте переключатель питания в положение «ON»
  5. После этого шилд-бот начнет перемещаться с заданной скоростью

Демо-скетч 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 – если обнаружил поверхность, которая не отражает свет (например, черная).

Полезные ссылки

См.также

Внешние ссылки