Расширенный набор датчиков РОББО Платформы и Robbo Scratch 3

Материал из robbo

Автор

Захаров Леонид Сергеевич

Введение

Базовая модель РОББО Платформы содержит: датчики линии, касания, света, дальномер и фонарик. На основе базового набора датчиков можно научить робота:

  • ездить по черной линии,
  • находить препятствия на расстоянии до 5 см или касанием и при этом менять траекторию движения: останавливаться, объезжать, отъезжать.
  • включать фонарик, кода робот заезжает в тень.

После знакомства с основами программирования роботов с использованием базовой модели, можно рассмотреть решение новых задач с использованием датчиков и устройств Extension Pack (пакет расширений):

  • определение цвета препятствия,
  • захват предметов,
  • находить препятствия на большем расстоянии (до 2 м) и менять траекторию движения,
  • сортировка предметов по цвету (комбинация возможностей определения цвета и захвата предмета) и др.
Extension Pack 011.jpg  Extension Pack 012.jpg

Общий вид РОББО Платформы с Extension Pack

В данной статье описывается содержание и приемы использования Extension Pack для РОББО Платформы. Будут описаны: манипулятор-захват («лапа»); два датчика, которые умеют различать предметы красного, синего и зеленого цвета (у одного датчика сенсор направлен вперед, у другого вниз); ультразвуковой дальномер.

В расширенный набор для РОББО Платформы входят следующие устройства:

1. Манипулятор-захват (рис. 1)

Extension Pack 01.jpg

Рис. 1 Манипулятор-захват.

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

2. Датчики RGB (рис. 2) (у одного сенсор направлен вперед, у другого вниз).

Extension Pack02.jpg

Рис. 2 Датчики RGB.

Этот датчик предназначен для определения цвета, основываясь на получаемых значениях, совпадающих со шкалой цвета RGB. Значения по шкале RGB можно присваивать трем переменным.

3. Ультразвуковой дальномер (рис.3).

Extension Pack03.jpg

Рис. 3 Ультразвуковой дальномер.

Этот датчик предназначен для определения расстояния до препятствий в сантиметрах. Рабочий диапазон датчика от 3 до 400 сантиметров.

Для работы потребуется скачать и установить Robbo Scratch 3.0 по адресу: Папка для скачивания последней версии Robbo Scratch 3.0 Запустив приложение и подключив при помощи шнура USB робота к компьютеру (датчики должны быть сняты), нажимаем на кнопку в верхней части меню «Поиск устройств» (рис. 4).

Extension Pack04.jpg

Рис. 4 Меню приложения.

В случае успешного обнаружения, робот будет отмечен зеленым маркером (рис. 5). Если робот не подключится – повторите поиск.

Extension Pack05.jpg

Рис. 5 Маркер подключения робота.

Для использования расширенного набора, нужно включить эту возможность в верхнем меню (рис.6): Роббо меню – Расширенный набор датчиков (1). Затем кликнуть по маркеру робота (2), в открывшемся окне выбрать порт, к которому подключен датчик (3), затем в новом открывшемся окне выбрать тип подключаемого датчика (4).

Extension Pack06.jpg

Рис. 6 Подключение расширенного набора датчиков.

Настойка и тестирование датчика RGB.

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

Extension Pack07.jpg

Рис. 7 Лист для тестирования датчика.

Запустив приложение и подключив устройство, устанавливаем в порт №1 датчик RGB (сенсор смотрит вниз), в порт №4 светодиод (фару). Выбираем соответствующий тип датчиков, подключенных к портам №1 и №4 (рис. 6). Создаем 3 переменных R, G и B и последовательно ставим напротив них отметки, чтобы значения переменных отображались в окне (рис. 8).

Extension Pack08.jpg

Рис. 8. Создание переменных.

Для тестирования создаем небольшой скетч (рис. 9). Его также можно загрузить по адресу Скачать.

Extension Pack091.jpg

Рис. 9. Скетч для тестирования и определения цветов.

