- •Харківський національний університет радіоелектроніки
- •Дипломний проект пояснювальна записка
- •Допускається до захисту
- •Харківський національний університет радіоелектроніки
- •Завдання на дипломний проект (роботу)
- •Календарний план
- •1 Анализ состояния вопросов управления роботами и постановка задач проектирования
- •2 Разработка аппаратной части микроконтроллерной системы управления
- •3 Разработка программного обеспечения микроконтроллерной системы
- •4 Охрана труда и безопасность в чрезвычайных ситуациях
- •5 Экономическая часть
5 Экономическая часть
В дипломной работе проектируется микроконтроллерная система управления мобильным роботом. Данная система по сравнению с подобной системой, установленной на мобильном роботе Codie (является базовой для сравнения), стоит дешевле, а также обладает рядом преимуществ.
В данном разделе рассчитаны затраты на изготовление микроконтроллерной системы, также учтена конкурентоспособность проектируемой системы.
5.1 Расчет показателя технического уровня проектируемой системы управления
На основании сравнения технических характеристик базовой и проектируемой систем управления определяется показатель технического уровня, результаты сведены в таблицу 5.1.
Таблица 5.1 – Технические характеристики базовой и проектируемой микроконтроллерной системы
Наименование тех. параметра |
Ед. изм. |
Значение параметра |
Ранг пара- метра |
Единичный парамет- ричный индекс |
Сведенный Парамет- ричный показатель |
|
проектируемого |
базового |
|||||
Скорость передачи данных |
Мбит/сек |
2000 |
1000 |
0.2 |
2 |
0.4 |
Количество датчиков |
шт. |
6 |
4 |
0.2 |
1.5 |
0.3 |
Продолжение таблицы 5.1
Наименование тех. параметра |
Ед. изм. |
Значение параметра |
Ранг пара- метра |
Единичный парамет- ричный индекс |
Сведенный Парамет- ричный показатель |
|
Задержка опроса датчиков |
мкс |
55 |
60 |
0,3 |
1.09 |
0,327 |
Время автономной работы |
час |
8 |
7 |
0,3 |
1.14 |
0,34 |
Показатель технического уровня |
|
|
|
1,0 |
|
1,376 |
5.2 Расчет трудоемкости разработки микроконтроллерной системы и заработной платы исполнителей
Среднедневная заработная плата исполнителя (Зсд) рассчитывается по формуле:
|
(5.1) |
где Змес– месячная заработная плата исполнителя, грн;
– количество рабочих дней в месяце (n
= 22 дня).
Для системотехника:
|
|
Для программиста:
|
|
Результаты расчета трудоемкости разработки микроконтроллерной системы управления и заработной платы исполнителей сведены в таблицу 5.2.
Таблица 5.2 – Расчет трудоемкости разработки микроконтроллерной системы управления и заработной платы исполнителей
Наименование этапа и вида работы |
Исполнитель |
Трудозатраты, чел.-день |
Среднедневная ЗП, грн./чел.-день |
Сумма заработной плати, грн.
|
|
должность |
кол-во |
||||
1 |
2 |
3 |
4 |
5 |
6 |
1. Разработка тех. задания |
Системотехник. |
1 |
5 |
250,00 |
1250,00 |
2. Изучение технической документации |
Системотехник. |
1 |
5 |
250,00 |
1250,00 |
3. Обоснование выбора мет. инструментария |
Системотехник. |
1 |
5 |
250,00 |
1250,00 |
4. Формализация задачи. |
Системотехник. |
1 |
5 |
250,00 |
1250,00 |
5. Разработка схемы |
Программист. |
1 |
10 |
181,82 |
1818,2 |
6. Алгоритм. выполнения задач |
Программист. |
1 |
10 |
181,82 |
1818,2 |
Продолжение таблицы 5.2
Наименование этапа и вида работы |
Исполнитель |
Трудозатраты, чел.-день |
Среднедневная ЗП, грн./чел.-день |
Сумма заработной платы, грн.
|
|
должность |
кол-во |
||||
1 |
2 |
3 |
4 |
5 |
6 |
7. Разработка программы |
Программист. |
1 |
5 |
181,82 |
909,1 |
8. Оформление материалов. |
Системотехник. |
1 |
5 |
250,00 |
1250,0 |
Всего ( |
|
|
50 |
|
10795,5 |
5.3 Расчет затрат на разработку микроконтроллерной системы
Статьи затрат используемые для расчета затрат на разработку микроконтроллерной системы:
основная заработная плата;
единый социальный взнос;
затраты на ПК;
материальные затраты;
материалы и комплектующие.
Отчисления в Единый социальный взнос согласно действующему законодательству Украины составляют 36,4% от основной заработной платы исполнителей.
Материальные затраты – это затраты на приобретение малоценных предметов, которые включают стоимость лазерных дисков, картриджей для принтера, канцелярских принадлежностей, бумаги для печати, карандашей и т.д.
Затраты на ПК рассчитываются как стоимость работы машинного времени по формуле 5.2:
|
(5.2) |
где tмч – стоимость одного часа работы на ПЭВМ, грн;
Омч – саммарное время работы на ПЭВМ, час.
Тогда:
|
|
Результаты расчета затрат на разработку микроконтроллерной системы управления сведены в таблице 5.3.
Таблица 5.3 – Расчет затрат на разработку микроконтроллерной системы управления
№ п/п |
Статья затрат |
Значение, грн. |
1 |
Основная заработная плата |
10795,5 |
2 |
Затраты на социальное страхование (37% от ) |
3994,335 |
3 |
Материальные затраты |
500 |
4 |
Затраты на ПК
|
2400 |
5 |
Материалы и комплектующие |
932 |
6 |
Затраты на разработку микроконтроллерной системы |
18621,835 |
5.4 Определение показателя конкурентоспособности микроконтроллерной системы управления
На основании сводных параметрических индексов микроконтроллерной системы управления рассчитывается интегральный показатель конкурентоспособности (КСП) по базовой системе управления конкурента.
Результаты расчета конкурентоспособности микроконтроллерной системы управления сведены в таблицу 5.4.
Таблица 5.4 – Определение показателя конкурентоспособности микроконтроллерной системы управления сведены в таблицу
Наименование параметра |
Ед. изм. |
Значение параметра |
Ранг пара- метра |
Единичный парамет- ричный индекс |
Сведенный парамет- ричный показатель |
|
проектируемого |
базового |
|||||
1 Показатель технического уровня |
|
|
|
0,5 |
|
1,367 |
2 Показатель экономического уровня |
|
|
|
0,5 |
|
0,5875 |
2.1 Стоимость системы |
грн. |
1000 |
2000 |
0,3 |
0,5 |
0,3375 |
2.2 Срок службы |
год |
7 |
3 |
0,2 |
0,4285 |
0,25 |
КСП |
|
|
|
1,0 |
|
1,9545 (>1) |
Поскольку КСП >1 , то уровень конкурентоспособности разрабатываемой системы выше относительно базовой системы.
Результаты расчетов подтвердили экономическую целесообразность внедрения на рынок разрабатываемой системы.
ВЫВОДЫ
В ходе дипломного проектирования была разработана микроконтроллерная система управления мобильным роботом, состоящая из микроконтроллера, датчиков следования вдоль линии, ультразвуковых дальномеров, которые позволяют мобильному роботу ориентироваться в пространстве и исполнительного механизма в виде колесных шасси.
Были изучены различные существующие системы управления роботами, а так же особенности их функционирования и выбрана подходящая для данного проекта.
Для реализации проекта были рассмотрены требования, предъявляемые к проектируемой системе, после чего были сформированы задачи проектирования, которые предстояло решить.
Была разработана аппаратная часть микроконтроллерной системы управления. Для ее реализации была выбрана базовая микроконтроллерная платформа, которая является управляющим звеном системы. Так же было разработано сенсорное звено системы, которое представляет собой совокупность датчиков, таких как датчики линии и ультразвуковые дальномеры. Была выбрана исполнительная часть мобильного робота, представляющая собой шасси с двухколесным дифференциальным приводом. Был так же рассмотрен вопрос корректного размещения сенсорных устройств на корпусе робота. Таким образом, была разработана схема подключения и расположения всех узлов системы и обеспечение их питанием.
Для системы был так же разработан алгоритм ее функционирования. Были рассмотрены особенности управления мобильными роботами. Вопросы планирования траекторий и движения по ним.
Для разработанной системы было написано программное обеспечение, при помощи которого реализуются разработанные алгоритмы функционирования.
В процессе написания данного проекта кроме всего прочего была затронута такая важная тема, как охрана труда и безопасность человека в чрезвычайных ситуациях. С учетом насыщенности современного мира различными техническими средствами не следует забывать о том, что их применение может представлять потенциальную опасность как для здоровья, так и для жизни человека.
Также было проведено технико-экономическое обоснование данного проекта с целью доказательства его целесообразности и возможности дальнейшего развития и продвижения на рынке.
ПЕРЕЧЕНЬ ССЫЛОК
Робототехника [Электронный ресурс] – Режим доступа : www/ URL: https://ru.wikipedia.org/wiki/Робототехника – Загл. с экрана.
H.B. Василенко. Основы робототехники [Текст] / H.B. Василенко К.Д. Никитин В.П. Пономарёв А.Ю. Смолин; под общ. ред. К.Д. Никитина; Томск: МГП "РАСКО", 1993. – 220 с.
Савельев И.В. Курс общей физики [Текст]. Т. 1. Механика. Молекулярная физика: учеб. пособие / И.В. Савельев. – 2-е изд., перераб. – М.: Наука, 1982. – 432 с.
Основы управления манипуляционными роботами: Учебник для вузов. – 2-е изд., исправ. и доп. М.: Изд. МГТУ им. Н. Э. Баумана, 2004. – 480 с.
Классификация роботов по степени участия в управлении ими оператора [Электронный ресурс] – Режим доступа : www/ URL: http://roboticslib.ru/books/item/f00/s00/z0000003/st026.shtml – Загл. с экрана.
Классификация систем управления роботами. [Электронный ресурс] – Режим доступа : www/ URL: http://studopedia.org/7-10494.html – Загл. с экрана.
Основы локальной навигации. [Электронный ресурс] – Режим доступа: www/ URL: http://robotgeeks.ru/blogs/lessons/osnovy-lokalnoy-navigatsii-mobilnyh-robotov – Загл. с экрана.
С.А. Воротников. Информационные устройства роботогтехнических систем [Текст] / С.А. Воротников; Москва: МГТУ им. Н. Э. Баумана, 2005. – 220 с.
Cortex-M3 Processor [Электронный ресурс] – Режим доступа: www/ URL: http://www.arm.com/products/processors/cortex-m/cortex-m3.php – Загл. с экрана.
ATmega328p [Электронный ресурс] – Режим доступа: www/ URL: http://www.atmel.com/devices/atmega328p.aspx – Загл. с экрана.
ATmega2560 [Электронный ресурс] – Режим доступа: www/ URL: http://www.atmel.com/devices/atmega2560.aspx – Загл. с экрана.
Лазарев Л.П. Инфракрасные и световые приборы. М.: Машиностроение, 1970. - 540с.
Инфракрасный дальномер Sharp [Электронный ресурс] – Режим доступа: www/ URL: http://amperka.ru/product/infrared-range-meter-30 – Загл. с экрана.
Ультразвуковой дальномер HC-SR04 [Электронный ресурс] – Режим доступа: www/ URL: http://amperka.ru/product/hc-sr04-ultrasonic-sensor-distance-module– Загл. с экрана.
Ультразвуковой датчик расстояния URM37[Электронный ресурс] – Режим доступа: www/ URL: http://microsin.net/adminstuff/hardware/ultrasonic-distance-sensor-urm37.html– Загл. с экрана.
Буданов В.М., Девянин Е.А. «О движении колесных роботов», Прикладная математика и механика, т.67, вып. 2, 2003 г.
Охоцимский Д.Е., Павловский В.Е. «Проблемы динамики и управления мобильных колесных роботов», материалы научной школы-конференции «Мобильные роботы и мехатронные системы», М., МГУ, 2005.
Беккер М.Г. Введение в теорию системы местность машина. - М.: Машиностроение, 1973. - 507с.
Двухколёсная платформа miniQ [Электронный ресурс] – Режим доступа: www/ URL: http://amperka.ru/product/miniq-chassis– Загл. с экрана.
Н-мост [Электронный ресурс] – Режим доступа: www/ URL: https://ru.wikipedia.org/wiki/H-мост– Загл. с экрана.
Кикура M. Планирование траекторий для мобильных роботов: Пер.с англ./ ВЦП. 1987. - № Н-42043. - 6с.
Кригман Д., Трайендл Э., Бинфорд Т. Подвижный робот: исследование окружающей среды датчиками, планирование и движение : Пер.с англ./ ВЦП. 1989. - № Р-36876. - 6с.
AVR Studio 5 Atmel Corporation [Электронный ресурс] – Режим доступа: www/ URL: www.atmel.com/microsite/avr_studio_5/– Загл. с экрана.
Arduino – Software [Электронный ресурс] – Режим доступа: www/ URL: http://www.arduino.cc/en/Main/Software– Загл. с экрана.
Arduino. Что там внутри? [Электронный ресурс] – Режим доступа: www/ URL: http://microsin.net/programming/AVR/arduino-inside-faq.html– Загл. с экрана.
Павловский В.Е., Евграфов В.В. «Синтез D2-гладких траекторий для мобильного робота с дифференциальным приводом», материалы научной школы-конференции «Мобильные роботы и мехатронные системы», М., МГУ, 2004.
Регулирование частоты вращения двигателя постонного тока независимого возбуждения [Электронный ресурс] – Режим доступа: www/ URL: http://electrikam.com/regulirovanie-chastoty-vrashheniya-dvigatelej-nezavisimogo-vozbuzhdeniya/– Загл. с экрана.
Arduino Uno: Основы программирования [Электронный ресурс] – Режим доступа: www/ URL: http://developer.alexanderklimov.ru/arduino/arduino-minimum.php– Загл. с экрана.
Методичні вказівки до виконання розділу «Охорона праці та безпека в надзвичайних ситуаціях» у дипломних проектах (роботах) ОКР «спеціаліст» усіх форм навчання факультетів КН, КІУ, ПММ /Упоряд.: В.А.Айвазов, Н.Л.Березуцька, Б.В.Дзюндзюк, А.В.Мамонтов, Т.Є.Стиценко – Харків: ХНУРЕ, 2011. — с.
Методичні рекомендації до виконання економічної частини дипломних проектів, робіт для студентів денної та заочної форми навчання усіх спеціальностей / Упорядник Л.В.Соколова, О.І. Горбач, С.В. Гришко, Є.В. Діденко, Л.В. Левченко, Г.М. Путятіна, В.Г. Харченко. – Харків: ХНУРЕ, 2010. – 52 с.
Приложение А
Листинг управляющей программы микроконтроллерной системы
int FDist = 12;
int SNDist = 14;
int DSFlag = 0;
int GetDistance(int TrigPin)
{
int duration;
int cm;
digitalWrite(TrigPin, HIGH); //сигнал на Trig
delay(10); //в течении 10 мкс
digitalWrite(TrigPin, LOW); //убираем сигнал
duration=pulseIn(TrigPin+1, HIGH); //длительность импульса на trig+1 выходе (echo)
cm=duration/58; //перевод в сантиметры
return cm; //возвращаемое значение
}
void LeftMotor(int dir, int speed)
{ //левый мотор
if (dir>0)
{
digitalWrite(4, HIGH); //вращение прямо
}
else
{
digitalWrite(4, LOW); //вращение обратно
analogWrite(5, speed); //выставляем скорость
}
}
void RightMotor(int dir, int speed)
{ //правый мотор
if (dir>0)
{
digitalWrite(7, HIGH); //вращение прямо
}
else
{
digitalWrite(7, LOW); //вращение обратно
analogWrite(6, speed); //выставляем скорость
}
}
void LineTrace()
{
while(DSFlag==0)
{ //выполнять пока нет препятствия
GetFlag();//установить флаг
boolean left = digitalRead(43);//чтение левого датчика
boolean right = digitalRead(41);//чтение правого датчика
if(left==right)
{//если значения равны (оба на белом)
LeftMotor(1, 127);//движение прямо
RightMotor(1, 127);
}
else if(left)
{//если левый датчик на линии
LeftMotor(1, 0);//поворот влево
RightMotor(1, 127);
}
else
{//в другом случае (на линии правый датчик)
LeftMotor(1, 127);//поворот вправо
RightMotor(1, 0);
}
}
}
void Rotation(int DSFlag, int SNDist)
{
int LMDir; //направление левого мотора
int RMDir; //направление правого мотора
int USPin; //пин опрашиваемого датчика
int SideDist; //значение с опрашиваемого датчика
if (DSFlag<0)
{ //если DSFlag = -1 (разворот влево)
LMDir=0; //левый мотор вращаем назад
RMDir=1; //правый вперед
USPin=36; //опрашиваем правый боковой дальномер
}
else
{ //иначе (DSFlag = 1, разворот вправо)
LMDir=1; //левый мотор вращаем вперед
RMDir=0; //правый мотор вращаем назад
USPin=34; //опрашиваем левый боковой дальномер
}
do
{ //выполнять
LeftMotor(LMDir, 63); //пуск левого мотора со скоростью 64
RightMotor(RMDir, 63); //пуск правого мотора со скоростью 64
SideDist=GetDistance(USPin); //получение расстояния
}
while (Side dist>SNDist); //пока полученное расстояние больше нужного
}
void BackToLine(int DSFlag)
{
int LMDir; //направление левого мотора
int RMDir; //направление правого мотора
int FLinePin;//пин датчика наехавшего на линию
int SLinePin;//пин другого датчика
if(DSFlag==-1)
{//если объезд совершался слева
FLinePin=41;//пин правого датчика
SLinePin=43;//пин левого датчика
LMDir=0;//левый мотор назад
RMDir=1;//правый вперед
}
else
{//если объезд совершался справа
FLinePin=43;//пин левого датчика
SLinePin=41;//пин правого датчика
LMDir=1;//левый мотор вперед
RMDir=0;//правый назад
}
if(digitalRead(FLinePin)==HIGH)
{//если над линией датчик с пином FLinePin
do
{//движение вперед
LeftMotor(1, 63);
RightMotor(1, 63);
}
while(digitalRead(SLinePin)==LOW);//пока над линией не окажется второй датчик
}
else
{//если над линией датчик с пином SLinePin
do
{//движемся вперед
LeftMotor(1, 63);
RightMotor(1, 63);
}
while(digitalRead(FLinePin)==LOW);//пока над линией не окажется второй датчик
do
{//затем вращаемся в сторону
LeftMotor(LMDir, 63);
RightMotor(RMDir, 63);
}
while(digitalRead(SLinePin)==LOW);//пока над линией не окажется первый датчик
}
DSFlag=0;//возвращение на линию
}
void AlongMove(DSFlag)
{
int USPin;//пин опрашиваемого датчика
int SideDist;//расстояние сбоку
int FrontDist; //расстояние впереди
int LMSpeed;//скорость левого мотора
int RMSpeed;//скорость правого мотора
int LMDir;//направление левого мотора
int RMDir;//направление правого мотора
while ((digitalRead(41)*digitalRead(43))==0)
{//пока не видим линию, выполняем
if(DSFlag==-1)
{//если объезд слева
USPin=36;//опрашиваем правый боковой дальномер
LMDir=1; //направление маневра в случае препятствия
RMDir=0;
}
else
{//если объезд справа
USPin=34;//опрашиваем левый боковой датчик
LMDir=0; //направление маневра в случае препятствия
RMDir=1;
}
if(GetDistance(30)<GetDistance(32))
{//присвоение меньшего значения с передних дальномеров
FrontDist=GetDistance(30);
}
else
{
FrontDist=GetDistance(32);
}
if(Frontdist<10)
{//если в пределах 10 см препятствие
while(GetDistance(USPin)>10)
{//разворачиваемся к нему боком на месте
LeftMotor(RMDir, 31);
RightMotor(LMDir, 31);
}
}
else
{//если впереди препятствия нет
SideDist=GetDistance(USPin);//считываем показания бокового датчика
if(Side dist>(SNDist+SRange))
{если расстояние превышает максимальное (выезд за препятствие)
while(GetDistance(USPin)>(SNDist+SRange))
{//то поворачиваемся к препятствию
LeftMotor(LMDir, 31);
RightMotor(RMDir, 31);
}
}
else if (SideDist<(SNDist-SRange))
{//если расстояние меньше минимального
while(GetDistance(USPin)<(SNDist-SRange))
{//разворачиваемся от препятствия
LeftMotor(RMDir, 31);
RightMotor(LMDir, 31);
}
}
else
{//если расстояние в пределах нормы
LMSpeed=63-(6.3*(SideDist-SNDist)*DSFlag);//расчет скоростей для моторов
RMSPeed=63+(6.3*(SideDist-SNDist)*DSFlag);
LeftMotor(1, LMSpeed);//вращение моторов с заданными скоростями
RightMotor(1, RMSPeed);
}
}
}
}
void GetFlag()
{
int left = GetDistance(30);//чтение левого датчика
int right = GetDistance(32);//чтение правого датчика
if(left<FDist) DSFlag=1;//сравнение показателя левого дальномера с расстоянием реагирования и установка флага
else if(right<Fdist) DSFlag=-1; ;//сравнение показателя левого дальномера с расстоянием реагирования и установка флага
else DSFlag=0;
return;
}
void setup() {
pinMode(41, INPUT); //правый датчик линии
pinMode(43, INPUT); //левый датчик линии
pinMode(4, OUTPUT); //направление левого колеса
pinMode(5, OUTPUT); //enable левого колеса
pinMode(6, OUTPUT); //enable правого колеса
pinMode(7, OUTPUT); //направление правого колеса
pinMode(30, OUTPUT); //trig переднего левого датчика
pinMode(31, INPUT); //echo переднего левого датчика
pinMode(32, OUTPUT); //trig переднего правого датчика
pinMode(33, INPUT); //echo переднего правого датчика
pinMode(34, OUTPUT); //trig бокового левого датчика
pinMode(35, INPUT); //echo бокового левого датчика
pinMode(36, OUTPUT); //trig бокового правого датчика
pinMode(37, INPUT); //echo бокового правого датчика
}
void loop()
{
if(DSFlag==0)
{
LineTrace();
}
else
{
Rotation(DSFlag, SNDist);
AlongMove(DSFlag);
BackToLine(int DSFlag);
}
}
Позначення |
Найменування |
Дод. відомості |
|||||||||
|
Текстові документи |
|
|||||||||
1. ГЮІК.46ХХХХ.018 ПЗ |
Пояснювальна записка |
121с. |
|||||||||
|
|
|
|||||||||
|
Графічні документи |
|
|||||||||
2. ГЮІК.46ХХХХ.018 Д0 |
Демонстраційні матеріали |
__ арк. ф.A4 |
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
Інші документи |
|
|||||||||
3. |
Документи на компакт-диску |
1 CD |
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|||||||||
|
|
|
|
|
ГЮІК.46ХХХХ.018 ВД |
||||||
|
|
|
|
|
|||||||
Змін. |
Арк. |
Номер докум. |
Підп. |
Дата |
|||||||
Розроб. |
Півень Б.П. |
|
|
Мікроконтролерна система керування мобільним роботом
Відомість дипломного проекту |
Літ |
Аркуш |
Аркушів |
||||
Перевір. |
Корабльов М.М. |
|
|
У |
|
|
|
|
|||
Н.контр. |
|
|
|
ХНУРЕ кафедра ЕОМ |
|||||||
Затв. |
Руденко О.Г. |
|
|
||||||||
