|
Autorius:
Andrius Jasiulionis
Aut. teisės:
Andrius Jasiulionis ir Linas Žitkevičius
Projektas CYBER 310, Odense (Danija)
Du automatikai Andrius Jasiulionis ir Linas Žitkevičius
stažavosi "OTS Odense tekniske skole", Odense (Danija). Pagrindinis
jų tikslas buvo atlikti kokį nors projektą, bei parašyti diplominį
darbą.

Projekto temą sugalvojome patys: "Roboto valdymas per internetą".
Įrangą galėjome pasirinktį patys taip pat. Nusprendėme pasinaudoti
jau padarytu robotu Cyber310, stovėjo jis jau 10 metų niekieno
neliestas, tai mes nusprendėme jį atgaivinti.
|
 |
|
CYBER 310 |
|
lankstumas: |
|
pagrindas |
355˚ |
|
patys |
270˚ |
|
alkūnė |
180˚ |
|
delnas sukasi |
720˚ |
|
delnas lankstosi |
220˚ |
|
Griebtuvas |
100mm |
|
Tikslumas: |
0,9-1,5mm |
| |
|
valdymas |
8 bitai |
|
Maitinimas |
220/240V 50Hz 200W |
|
svoris |
15Kg |
|
 |
 |
 |
|
Cyber310 lankstumo ašys |
Cyber310 lanstumo galimybės |
Roboto
valdymo jungtis. |
Cyber310 yra valdomas šešių žingsninių variklių, bei turi integruotą
supaprastintą variklių valdymą, jo valdymui užtenka 8 bitų
magistralės (6 variklių bitai, 1 impulsų generatoriaus bitas, 1
krypties bitas). Šis robotas buvo skirtas mokymosi tikslais, jis
buvo valdomas per lygiagrečiąją sąsaja kompiuterio pagalba specifine
programavimo kalba. Mes nusprendėme vietoj personalinio kompiuterio panaudoti
mikrokontrolerį PIC16F874.

Roboto valdymui per internetą mes pasirinkome WEB-NET modulį
(apie...),
šis modulis veikia kaip WEB serveris: per jį galima valdyti
integruoto PIC16F876 prievadus, arba keistis informacija per RS-232
sąsają tiesiai iš internetinio puslapio.
Pirmieji žingsniai
Pirmieji žingsniai buvo pakankamai sunkūs, nes internete yra labai
mažai informacijos apie Cyber310 robotą. Reikėjo suprasti kaip
valdyti robotą, pasidarėme paprastą valdymo pultą:

Valdymo signalas yra TTL +5V, impulsu generatorių pasidarėme
panaudoję taimerį 555:

Kadangi mes darbinio dažnio nežinojome, teko prilituoti krūvą
kondensatorių, kad galėtume praplėsti dažnio amplitudę.
Generatoriaus dažnį galime pasiskaičiuoti taip:

