Работа посвящена исследованию задач о прокладывании пути гусеничного робота, оснащенного пером (маркером), оставляющим след во время движения робота.
В процессе исследования решена задача организации движения и построения роботом основных геометрических фигур методом подбора данных для расчета угла поворота и длительности движения робота.
Поставлена задача автоматического расчета роботом данных для поворота на произвольный угол, вычисляемый по математической формуле, что даст возможность осуществлять движение робота по заранее заданной в программе траектории.
Работа проводилась с использованием роботехнического набора Lego Mindstorms NXT 2.0 и среды программирования RobotC.
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
На базе нашей гимназии работает Городская компьютерная школа «Кэш», в которой можно заниматься программированием и робототехникой.
Мы занимаемся робототехникой первый год. В декабре мы ездили в Санкт-Петербург на Зимние состязания роботов, участвовали в соревнованиях в номинации «Кегельринг» , но к сожалению не стали призерами, хотя были близки . Но мы не отчаиваемся, сейчас готовимся к «Лабиринту».
В Санкт-Петербурге мы увидели выставку роботов и загорелись идеей сделать что-нибудь этакое!!! И решили – наш робот будет рисовать!
Работа посвящена исследованию задач о прокладывании пути гусеничного робота, оснащенного пером (маркером), оставляющим след во время движения робота.
В процессе исследования решена задача организации движения и построения роботом основных геометрических фигур методом подбора данных для расчета угла поворота и длительности движения робота.
Поставлена задача автоматического расчета роботом данных для поворота на произвольный угол, вычисляемый по математической формуле, что даст возможность осуществлять движение робота по заранее заложенной в программе математической функции.
Работа проводилась с использованием роботехнического набора Lego Mindstorms NXT 2.0 и средой программирования RobotC.
Задача 1 . Сконструировать робота, способного перемещаться по плоскости и оставлять за собой след.
а) осуществлен выбор центра тяжести робота;
б) первоначально собранный колесный робот был заменен на гусеничный для осуществления более точных поворотов;
в) выбрано место крепления маркера таким образом, чтобы при повороте достигалось минимальное отклонение маркера от траектории движения робота.
Задача 2 . Написать программу для рисования роботом прямой линии.
task main()
{
motor[motorB] = 100;
motor[motorC] = 100;
wait1Msec(1000);
motor[motorB] = 0;
motor[motorC] = 0;
}
При выполнении этой программы робот движется вперед в течении 1000 миллисекунд и рисует прямую линию.
Задача 3 . Написать программу для рисования роботом квадрата.
task main()
{
for(int i=0;i
motor[motorB] = 50;
motor[motorC] = 50;
wait1Msec(1000);
motor[motorC] = -50;
wait1Msec(500);
motor[motorB] = 0;
}
}
При выполнении этой программы робот рисует квадрат, однако точность движения маркера во время поворота нуждается в доработке.
Задача 4 . Написать программу для рисования роботом треугольника.
task main()
{
for(int i=0;i
motor[motorB] = 50;
motor[motorC] = 50;
wait1Msec(1000);
motor[motorC] = -50;
wait1Msec(300);
motor[motorB] = 0;
}
}
При выполнении этой программы робот рисует треугольник.
Задача 5 . Написать программу для рисования роботом окружности.
task main()
{
motor[motorB] = 100;
motor[motorC] = 40;
wait1Msec(4000);
motor[motorC] = 0;
motor[motorB] = 0;
}
При выполнении этой программы робот рисует окружность радиусом примерно 45 сантиметров. Проведен эксперимент по изменению радиуса окружности с помощью изменения скорости моторов.
Задача 6 . Написать программу для рисования роботом эллипса.
task main()
{
for(int i=0;i
motor[motorB] = 100;
motor[motorC] = 30;
wait1Msec(1900);
motor[motorB] = 100;
motor[motorC] = 60;
wait1Msec(5000);
}
motor[motorC] = 0;
motor[motorB] = 0;
}
При выполнении этой программы робот рисует эллипс. Проведен эксперимент по изменению радиуса кривизны эллипса с помощью изменения скорости моторов.
Задача 7 . Написать программу для рисования роботом спирали.
task main()
{
motor[motorB] = 100;
motor[motorC] = 50;
wait1Msec(5000);
motor[motorB] = 100;
motor[motorC] = 30;
wait1Msec(3500);
motor[motorB] = 100;
motor[motorC] = 20;
wait1Msec(2000);
motor[motorB] = 100;
motor[motorC] = 10;
wait1Msec(1000);
motor[motorC] = 0;
motor[motorB] = 0;
}
При выполнении этой программы робот рисует спираль.
Задача 8 . Написать программу для перемещения робота из точки (0,0) в точку с произвольными координатами (x, y).
motor[motorB] = 100; motor[motorC] = 100;\\ движение в заданном направлении на заданную величину d
wait1Msec(d*1000);
}
Опытным путем мы установили, что при повороте робота на 90 градусов энкодер поворачивается на 230 градусов вокруг своей оси. Следовательно повороту на 1 градус соответствует 230/90 оборотов энкодера.
Задача 9 . Написать программу для перемещения робота из точки с произвольными координатами (x, y, alpha) в точку с произвольными координатами (x1, y1, alpha1), где alpha – угол поворота робота до начала движения.
Эта задача пока не решена, мы работаем над ее решением. Как только это произойдет наш робот сможет автоматически строить заранее заданные в программе графики математических функций и геометрические фигуры.
Литература
1. Филиппов С.А. Робототехника для детей и родителей. – М.: "Наука" , 2011, 263 с.
2. Индустрия развлечений: ПервоРобот. Книга для учителя и сборник проектов. - LEGO Education.