Сборка и программирование робота-манипулятора.
учебно-методическое пособие

Летунов Илья Анатольевич

Сборка и программирование робота-манипулятора.

Скачать:


Предварительный просмотр:

ТЕМА: Сборка и программирование робота-манипулятора.

ЦЕЛЬ ЗАНЯТИЯ:

  • Формирование у детей интереса и желания заниматься конструированием роботов на примере конкретного изделия.
  • Развитие алгоритмического мышления.
  • Развитие навыков программирования.
  • Развитие конструкторских навыков.

ВОЗРАСТ: 14-17 лет

ЗАДАЧИ:

  • Обучающие: дать общее представление о схемотехнике, познакомить обучающихся с характеристиками различных электронных компонентов, научить сборке по схеме.
  • Развивающие: содействовать развитию познавательного интереса, творческих способностей, алгоритмического мышления и начальные знания о программировании.
  • Воспитывающие:

содействовать воспитанию умения принимать решение;

воспитывать собранность, организованность, аккуратность;

применять полученные знания и умения.

ОБОРУДОВАНИЕ И МАТЕРИАЛЫ:

  • Arduino UNO
  • Набор механических деталей для сборки робота - манипулятора
  • Сервоприводы
  • Резисторы переменные

ДИДАКТИЧЕСКОЕ ОСНАЩЕНИЕ:

  • Технический рисунок изготавливаемой конструкции
  • Схема электрическая принципиальная
  • Схема сборки манипулятора
  • Набор деталей

МЕТОДЫ:  

Словесные – фронтальная беседа.

Наглядные – демонстрация образцов, технического рисунка

Игровые – игра в сборочный цех завода.

Практические – самостоятельная работа с набором готовых деталей. Самоконтроль и оценка выполняемой работы.

Репродуктивные – изготовление схемы по образцу.

ПЛАН ЗАНЯТИЯ:

Организационная часть. ( 3 мин.)

Знакомство с новым материалом. (15 мин.)

Практическая работа. (30 мин. )

Закрепление  пройденного. (15 мин.)

Подведение итогов. (10 мин. )

ХОД ЗАНЯТИЯ:

1.Организационная часть.

  • Обсуждение плана работы
  • Подготовка рабочего места, техника безопасности

2.Знакомство с новым материалом.

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

        Обсуждаем программную реализацию с опорой на лекционный материал в форме вопрос-ответ и диалога.

3.Практическая работа.

  • Составляем блок-схему в тетради, обсуждая различные варианты реализации, давая поддержку инициативе ученика.

Блок схема выглядит следующим образом:

 

  • Реализация схемы на макетной плате:

 

  • При успешном выполнении проекта, ученику предлагается модернизировать самостоятельно схему, добавив дополнительные компоненты.

/*

 * serva  4 = 0(открытый)

 * sreva2 = 180      serva3 = 0

 * serva1 = 90

 * serva4 = 80(закрытый)

 */

#include // подключаем библиотеку для работы с сервоприводом

#define joyX A0 //для серва 1

#define joyY A1 //для серва 3

#define joyZ A2 //для серва 2

#define BUTTON 0

Servo servo1; // объявляем переменную servo типа "servo1"

Servo servo2; // объявляем переменную servo типа "servo2"

Servo servo3; // объявляем переменную servo типа "servo3"

Servo servo4; // объявляем переменную servo типа "servo4"

boolean buttonWasUp = true;

int angl=90, angl_3=0, angl_2=70;

void setup() // процедура setup

{

servo1.attach(11); // привязываем сервопривод к аналоговому выходу 11

servo2.attach(10);// привязываем сервопривод к аналоговому выходу 10

servo3.attach(9);// привязываем сервопривод к аналоговому выходу 9

servo4.attach(6);// привязываем сервопривод к аналоговому выходу 8

Servo_NULL();

delay(1000);

Serial.begin(9600);

pinMode(BUTTON, INPUT);

}

void loop() // процедура loop

