Дипломдық ЖҰмыс 5В071600  "Аспап жасау" Алматы 2020



Pdf көрінісі
бет9/9
Дата31.05.2023
өлшемі1,65 Mb.
#178051
түріДиплом
1   2   3   4   5   6   7   8   9
Байланысты:
5В071600 -Исманалиев Равшанбек Фахриддинович (Дипломдық жұмыс)2020ж.

 
 
2.6 Сервожетек 
2.11 сурет - Серво жетек 
Сервожетек - белгілі бір мәндер бақыланатын, басқару блогында, 
қозғалтқышта оның құрылғысында арнайы сенсоры бар механизм. 
Құрылғының міндеті - белгілі бір уақытта берілген сигналға байланысты 
жұмыс кезінде параметрлерді басқару және қолдау. 
Құрылғы жүйелік сигналдармен кері әрекеттесу принципінде жұмыс 
істейді. Серво жетек белгілі бір уақытта белгілі бір уақытта басқару мәнінің 
кіріс параметрлерін алады және оны шығарылған элементтің шығысында 
қолдайды. 
Мұндай типтегі Механизм әдетте мынадай құрамдас бөліктерге ие: 
Жетек-редуктормен электр моторы немесе ұқсас құрылғылар. Егер ол 
тым үлкен болса, қозғалыс жылдамдығын азайту үшін қажет. 
Ең қарапайым нұсқаның жұмыс принципінде кері байланыс датчигінен 
шығатын мәндерді өңдеу схемасы және қозғалтқышқа қажетті полярлықтың 
кернеуін беру үшін реттелетін кіріс сигналдары жатады. Микротәсімдерді 
пайдалана отырып жұмыс істейтін күрделі құрылғылар екпіннің немесе 
тежелудің тегіс кезеңін қамтамасыз ете отырып, инерцияны ескереді, бұл 


24 
жүктеме деңгейін азайтуға және көрсеткіштерді дәл синхрондауға қол 
жеткізуге көмектеседі.
3.12 сурет - Серво жетектің Arduino Uno платформасына жалғану 
сұлбасы. 
2.13 сурет - Мобильді роботты құрастырушы Arduino Uno , 
ультрадыбыстық сенсор HC-SR04 модулі , сервожетек , қозғалтқыш драйвері 
сонымен қатар DC қозғалтқыштардың жалпсы қосылу сұлбасы. 


25 
2.14 сурет - Мобильді робот 
2.7 Өлшеу құрылғыларының сипаттамалары 
2.2-кестеде 
ұсынылған ультрадыбыстық қашықтық өлшеуіштің 
техникалық сипаттамаларын қарастырайық. Өлшеу дәлдігі қажеті негізгі 
параметрлер. Әр түрлі объектілерге жақын қозғалу үшін және жалпы жүйенің 
өнімділігін арттыру үшін қашықтықты ондық бөліксіз сантиметрмен 
өлшейміз. Бұдан әрі эмпирикалық жолмен қашықтықты қашықтық 
өлшеуішпен өлшеудің дәлдігін есептейміз. Ол үшін қашықтық өлшегіш 
модулінің алдына қандай да бір кедергіні қойып немесе оны қабырғаға 
бағыттап, сәуле шығарғыш пен қабылдағыштың жазықтығы объектінің 
жазықтығына параллель болатындай етіп (біздің жағдайда қабырға). Және 
қашықтықты 10 рет өлшейміз. Қабырға мен алыстан өлшегіш арасындағы 
қашықтық тура 50 см деп алдын ала белгілі. 
2.2 Кесте- УД датчиктіңтәжірбиелікнәтижелері 
Тәжірибе номері 
Қашықтық 

50 

49 

49 

49 

50 

50 

50 

50 


26 

50 
10 
50 
2.2-кестенің деректерінен орташа арифметикалық табамыз, ол 497 мм 
немесе 49,7 см құрайды. Бұл үшін ең үлкен өлшенген мәннен орташа және 
орташадан ең аз мәнді алып тастаймыз:
50-49, 7=0,3 см,
49,7-49=0,7 см.
Камерамен және қашықтықпен бекітілген кронштейнде орнатылған 
сервопривод ауытқуының дәлдігін анықтаймыз. Ол үшін пленкада (мөлдір) 
1° бөлу бағасы бар тасымалдаушыны басып шығарамыз және кронштейннің 
жанында бекітеміз. Жоғарыда сипатталған тәжірибені қайталаймыз. 
Сервоприводты 0-ден 90° - ға дейін қабылдамаймыз.Тәжірибе нәтижелері 
2.5-кестеде келтірілген. 
3.3кесте— Сервожетектіңтәжірбиелікнәтижелері 
Тәжірібе номері 
Бұрыш 

