Образовательная робототехника: робот vex iq - путешественник
Обзор решения задач начального уровня в образовательной робототехнике связанных с автоматизированным передвижением робота на примере изучения робототехнического комплекта Vex IQ (модель Clawbot IQ With Sensors) на базе языка программирования RobotC.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | статья |
Язык | русский |
Дата добавления | 21.01.2018 |
Размер файла | 15,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Образовательная робототехника: робот vex iq - путешественник
Векслер Виталий Абрамович
В статье делается обзор решения задач начального уровня в образовательной робототехнике связанные с автоматизированным передвижением робота.
Сегодня образовательная робототехника становится все более популярной среди школьников, в связи со своей ярко выраженной практической направленностью. Обучающийся не только формирует свое «инженерное» мышление, связанное со сборкой моделей роботов, но и развивают алгоритмическую компетентность в следствии интегрированного изучения принципов программирования робота и принципов его сборки.
Одной из интересных задач начального уровня становится задача передвижения робота по комнате. В качестве базовой основы возьмем робототехнический комплект Vex IQ и язык программирования RobotC.
Для решения задач по передвижению робота будем использовать стандартную модель Clawbot IQ With Sensors.
Расположение моторов и датчиков.
Motor Ports:
VEX IQ Port 1:leftMotor
VEX IQ Port 6:rightMotor
VEX IQ Port 10: armMotor
VEX IQ Port 11: clawMotor
Sensor Ports:
VEX IQ Port 2: touchLED (Touch LED)
VEX IQ Port 3: colorDetector(Color Sensor/Hue Mode)
VEX IQ Port 4: gyroSensor (Gyro)
VEX IQ Port 7: distanceMM (Distance)
VEX IQ Port 8: bumpSwitch (Bumper Switch)
Для путешествия поднимем руку-схват робота, освободив датчик touchLED (Touch LED).
Задание 1
Ехать вперед пока не уткнемся в препятствие. После обнаружения препятствия остановиться.
Дополнительные требования
Обращение к датчикам и моторам осуществите по их именам. К порту 2 присоединён датчик touchLED (Touch LED). Робот начнет ехать после нажатия на данный датчик (1 -- нажат, 0 -- не нажат). После нажатия на touchLED раздается звуковой сигнал. К порту 8 подсоединён датчик bumpSwitch (Bumper Switch). Робот должен ехать вперед пока не уткнется датчиком bumpSwitch в препятствие, в этом случае датчик bumpSwitch будет нажат и значение переменной данного сенсора будет равно единице (в не нажатом состоянии оно равно 0).
Вариант решения
task main()
{
while (getTouchLEDValue(touchLED) == 0 {}
playSound(soundAirWrench);
while(getBumperValue(bumpSwitch) == 0)
{
setMotorSpeed(leftMotor, 127);
setMotorSpeed(rightMotor, 127);
sleep(2000);
}
}
Задание 2
При обнаружении препятствия робот должен развернуться и поехать вперед. Перед разворотом робот должен немного отъехать назад.
Вариант решения
task main()
{
while (getTouchLEDValue(touchLED) == 0)
{}
playSound(soundAirWrench);
repeat (forever)
{
if(getBumperValue(bumpSwitch) == 0)
{
setMotorSpeed(leftMotor, 127);
setMotorSpeed(rightMotor, 127);
sleep(20);
}
else
{
setMotorSpeed(leftMotor, -127);
setMotorSpeed(rightMotor, -127);
sleep(500);
setMotorSpeed(leftMotor, 127);
setMotorSpeed(rightMotor, 0);
sleep(1500);
}
}
}
Задание 3
Обращение к датчикам и моторам осуществите по их портам. Встретив препятствие, робот отъедет назад и развернется влево.
Вариант решения
task main()
{
repeat(forever)
{
if (SensorValue[port8]==0)
{
motor[port1] = 127;
motor[port6]=127;
wait1Msec(100);
}
else
{
motor[port1] = -60;
motor[port6]=-60;
wait1Msec(400);
motor[port1] = 60;
motor[port6]=-60;
wait1Msec(400);
}
}
}
Задание 4
Для упрощения программного кода, используйте возможности функций в программном коде. Осуществите поворот случайным образом, скорости моторов при каждом новом развороте должны завесить от случайных чисел.
Дополнительно
Используйте функции:
Srand
void srand(const long nSeedValue)
Генератор псевдослучайных чисел инициализируется с использованием аргумента, переданного как nSeedValue. Для каждого другого начального значения, используемого при вызове srand, можно ожидать, что генератор псевдослучайных чисел генерирует другую последовательность результатов в последующих вызовах rand.
srand (nSysTime) -- аргументом генерации может выступить системное время.
Rand
word rand()
Возвращает псевдослучайное целое число в диапазоне от 0 до не менее 32 767 (в зависимости от платформы). Типичным способом генерации псевдослучайных чисел в определенном диапазоне с использованием rand является использование по модулю возвращаемого значения диапазоном диапазона и добавление начального значения диапазона:
· ? (значение% 100) находится в диапазоне от 0 до 99
· ? (значение% 100 + 1) находится в диапазоне от 1 до 100
· ? (значение% 30 + 1985) находится в диапазоне от 1985 до 2014 года
Обратите внимание, однако, что эта модульная операция не генерирует по-настоящему равномерно распределенное случайное число в промежутке, но, как правило, это хорошее приближение для коротких промежутков.
Вариант решения
void move(long lm, long rm, long tm)
motor[port1] = lm;
motor[port6]= rm;
wait1Msec(tm);
task main()
repeat(forever)
{
if (SensorValue[port8]==0)
{
move(127,127,100);
}
else
{
move(-60,-60,400);
srand(nSysTime);
move(rand() % 61 ,-1*rand() % 61,400);
}
}
Задание 5
Используйте конструкцию робота, в котором датчик расстояния прямо смотрит на правую сторону. Возможно использование Clawbot IQ With Sensors. Переставьте местами датчики colorDetector (Color Sensor/Hue Mode)и distanceMM (Distance). Раздвиньте щупальца схвата, чтобы они не мешали датчику. Зайдите в раздел «Motor and Sensor Setup» и отметьте произведенные изменения. В более идеальном варианте желательно переделать конструкцию чтобы датчик прямо смотрел на стену.
Новая конфигурация датчиков:
#pragma config(Sensor, port2,touchLED, sensorVexIQ_LED)
#pragma config(Sensor, port3,distanceMM, sensorVexIQ_Distance)
#pragma config(Sensor, port4,gyroSensor, sensorVexIQ_Gyro)
#pragma config(Sensor, port7,colorDetector,sensorVexIQ_ColorHue)
#pragma config(Sensor, port8,bumpSwitch, sensorVexIQ_Touch)
#pragma config(Motor,motor1,leftMotor, tmotorVexIQ, openLoop, driveLeft, encoder)
#pragma config(Motor,motor6,rightMotor,tmotorVexIQ, openLoop, reversed, driveRight, encoder)
#pragma config(Motor,motor10, armMotor,tmotorVexIQ, openLoop, encoder)
#pragma config(Motor,motor11, clawMotor, tmotorVexIQ, openLoop, encoder)
Робот должен двигаться вдоль стенки на заданном расстоянии, которое определяется в момент старта. Датчик расстояния направлен на стенку справа.
Вариант решения
task main()
{
float u, k=1;
int L=SensorValue[port3]; // замер первоначального расстояния
while(true)
{
u=k*(SensorValue[port3]-L); // управляющее воздействие
motor[motor1]=60+u;
motor[motor6]=60-u;
wait1Msec(1);
}
}
Если SensorValue[port3] = L то робот едет прямо, иначе его скорость корректируется.
Для более устойчивого движения предлагается следующий вариант.
task main()
{
float u, k1=2, k2=10;
int Sold, L;
Sold=L=SensorValue[port3];
while(true)
{
u= k1*(SensorValue[port3]-L) + k2*(SensorValue[port3]-Sold);
motor[motor1]=60+u;
motor[motor6]=60-u;
Sold=SensorValue[port3];
wait1Msec(1);
}
}
Таким образом, предложенные варианты являются базовыми заданиями, которые можно изучить при решении задач, связанных с передвижением робота. Учащиеся могут экспериментировать с большим количеством вариантов, совершенствуя решения, связанные с функционированием робота. робототехника программирование robotc
Список литературы
1. Филиппов С.А. Робототехника для детей и родителей. - СПб.: Наука, 2013. 319 с.
2. Филиппов С.А. Основы робототехники на базе конструктора Lego Mindstorm NXT. Занятие 6. Ориентация на местности: объезжаем стены // Компьютерные инструменты в школе. - № 6. 2010. - С. 43 - 50.
3. Горнов О.А. Основы робототехники и программирования с Vex EDR. - М: Издательство «Экзамен», 2016. - 160 с.
Размещено на Allbest.ru
...Подобные документы
Concept and functional features of piezoelectric sensors, the scope of its application. Designing with piezoelectric sensors. Piezo-vibration sensor Parallax 605–00004 and Bosch 608–00112: overview, technical characteristic, accessories, installations.
контрольная работа [1,1 M], добавлен 27.05.2013Что такое робот, истоки робототехники и классификация роботов. Проектирование робота для разминирования различных технических объектов. Технические расчеты движения и координирования руки и различных сил действующих на нее, особенности корпуса и головы.
курсовая работа [128,0 K], добавлен 12.08.2010Существующие разработки змеевидных роботов и их природные прототипы: движение змей в природе, его механизация. Змеевидный робот Кевина Доулинга и Дору Михалачи, принципы управления ими. Разработка системы управления для змеевидного робота – "Змеелок".
дипломная работа [4,3 M], добавлен 03.02.2012Механизм подъема промышленного робота. Определение параметров рабочих траекторий. Расчет рабочей нагрузки. Расчетная модель привода. Выбор двигателей и редукторов. Выбор передаточного числа редуктора и проверка пары двигатель-редуктор на нагрев.
курсовая работа [1,0 M], добавлен 18.08.2013Обзор генераторов сигналов. Структурная схема и элементная база устройства. Разработка печатной платы модуля для изучения генератора сигналов на базе прямого цифрового синтеза. Выбор технологии производства. Конструкторский расчет; алгоритм программы.
дипломная работа [1,7 M], добавлен 25.04.2015Характеристика микропроцессорного комплекта серии КР580. Микросхема КР580ВК28 - системный контролер для управляющих сигналов. Контроллер клавиатуры и дисплея КР580ВВ79. Планирование адресного пространства памяти, построение схем дешифрации адресов памяти.
курсовая работа [1,0 M], добавлен 23.11.2010Разработка конструкции исполнительных механизмов платформы шагающего робота. Разработка универсальных контроллеров и системы управления высокого уровня. Проектирование базовых алгоритмов управления, обеспечивающих автономное и супервизорное управление.
дипломная работа [6,3 M], добавлен 07.07.2012Методическое обеспечение для решения задач по аналоговым и цифровым электрическим и оптическим линейным трактам. График зависимости логарифма коэффициента ошибки от защищенности сигнала. Расчет минимального абсолютного уровня сигнала на входе усилителя.
дипломная работа [728,0 K], добавлен 13.06.2012Принцип работы фотодатчика, свойство поверхностей отражать падающий на них свет. Подключение резистора в эмиттерную цепь транзистора. Алгоритм движения робота, программы для следования робота по линии, для движения устройства моторами вперед и назад.
курсовая работа [142,0 K], добавлен 30.01.2013Классификация навигационных систем; телевизионная, оптическая, индукционная и радиационная системы измерения угловых координат. Системы измерения дальности и скорости, поиска и обнаружения. Разработка и реализация системы навигации мобильного робота.
дипломная работа [457,8 K], добавлен 10.06.2010Сравнительный анализ между классическими и квантовыми нейронами. Построение квантовой нейронной сети. Однослойный и многослойный персептроны. Алгоритм обратного распространения "Back Propagation". Робототехника как направление искусственного интеллекта.
магистерская работа [1,7 M], добавлен 26.12.2012Разработка системы, предназначенной для управления поворотом устройства перемещения робота. Выбор и расчет передаточной функции микропроцессора, усилителя, электромагнитного клапана, гидроцилиндра. Расчет датчика обратной связи и устойчивости системы.
курсовая работа [972,1 K], добавлен 20.10.2013Функціональна схема мікроконтролера ATMega8. Розробка робота на базі мікроконтролера ATMega8 з можливістю керування електродвигунами за допомогою програми. Функціональна і принципова схеми пристрою з вибором додаткових елементів, алгоритм його роботи.
курсовая работа [1,3 M], добавлен 08.10.2012Методы и этапы конструирования радиоэлектронной аппаратуры. Роль языка программирования в автоматизированных системах машинного проектирования. Краткая характеристика вычислительных машин, используемых при решении задач автоматизации проектирования РЭА.
реферат [27,0 K], добавлен 25.09.2010Эффективность применения средств комплексной автоматизации производственных процессов. Принципы построения робототехнических систем. Степени подвижности манипулятора робота. Критерии компактности и классификационные признаки промышленных роботов.
дипломная работа [1,2 M], добавлен 28.09.2015Рассмотрение принципов организации Deep Packet Inspection в телекоммуникации. Проведение исследований нейронных сетей. Выбор оптимальной модели для решения задач классификации мультимедийного трафика. Изучение вопросов безопасности жизнедеятельности.
дипломная работа [1,0 M], добавлен 22.06.2015Характеристика одно- и двухканального уровнемера жидкости ВК1700. Датчики уровня (первичные преобразователи) ВК1700. Системы измерительные гамма для объемного учета жидкостей на базе контроллера ГАММА-10. Сигнализатор уровня ультразвуковой СУР-6.
курсовая работа [662,7 K], добавлен 01.10.2011Системы искусственного интеллекта как предпосылки создания робототехники. Теоретические основы систем искусственного интеллекта, особенности их прикладных задач. История и основные перспективы развития робототехники. Современное состояние роботизации.
курсовая работа [435,3 K], добавлен 14.04.2014Исследование и выбор промышленного робота для лазерной резки; анализ технологического процесса; конструкция лазерного излучателя. Разработка общей структуры системы управления промышленным роботом как механической системой, технологическое использование.
дипломная работа [2,0 M], добавлен 12.07.2013Выбор и обоснование выбора элементной базы локальной системы управления: микропроцессора, гидроцилиндра, передаточной функции объекта управления и датчика угла поворота. Вычисление устойчивости системы автоматического управления челюстью робота.
курсовая работа [1,0 M], добавлен 26.05.2013