{

int val_1 = (analogRead(joyX)/64)-7;

int val_2 = (analogRead(joyZ)/64)-7;

int val_3 = (analogRead(joyY)/64)-7;

int but = digitalRead(BUTTON);

if (digitalRead(BUTTON) == LOW )

    {

      buttonWasUp = !buttonWasUp;

      delay(20);

    }

if(val_1 != 0 && val_2 != 0 && val_3 != 0)

  {

    task();

    }

if (val_1 > 1)

{

angl=angl+abs(val_1);

}

else {

if (val_1 < 1) {

angl=angl-abs(val_1);}

}

if (angl < 10) angl_1 = 10;

if (angl > 170) angl_1 = 170;

/*

int spd = 50;

if (val != 0)

{

spd = 200/abs(val);

}

delay(spd);

if (val_3 > 1)

{

angl_3=angl_3+abs(val_3);

}

else {

if (val_3 < 1) {

angl_3=angl_3-abs(val_3);}

}

if (angl_3 < 10) angl_3 = 10;

if (angl_3 > 170) angl_3 = 170;

if (val_2 >= 1)

  {

    angl_2=angl_2+abs(val_2);

  }

    else {

          if (val_2 <= 1)

            {

              servo2.write(angl_2);

              angl_2=angl_2-abs(val_2);}

            }

if (angl_2 < 10) angl_2 = 10;

if (angl_2 > 170) angl_2 = 170;

Serial.print("*******************************\n");

Serial.print("Angle1: ");

Serial.println(angl_1);

Serial.print("Angle2: ");

Serial.println(angl_2);

Serial.print("Angle3: ");

Serial.println(angl_3);

delay(500);

//////////////////////////////////////////////////

servo1.write(angl_1);

servo2.write(angl_2);

servo3.write(angl_3);

if (buttonWasUp == true)

  {

    servo4.write(10);

    }

    else {

          servo4.write(80);

          }

/////////////////////////////////////////////////////////

}

void Servo_NULL()

{

servo1.write(90); // ставим угол поворота под 90

servo2.write(70); // ставим угол поворота под 0

servo3.write(0); // ставим угол поворота под 0

servo4.write(80); // ставим угол поворота под 0

}

int set_angl(int UGL)

{

  while(angl_3 > 1)

  {

    angl_3--;

    servo3.write(angl_3); // ставим угол поворота под 0

    delay(20);

   }

while(angl_2 < 179)

{

  angl_2++;

  servo2.write(angl_2); // ставим угол поворота под 0

  delay(20);

 }

servo4.write(80); // ставим угол поворота под 0

while(angl < 90)

{

  angl++;

  servo1.write(angl); // ставим угол поворота под 0

  delay(20);

 }

}

void task()

{

  while(angl<115)

{

  angl++;

  servo1.write(angl); // ставим угол поворота под 0

  delay(20);

 }

while(angl_3 <= 40)

{

  angl_3++;

  servo3.write(angl_3); // ставим угол поворота под 0

  delay(20);

 }

servo4.write(0); // ставим угол поворота под 0

while(angl_2 < 110)

{

  angl_2++;

  servo2.write(angl_2); // ставим угол поворота под 0

  delay(20);

 }

for( angl_3 = 40; angl_3 <= 170; angl_3++)

                            {

                            servo3.write(angl_3);

                            delay(20);

                            }

for( angl_2 = 110; angl_2 >= 90; angl_2--){

                            servo2.write(angl_2);

                            delay(20);

                            }

for(angl = 115; angl >= 70; angl--){

                            servo1.write(angl);

                            delay(20);

                            }

for( angl_2 = 90; angl_2 < 110; angl_2++){

                          servo2.write(angl_2); // ставим угол поворота под 0

                          delay(20);

                          }

                         

for(angl_3 = 170; angl_3 >= 40; angl_3--){

                          servo3.write(angl_3); // ставим угол поворота под 0

                          delay(20);

                          }

for(angl_3 = 40; angl_3 >= 0; angl_3--){

                          servo3.write(angl_3); // ставим угол поворота под 0

                          delay(20);

                         }

for( angl_2 = 110; angl_2 < 180; angl_2++){

                         servo2.write(angl_2); // ставим угол поворота под 0

                         delay(20);

                         }

for(angl = 115; angl >= 90; angl--){

                            servo1.write(angl);

                            delay(20);

                            }

}

 4.Закрепление пройденного.

  • По заданию преподавателя ученику дается задание на изменение и модернизации проекта.

5. Подведение итогов.  

  • При успешном выполнении заданий ученик полностью усваивает основы программирования и схемотехники.

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ:

«Основы программирования микроконтроллеров» набор «Амперка»

Макаров И. М., Топчеев Ю. И.  Робототехника: История и перспективы. — М.: Наука; Изд-во МАИ, 2003. — 349 с. — (Информатика: неограниченные возможности и возможные ограничения).

Технология. Робототехника, Копосов Д.Г. Бином. Лаборатория знаний, 2017 г.

Внеурочная деятельность школьников. Методический конструктор: пособие для учителя / Д.В. Григорьев, П.В. Степанов. – М.: Просвещение, 2010.

https://habrastorage.org/files/455/43b/ca9/45543bca99f94eb2b09d606c6a181c9d.gif


По теме: методические разработки, презентации и конспекты

Тематическое планирование по курсу «Основы алгоритмизации и программирования» в среде программирования VBA

Тематическое планирование  по курсу «Основы алгоритмизации и программирования» в среде программирования VBA  Основы алгоритмизации и программирование1,2(4 час)Повт. Программное об...

Практическое занятие№16. Неполная разборка и сборка автомата. Отработка нормативов по неполной разборке и сборке автомата.

Практическое занятие№16. Неполная разборка и сборка автомата. Отработка нормативов по неполной разборке и сборке автомата. Михаил Тимофеевич Калашников, всемирно известный конструктор стрелкового...

Методическая разработка открытого занятия «Сборка и программирование модели "Богомол"»

Цель: повторить с обучающимися среду программирования, командным меню, инструментами программы и основные детали Lego  и собрать и запрограммировать модель "Богомол"...

сборка и программирование робота - пожарника

сборка и программирование  робота - пожарника...