раздел «Рисование» в «Палитре». Приведем целиком таблицу назначений блоков из
«Помощи» программы.
Название
элемента
Пиктограмма
Описание
Цвет кисти
Указать цвет, которым будут
рисоваться простые графические
фигуры на экране робота.
Ширина кисти
Указать ширину линии, которой
будут рисоваться простые
графические фигуры на экране
робота.
Нарисовать
точку
Нарисовать на экране точку в
указанных координатах.
Нарисовать
линию
Нарисовать на экране отрезок. В
качестве параметров блоку
указываются концы отрезка.
Нарисовать
прямоугольник
Нарисовать на экране
прямоугольник. В качестве
параметров указываются
координаты левого верхнего угла,
ширина и высота прямоугольника.
78
Нарисовать
эллипс
Нарисовать на экране эллипс,
вписанный в заданный
прямоугольник.
Нарисовать
дугу
Нарисовать на экране дугу,
задающуюся координатами
прямоугольника, в который она
будет вписана, и углами (в
градусах) её начала и конца на
окружности. Если начало и конец
совпадают, будет нарисована
полная окружность.
Смайлик
Нарисовать на экране смайлик.
Грустный
смайлик
Нарисовать на экране грустный
смайлик.
Цвет фона
Задаёт цвет фона экрана.
Напечатать
текст
Печатает заданную строку в
заданном месте на экране робота.
Значение свойства "Текст" по
умолчанию трактуется как строка в
чистом виде, оно так и будет
выведено на экран. Чтобы система
считала, что это выражение на
текстовом языке (это может быть
полезно, например, при отладке
значения переменных), поставьте
галочку "Вычислять" в редакторе
свойств.
79
Очистить экран
Стереть всё, что нарисовано на
экране.
В качестве примера приведем следующую программу с движением по экрану:
В результате ее выполнения получится двигающаяся картинка
При расчетах не забывайте о существовании полярных координат.
80
Формулы перевода из полярных координат в прямоугольные и обратно выглядят
следующим образом:
X = R
×
cos ∝
; Y = R
×
sin ∝
R =
√X + 𝑌
;
tan ∝
=
𝑌 𝑋
⁄
81
Задания для закрепления материала
82
Встреча 21. Мы вместе
Контроллеры ТРИК могут взаимодействовать друг с другом по протоколу WiFi, если
они находятся в одной сети. Настройка взаимодействия производится непосредственно на
контроллерах в меню «Настройка» – «Взаимодействие». Каждому контроллеру
присваивается свой бортовой номер и выбирается один контроллер, который будет
«Ведущим». Его IP-адрес прописывается в настройках всех взаимодействующих
контроллеров.
Для обмена данными используются блоки «Послать сообщение»
и «Получить сообщение»
Свойство «Дождаться сообщения» останавливает работу программы в случае, если
очередь сообщений пустая, либо позволяет продолжить ее выполнение, записав в
переменную пустую строку или 0.
Пример взаимодействия роботов: «Лотерея». Главный контроллер случайным
образом выбирает, кому из трех роботов отправить сообщение о выигрыше, счастливчик,
получивший сообщение, естественно, бурно радуется.
Программа для главного контроллера
Программа для «Счастливчика»:
Отступление 15. Сохраним информацию
83
Для того чтобы сохранить нужную нам информацию, например, показание
датчиков, можно записать ее в файл, который будет находиться на контроллере,
воспользовавшись блоком «Записать в файл»:
Файл можно получить с робота, например, воспользовавшись программой WinSCP
под Windows или scp под Linux. Для удаления файла – блок «Удалить файл»:
Не забывайте, что для работы с файлами существует возможность вызова
системных команд. При настройке сети мы добавляли запись в конец файла
wpa_supplicant.conf.
84
Задания для закрепления материала
85
Встреча 22. Гироскоп, акселерометр
Не все датчики контроллера ТРИК требуют проводного подключения, на плате
контроллера расположены гироскоп и акселерометр. Эти два датчика применяются в
основном для ориентации в пространстве и стабилизации положения робота или его
частей.
Гироскоп показывает изменение углов ориентации тела, то есть угловые скорости в
трех плоскостях. Акселерометр измеряет разность между истинным ускорением объекта и
гравитационным ускорением. Комбинация гироскопа и акселерометра позволяет
отследить и зафиксировать движение в трехмерном пространстве.
Для этих двух датчиков зарезервированы переменные gyroscope и accelerometer,
представляющие собой одномерные массивы из трех элементов, которые показывают
отклонения по осям X,Y,Z.
Гироскоп – датчик наклона. Следующая программа сигнализирует о том, что угол
наклона изменился, например, робот наехал на препятствие. Сначала откалибруем
гироскоп, высчитаем его среднее значение в состоянии покоя AvgGyr:
.
Именно это среднее значение мы и будем использовать в нашей программе.
Если добавить такой контроль в программу «Исследователь», то защита от
попадания в безвыходное положение нам обеспечена.
У акселерометра существует второе название – датчик виброускорения. По
виброускорению можно судить о величине колебательных сил, действующих на объект,
поэтому акселерометры используются помимо известного всем применения в телефонах,
86
планшетах и схожих гаджетах, в контрольно-измерительных приборах в различных
отраслях: начиная с медицинской и пищевой и заканчивая отраслями промышленности с
взрывоопасными условиями эксплуатации оборудования.
Оси координат контроллера расположены следующим образом:
Углы поворотов вокруг осей высчитываются так:
Вокруг оси Y: arctg(accelerometer[1]/accelerometer[3]),
Вокруг оси X: arctg(accelerometer[3]/accelerometer[2]),
Вокруг оси Z: arctg(accelerometer[2]/accelerometer[1]).
Измерение углов ведется в радианах.
Выведем на дисплей значение угла отклонения по оси Y, то есть по горизонтали.
Высчитывая angleX, angleY и angleZ и сравнивая их с критическими значениями, мы
получили программу контроля вибровоздействия.
Для точного позиционирования робота в пространстве использование только
гироскопа или акселерометра недостаточно. Оба этих датчика наравне со своими
преимуществами имеют и свои недостатки, такие как дрейф нуля и высокочастотный
шум. Применяя фильтры, можно добиться приемлемых результатов.
Комплементарный фильтр для вычисления угла отклонения:
A = (1-K)
×
gyr + K
×
acc
Здесь
A – отфильтрованный, результирующий угол наклона;
gyr и acc – значения угла наклона, полученные при помощи гироскопа и
акселерометра;
87
K – коэффициент комплементарного фильтра, как правило, подбирается вручную
для каждого отдельного случая.
88
Задания для закрепления материала
89
Встреча 23. Дистанционное управление
Робот может двигаться не только автономно, им можно управлять при помощи
android-приложения
TRIK
Gamepad
(ссылка
для
скачивания
https://play.google.com/store/apps/details?id=com.trik.gamepad&hl=ru)
В приложении имеется два джойстика, для управления моторами и 5
программируемых кнопок, посылающих сигнал контроллеру. С помощью приложения
можно выводить трансляцию видео на экран мобильного устройства.
Рассмотрим программу движения робота, находящуюся в папке «Examples» (путь по
умолчанию C:\TRIKStudio\examples\trik): remoteControl.
Сначала запускается трансляция и идет ожидание подключения пульта. В блоке “if”
проверяется, нажат ли левый джойстик. Если значение блока “if” истинно, то на моторы
подается мощность, зависящая от того, где находится палец на координатной оси, осями
являются горизонтальные и вертикальные клавиши джойстика.
Можно запрограммировать правый джойстик при помощи переменной gamepad2Pad
и иконки «Ждать “руля” на пульте». Клавиши, расположенные внизу экрана,
программируются при помощи блока «Ждать кнопки на пульте».
Список зарезервированных переменных:
buttonDown, buttonEnter,
buttonEsc, buttonLeft,
Состояние кнопок на корпусе робота: кнопки "Вниз",
"Ввод", "Отмена", "Влево", "Питание", "Вправо",
90
Программа для пульта управления роботом на гусеничном ходу с хватом,
расположенным на стреле и видеокамерой. За подъем стрелы отвечает силовой мотор
(использована червячная передача) M3. Тяговые моторы – M1 и M2. Хват открывает и
закрывает сервомотор E1.
buttonRight, buttonUp
"Вверх" соответственно. Кнопка нажата – значение 1, не
нажата – 0.
gamepadButton1,
gamepadButton2,
gamepadButton3,
gamepadButton4,
gamepadButton5
Состояние кнопок на Android-пульте, кнопки с 1 по 5
соответственно. Кнопка нажата – значение 1, не нажата
– 0.
gamepadConnected
Состояние подключения Android-пульта, Пульт
подключен – значение 1, не подключен – 0.
gamepadPad1, gamepadPad2
Координаты нажатия активных областей на Android-
пульте. Каждая переменная хранит в себе массив из двух
элементов, соответствующих x и y-координате точки
нажатия. Координаты изменяются в границах от (-100, -
100) до (100, 100), где (-100, -100) соответствует левому
верхнему углу активной области. В случае если область
не нажата, в переменной находится значение (-101, -101).
gamepadPad1Pressed,
gamepadPad2Pressed
Содержат 1, если соответствующая активная область на
Android-пульте нажата и 0, если нет.
gamepadWheel
Содержит текущий наклон Android-пульта, если он
подключён и на нём включён "руль". Наклон кодируется
числами от -100 (крайнее левое положение) до 100
(крайнее правое положение). Если данных о положении
"руля" нет, в переменной находится число -101.
91
При нажатии кнопок:
1 – веселый «Смайлик»
2 – «Грустный смайлик»
3 – робот произносит: «Hello, I am TRIK»
4 – очистка дисплея.
Видеотрансляция выводит изображение с камеры на Android-пульт сразу же с
началом программы.
92
93
ЗАКЛЮЧЕНИЕ
Среда TRIK Studio – действительно уникальный продукт, рассчитанный как на
начинающих, так и на «продвинутых» пользователей. В первой части задачника не была
затронута важная особенность TRIK Studio – возможность генерации кода программы.
Создавая программу в виде диаграммы, мы всегда можем увидеть, как она выглядит на
текстовых языках программирования RuC, Pascal, F#, JavaScript. Для этого достаточно
нажать на иконку «Генерировать код». Обратное действие также существует. Написав
программу на текстовом языке, через TRIK Studio возможно загрузить ее на контроллер
для исполнения. Способы общения с контроллерами, написание программ на текстовых
языках, использование специфических особенностей контроллера ТРИК – все это будет
рассмотрено в продолжении этого пособия.
Надеемся, что предложенное издание было Вам чем-нибудь полезным и
пригодилось в учебной деятельности. Авторы рассчитывают на получение обратной связи
от читателей для того, чтобы сделать задачник лучше.
Контактная информация: m.kisselev@yandex.ru
mm.kiselev@yandex.ru.
94
Литература
1.
The LEGO Technic Idea Book: Simple Machines Paperback– October 25, 2010
by YoshihitoIsogawa
2.
Филиппов С.А. Робототехника для детей и их родителей. 3-е издание. С-Пб:
Наука, 2013
3.
Д.Г. Копосов. Первый шаг в робототехнику (практикум). Бином, 2012
4.
Введение в программирование Lego-роботов на языке NXT-G. Учебное
пособие для студентов и школьников: Учебное пособие / Джендер В.О., Денисова Л.В. -
М.: Национальный открытый университет "ИНТУИТ", 2014.
5.
ОБРАЗОВАТЕЛЬНАЯ
РОБОТОТЕХНИКА.
СБОРНИК
МЕТОДИЧЕСКИХ
РЕКОМЕНДАЦИЙ
И
ПРАКТИКУМОВ. Автор: Корягин А.В., Смольянинова Н.М.
6.
Пёрышкин А.В. Сборник задач по физике: 7 -9 кл.: к учебникам А.В.
Пёрышкина и др. «Физика. 7 класс», «Физика. 8 класс», «Физика. 9
класс»/А.В.Пёрышкин; сост. Г.А.Лонцова. – 7-е изд., перераб. и доп. – М.: Издательство
«Экзамен», 2012.
7.
Поливанова К.Н. Проектная деятельность школьников: пособие для учителя
/ К.Н. Поливанова. – 2-е изд. – М.: Просвещение, 2011
8.
Полякова Т.Н. Педагогический метод проектов: учебно-методическое
пособие. – СПб: Спб АППО, 2012
9.
Босова Л.Л., Босова А.Ю. Информатика и ИКТ. Методическое пособие для
учителя.
10.
Босова Л.Л., Босова А.Ю. Программа для углубленного изучения курса
«Информатика и ИКТ» в основной школе (5-7 классы), 2012
11.
С. Макконнелл - Совершенный код
12.
Харольд Абельсон, Джеральд Джей Сассман - Структура и Интерпретация
Компьютерных Программ
13.
Д. Кнут «Искусство программирования»
14.
Никлаус Вирт Алгоритмы и структуры данных. Новая версия для
ОберонаИздательство: ДМК Пресс Год: 2010
15.
Яншин В. В. Анализ и обработка изображений: принципы и алгоритмы.
Издательство: Машиностроение Год: 1994
16.
Стивен Скиена. Алгоритмы. Руководство по разработке, 2-е издание
Издательство: БХВ-Петербург Год: 2011
17.
Ананий Левитин Алгоритмы: введение в разработку и анализ Издательство:
Вильямс Год: 2006
18.
С. Окулов Программирование в алгоритмах Издательство: Бином.
Лаборатория знаний Год: 2004
19.
Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд
ШтайнАлгоритмы. Построение и анализ, 2-ое издание Издательство: Вильямс Год: 2005
Интернет-ресурсы
1.
www.239.ru/robot -Центр робототехники Президентского ФМЛ №239.
2.
www.raor.ru - Российская ассоциация образовательной робототехники.
3.
www.wroboto.ru - Российский сайт, посвященный подготовке к состязаниям
WRO.
4.
www.myrobot.ru - Информационный сайт, посвященный робототехнике.
5.
www.railab.ru - Лаборатория робототехники и искусственного интеллекта
Политехнического музея.
6.
www.robotchallenge.org -
Ежегодный международный чемпионат по
робототехнике в Австрии.
95
7.
www.edurobots.ru -
Информационный сайт "Занимательная робототехника".
8.
www.robogeek.ru -
Информационный сайт Robogeek.
9.
www.
robotics.ru- каталог сайтов по робототехнике.
10.
www.trikset.com – сайт проекта ТРИК.
11.
www.robolymp.ru – сайт Всероссийской робототехнической олимпиады.
12.
www.lego.com/ru-ru/ - Российский сайт Lego.
13.
www.russianrobofest.ru – сайт робототехнического фестиваля Робофест.
14.
www.rus-robots.ru - сайт Ассоциации Спортивной Робототехники.
Достарыңызбен бөлісу: |