17
VISOKA TEHNIČKA ŠKOLA U BJELOVARU Tehnička dokumentacija iz kolegija Osnove robotike Programabilni robot Dino Rais Bjelovar, srpanj 2017

VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

VISOKA TEHNIČKA ŠKOLA U BJELOVARU

Tehnička dokumentacija iz kolegija Osnove robotike

Programabilni robot

Dino Rais

Bjelovar, srpanj 2017

Page 2: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

ii

Sadržaj

Uvod ........................................................................................................................................................... 1

1. Opis projektnog zadatka .................................................................................................................. 2

2. Opis hardvera ................................................................................................................................... 4

2.1 Tehničke specifikacije mikrokontrolera ATmega328p .................................................................... 6

3. Programski kod ................................................................................................................................ 9

4. Zaključak ........................................................................................................................................ 14

5. PRIVITAK ..................................................................................................................................... 15

Page 3: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

1

Uvod

Programabilni robot je robot koji može učiti "pamtiti" pozicije u koje je bio ručno

doveden te nakon spremanja zadanih pozicija iste može neprekidno ponavljati. Ideja

za ovaj projekt došla je prilikom rada sa industrijskim robotom i proučavanjem

robotskih ćelija za robotsko zavarivanje. Pošto su mi postupci zavarivanja kao što su

MIG/MAG i TIG vrlo interesantni, tako su me robotske ćelije za zavarivanje dosta

zainteresirale te sam razmišljao o izradi robota za zavarivanje MAG postupkom, ali

sam od toga ubrzo odustao zbog cijene izrade takvoga robota koji bi zaista bio

funkcionalan u procesu robotiziranog zavarivanje. Nakon razmišljanja o tome što

bih mogao napraviti kako bih mogao malo više naučiti o robotima i robotici, odlučio

sam napraviti jednog robota igračku koja sasvim dobro može poslužiti za učenje

programiranja zadanih pozicija i ponavljanje istih.

Page 4: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

2

1. Opis projektnog zadatka

Svrha ovoga projekta je ideja da se napravi model robotske ruke koja će se moći

ručno pozicionirati na željenu poziciju. Robot se ručno dovede na željene pozicije te se

nakon svake ručno dovedene pozicije pozicija pamti unutar upravljačke jedinice robota

pritiskom na tipkalo. Nakon spremanja željenih pozicija, robot se iz moda programiranja

pokreče u mod rada, odnosno izvršavanja zadanih pozicija.

Na fotografiji 1.1 prikazana je robotska ruka sa četiri stupnja slobode gibanja i hvataljkom

izvdenenom pomoću pincete, kako bi bila što manje mase, korištena pri radu na ovome

projektu, a na slici 1.2 prikazana je upravljačka jedinica koja je upravljala robotom sa slike

1.1 ali montirana na robotsku ruku popularnog imena "uArm".

Slika 1.1 Četiri osna robotska ruka sa hvataljkom

Slika 1.2 Robotska ruka "uArm" i upravljačka jedinica robota

Page 5: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

3

Svrha ovog projekta je isključivo zasnovana na učenju sa principima rada robota i

upravljačkih sustava robota, odnosno ideja da se sa relativno malom količinom novca

napravi robot koji može ponavljati spremljene pozicije nekakvom točnošću koje zahtjeva

premještanje nekakvih predmeta sa jednog mjesta na drugo.

Na slici 1.3 prikazana je shema sklopa za upravljanje programabilnim robotom.

Slika 1.3 Shema sklopa za upravljanje robotom

Page 6: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

4

2. Opis hardvera

Za realizaciju ovoga projekta korišteno je mikroračunalo na razvojnom okruženju

popularnog naziva "Arduino UNO" na kojem se nalazi mikroračunalo ATmega328p čija se

fotografija nalazi na slici 2.1. Za pogon robota korišteni su servo motori SG90 i MG995,

motor SG90 prikazan je slikom 2.2, a servo motor MG995 slikom 2.3 i 2.4.

Slika 2.1 Arduino UNO

Slika 2.2 Servo motor oznake SG90

Page 7: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

5

Slika 2.3 Servo motor oznake MG995

Slika 2.4 Prijenosnik snage servo motora MG995

Page 8: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

6

2.1 Tehničke specifikacije mikrokontrolera ATmega328p

Za projekt korišteno je Atmelovo mikroračunalo AVR porodice ATmega

328P, navedeno mikroračunalo korišteno je isključivo iz razloga što se nalazi

na Arduino UNO razvojnom okruženju. Tablica 2.1.1. prikazuje korištene

pinove na Arduino UNO razvojnom okruženju. Raspored pinova na

mikrokontroleru ATmega 328P prikazan je na slici 2.1.1.

