Инфоурок Технология Другие методич. материалы«Роботизированный комплекс для библиотек»

«Роботизированный комплекс для библиотек»

Скачать материал

МБОУ ДО «Бокситогорский центр дополнительного образования»

 

 

 

 

 

 

Проект

«Роботизированный комплекс для библиотек»

 

 

 

 

 

 

 

Выполнили:

Чесноков Павел Артемович

Соколов Вячеслав Владимирович

Педагог: 

Ивановский Сергей Алексеевич

 

 

 

 

 

 

2015г.

Аннотация проекта

Когда-то роботы были фантастикой. В наше время их придумывают и создают не только писатели и художники, но и инженеры -робототехники.

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

С появлением Mindstorms NXT, роботы стали общедоступными. Для робототехники нет границ: она представляет для нас такие возможности учебного творчества, о которых многие даже не подозревают.  Мы решили исследовать возможности Mindstorms и создать робота для автоматизации рабочего места библиотекаря в  работе с литературой для взрослой аудитории.

 

Содержание:

 

 

Введение

4

1.     Робот-библиотекарь

5

1.1 Работа с информацией и её обработка.

5

1.2 Конструирование роботизированного комплекса

6

1.3 Разработка программного обеспечения

9

Заключение 

10

Приложения

11

 

 

 

 

 

Введение

Как только не называют нынешнее столетие – «атомный век», «космический век», «век электроники». С не меньшим основанием можно назвать его веком роботов. Ещё совсем недавно эти устройства существовали лишь на страницах научно – фантастических книг. Сегодня на многих наших предприятиях роботы активно помогают человеку в его нелёгком труде.

Но облегчение труда людей – не единственная «заслуга» роботов. Применение роботов увеличивает производительность труда в несколько раз. Внедрение одного робота способно дать экономический эффект не сравнимый с работой человека.

Целью данного проекта является создание роботизированного комплекса для автоматизации рабочего места библиотекаря.

В связи с заданной целью ставятся следующие задачи:

1.                 Разработать и сконструировать робота для работы в библиотеке со взрослой литературой.

2.                 Обеспечить выполнение поставленной задачи роботом путем его программирования.

3.                 Обеспечить взаимодействие библиотекаря и робота для исполнения действий по доставке литературы для взрослой аудитории.

4.                 Определить дополнительные возможности изменения конструкции.

 

 

 

 

 

 

 

 

1. Робот-библиотекарь

1.1.      Работа с информацией и её обработка.

 

К нам  обратились за помощью Комитет образование города Бокситогорска  с предложением автоматизации  процесса выдачи  и расстановки книг в Бокситогорской районной библиотеки. Также по данной проблеме мы прочитали много статей в интернете, Федеральных Законов об Образовании, Изменений в Федеральном законе № 436. В законе говорится о том, что вся литература 18+ должна хранится на отдельных стеллажах и быть либо упакована в боксы либо находится в непрозрачных обложках. В связи с этим поиск необходимой литературы библиотекарем очень сильно затрудняется.

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

 

1.2.      Конструирование роботизированного комплекса

 

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

 

Таблице № 1 

Изображение

Название

Использование

NXT.

Управляют движением сервомоторов и моторами Tetrix и NXT

 

sensor_smallsensor_small

Датчики

Предназначены для работы робота по поиску книг и определению своего местоположения

 

1 сервомотор NXT

Электромотор управляет движением манипулятором

 

2 мотора Tetrix DC motor и 1 Servo

Электромоторы управляют движением робота и манипулятором

 

 

 

 Используя предыдущий опыт по созданию других роботов, мы пришли  к выводу, что конструктора NXT будет недостаточно. Робот должен иметь очень устойчивые и крепкие детали. Возникла необходимость в использование конструктора Tetrix. Элементы этого конструктора сделаны из сверхпрочного сорта алюминия, используемого для создания автоматизированных компонентов самолетов. TETRIX конструктивно и электрически совместим с элементами конструктора LEGO Mindstorms NXT. Кроме того, этот конструктор имеет более сильные сервомоторы, которые необходимы для движения робота. Верхнюю часть робота мы решили сделать из деталей конструктора Mindstorms NXT и Tetrix  (фото 1, 2).

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

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

http://www.int-edu.ru/files/1210_11.gif

 

 

 

 

 

 

                 Фото 1.                                                       Фото 2.

 

Роботизированный комплекс состоит из двух частей: манипулятора и самоходной тележки. При создании тележки использовалось 2 DC мотора, которые отвечают за движение. Тележка сделана из деталей конструктора Tetrix с расчетом на вес перевозимого груза.

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

 