Первая часть скетча – получение данных по цветам с датчика – необходимо для настройки и калибровки. Вторая часть скетча – работа по определению цвета и визуализации процесса при помощи смены расцветки персонажа. Теперь можно перейти к калибровке датчика RGB. Устанавливаем робота с подключенными датчиками на ровную поверхность, подкладываем под датчик белый лист, выбираем в верхнем меню: Роббо меню – Таблица коррекции датчика 1, нажимаем на кнопку «Automatic correction» (рис. 10).

Extension Pack10.jpg

Рис. 10. Автоматическая калибровка датчика по балансу белого.

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

Extension Pack11.jpg

Рис. 11. Точная калибровка определения красного цвета.

Теперь сравним реальные значения переменных с диапазонами, в которых они должны находиться. Результаты сравнения для удобства размещены в таблице (рис. 12), у вас, разумеется, значения переменных могут быть другими.

Extension Pack12.jpg

Рис. 12. Таблица значений переменных и настроечных диапазонов

Проанализировав данные, можем увидеть, что значение переменной В не попадает в настроечный диапазон, поэтому увеличим верхнюю границу диапазона с 27.00 до 32.00 и нажмем кнопку «Применить изменения». Далее настроим определение зеленого цвета (рис. 13).

Extension Pack13.jpg

Рис. 13. Точная калибровка определения зеленого цвета.

По аналогии с настройкой красного цвета, уменьшим нижнюю границу диапазона R с 23.00 до 18.00. Нижняя граница диапазона G слишком близка к значению переменной, поэтому уменьшим ее с 38.00 до 35.00. Переменная В попадает в диапазон, поэтому оставим ее без изменений. С синим цветом необходимо проделать то же самое. Подкладываем под датчик синий прямоугольник (рис.14)

Extension Pack14.jpg

Рис. 14. Точная калибровка определения синего цвета.

Здесь нужно уменьшить нижнюю границу диапазонов G и В. Теперь, закончив калибровку, сохраним эту настроечную таблицу для этого проекта в файл с расширением *. json, нажав на кнопку «Сохранить» внизу настроечной таблицы. Таким образом, данные настройки можно использовать в дальнейшем загрузив файл с помощью кнопки «Загрузить». После калибровки определение цвета работает устойчиво. Проверим работу скетча, подкладывая под датчик прямоугольники красного, зеленого, синего и, например, белого цветов. Белый цвет: персонаж-робот в окне программы не отображается, фара не горит. Красный цвет: костюм персонажа-робота в окне программы становится красным, фара горит. Зеленый цвет: костюм персонажа-робота в окне программы становится зеленым, фара горит. Синий цвет: костюм персонажа-робота в окне программы становится синим, фара горит. Таким образом, настроенный (калиброванный) датчик RGB, установленный в порт 1, можно использовать в проектах по определению цветов и сортировке датчика RGB. При смене порта, калибровку датчика необходимо провести повторно.

Установка, подключение, настройка и калибровка захвата-манипулятора «Клешня».

Клешня устанавливается достаточно просто – надевается отверстиями на головки болтов, которыми крепится верхняя панель аккумуляторного отсека робота.

Extension Pack15.jpg

Рис. 15 Установка клешни.

Для подключения у клешни имеется трехконтактный разъем («GND», «+5V» и «сигнал»). Белой точкой на разъеме промаркирована клемма «GND». С помощью трехконтактного разъема клешня подключается к дополнительному разъему робота к контактам «GND», «5V» и «D13» (рис. 16).

Extension Pack16.jpg

Рис. 16 Подключение клешни.

Для настройки и калибровки клешни запускаем Robbo Scratch 3.0, и подключаем робота. Поскольку клешня предназначена для захвата легких предметов, преимущественно алюминиевых банок от газированных напитков, а они могут иметь разные размеры, то настройка и калибровка заключается в определении необходимого угла закрытия лепестков клешни для захвата предмета. Для управления клешней в Robbo Scratch 3.0 предусмотрено два оператора. Первый позволяет установить угол закрытия клешни в %, второй установить одно из трех положений клешня «открыта», «полузакрыта» или «закрыта». (рис. 17).

