14
Машурина Юлия Германовна Гусева Арина Александровна Руководитель: Сапожникова Наталья Владимировна Робот LEGO рисует геометрические фигуры

Машурина Юлия Германовна Гусева Арина Александровна Руководитель:

  • Upload
    joelle

  • View
    77

  • Download
    0

Embed Size (px)

DESCRIPTION

Робот LEGO рисует геометрические фигуры. Машурина Юлия Германовна Гусева Арина Александровна Руководитель: Сапожникова Наталья Владимировна. Авторы: Машурина Юлия Германовна Гусева Арина Александровна Mashurina Yuliya G . Guseva Arina A . - PowerPoint PPT Presentation

Citation preview

Page 1: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

Машурина Юлия Германовна Гусева Арина Александровна

Руководитель:

Сапожникова Наталья

Владимировна

Робот LEGO рисует геометрические

фигуры

Page 2: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

Авторы: Машурина Юлия Германовна Гусева Арина Александровна

Mashurina Yuliya G. Guseva Arina A.

Руководитель: Сапожникова Наталья Владимировна, учитель информатики, м. т. 8-911-041-9381, [email protected]

Россия, г. Великий Новгород, МАОУ «Гимназия «Эврика»,

улица Большая Санкт-Петербургская, дом 94, (8-816) 62-84-46; [email protected]

Page 3: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

На базе нашей гимназии работает Городская компьютерная школа «Кэш», в которой можно заниматься программированием и робототехникой.

Мы занимаемся робототехникой первый год. В декабре мы ездили в Санкт-Петербург на Зимние состязания роботов, участвовали в соревнованиях в номинации «Кегельринг» , но к сожалению не стали призерами, хотя были близки . Но мы не отчаиваемся, сейчас готовимся к «Лабиринту».

В Санкт-Петербурге мы увидели выставку роботов и загорелись идеей сделать что-нибудь этакое!!! И решили – наш робот будет рисовать!

Page 4: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

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

движения и построения роботом основных геометрических фигур методом подбора данных для расчета угла поворота и длительности движения робота.

Поставлена задача автоматического расчета роботом данных для поворота на произвольный угол, вычисляемый по математической формуле, что даст возможность осуществлять движение робота по заранее заложенной в программе математической функции.

Работа проводилась с использованием роботехнического набора Lego Mindstorms NXT 2.0 и средой программирования RobotC.

Page 5: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

Задача 1. Сконструировать робота, способного перемещаться по плоскости и оставлять за собой след. а) осуществлен выбор центра тяжести робота; б) первоначально собранный колесный робот был заменен на гусеничный для осуществления более точных поворотов; в) выбрано место крепления маркера таким образом, чтобы при повороте достигалось минимальное отклонение маркера от траектории движения робота.

Page 6: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

Задача 2. Написать программу для рисования роботом прямой линии.

task main(){motor[motorB] = 100;motor[motorC] = 100;wait1Msec(1000); motor[motorB] = 0;motor[motorC] = 0;}При выполнении этой программы робот движется вперед в течении 1000 миллисекунд и рисует прямую линию.

Page 7: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

Задача 3. Написать программу для рисования роботом квадрата.

task main(){for(int i=0;i<4;i++){

motor[motorB] = 50;motor[motorC] = 50;wait1Msec(1000);motor[motorC] = -50;wait1Msec(500);motor[motorB] = 0;}

}

При выполнении этой программы робот рисует квадрат, однако точность движения маркера во время поворота нуждается в доработке.

Page 8: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

Задача 4. Написать программу для рисования роботом треугольника.

task main(){for(int i=0;i<3;i++){

motor[motorB] = 50;motor[motorC] = 50;wait1Msec(1000);motor[motorC] = -50;wait1Msec(300);motor[motorB] = 0;}

}

При выполнении этой программы робот рисует треугольник.

Page 9: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

Задача 5. Написать программу для рисования роботом окружности.

task main(){

motor[motorB] = 100;motor[motorC] = 40;wait1Msec(4000);motor[motorC] = 0;motor[motorB] = 0;

}

При выполнении этой программы робот рисует окружность радиусом примерно 45 сантиметров. Проведен эксперимент по изменению радиуса окружности с помощью изменения скорости моторов.

Page 10: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

Задача 6. Написать программу для рисования роботом эллипса.

task main(){for(int i=0;i<3;i++){

motor[motorB] = 100;motor[motorC] = 30;wait1Msec(1900);motor[motorB] = 100;motor[motorC] = 60;wait1Msec(5000);}

motor[motorC] = 0;motor[motorB] = 0;}При выполнении этой программы робот рисует эллипс. Проведен эксперимент по изменению радиуса кривизны эллипса с помощью изменения скорости моторов.

Page 11: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

Задача 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;}При выполнении этой программы робот рисует спираль.

Page 12: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

Задача 8. Написать программу для перемещения робота из точки (0,0) в точку с произвольными координатами (x, y).

task main(){ int x0=0; int y0=0;

int x=30; int y=50; // (x,y)=(30,50)int d; int alpha;d=sqrt ((x-x0)*(x-x0)+(y-y0)*(y-y0));alpha=atan((y-y0)/(x-x0));nMotorEncoder[motorB]=0;motor[motorB] = 100;motor[motorC] = -100;while(nMotorEncoder[motorB]<230/90*alpha);\\ поворот на

нужный угол alphamotor[motorB] = 0; motor[motorC] = 0;\\ стоп моторыmotor[motorB] = 100; motor[motorC] = 100;\\ движение в

заданном направлении на заданную величину dwait1Msec(d*1000);

}Опытным путем мы установили, что при повороте робота на 90 градусов энкодер поворачивается на 230 градусов вокруг своей оси. Следовательно повороту на 1 градус соответствует 230/90 оборотов энкодера.

Page 13: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

Задача 9. Написать программу для перемещения робота из точки с произвольными координатами (x, y, alpha) в точку с произвольными координатами (x1, y1, alpha1), где alpha – угол поворота робота до начала движения.

Эта задача пока не решена, мы работаем над ее решением. Как только это произойдет наш робот сможет автоматически строить заранее заданные в программе графики математических функций и геометрические фигуры.

Page 14: Машурина  Юлия Германовна        Гусева  Арина Александровна Руководитель:

1. Филиппов С.А. Робототехника для детей и родителей. – М.: "Наука" , 2011, 263 с.2. Индустрия развлечений: ПервоРобот. Книга для учителя и сборник проектов. - LEGO Education.3. Сайт http://www.lego.com/education/4. Сайт http://www.legoengineering.com/5. Сайт http://legomindstorms.ru/6. Cайт http://nxtprograms.com7. Сайт http://www.robotc.net8. Сайт http://nnxt.blogspot.com

Литература