1.3.      Разработка программного обеспечения

 

Мы разработали программу движения робота в среде программирования RobotC.

   Был составлен алгоритм работы роботизированного комплекса:

1.                 Первое, робот получает информацию от пользователя.

2.                 Ищет заданную пользователем книгу.

3.                 Выполняет операцию по извлечению книги со стеллажа.

4.                 Доставляет пользователю заданную книгу.

5.                 Передача информации о выдаче книги в базу данных (дата, время, пользователь, название книги)

В итоге для робота была создана программа для успешного поиска и доставки литературы на пункт выдачи книг (Приложение 2).

 

 

 

 

 

 


Заключение

 

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

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

Наша команда успешно решала задачи программирования, применила способ обмена данными между несколькими NXT, изучила возможность программирования синхронизации моторов, для их одновременного движения. Созданная нами модель робота позволяет отрабатывать различные алгоритмы передачи информации, работы c обменом данными в программировании, практически проверяя теоретические сведения.

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

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

В результате работы над проектом нам удалось создать робота, который может: искать, раскладывать  необходимый  материал.

 

Приложение 1

 

R_v1pfd_tGA.jpg

MYadLwAG1fY.jpgtekImQqqG1o.jpg

 

 

 

 

 

 

 

 

 

Приложение 2

 

#pragma config(Hubs,  S1, HTMotor,  HTServo,  none,     none)

#pragma config(Sensor, S2,     kube,                sensorLightActive)

#pragma config(Sensor, S3,     LightSensor3,         sensorLightActive)

#pragma config(Sensor, S4,     Knopka,               sensorTouch)

#pragma config(Motor,  motorA,          ,              tmotorNormal, openLoop, encoder)

#pragma config(Motor,  motorB,          ,              tmotorNormal, openLoop, encoder)

#pragma config(Motor,  motorC,          ,              tmotorNormal, openLoop, encoder)

#pragma config(Motor,  mtr_S1_C1_1,     motorD,        tmotorNormal, openLoop, reversed)

#pragma config(Motor,  mtr_S1_C1_2,     motorE,        tmotorNormal, openLoop)

#pragma config(Servo,  srvo_S1_C2_1,    ,                     tServoNormal)

#pragma config(Servo,  srvo_S1_C2_2,    ,                     tServoNormal)

#pragma config(Servo,  srvo_S1_C2_3,    ,                     tServoNormal)

//*!!Code automatically generated by 'ROBOTC' configuration wizard               !!*//

//int vzyat (int);

//This program will cause the robot to drive forward at 25% power for 3 seconds

 

