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

Раздел Технология
Класс -
Тип Другие методич. материалы
Автор
Дата
Формат doc
Изображения Есть
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

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







Проект

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







Выполнили:

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

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

Педагог:

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





2015г.

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

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

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

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

Содержание:



Введение

4

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

5

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

5

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

6

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

9

Заключение

10

Приложения

11



Введение

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

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

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

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

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

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

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

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



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

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



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

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

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



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


Таблице № 1

Изображение

Название

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

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

NXT.

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

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

Датчики

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

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

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

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

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

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

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




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

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

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

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


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

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

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

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



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

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

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

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

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

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

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

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




Заключение


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

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

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

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

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

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

Приложение 1


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

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



Приложение 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:

}

}

17


© 2010-2022