Greičiausiai varikliai dirbo apie 200Hz dažniu, didesniu dažniu
varikliai prašokdavo žingsnius, prie didesnio dažnio kartais išvis
nebedirbdavo. Geriausiai tiktų apie 90%
maksimalaus dažnio, kad varikliai dirbtų be klaidų.
Variklių valdymas
Roboto
valdymas yra pakankamai lengvas:
Kiekvienas variklis atsimena savo kryptį!!!
žingsniai kurie turi būti atlikti norint pasukti variklį prieš
laikrodžio rodyklę:
1.
Pasirenkamas variklis(-iai)(+5V į pasirinkto(-ų) variklio(-ių)
bitą(-us).
2.
Nustatoma jo ar jų sukimosi kryptis pagal laikrodžio rodyklę, tai
padaroma kai i STROBE bitą paduodamas +5V impulsas.
3.
Kiek norima pasukti žingsnių pasirinktą variklį tiek paduodama TTL
impulsų į PRF bitą (jei buvo įjungti keli varikliai, jie suksis
kartu).
žingsniai kurie turi būti atlikti norint pasukti variklį pagal
laikrodžio rodyklę:
čia
susidūrėme su problema, nes norint pasukti varikli pagal laikrodžio
rodyklę, reikia pakeisti jo krypties vektorių, o kai tai daroma,
pasikeičia visų variklių kryptis į "pagal laikrodžio rodyklę", kad
ir kokia kryptis buvo atsiminta.
1.
Išjungiami visi variklių bitai
2.
Paduodamas impulsas i STROBE bitą
3.
Įjungiamas variklio ar variklių bitas ar bitai
4.
Paduodama n kiekis impulsų i PRF bitą.
(n=
variklio žingsniai)
Problemą išsprendėme taip:
1.
Atliekami visi punktai skirti keisti kryptį pagal laikrodžio
rodyklę, bus pakeista visų variklių kryptys pagal laikrodžio
rodyklę.
2.
varikliai kurie turi suktis prieš laikrodžio rodyklę, jų kryptis
pakeičiama pagal punktus skirtus "prieš laikrodžio rodyklę".
taip
bus išspręsta problema, visi varikliai suksis ten kur priklauso.
Gaminam robotui "smegenis"
Atėjo
laikas pasigaminti roboto smegenis. Šiam tikslui panaudojome šias
detales:
Smegenys - PIC16F874 mikrovaldiklis
RS232
komunikacija - MAX202
LCD
ekranas - GDM1602A (2x16)
Valdiklio programavimui pasirinkome programatorių
PIC-PG2C.
suprojektavome tokia schema:

Schemą
surinkome ant projektų lentos. Dabar reikėjo pasidaryti keletą
paprastų programėlių mikrovaldikliui, kad galima būtų išbandyti
sistemą ir jos dalis.
   
PICboard
„PICboard“ modulis Skirtas sujungti WEB-RJS modulį
su Cyber310 manipuliatoriumi. Gauti duomenys yra apdorojami ir
paverčiami į 8 bitų sąsajos protokolą, skirtą Cyber310
manipuliatoriaus variklių valdymui.
·
Integruotas ISCP mikrovaldiklio
programatorius;
·
Vidinis DC +5V įtampos
stabilizatorius;
·
Universalus TTL -> RS-232 keitiklis
sujungtas su PIC mikrovaldiklis;
·
Mikrovaldiklio perkrovimo mygtukas;
·
10MHz išorinis generatorius ;
·
Nuolatinės srovės išorinio maitinimo
šaltinio, nuo +5 iki +30V, pajungimo galimybė.

Paprastos testo programos
Programas rašome BASIC programavimo kalba. Naudojame "PIC simulator
IDE" programą. Naudojantis Basic kompiliatorių, buvo sugeneruoti
*.HEX failai. Naudojant programą IC-PROG *.HEX failai yra
keliami su programatoriumi į mikrokontrolerį.
1. RS232 KOMUNIKACIJA
2.
LCD
ekrano testas
3. BAZĖS VARIKLIO
TESTAS
Variklių valdymo
sprendimai
Pagrindinis tikslai:
Sprendimai:
-
Mikrovaldiklis skaičiuos galūnių žingsnius;
-
Visos galūnės turi savo lankstumo pradžios ir galo sukimosi
taškus (maksimalus žingsnių kiekis nuo 0 iki: bazė = 2840 taškų,
petys= 2520 taškų, alkūnė = 1040 ;
-
Vartotojas įveda koordinatę (tašką), kuriame galūnė turi
sustoti,
-
Mikrovaldiklis apskaičiuoja galūnių kryptis,
-
Mikrovaldiklis apskaičiuoja žingsnių kiekį, kurį reikia pasukti
variklį(-ius),
-
Mikrovaldiklis sukdamas manipuliatoriaus galūnes, kiekvieno
žingsnio metu didins, ar mažins „Padėties vektoriaus konstantą“
vienetu (priklauso nuo krypties);
-
Mikrovaldiklis gavęs koordinatę palygina ją su padėties
vektoriaus konstanta. Jeigu duotoji koordinatė yra didesnė negu
leistina (maksimalus, minimalus variklio posūkis), tuomet
mikrovaldiklis fiksuotų klaidą, ir nesuktu variklio.
Krypties
nustatymas:
-
Jei
variklio padėties vektorius yra didesnis nei įvesta koordinatė,
reikia pasukti variklį pagal laikrodžio rodyklę
-
Jei
variklio padėties vektorius yra mažesnis nei įvesta koordinatė,
reikia pasukti variklį prieš laikrodžio rodyklę.
Klaidų
nustatymas
sukant variklį pagal laikrodžio rodyklę
-
“Žingsnių kiekis” = “Padėties vektorius”- “įvesta koordinatė”
-
Jei
„Padėties vektorius“ yra mažesnis nei „Žingsnių kiekis“, tada
rodyti klaidą, nes „galūnė“ negali suktis daugiau, nei leidžia
konstrukcija.
Klaidų nustatymas sukant variklį pagal laikrodžio rodyklę:
-
“Žingsnių kiekis” = “Padėties vektorius”- “įvesta koordinatė”,
-
“Leistinas žingsnių kiekis” =”MAX Koordinatė” - “Padėties
vektorius”
-
Jei “Leistinas žingsnių kiekis” yra
mažesnis nei “Žingsnių kiekis”“, tada rodyti klaidą, nes
„galūnė“ negali suktis daugiau, nei leidžia konstrukcija.
Programos modelis
Programos modelį
rasite paspaudę čia...
Programos bylas rasite
paspaudę čia...
Duomenų
sąsajos modelis
Duomenų sąsajos modelį
rasite
paspaudę čia...
Internetinių puslapių skirtų WEB-RJS
kūrimas
Visi internetiniai puslapiai buvo sukurti Microsoft
Office FrontPage 2003 programiniu paketu. Internetiniai puslapiai
buvo sukurti lietuvių ir anglų kalbomis. Tinklapio sandaros medis
yra pateikta 5.1 paveiksle.

Internetiniai puslapiai skirti roboto valdymui
Valdymo pasirinkimas
Roboto valdymui yra skirti trys mygtukai:
„Automatinis“, „Rankinis“ ir „Nustatymai“. Paspaudus
„Automatinis“ mygtuką, per RS-232 sąsają išsiunčiami duomenys ir mikrovaldiklis vykdo automatinio valdymo paprogramę. Paspaudus
„Rankinis“ mygtuką, mikrovaldiklis vykdo rankinio valdymo
paprogramę. Paspaudus „Nustatymai“ mygtuką, mikrovaldiklis vykdo
pozicionavimo paprogramę ir pastato roboto galūnes į starto
poziciją.
Puslapio vaizdas...
Automatinis
valdymas
Pasirinkus „Automatinį“ valdymą, užkraunamas
puslapis su įvedimo laukeliu, kuriame reikia įvesti detalių kiekį,
kurį turi pernešti robotas iš pozicijos A į poziciją B.
Puslapio vaizdas...
Rankinis
valdymas
Vartotojas rankiniu būdu gali pasukti robotą į
norimą padėtį, įvedant visų sustojimų koordinates. Įvedus visas
koordinates ir nuspaudus mygtuką „siųsti“, mikrovaldiklis pradeda
vykdyti rankinio valdymo paprogramę.
Puslapio vaizdas...
|