task main()   { while(true) {

            int skor=14;

                                                                       int k=1;

                                                                       int k2=1;

                                                                       int i=0;

                                                                       //----- razgib

 

                                                                       int mSpeed;

     servo[servo1] = 0;

     motor[motorA] = 10;//krutit A do 0

 

                                                                       //-----

                                                                       loop1:

                                                                                                                                              if(SensorValue[Knopka] ==0)        //check gripper sensor status

                                                                                                                                                    {

                                                                                                                                              goto loop1;

                                                                                                                                                    }

                                                                                                                      loop2:

                                                                                                                                              i=0;

                                                                                                                      loop3:

                                                                                                                                              wait1Msec(100);

                                                                                                                                              if(SensorValue[Knopka] ==1)        //check gripper sensor status

                                                                                                                                                    {

                                                                                                                                              goto loop3;

                                                                                                                                                    }

                                                                                                                      loop4:

                                                                                                                                              wait1Msec(100);

                                                                                                                                              if (i>10)

                                                                                                                                              {goto loopexit;}

                                                                                                                                              i++;

                                                                                                                                              if(SensorValue[Knopka] ==1)        //check gripper sensor status

                                                                                                                                                  {

                                                                                                                                                  k++;

                                                                                                                                                  goto loop2;

                                                                                                                                                  }

                                                                                                                                              else

                                                                                                                                                  {goto loop4;}

                                                                                                                      loopexit:

 //  wait1Msec(50);                      // The program waits 50 milliseconds to initialize the light sensor.

while(true)                           // Infinite loop

 {

                  if(SensorValue[lightSensor3] < 45)  // If the Light Sensor reads a value less than 45:

                    {

                    motor[motorD] = skor;                  // Motor B is run at a 60 power level.

                                        motor[motorE] = 0;                   // Motor C is run at a 20 power level.

                    }

                    else                               // If the Light Sensor reads a value greater than or equal to 45:

                    {

                    motor[motorD] = 0;                  // Motor B is run at a 20 power level.

                                        motor[motorE] = skor;                  // Motor C is run at a 60 power level.

                    }

 

                 if(SensorValue[kube] < 45){

                   servo[servo1] = 0;

                   goto loop10;}

 }

//---------------------------------------

 

 

loop10:

  //---

    if(k!=k2)

    {

      loop11:

      if(SensorValue[kube] < 45)

                                {

                                    if(SensorValue[lightSensor3] < 45)  // If the Light Sensor reads a value less than 45:

                                    {

                                      motor[motorD] = skor;                  // Motor B is run at a 60 power level.

                                                    motor[motorE] = 0;                  // Motor C is run at a 20 power level.

                                    }

                                      else                               // If the Light Sensor reads a value greater than or equal to 45:

                                      {

                                       motor[motorD] = 0;                  // Motor B is run at a 20 power level.

                                                 motor[motorE] = skor;                  // Motor C is run at a 60 power level.    k=k2+1;

                                      }

                                    goto loop11;

                               }

      else

                                {  k2=k2+1;

                                goto loopexit; }

    }

  //---

//----1    ----------

 

   else {

                                       motor[motorD] = 0;                  // Motor B is run at a 20 power level.

                                                     motor[motorE] = 0;

 

 

          servo[servo1] = 240;

             wait1Msec(1000);

             //---vzati zagnyti

             wait1Msec(5000);

   servo[servo1] = 240;//krutit servo1 do niza

   motor[motorA] = -20;

   wait1Msec(3500);

             //----

                                                   for (int r0=240; r0 > 0; r0--)

                                                               {

                                                                servo[servo1] = r0;

                                                                wait1Msec(10); // ckoroct podema

                                                               }

 

 

          }

 

    motor[motorD] = -100;                  //exati ha zad

                        motor[motorE] = -100;                  //-----

    wait1Msec(2000);

      motor[motorD] = 0;

      motor[motorE] = 0;

                          wait1Msec(600+(k*300));                     //-----

 

 

       wait1Msec(1000);

    motor[motorD] = 0;

    motor[motorE] = 0;

   servo[servo1] = 40;

   wait1Msec(1000);

   servo[servo1] = 80;

   wait1Msec(500);

   servo[servo1] =100;

    wait1Msec(500);

    servo[servo1] = 120;

     wait1Msec(500);

   servo[servo1] =140;

    wait1Msec(500);

    servo[servo1] =160;

     wait1Msec(500);

   servo[servo1] =180;

    wait1Msec(500);

   servo[servo1] =200;

    wait1Msec(500);

   servo[servo1] =220;

    wait1Msec(500);

   mSpeed = 20;

    wait1Msec(2000);

   motor[motorA] = 10;

    wait1Msec(12000);

     servo[servo1] =20;

   wait1Msec(1000);

//  wait1Msec(200000);

 

//loop12:

 

}

}

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "«Роботизированный комплекс для библиотек»"

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Консультант по финансам

Получите профессию

Технолог-калькулятор общественного питания

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 664 983 материала в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 05.10.2015 2255
    • DOCX 1 мбайт
    • 10 скачиваний
    • Оцените материал:
  • Настоящий материал опубликован пользователем Ивановский Сергей Алексеевич. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Ивановский Сергей Алексеевич
    Ивановский Сергей Алексеевич
    • На сайте: 8 лет и 6 месяцев
    • Подписчики: 0
    • Всего просмотров: 2983
    • Всего материалов: 2

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Технолог-калькулятор общественного питания

Технолог-калькулятор общественного питания

500/1000 ч.

Подать заявку О курсе

Курс повышения квалификации

Специфика преподавания технологии с учетом реализации ФГОС

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 295 человек из 67 регионов
  • Этот курс уже прошли 3 091 человек

Курс профессиональной переподготовки

Технология: теория и методика преподавания в образовательной организации

Учитель технологии

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 982 человека из 76 регионов
  • Этот курс уже прошли 3 575 человек

Курс повышения квалификации

Актуальные вопросы преподавания технологии в условиях реализации ФГОС

72 ч.

2200 руб. 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 241 человек из 62 регионов
  • Этот курс уже прошли 1 072 человека

Мини-курс

Дизайн и визуальная коммуникация

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 26 человек из 14 регионов

Мини-курс

After Effects: продвинутые техники

8 ч.

1180 руб. 590 руб.
Подать заявку О курсе

Мини-курс

Занятия спортом при заболеваниях опорно-двигательного аппарата

3 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 39 человек из 20 регионов
  • Этот курс уже прошли 48 человек