Tehniča specifikacija korištenog mikroračunala ATmega 328P:

visoke performanse,

mala snaga,

Atmel® AVR 8-bitni mikrokontroler,

RISC arhitektura:

- 131 instrukcija,

- 32 registra opće namjene,

- do 20 MIPS (20 milijuna instrukcija u jednoj sekundi) na frekvenciji od 20

MHz

32 kB (engl. In-System Self-Programmable) programske Flash memorije,

1kB EEPROM memorije,

2kB SRAM memorije,

ciklus pisanja/brisanja: Flash 10 000 puta/EEPROM 100 000 puta,

dva 8-bitna tajmera (engl. timers)/brojača (engl. counters) s djeljiteljem

frekvencije radnog takta,

jedan 16-bitni tajmer/brojač s djeliteljem frekvencije radnog takta,

timer realnog vremena sa odvojenim oscilatorom,

šest PWM kanala,

osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova),

serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

Master/Slave SPI sučelje (eng. Serial Peripheral Interface),

programljivi USART (engl. Universal Synchronous and Asynchronous

Serial Receiver and Transmitter),

programljivi vremenski brojač za nadzor ispravnog rada (engl. Watchdog

timer) sa odvojenim oscilatorom (engl. On-chip Oscillator)

Page 9: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

7

Power-on Reset,

programljivi detektor pada napona napajanja (engl. Brown Out Detection),

unutarnji i vanjski izvor prekida (engl. interrupts),

28 digitalno ulazno/izlazna pina,

TQFP podnožje s 32 pina,

radni napon: 1,8 - 5,5 V,

radni takt: 0 - 20MHz pri radnom naponu: 4.5 - 5.5 V,

potrošnja (1MHz, 1,8 V, 25˚C, ATmega 328P)

- aktivan: 0,2 mA,

- u mirovanju: 0,75 µA.

Slika 2.1.1. Raspored pinova na mikrokontroleru ATmega 328P

Raspored pinova na mikrokontroleru ATmega 328P prikazan je na slici 2.1.1.

Page 10: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

8

Tablica 2.1.1: Lista korištenih pinova mikrokontrolera

PIN Opis

PIN 2 Tipkalo

PIN 8 Kip prekidač (programiranje)

PIN 7 Kip prekidač (pokretanje)

PIN 4 Led dioda 5mm, zelena

PIN AO Potenciometar za 1. zglob robota

PIN A1 Potenciometar za 2. zglob robota

PIN A2 Potenciometar za 3. zglob robota

PIN A3 Potenciometar za 4. zglob robota

PIN A4 Potenciometar za hvataljku

PIN D3 Servo motor MG995

PIN D5 Servo motor MG995

PIN D6 Servo motor MG995

PIN D10 Servo motor MG995

PIN D11 Servo motor SG90

Page 11: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

9

3. Programski kod

Programski kod pisan je u programskom okruženju Arduino.

#include <Servo.h>

Servo servo_0;

Servo servo_1;

Servo servo_2;

Servo servo_3;

Servo servo_4;

int senzor_1 = A0; // 1. zglob

int senzor_2 = A1; // 2. zglob

int senzor_3 = A2; // 3. zglob

int senzor_4 = A3; // 4. zglob

int senzor_5 = A4; // hvataljka

int pot1, pot2, pot3, pot4, pot5, poz1, poz2, poz3, poz4, poz5;

//polja za motore

int zglob_1[150];

int zglob_2[150];

int zglob_3[150];

int zglob_4[150];

int hvataljka[150];

int i = 0;

int poz_u_polju = 0;

float nova_vr_poz1 = 0, nova_vr_poz2 = 0, nova_vr_poz3 = 0, nova_vr_poz4 = 0,

nova_vr_poz5 = 0;

float stara_vr_poz1 = 0, stara_vr_poz2 = 0, stara_vr_poz3 = 0, stara_vr_poz4 = 0,

stara_vr_poz5 = 0;

Page 12: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

10

void setup()

{

pinMode(7, INPUT); //prekidač za pokretanje rada robota prema snimljenim

točkama____neće se koristiti, ali je spojeno na Arduino UNO

pinMode(8, INPUT); // sets the digital pin 8 as input

pinMode(2, INPUT); //TIPKALO__

pinMode(4, OUTPUT); // sets the digital pin 4 as outtput___LED dioda zelena

digitalWrite(4, HIGH); // sets the LED on

servo_0.attach(3); // attaches the servo

servo_1.attach(5);

servo_2.attach(6);

servo_3.attach(9);

servo_4.attach(10);

Serial.begin(115200); // Baudrate

Serial.println("robot je spreman...");

//delay(1000);

digitalWrite(4, LOW);

}

void loop()

