Исполнитель Робот предназначен для программирования в среде TRIK Studio.
Для этого представлено три файла:
commands.py – файл с классом Robot, необходим для использования исполнителя
program.qrs – файл TRIK Studio. Открывается совместно с файлом
program.py, в котором можно набирать пользовательский код.
Первые 8 строчек файла prorgam.py являются обязательными и нередактируемыми.
Размещайте ваш код после них.
Robot.set_color(‘color’) – задать цвет пера. По-умолчанию используется черный цвет.
Цвет можно задать по названию на английском языке (например, red, green, blue).
Robot.pen_up() – поднять перо. После этого робот будет перемещаться не оставляя
за собой след. Изначально перо поднято.
Robot.pen_down() – опустить перо. После этого робот будет перемещаться
оставляя за собой линию.
Robot.forward(distance) – перемещение робота вперед на расстояние distance.
Robot.backward(distance) – перемещение робота назад на расстояние distance.
Занятие №4 по TRIK Studio. Кегельринг только с ультразвуковым датчиком
Robot.left(angle) – вращение робота против часовой стрелки на angle градусов.
Robot.right(angle) – вращение робота по часовой стрелке на angle градусов.
Примечание. В связи с некоторыми особеностями организации вращения робота, имеется
погрешность поворота.
Источник: andrewrogov.ru
TRIK Studio: базовые алгоритмы
На этом занятии мы рассмотрим прямолинейное движение и повороты с использованием тайм-модели..
Откройте TRIK Studio и создайте новый проект. Каждая программа или подпрограмма в проекте должна начинаться с блока «Начало». Выберите его из палитры и перетащите на рабочее поле. Для завершения программы используется блок «Конец». Выберите его и перетащите на поле диаграммы на некотором расстоянии от блока «Начало».
После этого добавьте на рабочее поле блок «Моторы вперёд». Для поиска нужного блока можно ввести его название в строку поиска, расположенную в палитре над списком блоков. Для соединения блоков нажмите правую кнопку мыши на блоке «Начало» и нарисуйте линию от него до блока «Моторы вперёд». В случае успешного соединения блоков между ними появится стрелка чёрного цвета.
Стрелка красного цвета означает то, что соединения нет. Соедините блок «Моторы вперёд » с блоком «Конец» таким же образом. В результате получится связанная друг с другом последовательность блоков.
Блок «Конец» расположен далеко от блока «Начало» для того, чтобы при добавлении блоков каждый раз не отодвигать его вправо. Блоки можно двигать как при помощи курсора мыши, так и при помощи курсорных клавиш. Для изменения масштаба поля диаграммы используйте сочетания клавиш Ctrl+ и Ctrl-
Занятие №6 по TRIK Studio. Релейный регулятор
Нажмите кнопку «Выполнить» для запуска программы и переход в режим отладки. Тележка не сдвинулась с места. Почему? Блок «Начало» можно представить в качестве кнопки включения питания, а блок «Конец» — в качестве кнопки выключения питания. Таким образом, наша программа состоит из команд:
- Включить питание
- Моторы вперёд
- Выключить питание
Робот исполняет простые команды очень быстро и после команды «Моторы вперёд» сразу выполняется команда выключить питание. Для исправления этой ситуации в программу необходимо добавить условие работы моторов, например, задержку при помощи таймера.
Прямолинейное движение
Выберите блок «Таймер» из палитры и перетащите его на стрелку после блока «Моторы вперёд». После этого сдвиньте этот блок на пару клеток вдоль стрелки. В случае успеха блок автоматически соединится с окружающими его блоками. Другой способ встраивания состоит в том, чтобы конец или начало имеющейся на диаграмме стрелки соединить с новым блоком, а недостающую связь нарисовать, удерживая правую кнопку мыши.
В ходе выполнения программы можно видеть движение тележки на максимальной скорости вперёд в течение одной секунды. Введите в поле ввода таймера задержку 3000, а в поле ввода скорости -50%. Теперь тележка будет двигаться назад с в течение трёх секунд со скоростью в два раза меньше.
После отладки программы её можно сделать в виде подпрограммы. Это даст возможность сохранять подпрограммы в одном библиотечном проекте для удобного дальнейшего использования. Давайте так и поступим. Выберите на палитре и перетащите на диаграмму блок «Подпрограмма». После его добавления на поле откроется диалог с предложение дать имя подпрограмме.
Назовём её «Прямолинейное движение». После ввода имени подпрограмма добавится на палитру в список под списком блоков. Выполните двойной щелчок левой кнопкой мыши на пиктограмме подпрограммы (на диаграмме) для отображения её вкладки с диаграммой. После этого скопируйте из главной диаграммы программу и вставьте её на диаграмму подпрограммы.
Для запуска и тестирования подпрограммы нужно открыть её вкладку и нажать кнопку «Выполнить». После успешной отладки подпрограммы её можно удалить из главной диаграммы проекта.
Прямолинейное движение тележки происходит по причине вращения валов моторов с одинаковой скоростью в одном направлении. При изменении этого условия при прочих равных условиях будет происходить увод тележки с прямолинейного движения или поворот. Существуют повороты следующих видов:
Для лучшей наглядности заставим тележку рисовать линию при своём движении. Для этого перед таймером добавьте блок «Опустить маркер»
Резкий поворот
Для выполнения резкого поворота необходимо выключить один из моторов тележки. Для поворота направо выключается правый мотор, налево — левый. Ниже дан один из примеров программы для осуществления резкого поворота налево.
Эта программа позволяет получить нужный результат, но с практической стороны она не совсем корректна, так как вместо остановки мотора мы его просто убрали из диаграммы. Если кто-то увидит такую программу, то он может решить, что на тележке установлен только один мотор. Приведём программу к корректному виду, добавив блок «Моторы стоп».
Теперь видно, что в модели используется два мотора, один из которых выключен.
Плавный поворот
Для совершения плавного поворота нужно указать для двух моторов разную величину скорости.
Чем меньше разница скоростей моторов, тем больше будет радиус поворота. Проверьте это, указав для второго мотора значение скорости 80%, а затем 10%.
Поворот на месте
Для поворота на месте необходимо задать одинаковую скорость работы обоих моторов, но в противоположных направлениях.
Для каждого вида поворота подберите время, за которое тележка совершает поворот на 360 градусов. Это пригодится для рисовании тележкой фигур, программирования движении в известном лабиринте и др.
Быстрее всего разворот тележки осуществляется при помощи поворота на месте, а медленнее всего — при плавном повороте.
Радиусом поворота называется радиус воображаемой дуги, по которой перемещается центр тяжести транспортного средства. Автомобили имеют разные габариты и на практике важно знать минимальный и максимальный габаритный радиус. По этим параметрам двухмоторная тележка имеет большое преимущество перед одномоторной с рулевым управлением. Сравните возможности поворота, например, гусеничного трактора и легкового автомобиля.
Во всех рассмотренных примерах условие работы моторов задаётся при помощи временной задержки. Модели, движение которых происходит в течение заданного времени (по таймеру), называются тайм-моделями. К преимуществам тайм-моделей относится простота и невысокая стоимость реализации. К недостаткам — зависимость пройденного пути от величины заряда питающей батареи.
Для моделирования снижения заряда батареи установите скорость на 90% и запустите программу. Для более наглядной демонстрации можно использовать движение вперёд и назад. При движении вперёд задайте скорость равной 100%, а при движении назад — 90% и измените цвет линии на красный.
Помимо величины заряда питающей батареи на практике нужно учитывать внешние условия — характер поверхности, по которой движется устройство, препятствия, а также конструкцию и технические характеристики самого устройства. Может получиться так, что при повороте на ковре мощности двигателей не хватит и устройство либо вообще не повернётся, либо сможет повернуться на меньший угол.
После изучения базовых программ движения перейти к программированию сложных движений.
Источник: droidscript.ru
Начало работы в TRIKStudio
методическая разработка по технологии (4 класс)
3 Движение вперед Движение вперед базовой тележки задается подачей на левый и правый мотор одинаковой скорости. В TRIK Studio для подачи мощности на мотор существует отдельный блок «Моторы вперед» . У этого блока два свойства: Порты Скорость.
4 Движение вперед
5 Подключение моторов У контроллера ТРИК четыре порта для подключения силовых моторов: M1 , M2 , M3 и M4 .
6 Подключение моторов Подключение моторов в 2D-модели по умолчанию: левый — к порту M3 правый — к порту M4 . Настройку подключения моторов можно изменить в режиме отладки на центральной панели в разделе «Моторы».
7 Подключение моторов
8 Движение назад Движение назад выполняется аналогично. Используем блок «Моторы назад» .
9 Движение назад
10 Движение назад Но! Диапазон подаваемой мощности: от -100 до 100 % . То есть для движения назад можно использовать и блок «Моторы вперед», подав мощность -100 % .
11 Движение назад Но! Диапазон подаваемой мощности: от -100 до 100 % . То есть для движения назад можно использовать и блок «Моторы вперед», подав мощность -100 % .
12 Повороты Повороты можно разделить на 3 типа: резкий поворот мощность подается только на одно колесо плавный поворот мощность подается на два колеса, но на одно больше поворот на месте одинаковая мощность с разными знаками на два колеса
13 Модели алгоритмов Представленные выше алгоритмы – тайм-модели . Движение осуществляется по таймеру. Это «плохой» подход, так как в этом случае выполняемое действие зависит от заряда аккумулятора. Правильно будет использовать ожидание значения энкодеров . В этом случае перед элементарным действием необходимо сбросить значения энкодеров. Остальные элементарные действия (движение назад, повороты) реализуются аналогично.
14 Точные перемещения Поставьте галочку «Сетка» . Теперь вы можете отслеживать точные перемещения модели. 1 клетка = 17,5 см Также, в режиме «отладка» всегда можно посмотреть параметры визуальной модели Для удобства длина и размер базы робота совпадают с размером клетки (17,5 см)
15 Переменные Переменная — поименованная область памяти. В TRIK Studio можно ввести свои переменные, используя блоки: «Инициализация переменной» «Выражение»
16 Нецелые числа пишутся через точку. Например: 1.75 Для перехода на новую строку используйте « Shift » + « Enter » Созданным переменным можно присваивать другие переменные, если последние были объявлены и инициализированы ранее. Например: u = 5* err В блоке «Выражение» можно как создавать новые переменные, так и записывать выражения. Переменные
17 Задача 2.1.1 Робот находится в синей зоне старта. Робот должен п роехать вперед, развернуться на 180°между зонами старта и финиша, проехать задом и остановиться в зеленой зоне финиша. Использовать энкодерную модель. Энкодеры. Задача
18 Задача 2.1.2 . Обогнуть угол. Робот должен проехать вперед со скоростью 60, повернуть на 90°, проехать вперед с максимальной скоростью и остановиться в зеленом круге . Использовать энкодерную модель. Энкодеры. Задача
19 Точные перемещения. Задача Задача 2.1.3 . Проехать вперед ровно на 1 метр и 5 сантиметров. Использовать энкодерную модель. Вам пригодятся следующие параметры: d = 5,6 см (диаметр колеса) CPR = 360 (полный оборот колеса)
20 Решение. Для решения этой задачи необходимо вспомнить элементарные формулы из курса школьной математики: расчет длины окружности и угла поворота. Введем следующие переменные: d — диаметр колеса робота dist — расстояние, которое необходимо проехать роботу cpr — один оборот колеса в градусах (количество сигналов на оборот) p — длина окружности en — количество энкодеров Точные перемещения. Решение
21 Точные перемещения. Решение
22 Точные перемещения. Задача Для решения вам понадобится дополнительный параметр: b = 17.5 см ( ширина колеи робота ) Задача 2.1.4. (самостоятельно) Развернуться на месте ровно на 90 градусов. Использовать энкодерную модель.
23 Алгоритм Алгоритм — набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий, при любом наборе исходных данных. Исполнитель: робот или любое другое устройство Инструкции: включить мотор, ждать 3 секунды, повернуть серводвигатель на 80 градусов, включить диод и т.д. Блок — схема — распространенный тип схем (графических моделей), описывающих алгоритмы или процессы, в которых отдельные шаги изображаются в виде блоков различной формы, соединенных между собой линиями, указывающими направление последовательности. Действие 1 Начало Действие 2 Действие 3 Конец
24 Алгоритмические структуры Следование (последовательность) — однократное выполнение операций в том порядке, в котором они записаны в тексте программы. Ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения заданного условия. Цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется заданное условие
Следование (последовательность) — однократное выполнение операций в том порядке, в котором они записаны в тексте программы. 25 Следование действие 1 Начало действие 2 Конец Блок-схема Псевдокод speed=-100; robot.motor.[M2].setPower(100); robot.motor.[M3].setPower(speed); robot.wait(1500) Пример в TRIK Studio Пример в TRIK Studio
Задача 2.1.5. (самостоятельно) Написать алгоритм движения модели «змейкой». Использовать энкодерную модель. 26 Следование. Задача
27 Ветвление Выполнение программы идет по одной из двух, нескольких или множества ветвей. Выбор ветви зависит от условия на входе ветвления и поступивших сюда данных. Существует две основные формы условной инструкции, встречающиеся в реальных языках программирования: условный оператор (оператор if ) оператор многозначного выбора (оператор switch )
28 Ветвление. Условный оператор Встречаются следующие формы условного оператора: Условный оператор с одной ветвью Условный оператор с двумя ветвями Условный оператор с несколькими условиями Условный оператор реализует выполнение одной последовательности (ветви) команд при условии, что некоторое логическое выражение (условие) принимает значение «истина», и другой последовательности (ветви), если выражение «ложно». Любая из этих последовательностей может быть «пустой», т.е. не выполнять никаких действий.
29 Условный оператор с 1 ветвью Пример в TRIK Studio if (encoder.[E2].read() sensorA1 > 50 меньше = sensorA3 >= 50 меньше или равно 20) (sensorA1 70) Для задания различных условий роботу необходимы операторы сравнения и логические операторы. Логические операторы
38 Ветвление. Задача Инфракрасный датчик расстояния — аналоговый датчик для измерения расстояния. Рабочий диапазон: 10–80 см. sensorA1>50 Нарисовать веселый смайл Начало Нарисовать грустный смайл нет да подождать 3 секунды Конец Задача 2.1.6. вывести на экран грустный смайлик, если робот далеко от стены, и веселый, если близко, на 3 секунды или дольше. За границу считать значение 50 ИК датчика.
39 Ветвление. Задача Псевдокод if (robot.sensor.[A1].read() > 50) robot.sadSmile(); else robot.smile(); robot.wait(3000); Решение в TRIK Studio На связях, идущих от условия, указывается в свойствах истина и ложь для определения дальнейших действий, когда условие верно, и когда — нет. Задача 2.1.6. вывести на экран грустный смайлик, если робот далеко от стены, и веселый, если близко, на 3 секунды или дольше. За границу считать значение 50 ИК датчика.
40 Ветвление. Задача Для проверки задачи используйте 2 разных поля: на одном стена близко к роботу, на другом — далеко. Для проверки можно использовать поля 2.1.6 – field1.xml , 2.1.6 – field2.xml
41 Ветвление. Задача Задача 2.1.7 (самостоятельно) Вывести на экран: Веселый смайлик, если ИК датчик выдает до 40. Слово «неопределенность», если ИК датчик выдает от 40 до 60. Грустный смайлик — в противном случае.
42 Switch Представляет собой структуру, построенную по принципу меню, и содержит все возможные варианты условий и инструкции, которые следует выполнить в каждом конкретном случае. В TRIK Studio реализуется с помощью одноименного блока: Блок проверяет выражение. От блока отводятся связи, на которых указываются возможные значения этого выражения (например, переменной). Одна связь обязательно должна быть пустая (“default”) — по ней алгоритм будет двигаться, если не выполнено ни одно из условий.
43 Switch Данный пример демонстрирует случайный выбор одного из четырех состояний робота: «Я готов к роботе», «Улыбаюсь», «Грущу», «Отдыхаю…»
44 Switch В TRIK Studio имеется блок «Получить код кнопки» , который записывает код нажатой кнопки в переменную. Все коды кнопок представлены в кодировке ASCII. Зная коды кнопок, с помощью switch можно написать своё меню. Задача 2.1.8. Выводить в цикле с задержкой минимум в 100 мс на экран робота в 2D модели коды кнопок контроллера ТРИК, по нажатию на них .
Источник: nsportal.ru