Extension Pack17 .jpg

Рис. 17 Операторы управления клешней.

Таким образом, если положение клешни, которое устанавливается при использовании оператора «полузакрыта» удовлетворяет потребностям – предмет удерживается захватом, не сжимается слишком плотно, но в то же время позволяет роботу перемещать предмет, не теряя его, то настройка и калибровка не требуется, и в своих проектах вы можете пользоваться этим оператором №2. Если же угол закрытия клешни необходимо подкорректировать, то в проектах нужно использовать оператор №1, а для определения необходимого угла закрытия клешни напишем простой скетч скачать по ссылке.(рис. 18).

Extension Pack18.jpg

Рис. 18 Настроечный скетч для клешни.


Открываем блок операторов «переменные», делаем переменную «claw» видимой. С помощью клавиши «пробел» запускаем основную программу скетча, с помощью клавишей «стрелка вправо» и «стрелка влево» закрываем – открываем клешню, ориентируясь на значение переменной подбираем необходимый угол. Подобрав нужное значение, которое в дальнейшем и будем использовать для своих проектов. Для демонстрации работы клешни напишем простой скетч по транспортировке груза. Робот должен двигаться по черной линии, обнаружить на линии банку при помощи датчика препятствия, захватить ее, доставить до пункта назначения (т-образный перекресток), оставить ее и отъехать назад (рис.19). Скачать скетч можно по адресу (скачать по ссылке)

Extension Pack19.jpg

Рис. 19 Скетч - пример использования клешни для транспортировки предметов.

Для реализации скетча установим в порты 2 и 5 датчики линии, в порт 1 установим датчик препятствия и выберем их в меню выбора датчиков (рис. 20).

Extension Pack20.jpg

Рис. 20 Выбор типа датчиков.

Видео

Ультразвуковой дальномер.

В RobboSkretch 3.0 дальность датчика ограничена до 2 метров. Однако в практическом применении и такой дальности слишком много. С датчика получаем данные в виде расстояния до препятствия в сантиметрах. Для демонстрации работы датчика поставим роботу следующую задачу: Робот будет двигаться по черной линии кольцевой трассы с вариантом объезда (рис. 21). В случае, если нет препятствия, робот будет проезжать по кольцевой трассе. Если будет установлено препятствие, робот должен проехать в объезд.

Extension Pack21.jpg

Рис. 21 Трасса.

На порты 2 и 5 установим датчики линии, в порт 1 установим ультразвуковой дальномер, выберем соответствующий тип датчиков (рис.22).

Extension Pack22.jpg

Рис. 22 Выбор типа датчиков.

В этот раз подключим робота к компьютеру при помощи Bluetooth. Соответственно, настройки скетча будут более подходящими для этого типа связи (рис. 23). Скачать скетч можно по адресу: Ссылка на скачивание

Extension Pack23.jpg

Рис. 23. Скетч «объезд препятствия».

Видео

Сортировка банок в Robbo Scratch 3

1 шаг - калибровка датчика по балансу белого цвета

2 шаг - выполнение скетча при помощи Bluetooth. Для питания используется аккумулятор типа Крона.

Просмотр видео по ссылке


Сортировка банок в Arduino IDE

В робота загружается прошивка из Arduino IDE, для питания используется аккумулятор типа Крона. Скорость и точность выполнения задачи по сортировке выше, чем в Robbo Scratch 3.

Просмотр видео по ссылке

В заключении

Отметим, что данный набор задач с использованием датчиков и устройств Extension Pack (пакет расширений) не является окончательным. Читателям предлагается самостоятельно составить новые задачи и опубликовать их решение на данном портале. Сравнение видео работы робота под Robbo Scratch 3 и под Arduino IDE позволяет наглядно показать, что главная миссия Robbo Scratch 3 - ввести ребенка в мир робототехнике. Самое интересное программирование делается, конечно, на языках высокого уровня.