91 

90 

90 

89 

90 

91 

90 

90 

90 
10 
90 
Орташаарифметикалықөлшемдердітабамыз: 90,1° 
Белгісіздікаралығынанықтаймыз: 
91−90,1=0,9
°,


27 
90,1−89=1,1
°. 
Белгісізесептелгенаралықтарынқосып және 2
°
аламыз. Осылайша, 
объектіге дейінгі өлшенетін ауытқу±2
°
дәлдікпен есептеледі. 


28 
3Бағдарламалық бөлім 
3.1 Ардуино бағдарламалау тілі 
Бұл бөлімде құрастырылған роботты бағдарламалықпен қамтамасыз 
етеміз. Жалпы қандай да робот жасалса, оның қозғалысы тікелей жазылған 
бағдарламасына байланысты болады, яғни, ол дегеніміз біз бағдарламаны 
қалай жазсақ, сәйкесінше, роботымыздың қозғалысын солай басқарамыз. 
Ардуиноға арналған бағдарлама кәдімгі С++ тілінде жазылады, 
байланыстағы кіріс және шығысты басқаратын, реттейтін оңай әрі түсінікті 
функциялармен толықтырылады. Платадағы микроконтроллер Ардуино 
бағдармалау тілі арқылы бағдармаланады.
3.2 Мобильді роботтың бағдарламасы 
#include // серво жетек кітапханасы. Бұл стандартты 
кітапхана 
#include // Ультрадыбыстық сенсор функциясының 
кітапханасы. Бұл кітапхананы алдын ала орнату керек 
Бізде мобильді роботты программалау үшін бірінше кезекте 
кітапханаларды енгізу тиіс болып табылады.Servo.h кітапханасы серво жетек 
кітапханасы.NewPing.h 
кітапханасы 
ультрадыбыстық 
сенсордың 
кітапханасы. Оны біз алдын ала орнатуымыз керек болады.
// Қозғалтқыш драйвері бақылайтын кодтар 
const int LeftMotorForward = 7; 
const int LeftMotorBackward = 6; 
const int RightMotorForward = 4; 
const int RightMotorBackward = 5; 
Қозғалтқыш драйвері жалғанатын пиндер. Сол, алдынғы мотор 7 пинге 
жалғанады . Сол, артынғы мотор 6 пинге жалғанады . Оң , алдынғы мотор 4 
пинге жалғанады. Оң артынғы мотор 5 пинге жалғанады .
// Ультрадыбыстық сенсор жалғанатын пиндер
#define trig_pin A1 // аналогтық кіріс 1 
#define echo_pin A2 // аналогтық кіріс 2 
#define maximum_distance 200 
boolean goesForward = false; 
int distance = 100; 


