5.1-rasm. Robot-manipulyator
Manipulyatorlar qo`l bilan boshqariladigan va avtomatlashtirilgan bo`ladi.
Birinchi paydo bo`lgan manipulyatorlar passiv, ya`ni mexanizmlari
yuritmasiz bo`lib, inson qo`li harakatlarini masofadan turib takrorlash uchun
mo`ljallangan edi. Bu harakat faqat inson mushagi kuchi evaziga amalga oshirilgan.
Keyinroq yuritmali va inson tomonidan boshqariladigan manipulyatorlar yaratildi.
Ishni bajarish tartibi
Ishni bajarish mobaynida maket
Breadboard
ga
Arduino UNO
qurilmasini
o`rnatamiz. Bunda
Arduino UNO
mikrokontrollerining doimiy kuchlanish manbai
5V va
GND
portlaridan o`tkazgichlar orqali relening belgilangan kirish qismlari
(
Vcc
va
GND
) ga ulaymiz va uning doimiy ishlashi taminlanadi. Ushbu relelarning
ulab uzish oralig`ini amalga oshirish uchun relelarning
IN1
va
IN2
portlariga
Arduino UNO
qurilmasining chiqish portlari 7 va 8 nuqtalaridan qabul qilib olamiz
va ulaymiz. Shundan so`ng relelarning chiqish qismlaridan motorni harakatga
keltirish uchun doimiy manba 9V qiymatga teng batareyaning ikki chiqish qismidan
(-/+) mos ravishda relelarning
NC1, NC2
va
NO1, NO2
kirish portlariga ulaymiz.
Motorning 2 tomonlama harakatlanishini ta`minlash uchun relening
COM1
va
135
COM2
portlari orqali o`tkazgichlar orqali natijlarni chiqaramiz va motorning
belgilangan qismlariga ulaymiz.
5.2 – rasm. Manipulyatorning bitta qismining ikki tomonga harakatlanishini
ulanishining printsipial sxemasi
Endi “Robot qo`li” ni ishlatadigan mikrokontroller dasturini yozamiz:
/// harakatlantirish ...
const int Bir = 8;
/// teskariga harakatlantirish ...
const int not_Bir = 7;
void setup() ;
void GO(int, int, bool) ;
void Stop(int, int) ;
void BirRight(int) ;
void BirLeft(int) ;
void loop() ;
/// Asosiy qisim ...
void setup() {
Serial.begin(9600);
while (!Serial) {}
for (int i = not_Bir ; i <= Bir ; i ++ )
{
136
pinMode(i, OUTPUT);
digitalWrite(i, false);
}
};
void GO(int i, int j, bool b)
{
digitalWrite(i, true);
digitalWrite(j, false);
if (b) {
digitalWrite(i, false);
digitalWrite(j, true);
}
};
void Stop(int i, int j)
{
digitalWrite(j, false);
digitalWrite(i, false);
};
void BirRight(int t)
{
GO(Bir, not_Bir, false);
delay(t);
Stop(Bir, not_Bir);
};
void BirLeft(int t)
{
GO(Bir, not_Bir, true);
delay(t);
Stop(Bir, not_Bir);
};
void loop() {
if (Serial.available()>0)
{
int data_com= Serial.parseInt ();
Serial.println (data_com);
if (data_com == 7) {
BirRight(1000);
}
if (data_com == 8) {
BirLeft(1000);
}
}
137
};
Dostları ilə paylaş: |