{

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

programiranje pozicija robota

if(digitalRead(8) == true && digitalRead(7) == false)

{

//čitanje analognih ulaza i pomicanje motora prema očitanim vrednostima

pot1 = analogRead(senzor_1);

Serial.println(pot1);

pot2 = analogRead(senzor_2);

Serial.println(pot2);

Page 13: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

11

pot3 = analogRead(senzor_3);

Serial.println(pot3);

pot4 = analogRead(senzor_4);

Serial.println(pot4);

pot5 = analogRead(senzor_5);

Serial.println(pot5);

//preračunavanje u kut zakreta servomootra

poz1 = pot1/6;

poz2 = pot2/6;

poz3 = pot3/6;

poz4 = pot4/6;

poz5 = pot5/6;

//smanjenje podrhtavanja servo motora tijekom programiranja pozicija

/* nova_vr_poz1 =(float) poz1;

stara_vr_poz1 = 0,9*stara_vr_poz1 + 0,1*nova_vr_poz1;

nova_vr_poz2 = (float)poz2;

stara_vr_poz2 = 0,9*stara_vr_poz2 + 0,1*nova_vr_poz2;

nova_vr_poz3 = (float)poz3;

stara_vr_poz3 = 0,9*stara_vr_poz3 + 0,1*nova_vr_poz3;

nova_vr_poz4 =(float) poz4;

stara_vr_poz4 = 0,9*stara_vr_poz4 + 0,1*nova_vr_poz4;

nova_vr_poz5 =(float) poz5;

stara_vr_poz5 = 0,9*stara_vr_poz5 + 0,1*nova_vr_poz5;

//pokretanje servo motora

servo_0.write((int)(stara_vr_poz1));

servo_1.write((int)(stara_vr_poz2));

Page 14: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

12

servo_2.write((int)(stara_vr_poz3));

servo_3.write((int)(stara_vr_poz4));

servo_4.write((int)(stara_vr_poz5));

*/

//pokretanje servo motora

servo_0.write(poz1);

servo_1.write(poz2);

servo_2.write(poz3);

servo_3.write(poz4);

servo_4.write(poz5);

//spremanje pozicije pritiskom na TIPKALO

if(digitalRead(2)==true)

{

digitalWrite(4, HIGH); delay(500);

zglob_1[poz_u_polju]=poz1;

zglob_2[poz_u_polju]=poz2;

zglob_3[poz_u_polju]=poz3;

zglob_4[poz_u_polju]=poz4;

hvataljka[poz_u_polju]=poz5;

poz_u_polju = poz_u_polju + 1;

delay(3000);

digitalWrite(4, LOW); delay(500);

}

}

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

START___izvoĎenje zapisanih pozicija

if(digitalRead(7) == true && digitalRead(8)== false)

Page 15: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

13

{

digitalWrite(4, HIGH); delay(500);

digitalWrite(4, LOW); delay(500);

for (i=0; i < poz_u_polju; i = i + 1)

{

digitalWrite(4, HIGH); delay(100);

servo_0.write(zglob_1[i]);

delay(100);

servo_1.write(zglob_2[i]);

delay(100);

servo_2.write(zglob_3[i]);

delay(100);

servo_3.write(zglob_4[i]);

delay(100);

servo_4.write(hvataljka[i]);

delay(100);

digitalWrite(4, LOW); delay(100);

}

}

i = 0;

}

Page 16: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

14

4. Zaključak

Kao zaključak ovoga projekta naveo bih da je veliki problem financijski jeftinih

konstrukcijskih i pogonskih rješenja mehaničke konstrukcije robotske ruke veliki problem,

koji se rezultira kao nepreciznost ponavljanja zadane pozicije, zbog raznih faktora kao što

su velika zračnost unutar pojedinih zglobova osi robota, mali potezni momenti servo

motora, vrlo malena nosivost robota što u konačnici robota čini nesposobnim za obavljanje

svoje osnovne funkcije. Ali sve u svemu osnovni zaključak ovog projekta je da se na

njemu puno naučilo i što je najvažnije robot je odraĎivao zadanu funkciju prebacivanja

objekta sa jednog mjesta na drugu te je zadane pozicije uspješno ponavljao.

Page 17: VISOKA TEHNIČKA ŠKOLA U BJELOVARUšest PWM kanala, osam kanala analogno-digitalnih pretvornika (rezolucija od 10 bitova), serijsko sučelje sa dvije žice (eng. Two-Wire Serial Interface),

15

5. PRIVITAK

Privitak ovom dokumentu su dva videa koji se nalaze na Google disk-u, a njihove

URL adrese su slijedeće:

https://drive.google.com/open?id=0B3ez4XzQffoAaG56RElTT1dOVzQ

https://drive.google.com/open?id=0B3ez4XzQffoAZTZ1NU1uXzFlZzQ