29 
Ультрадыбыстық датчик жалғанатын пиндер. trig_pin аналогтық 1 
пинге жалғанады . Сонымен қатар бұл сигнал жиберуші болып табылады.
echo_pin аналогтық 2 пинге жалғанады . Ол сингал қабылдаушы болып 
табылады . Максимум ара-қашықтық 200 мм дейин . 
NewPing 
sonar(trig_pin, 
echo_pin, 
maximum_distance); 
//Ультрадыбыстық сенсор функциялары 
Servo servo_motor; //Біздің серво жетек аты 
Ультрадыбыстық датчик функциялары болып , оларды жұмысқа 
қосады.
void setup(){ 
pinMode(RightMotorForward, OUTPUT); 
pinMode(LeftMotorForward, OUTPUT); 
pinMode(LeftMotorBackward, OUTPUT); 
pinMode(RightMotorBackward, OUTPUT); 
4 қозғалтқышты жұмысқа қосатын кодтар болып табылады. Олардың 
пиндеріне сигнал жібереді.
servo_motor.attach(10); //серво жетек жалғанатын пин 
Серво жетек жалғанған пин. Сонымен қатар серво жетек жұмыс істеуі 
үшін кодтар. 
3.3 Мобильді роботтың жолын жоспарлау
 
Мобильді роботтың жолын жоспарлау мәселесі, әдетте, төмендегідей 
тұжырымдалады: мобильді робот пен қоршаған ортаның сипаттамасы 
берілген, көрсетілген екі орын, басталу және аяқталу нүктелерінің 
арасындағы жолды жоспарлау. Жол соқтығысусыз болуы керек және белгілі 
бір оңтайландыру критерийлерін қанағаттандыруы керек. Осы анықтамаға 
сәйкес жолды жоспарлау мәселесі оңтайландыру мәселесі ретінде жіктеледі. 
Зерттеушілер жолды жоспарлау мәселесін шешуде қолданылатын әртүрлі 
әдістерді екі факторға, (1) қоршаған орта типіне (яғни статикалық немесе 
динамикалық), (2) жолды жоспарлау алгоритмдеріне (яғни, ғаламдық немесе 
жергілікті) негіздейді. Статикалық орта деп навигациялық роботтан басқа 
қозғалатын заттар жоқ орта ретінде анықталады; ал динамикалық дегеніміз - 
динамикалық қозғалатын нысандары бар орта (мысалы, адамдар, қозғалатын 
машиналар және басқа қозғалатын роботтар. Ғаламдық жолды жоспарлау 


30 
алгоритмдері барлық рельефтердің статикалық болуын, сонымен қатар іздеу 
ортасы туралы толық білімді талап етеді. Екінші жағынан, жергілікті жолды 
жоспарлау дегеніміз робот қозғалу кезінде жолды жоспарлау жүзеге 
асырылады, басқаша айтқанда, алгоритм қоршаған ортаның өзгеруіне жауап 
ретінде жаңа жол құруға қабілетті. 
Жолды жоспарлау робототехникадағы негізгі проблемалардың бірі 
болып табылады және соқтығысусыз жолдарды жоспарлау мүмкіндігі 
автономды роботтардың көптеген қосымшаларының алғышарты болып 
табылады. 
Принцип мынада: робот өткен жолдың белгілі бір уақыт аралығында 
тоқтайды, сервомотор 10 градус қадаммен 0-ден 180 градусқа жылжиды. Әр 
қадамда қашықтық датчигі кедергілерге дейінгі қашықтықты алады. Егер ол 
рұқсат етілгеннен аз болса - сәйкес айнымалы «шын» деп жазылады. Осыдан 
кейін, егер роботтың жолында кедергілер болса, біз оған алдыңғы қатардың 
оң немесе сол жағына жаңа мұрагерлік нүктесін қоямыз. 
Ультрадыбыстық сенсор (HC-SR04): ультрадыбыстық диапазон 
сенсоры (HC - SR04) 2 см - 400 см қашықтықты өлшеу функциясын 
қамтамасыз етеді, ауқым дәлдігі 3 мм дейін жетуі мүмкін. Модульдерге 
ультрадыбыстық таратқыштар, қабылдағыш және басқару тізбегі кіреді. 
Төмендегі сызба роботтың қарапайым жұмысын көрсетеді, ол бөлмені 
сағат тілі бағыты бойынша айналдырады және роботтың жолындағы кез-
келген кедергілерді болдырмайды. 


31 
3.1 сурет – Мобильді робот жұмыс жасау алгоритмі 
Робот кедергілерді айналып өте алуы үшін алгоритм ойлап табылды: 
Робот әрқашан сіздің алдыңдағы бос орынды бақылайды. 
Кедергіге дейінгі қашықтық белгілі бір минималды мәннен аз болған 
кезде робот тоқтайды. 
Сенсор β градусқа солға бұрылады және кедергіге дейінгі қашықтықты 
өлшейді, содан кейін β градус оңға қарай өлшенеді. 
Робот ең жақын кедергіге дейінгі қашықтық үлкен болатын бағытқа 
бұрылуы керек және ол белгілі бір минималды мәннен үлкен болуы керек. 


32 
Бұрылыс маневрі аяқталғаннан кейін робот алға қарай жалғасады, 
алгоритм 1-ші нүктеден орындалады. 
Егер кедергінің оң және сол жақ қашықтығы белгілі бір минималды 
мәннен аз болған жағдайда робот кері бағытта қосылады. Алгоритм 3-ші 
нүктеден орындалады. 


33 


34 
3.2 сурет - Мобильді робот жұмыс жасау алгоритмі 


35 
ҚОРЫТЫНДЫ 
Дипломдық жоба барысында мобильді робот жасалды. Сонымен қатар 
жасалған мобильді робот белгісіз жағдайда басқару жүйесі қарастырылды. 
Мобілді роботттың жасалуы мен құрастырылуы толық сипатталды, атап 
айтқанда мобильді роботтың макетін құрастырылуы, датчиктер мен 
атқарушы механизмдердің орналасуы, басқарушы блокка қосылуы 
сипатталды. Мобильді роботты қолмен және автоматты режимдерде 
тестілеуді өткіздім. Сонымен қатар мобильді роботты Android телефонынан 
bluetooth арқылы қолмен басқардым. Қорытындылап айта келгенде, кәзіргі 
заман жаңа технологиялар заманы болғандықтан, бұндай автоматты түрде 
шешім қабылдап жүретін роботтарды көбейтіп ары қарай дамыту керек. 
Адам қатысуынсыз автоматты түрде басқару өте тиімді және қауыпсыз 
болып табылады 
 


36 
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ 
1.
Д. КрейгВведене в робототехнику. Механика и управление. Изд-во
Институт Компьютерных исследований, 2015. – 564 с. 
2.
Основы теории исполнительных механизмов шагающих роботов.
Ковальчук А.К., Кулаков Д.Б., Кулаков Б.Б., [и др.] М.: Изд-во 
"Рудомино", 2014., 170 с. 
3.
В.А. Иванов, В.С. Медведев Математические основы теории
оптимального и логического управления. М.: Изд-во МГТУ им. Н.Э. 
Баумана, 2016. – 600 с. 
4.
Сербенюк Н. С. Классификация мобильных роботов // Доклады
научной конференции «Мобильные роботы и мехатронные системы» 
(Москва, 2-3 декабря 2012г.).-М.: Изд-во Института механики МГУ, 2015г 
50-55с. 
5.
Бербюк, В. Е. Кинематика и оптимизация робототехнических систем /
В.Е. Бербюк. - М.: Наукова думка, 2014. - 192 c. 
6.
Крейг, Джон Введение в робототехнику. Механика и управление /
Джон Крейг. - М.: Институт компьютерных исследований, 2017. - 564 c. 
7.
Перспективные направления развития информационно- 
коммуникационных технологий. - М.: Научная книга, 2017. - 272 c. 
8.
Тывес, Л. И. Механизмы робототехники. Концепция развязок в
кинематике, динамике и планировании движений / Л.И. Тывес. - М.: 
Ленанд, 2014. - 208 c. 
9.
Форд, Мартин Роботы наступают. Развитие технологий и будущее без
работы: моногр. / Мартин Форд. - М.: Альпина нон-фикшн, 2016. - 430 c. 
10.
Хиросэ, Шигео Мобильные роботы и манипуляторы / ШигеоХиросэ. – 
М.: Институт компьютерных исследований, 2014. - 256 c. 
11.
Есжанов, Ж.Қараев, Б.Нақысбеков, Е.Жолымбетов «Алгоритмдеу


37 
және ЭЕМ» - Алматы: «Рауан», 2015. 
12.
О. Камардинов «Есептеуіш техника жәнепрограммалау» Алматы,
2017ж 
13.
Лапчик М.П. Вычисления. Алгоритмизация. Программирование:
Пособие для учителя.-Москва. Просвещение, 2014г 
14.
Нақысбеков Б.Қ., Балапанов Е.Қ., Халықова К.З., Даулетқұлов А.Б.
«С++ тілінің негіздері» Оқу кұралы. Алматы, Рауан, 2014ж 
15.
 
http://apcmag.com/arduino-masterclass-part-4-build-a-mini-robot.htm/ 
16.
 
http://wiki.amperka.ru/%D0%BF%D1%80%D0%BE%D0%B4%D1%8D0
%BA%D1%82%D1%8B:arduino-uno
 
17.
 
http://arduino-diy.com/arduino-ultrazvukovoy-datchik-rasstoyaniya 
18.
 
http://amperka.ru/product/hc-sr04-ultrasonic-sensor-distance-module 
19.
 
http://1injener.ru/category/1arduinoproject/servoprivod_sg90_arduino_podk
lyuchenie_180_gradusov.html 
20.
 
http://coolcode.ru/arduino-upravlenie-servoprivodom-na-primere-sg90/ 
Қосымша А 
Мобильді роботтың Arduino бағдарламасыда кодтары 
#include // серво жетек кітапханасы. Бұл стандартты 
кітапхана 
#include // Ультрадыбыстық сенсор функциясының 
кітапханасы. Бұл кітапхананы алдын ала орнату керек 
// Қозғалтқыш драйвері бақылайтын кодтар 
const int LeftMotorForward = 7; 
const int LeftMotorBackward = 6; 
const int RightMotorForward = 4; 
const int RightMotorBackward = 5; 
// Ультрадыбыстық сенсор жалғанатын пиндер
#define trig_pin A1 // аналогтық кіріс 1 
#define echo_pin A2 // аналогтық кіріс 2 
#define maximum_distance 200 
boolean goesForward = false; 
int distance = 100; 
NewPing 
sonar(trig_pin, 
echo_pin, 
maximum_distance); 
//Ультрадыбыстық сенсор функциялары 
Servo servo_motor; //Біздің серво жетек аты 


38 
void setup(){ 
pinMode(RightMotorForward, OUTPUT); 
pinMode(LeftMotorForward, OUTPUT); 
pinMode(LeftMotorBackward, OUTPUT); 
pinMode(RightMotorBackward, OUTPUT); 
servo_motor.attach(10); //серво жетек жалғанатын пин 
servo_motor.write(115); 
delay(2000); 
distance = readPing(); 
delay(100); 
distance = readPing(); 
delay(100); 
distance = readPing(); 
delay(100); 
distance = readPing(); 
delay(100); 

void loop(){ 
int distanceRight = 0; 
int distanceLeft = 0; 
delay(50); 
if (distance <= 20){ 
moveStop(); 
delay(300); 
moveBackward(); 
delay(400); 
moveStop(); 
delay(300); 
distanceRight = lookRight(); 
delay(300); 


39 
distanceLeft = lookLeft(); 
delay(300); 
if (distance >= distanceLeft){ 
turnRight(); 
moveStop(); 

else{ 
turnLeft(); 
moveStop(); 


else{ 
moveForward();

distance = readPing(); 

int lookRight(){
servo_motor.write(50); 
delay(500); 
int distance = readPing(); 
delay(100); 
servo_motor.write(115); 
return distance; 

int lookLeft(){ 
servo_motor.write(170); 
delay(500); 
int distance = readPing(); 
delay(100); 
servo_motor.write(115); 


40 
return distance; 
delay(100); 

int readPing(){ 
delay(70); 
int cm = sonar.ping_cm(); 
if (cm==0){ 
cm=250; 

return cm; 

void moveStop(){ 
digitalWrite(RightMotorForward, LOW); 
digitalWrite(LeftMotorForward, LOW); 
digitalWrite(RightMotorBackward, LOW); 
digitalWrite(LeftMotorBackward, LOW); 

void moveForward(){ 
if(!goesForward){ 
goesForward=true; 
digitalWrite(LeftMotorForward, HIGH); 
digitalWrite(RightMotorForward, HIGH); 
digitalWrite(LeftMotorBackward, LOW); 
digitalWrite(RightMotorBackward, LOW);


void moveBackward(){ 
goesForward=false; 
digitalWrite(LeftMotorBackward, HIGH); 
digitalWrite(RightMotorBackward, HIGH); 


41 
digitalWrite(LeftMotorForward, LOW); 
digitalWrite(RightMotorForward, LOW); 

void turnRight(){ 
digitalWrite(LeftMotorForward, HIGH); 
digitalWrite(RightMotorBackward, HIGH); 
digitalWrite(LeftMotorBackward, LOW); 
digitalWrite(RightMotorForward, LOW); 
delay(500); 
digitalWrite(LeftMotorForward, HIGH); 
digitalWrite(RightMotorForward, HIGH); 
digitalWrite(LeftMotorBackward, LOW); 
digitalWrite(RightMotorBackward, LOW); 

void turnLeft(){ 
digitalWrite(LeftMotorBackward, HIGH); 
digitalWrite(RightMotorForward, HIGH); 
digitalWrite(LeftMotorForward, LOW); 
digitalWrite(RightMotorBackward, LOW); 
delay(500); 
digitalWrite(LeftMotorForward, HIGH); 
digitalWrite(RightMotorForward, HIGH); 
digitalWrite(LeftMotorBackward, LOW); 
digitalWrite(RightMotorBackward, LOW); 


Document Outline

  • 3Бағдарламалық бөлім
    • 3.1 Ардуино бағдарламалау тілі
  • ҚОРЫТЫНДЫ
  • ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9




©www.engime.org 2024
әкімшілігінің қараңыз

    Басты бет