CNC vrtalni stroj je namenjen
vrtanju tiskanih vezij v elektroniki, čeprav se lahko uporablja tudi za
vrtanje drugih
stvari. Program komunicira z vrtalnikom preko serijskega (COM1...COM4)
porta
računalnika. Program se še izpopolnjuje in na tej strani bo v
bodočnosti mogoče
naložiti tudi novejše verzije programa. Program deluje v duetu s
strojem,
katerega program je vdelan v mikrokontroler.
VSEBINA:
KAJ JE CNC VRTALNIK?
KAKO DELUJE NAŠ CNC
VRTALNIK?
PROGRAMSKA OPREMA
IZDELAVA
STROJA
NASTAVLJANJE OFFSETA
OPIS VEZJA
DELOVANJE
MIKROKONTROLERJA IN
PRIMERI RUTIN
SESTAVLJANJE
KAKO PRIKLOPITI KORAČNI
MOTOR?
PRVI ZAGON IN UMERJANJE
KAKO DO PROGRAMSKE OPREME
IN
MIKROKONTROLERJA
ZAKLJUČEK
SPISEK ELEMENTOV
DOWNLOAD
CNC vrtalnik je naprava namenjena vrtanju tiskanih vezij ali kakih drugih manjših predmetov. Ukaze in koordinate izvrtine ji posreduje računalnik, naprava pa se na te ukaze odziva, naredi zahtevano operacijo ter računalniku sporoči, da je operacijo izvršila. V našem primeru je to izvrtana luknjica na določeni koordinati.
Vrtalnik, ki ga bomo naredili mi bo zelo podoben ostalim CNC vrtalnikom. Priključen bo na osebni računalnik preko serijskega RS232 porta, krmilil pa ga bo program napisan za Windows® operacijski sistem, o katerem pa bomo spregovorili kasneje. Program vrtalniku pošilja podatke in preverja, ali se ta odziva, vrtalnik pa mu odgovarja po vsakem izvršenem ukazu. Po serijskem vodilu se najprej prenesejo podatki za koordinato X, potem za koordinato Y in na koncu še za koordinato Z skupaj z ukazom za vrtalno glavo. Ta ukaz lahko pošlje vrtalno glavo v izhodišče, lahko jo približa tiskanemu vezju, kot nastavimo v programu, lahko pa naredi izvrtino določene globine, ki jo zopet nastavimo v programu. Jedro elektronskega dela vrtalnika je mikrokontroler AT89C2051, kateri je popolnoma zaseden s programom. Ta od računalnika sprejema podatke mu jih pošilja, skrbi za pravilno smer motorjev, jim daje clock impulze, skrbi za tok skozi motorje ter vklaplja in izklaplja vrtalni stroj. Poleg tega preračunava svoje relativne koordinate iz absolutnih, ki mu jig pošilja računalnik ter sprejema ukaze o hitrosti motorjev in načinu premikanja vrtalne glave. Skratka - polno je zaposlen.
Program za krmiljenje naše CNC naprave je napisan za okolje Windows® in je zelo enostaven za uporabo. Potrudil sem se, da bi vanj vdelal čim več nastavitev, seveda pa sem še vedno odprt za predloge in pripombe. Ne smem pozabiti omeniti, da me je v programiranje vpeljal dijak Elektro šole na Šolskem centru v Novem mestu, Rok Markovič, kateri je tudi napisal jedro tega programa.
Priporočljiva konfiguracija računalnika:
Program Easy NC drill bere standardne vrste datotek s končnico NCD, ki jih generirajo razni programi za načrtovanje tiskanih vezij. Vendar pa je potrebno biti pozoren na to, v katerem formatu so datoteke zapisane. Pomembno je namreč, kako imate nastavljen svoj program za risanje TIV. Nastavitve (N/C Drill Options) morajo biti naslednje:
Units: Inches
Code: ASCII None
Zero Suppression: Trailing
Program bo tako generiral datoteko, katero bo Easy NC Drill lahko razumel. Na primeru lahko vidimo vsebino datoteke, katera ima samo eno orodje in tri izvrtine. Na začetku datoteke mora biti vrstica M48 ali M72, sicer je program ne bo prepoznal za veljavno.
M48
INCH,LZ
T04F00S00C0.030
%
T04
X+002Y+004
Y+002
X+003Y+003
T00
M30
Easy NC Drill podpira do osem različnih debelin svedrov in po 1000 luknjic za vsako debelino. Ko datoteko odprete, so koordinate vidne v razpredelnici na levi strani ekrana.
Slika 1: Razpredelnica s koordinatami
Ko se vam je datoteka naložila in
imate pravilno nastavljene vse nastavitve, že lahko začnete z vrtanjem.
Veliko nastavitev
je takih, ki jih je potrebno nastaviti samo enkrat, nekatere pa po
potrebi
tudi večkrat. Do nastavitev lahko pridemo tako preko menija kot preko
orodne
vrstice ali funkcijskih tipk. Pa si jih oglejmo:
Komunikacija
Pod jezičkom komunikacija lahko
izbirate na kateri komunikacijski port je priključen vaš vrtalni stroj.
Če ne veste, kateri je, lahko pritisnete na gumb Najdi in računalnik bo
sam našel vaš stroj,
če bo ta seveda vklopljen. V primeru, da stroj ne bo vključen vam bo
program
javil, da ga ne najde.
Merila
V polja vpišete, koliko korakov mora
narediti
vaš koračni motor, da se vrtalnik po posameznih koordinatah premakne za
1000
milsov, kar je po naše 25,4mm. Do teh številk najlažje pridete s
poskušanjem.
Lahko si narišete tiskano vezje s pikami, ukažete vrtalniku, naj vrta,
izmerite
razdalje med pikami in potem prilagajate vaše številke. Lahko pa vam
namignem,
da se v primeru, ko imate pomik izveden z motorjem, ki ima jermenico
direktno
na svoji osi, ta številka giblje nekje okrog 200 do 300. Če imate enaka
motorja
za X in Y smer, bosta številki enaki.
Doseg
V polji vpišite doseg vašega stroja
po
X in Y osi. Če bo program prebral datoteko, ki bi imela koordinato
izven tega
obsega, vam bo javil, da vrtanje ni mogoče. Doseg dobite tako, da
izmerite
razdaljo od izhodišča vrtalke do njenega maksimalnega položaja in za
rezervo
pustite kaka dva milimetra. Tudi doseg vpisujte v milsih.
Offset
Offset nam določi izhodišče za
vrtanje, na katerega se postavi vrtalka in ga smatra kot položaj 0,0.
Offset ne more
biti večji od dosega stroja in čim večji je, tem manj delovne površine
vam
ostane na razpolago. Ta koordinata pa se ignorira pri položaju za
menjavo orodja, saj ta ostaja enak in se ne prišteje offsetu.
Trapez
Do popačenja trapeza pride zaradi
napake v mehanski nastavitvi laserskega tiskalnika ali zaradi netočne
izdelave našega
stroja, kadar roka za Y ni pravokotna na vodilo za X smer. Tako
tiskalnik
kot naš stroj lahko preizkusimo tako, da v programu za TIV narišemo
štiri
točke, ki predstavljajo vogale kvadrata. Te natisnemo z laserskim
tiskalnikom
in izmerimo diagonale med točkami, ki morajo biti enake. Podobno lahko
to
izmerimo pri vrtalniku. Številko dobimo s poskušanjem in je lahko
pozitivna
ali negativna, odvisno tudi od konkretne izvedbe stroja.
Orodja
V polji vpišemo koordinato na katero
želimo
da se stroj postavi, ko hočemo zamenjati orodje, v našem primeru
sveder.
Ponavadi izberemo položaj, ki nam najbolj ustreza, saj se sveder zelo
hitro
lahko zlomi, če smo pregrobi ali nimamo pravega dostopa do njega.
Vrtalnik
Pod oznako “a” določimo odmik
vrtalnika od izhodišča do položaja nad ploščico tiskanega vezja. Paziti
moramo, da ne
vnesemo prevelike vrednosti, saj se nam bo sveder gotovo zlomil, če pa
bo
vrednost premajhna, bo vrtalnik imel veliko praznega teka in bo tudi
vrtanje
počasnejše. Pod oznako “b” pa vpišemo globino vrtanja. Tudi ta naj ne
bo
prevelika, da nam sveder ne bo kam zašel.
Hitrost
Hitrost lahko nastavljamo skupaj za motor X in motor Y posebej pa tudi motor za Z os. Številka, ki jo vnesemo pomeni mikrokontrolerju število zakasnitev, ki jih izvede, preden gre na naslednji korak. Zaradi boljše preglednosti v programu pomeni večja številka tudi večjo hitrost. Hitrost seveda moramo nastaviti v razumnih mejah in je povsem odvisna od naše naprave, torej od teže elementov, moči motorjev, prenosa moči in podobnega. Do števil boste prišli s poskušanjem, vendar morate vedeti, da za večjo hitrost pomika ob zagonu in zaviranju motorji potrebujejo večji tok, ta pa ni neomejen.
Ko smo nastavitve vpisali pritisnemo
na
gumb za potrditev in nastavitve se shranijo tako v program, kot tudi na
trdi
disk v datoteko cnc.ini. Vaše nastavitve se shranijo tudi ob izhodu iz
programa.
Omeniti moram še nekaj nastavitev, ki pa so direktno dostopne s klikom z miško. Prva je “Opozori na menjavo orodja”. Če je obkljukana, vas bo program opozarjal, ko bo končal vrtanje z eno vrsto svedra in bo zahteval drugega. V nasprotnem primeru bo vrtalnik zvrtal vse označene luknjice z istim svedrom in se ne bo ustavljal na položaju za menjavo orodja.
Naslednja je “Zrcali po X”. Če je obkljukana, se nam bo slika izrisala zrcalno in se bo zrcalno tudi vrtala. V primeru, ko vrtamo že zjedkano tiskano vezje, nam bo ta opcija prišla zelo prav.
Zadnja od njih je “Po vrtanju pojdi na 0,0”, ki v primeru, da je obkljukana po vrtanju pošlje vrtalnik v izhodiščni položaj (0,0), sicer pa se ta postavi na položaj za menjavo orodja.
Sedaj, ko smo obdelali nastavitve, lahko povemo nekaj o ukazih, ki pa so povsem osnovni. V orodni vrstici imamo naslednje ukaze:
Odpri NCD
Odpre datoteko s končnico NCD na
zadnji lokaciji odpiranja, če je to mogoče. Okno za odpiranje datoteke
se ponudi tudi ob odpiranju programa. Če datoteka ni veljavna vam
program to sporoči, prav tako, če so koordinate v datoteki izven dosega
stroja. V tem primeru je možno, da smo svoj projekt risali predaleč od
izhodišča. V tem primeru si ni težko pomagati. Svoj projekt premaknite
bliže spodnjemu levemu robu delovne površine.
Vrtaj
Ta nam bo najbolj prišel prav.
Vrtalniku ukažemo, naj z vrtanjem prične. V primeru, da bo vrtalnik
izključen ali ne
bo priključen na pravi port, bo program opozoril na to, da se stroj ne
odziva.
Prav tako bo opozoril, če za vrtanje ne bo označeno nobeno orodje.
Ustavi vrtanje
Gumb pritisnemo, kadar želimo z
nekega razloga prekiniti vrtanje. Program bo najprej vprašal še za
potrditev.
Nastavitve
Prikliče okno z nastavitvami, o
katerih smo že govorili.
O programu
Odpre okno z nekaj podatki o
programu. Iz tega okna je speljan tudi link na mojo domačo stran, kjer
boste našli tudi
veliko podatkov in nasvetov za izdelavo vrtalnika.
Izhod
Zapre program, shrani njegove nastavitve ter vrtalko pošlje v izhodišče.
Ukazi so dostopni tako iz orodne vrstice kot tudi iz menijev ali s pomočjo funkcijskih tipk, ki so napisane zraven ukaza. Nekaj pa je tudi takih, ki so dostopni samo direktno s klikom.
Drobni gumbi v orodni vrstici so namenjeni pošiljanju naprave na določene koordinate, in sicer “Orod.” pošlje vrtalko na koordinato za menjavo orodja, “Offset” jo pošlje na koordinate offseta, “0,0” jo pošlje v izhodišče in “MAX” na maksimalen doseg. Gumbka “Vse” ali “Nič” sta namenjena označevanju ali brisanju vseh različnih svedrov za vrtanje.
Nekaterih opcij pa se sploh ne vidi, dokler datoteka še ni naložena. V zgornjem levem kotu se izrišejo pobarvani krogci, katerih barva ponazarja določeno debelino svedra. Z isto barvo se na zaslonu tudi izrišejo izvrtine iste debeline. V kvadratke označimo, katere luknjice želimo vrtati, zraven pa so napisane še debeline svedrov in število luknjic, ki jih bo ta sveder izvrtal.
Med vrtanjem lahko napredovanje spremljamo na zaslonu. Dokončane luknjice se označijo z rdečim križcem, poleg tega pa lahko dogajanje opazujemo tudi na dveh trakovih napredka v statusni vrstici.
Slika napredka med vrtanjem (obrezana)
Za izdelavo stroja potrebujemo poleg tiskanega vezja, ki ga bomo podrobno opisali v naslednji številki, še nekaj materiala, katerega pa ne bomo rabili kupiti, vsaj po redni ceni ne. Dovolj nam bo, da razdremo dva tiskalnika in en starejši dvokratni CD-ROM. Tiskalnik v sebi skriva vodila, po katerih drsi vrtalnik, koračne motorje, jermen in kolešček na koncu jermena. Poleg tega pa je uporaben tudi napajalnik. Kupiti pa bo treba nekaj aluminijastih profilov, kateri pa so zelo poceni. Za pomik po X in Y smeri priporočam uporabo motorjev z resolucijo 200 korakov na obrat (1,8°), motor, ki bo premikal vrtalko pa je lahko tudi drugačen.
Motor za pogon po X osi in vodilo
Najmočnejši motor (če sta motorja za X in Y različna) naj poganja X os, na katero je pritrjen širši profil, kateri nosi vodilo Y osi ter glavo z vrtalko, ki se giblje po Z osi.
Motor za pogon Y osi z vodilom in profilom, na katerega je vse skupaj pritrjeno
Manjši motor naj poganja Y os z
vrtalno glavo, tretji motor pa premika vrtalko po Z osi. Če je ta motor
1,8°, potem lahko vrti vreteno direktno na svoji osi, drugače pa preko
prenosa. V mojem primeru je motor 7,5° in ima za prenos dva zobnika.
Vreteno za pomik po Z osi, vrtalka in motor
Vreteno lahko staknete v CD-ROMu z dvokratno hitrostjo, vodila za Z os pa se nahajajo v starih disketnih enotah. Pri izdelavi mehanskega dela vrtalnika bo še najbolj prišla do izraza vaša ustvarjalnost, natančnost in seveda tudi potrpljenje. Upam, da vam bodo v pomoč tudi slike mojega prototipa, katerega bom na kratko opisal.
Motor z jermenico, jermen, zaključni
kolešček
s stojalom ter vodilo sem pobral iz starega skenerja. Motor deluje v
polnokoračnem
načinu in ima reduktor z jermenom, ki pa je praktično nepotreben. Motor
za
Y os z jermenico, jermenom in vodilom ter napajalnik (switching) sem
pobral
iz tiskalnika Epson Stylus 400.
Napajalnik iz tiskalnika Epson Stylus 400
Ogrodje za pomik po Z osi sem naredil iz vitroplasta, ker se ga da lepo spajkati in je tudi dovolj trden. Vodilo za Z os je os motorja od videorekorderja (tisti, ki vleče trak naprej), vreteno pa, kot sem že omenil je iz Mitsumjevega 2X CD-ROM-a. Motor, ki vrti vreteno sem vzel iz Cannonovega pisalnega stroja. Trakaste povezave so od povezave airbaga v volanu, dobre pa bi bile tudi tiste od tiskalnikove glave. Sama vrtalka je navadna 12V, ki sem jo dobil v Conradu, le da sem ji odstranil ohišje. Vse skupaj je pritrjeno na 20mm iverki, ki se kar dobro obnese.
Prejšnji verziji programa sem na pobudo bralca dodal še nastavljanje offseta s pomočjo stroja. To pomeni, da v vrtalnik vpnemo ploščico ter kliknemo na ikono za offset. Odpre se nam okno, v katerem lahko nastavljamo offset direktno z vpisom koordinat, lahko ga določimo s klikanjem na gumbe, kjer pomeni polna puščica 1x izbran pomik, pretrgana pa 10x. S tipko "Vključi stroj" vzpostavimo komunikacijo s strojem in ta se pomakne na mesto offseta. S klikanjem na gumbe se premika z offsetom tudi vrtalka in na ta način jo lahko postavite na točno določeno mesto. Funkcija je uporabna, saj lahko ploščico najprej pritrdimo in potem nastavimo offset in ne obratno, torej odpade poskušanje. Naj na tem mestu omenim, da razvoj programa še ni končan, zato ga bodo tudi vaši predlogi naredili boljšega.
Slika 1: Izgled okna za nastavljanje offseta s pomočjo stroja
Jedro vezja je naš stari znanec AT89C2051, o katerem sem že napisal nekaj v prejšnjem članku. Ta deluje na taktu 12MHz, kar sicer ni idealno za baud rate generator, vendar dela povsem zadovoljivo. Večina I/O pinov ima pullup upore, ki jih še dodatno potegnejo na +5V, razen P1.1, ki služi za kontrolo toka skozi motorje ter P3.0 in P3.1, ki služita za komunikacjo z računalnikom. Razlog za uporabo teh uporov so predvsem motnje, ki jih povzroča stikalna regulacija toka. Iz tega razloga so tu tudi kondenzatorji C13, 18 in 23. Brez njih se lahko zgodi, da se pri inicializaciji (ob vklopu naprave) posamezni motor ustavi preden sproži končno stikalo.
Za reset vezje sem uporabil kondenzator 470nF (C24), pulldown upor pa je že v samem mikrokontrolerju, tako da se mi zdi nasmiselno dodajati zunaj še en upor in zaradi tega večji, elektrolitski kondenzator. Za pretvornik nivojev je uporabljen tudi dobro znani MAX232 ali njegov ekvivalent, o katerem ne bi zgubljali besed, saj je bilo o njem že veliko napisanega. Ti dve integrirani vezji sta napajani iz napajalne napetosti 36V. To napetost najprej odrežemo s 15V zener diodo, ki naj bo moči vsaj 800mW, napetost 21V pa dodatno stabiliziramo s stabilizatorjem 78L05. Za to varianto sem se odločil zaradi tega, ker "prevajalniki" L297 generirajo v svoji napajalni napetosti veliko motenj, katerih pa naš Atmelček ne mara ravno preveč. 5V napajanje za ta tri vezja mora biti pripeljano iz zunanjega napajalnika.
V vezje sem vključil tudi usmernik za vrtalko, ki ga pa lahko dimenzionirate tudi po lastni presoji, odvisno od tega, kakšno vrtalko boste imeli. V mojem primeru je to 12V, ki ob normalnem delovanju ne potegne več kot 1A toka. Tokokrog vrtalke vklaplja rele, katerega tudi krmili mikrokontroler. Če boste slučajno imeli vrtalko z drugačno nazivno napetostjo, morate prilagoditi tudi, C1, RE1 in napajalni transformator.
Ostanejo nam še gonilniki koračnih motorjev, kateri so bili tudi že dodobra opisani v prejšnjih člankih o krmiljenju koračnih motorjev. Naj omenim samo, da lahko z jumperji JP2, JP3 in JP4 nastavljate korakanje za posamezni motor, in sicer Polnokoračno, označeno na TIV s Full in polkoračno, označeno s Half. Na vezju sta tudi dve točki, označeni s SP1 in SP2. To sta rezervna priključka, ki trenutno nista uporabljena. Mikrokontroler preko delilnika napetosti, ki ga sestavlja upor 2,2k in trimer 470R skrbi tudi za tok skozi navitja motorjev. Med mirovanjem je tok za 2/3 manjši od tistega med delovanjem. To dosežemo na ta način, da delilnik napetosti dodatno obremenimo s 180R uporom preko pina P1.1 na mikrokontrolerju. Zato se motorji ne pregrevajo, ko mirujejo, še vedno pa držijo svoj položaj. Tok skozi motorje se nastavlja s trimerpotenciometri TP1, TP2 in TP3. Od frekvence chopperja in toka skozi motorje je odvisna izgubna moč, ki se troši na hladilu. Zelo verjetno boste potrebovali manjše rebrasto hladilo, po potrebi pa mu lahko dodate še manjši ventilator, kot lahko vidite na sliki izdelane naprave.
Seveda pa je od toka skozi motorje odvisno tudi, kakšen napajalnik boste potrebovali za napajanje naprave. Za večino primerov bo verjetno dovolj 36V/2A in 5V/300mA. Kabel za povezavo računalnika in vrtalnika je klasičen z DB9 konektorjema, in sicer moški na strani PC-ja in ženski na strani vrtalnika. Končna stikala sem izbral mehanska, to pa zato, ker so ta manj občutljiva na prah in umazanijo, na svetlobo pa so neobčutljiva (za razliko od IR).
Slika 2: Električna shema (klikni za povečavo)
DELOVANJE MIKROKONTROLERJA IN
PRIMERI RUTIN
Ob vklopu se v mikrokontrolerju najprej zažene rutina za inicializacijo položaja. Najprej se sveder dvigne na maksimalno višino, da se med premikanjem slučajno ne bi zlomil. Če se sveder že nahaja v izhodišču, se najprej malo spusti in nato dvigne nazaj v izhodišče, da se res točno postavi na svoje mesto. Sveder se dviga toliko časa, dokler ne pritisne na končno stikalo, ki da mikrokontrolerju ukaz, da ustavi ta motor. Rutina za inicializacijo izgleda takole:
'Inicializacija po z osi
Enako se zgodi tudi z X in Y osjo. Ko se inicializira, pošlje računalniku obvestilo, da je na mestu (lahko tudi v prazno, če program ni zagnan).
Print "Ready";
Potem samo še čaka na ukaz od
računalnika, zanima pa ga koordinata in ukaz, kaj naj na tej koordinati
naredi. Računalnik pred začetkom vrtanja "vpraša" vrtalnik, ali je
pripravljen. Če ne dobi odgovora,
nam to javi na zaslonu in ne začne z vrtanjem. Če je stroj pripravljen,
mu
računalnik pošlje prvo koordinato z ukazom, kaj na njej naredi. Ko
pride na
svojo koordinato, lahko naredi tri stvari:
Print "Done";
Ko ta sprejme odgovor, mu pošlje naslednjo koordinato, če je to potrebno. Mikrokontroler sprejme posamezno koordinato z naslednjo rutino:
Pom1
=
Waitkey
'prebere 5 spremenljivk
Pom2 =
Waitkey
'iz
serijskega porta
Pom3 = Waitkey
Pom4 = Waitkey
Pom5 = Waitkey
Num
=
Chr(pom1)
'pretvori iz karakterja v ASCII
Pom1 =
Val(num)
'pretvori
iz ASCII v število
Temp = Pom1 *
10000 'pomnoži
z 10000
Num
=
Chr(pom2)
'zopet pretvori karakter
Pom2 =
Val(num) 'v
število in ga to pot
Pom2 = Pom2 *
1000 'pomnoži
s 1000 in to vrednost
Temp = Temp +
Pom2 'prišteje
prejšnji
Num
=
Chr(pom3)
'isto se ponovi tudi za
Pom3 =
Val(num)
'stotice
Pom3 = Pom3 * 100
Temp = Temp + Pom3
Num
=
Chr(pom4)
'desetice
Pom4 = Val(num)
Pom4 = Pom4 * 10
Temp = Temp + Pom4
Num
=
Chr(pom5)
'in enice
Pom5 = Val(num)
Temp = Temp + Pom5
X = Temp 'na koncu se vrednost dodeli spr. X
Računalnik pošilja mikrokontrolerju absolutne koordinate, ona pa na podlagi svojega položaja izračunava relativne, oziroma število korakov, ki jih bo moral narediti, da bo prižel na želeni položaj.
Clkx
= X –
Xs
'iz stare koord. si izračuna št. korakov
Xs =
X
'in si shrani vrednost nove koordinate
If
Clkx > 0
Then 'določi smer
motorja
Dirx = 1
End If
If Clkx < 0 Then
Dirx = 0
End If
Clkx =
Abs(clkx) 'in
izračuna absolutno št. korakov
Nato se postavi na želeni položaj.
'Premik
po koordinatah
Do
If Clkx > 0
Then 'če je
število korakov večje od 0
P1.6 =
0
'generiraj
clock
Decr
Clkx
'in
odštej od korakov 1
End If
If
Clky > 0
Then 'isto naredi
tudi
P1.4 =
0
'za
Y os
Decr Clky
End If
Delay
'počakaj malo
Delay
P1.6
=
1
'končaj trajanje CLOCK-a
P1.4 = 1
For
N = 0 To
M
'generiraj zakasnitev
Delay
's
katero je določena
Next
N
'hitrost
motorjev
If
Clkx = 0
Then 'ko je št.
korakov po X enako 0
If Clky = 0
Then
'in št. korakov po Y tudi 0
Exit
Do
'končaj
zanko
End If
End If
loop
Print "Done";
Zaradi preglednosti nisem opisoval vsake rutine posebej, saj se nekatere tudi podvajajo.
Če se boste sami lotili izdelave tiskanega vezja, boste naleteli na problem, ker je tiskano vezje dvostransko. Vezje ima tudi precej skoznih luknjic, zato je treba pri izdelavi paziti, da se dobro prekrivajo in da so povezane skozi tiskano vezje. Priporočam, da ga naročite v prodajnem servisu revije Svet elektronike, lahko pa ga snamete tukaj. Najprej prispajkajte vse SMD komponente, ki se nahajajo na spodnji strani tiskanega vezja. Za to varianto sem se odločil, ker bi rad prihranil čim več prostora in poenostavil tiskano vezje. Vsi kondenzatorji 100n služijo filtriranju napajalnih napetosti in so lahko tudi večji, recimo 220n, dimenzionirani pa naj bodo vsaj za napetost 50V. Priporočljiva velikost SMD elementov je 1206.
Slika 3: Razpored elementov – stran spajkanja in SMD-elementov
Sledi spajkanje elementov z zgornje
strani.
Najprej prispajkajte najnižje elemente in potem pojdite proti
najvišjim. Diode
morajo biti hitre, npr. FE2B ali podobne. Za večino aplikacij, kjer tok
skozi
motor ne bo presegal 1A, pa lahko uporabite tudi Iskrine iz BYF serije.
Integrirana
vezja naj bodo v podnožjih, še posebej mikrokontroler, ki ga boste
nekoč
morda nadgradili na novejšo verzijo.
Integrirana vezja L298N pritrdite na
hladilo
in jih galvansko ločite s sljudo in plastičnimi podložkami, prej pa
tako
hladilnik kot IC-je namažite s termo prevodno pasto. Za priključitev
napajanja
in vrtalke sem uporabil kar vrstne sponke, ki jih sestavite iz treh
kosov
(3+2+2), za motorje pa 10 pinske Speedy konektorje. Pri vseh treh sta
po
dve žici, ki peljeta na motor povezani skupaj, da se zmanjša upornost
kablov.
Zadnja dva pina sta namenjena končnim stikalom za posamezno os, in
sicer
pin 9 je "vroči" in pin 10 masa. Pri povezovanju motorja si pomagajte s
shemo,
saj bo kratek stik uničil integrirano vezje L298N navkljub tokovnemu
generatorju.
Slika 4: Razpored elementov na zgornji strani
KAKO PRIKLOPITI KORAČNI MOTOR?
Kot vemo, obstajata dve vrsti koračnih motorjev, glede na zgradbo tuljav. Unipolarni motor ima dve tuljavi s srednjim odcepom, torej navzven šest žic. Nekateri imajo srednja odcepa spojena skupaj in imajo ven speljanih samo pet žic. Bipolarni motor ima dve tuljavi in štiri priključne žice. Glede na to, da je naše vezje namenjeno krmiljenju bipolarnih motorjev, bomo v primeru, da jih nimamo priklopili naš unipolarni motor, da bo deloval kot bipolarni. Stvar je povsem preprosta, variant pa je več:
1. pri motorju ignoriramo srednji
odcep in ga priključimo kot bipolarni motor. V tem primeru se bo
podvojila upornost navitja in tudi nazivna krmilna napetost, ki je
označena na motorju. Pri višjih
obratih bi to znal biti problem. Za to varianto se odločimo, kadar ima
motor
majhno nazivno napetost.
2. Motor priklopimo na srednji odcep
ter
na enega od krakov. V tem primeru bosta nazivna napetost in tok ostala
ista,
vendar pa bo tak motor morda (ker ne vemo, kdaj je feromagnetno jedro v
nasičenju)
imel manjši navor.
3. Motor prevežemo v notranjosti, da
zmanjšamo
upornost navitij. V tem primeru pa je potrebno motor razdreti ter
ugotoviti,
kako so tuljave navite, ter jih prevezati, da bodo vzporedne. Varianta
pride
v poštev v primeru, ko ima motor visoko nazivno napetost.
Slika 5: Priključitev motorjev
Motorji naj bojo za napetost med 4 in 10V ter za tok med 0,2 in 1,5A. S tokom skozi motorje ne pretiravajte, če to ni potrebno.
OPOZORILO!
Ko razdirate koračni motor, ne smete nikoli potegniti rotorja iz statorja, ker se bo rotor deloma razmagnetil in motor ne bo imel več polnega navora.
Povečevanje toka, ko je jedro v nasičenju, ne povečuje navora, ampak samo toplotne izgube v bakru.
Vezja nikakor ne poskušajte zagnati
brez
hladila na IC-jih LM298N, saj se lahko zelo hitro pregrejejo. Trimer
potenciometre
obrnite v skrajni levi položaj. Motorje lahko priklopite kar na mizi,
končna
stikala pa lahko simulirate s tipkami. Če ste vse pravilno zvezalili in
dobro
preverili, lahko vklopite napajalnik in počasi obračate potenciometer
za
regulacijo toka skozi motor Z, saj se ta prvi inicializira. Motor se bo
začel
vrteti. Ker motor ni obremenjen, se lahko zgodi, da se bo začel pri
določenem
toku nekontrolirano obnašati zaradi pojava resonance (tudi razloženo v
člankih
o krmiljenju koračnih motorjev). Ta pojav naj vas ne moti, saj se bo
motor
popolnoma drugače obnašal, ko bo obremenjen na svojem "delovnem" mestu.
Če
se motor vrti, lahko pritisnete končno stikalo za Z os in vrteti se bo
začel
motor X, ko mu boste dovolj povečali tok. Ko boste pritisnili na končno
stikalo
za X os, se bo zavrtel še motor za Y os, po pritisku na končno stilkalo
za
Y pa bo mikrokontroler že oddal računalniku sporočilo, da je
pripravljen.
Če imate program Easy NC Drill zagnan in odprto datoteko za vrtanje,
lahko
zaženete vrtanje in opazujete delovanje motorčkov. Med delovanjem
previdno
potipajte motorčke, da se ne bi pregrevali in tako uničili. Če ste
prišli
uspešno do te točke, potem ste na dobri poti do končne rešitve.
Če imate motorje že na svojem mestu v
stroju
in se vam vrtijo v napačno smer, zadevo rešite tako, da zamenjate
priključka
na enem navitju. Še enkrat naj vas opozorim, da delajte z vezjem
previdno,
saj ob nepazljivem ravnanju hitro pride do uničenja katere od
elektronskih
komponent. Predloge, pripombe in vprašanja pa prosim, da mi pošljete na
e-poštni
naslov.
Slika 6: Sestavljeno tiskano vezje
KAKO DO PROGRAMSKE OPREME IN
MIKROKONTROLERJA
Program Easy NC Drill V2.2 (ali novejši, to se bo spreminjalo) lahko najdete tukaj. Na tem mestu pa se bo dalo tudi spremljati razvoj programa in dobiti novejše verzije. Glede mikrokontrolerja sta možni dve varianti:
a) sprogramiran mikrokontroler lahko naročite na prodajnem stiku revije. Ta omogoča vrtanje tiskanih vezij do velikosti 32000 korakov motorja po vseh oseh (pri 300 korakih na inčo znese to kar 2,7m) Seveda je ta dimenzija pogojena s strojem.
b) Kupite DEMO verzijo mikrokontrolerja, ki bo stala cca cena mikrokontrolerja + poštni stroški ali
c) datoteko cnc221d.hex najdete na moji domači strani ali na strani revije Svet elektronike in si jo sami "zapečete" v mikrokontroler. To je DEMO verzija datoteke in vrta tiskana vezja do dimenzije 100x70mm.
Vrtalnik lahko preizkusite tudi z vzorčnimi datotekami Primeri *.ncd datotek
Tako. Z nekaj truda in dokaj malo stroški smo prišli do naprave, ki je sposobna vrtati tiskana vezja in morda delati tudi še kaj drugega kot to, npr. vrtati luknje za LED diode v čelno ploščo, z rezkalno glavo točko po točko izrezkati vaše ime… Če pomislimo, da podobni stroji v trgovini stanejo od 500.000 SIT naprej… Moja želja je, da bi vam naprava dobro služila in da bom nekoč napisal tudi program za rezkanje tiskanih vezij, če mi bo to uspelo. Če ima kdo od vas kakšno informacijo glede rezkanja, bi bil zelo hvaležen, če bi jo delil z menoj, lahko pa bi celo skupaj ustvarili nov stroj. Želim vam obilo veselja pri vrtanju!
Oznaka | Vrednost | Kos | Opomba |
R1 | 22k SMD | 1 | Velikost 1206 |
R2, R3, R5, R6, R8, R9 | 0,47R/2W | 6 | Vertikalna montaža |
R4, R7, R10 | 2k2 SMD | 3 | Velikost 1206 |
R11, R12, R13 | 180R SMD | 3 | Velikost 1206 |
R14 - R25 | 5k6 SMD | 12 | Velikost 1206 |
C1 | 2200u/25V | 1 | |
C2, C3, C5, C6, C8, C10, C12,
C14, C15,
C17, C19, C20, C22, C27, C28, C33 - C35, C37- C39, C41 |
100n SMD | 22 | Velikost 1206, lahko ga nadomesatimo z večjo vrednostjo, npr. 220n. |
C4 | 47u/25V | 1 | |
C7 | 4u7/25V | 1 | |
C9 | 2,2n SMD | 1 | Velikost 1206 or 0805 |
C11, C16, C21 | 470u/40V | 3 | |
C13, C18, C23 | 1n SMD | 3 | Velikost 1206 or 0805 |
C24 | 470n SMD | 1 | Velikost 1206 |
C25, C26 | 33p SMD | 2 | Velikost 0805 |
C29 - C32 | 1u/25V | 4 | |
C36 | 100u/63V | 1 | |
C40 | 47u/6,3V | 1 | |
D1 | 1N4148 SMD | 1 | |
D2 - D25 | FE2B | 24 | 2A - hitra |
IC1 | LM78L05 | 1 | |
IC2, IC4, IC6 | L297 | 3 | |
IC3, IC5, IC7 | L298N | 3 | |
IC8 | AT89C2051 | 1 | Mora vsebovati program |
IC9 | MAX232 | 1 | |
ZD1 | BZX85, 15V/800mW | 1 | |
RE1 | JSM1-12V-4 | 1 | Lahko tudi drug z enakim razporedom priključkov |
T1 | BC239C | 1 | Lahko tudi drug NPN z hFE > 200, Icmax 200mA and Ucemax 40V |
TP1, TP2, TP3 | 470R | 3 | trimerpotenciometer - ležeči |
GR1 | B20C2300-1500 | 1 | usmerniški most 2A/40V |
X1 | 12MHz | 1 | |
JP1 | 2 pin | 1 | BREZ KRATKOSPOJNIKA. Zapri samo za reset. |
JP2 | 3 pin | 3 | Izberi half or full step |
CN1 | Vrstna sponka za TIV | 1 | Lahko sestavite iz 3+2+2 pin |
CN2, CN10 | DB9FA | 2 | ženski |
CN3, CN4, CN5 | Speedy 10 M | 3 | moški |
CN6, CN7, CN8 | Speedy 10 F | 3 | ženski, za ploščati (flat) kabel |
CN9 | DB9MA | 1 | moški |
Program Easy
NC Drill
je freeware. Je brezplačen in ga lahko pojubno kopirate in
distribuirate, če to želite. Program vam ponujam tak, kakršen je in
uporabljate ga lahko na lastno odgovornost. Za morebitno škodo,
ki bi jo utegnil povzročiti program
ne odgovarjam, kakor tudi ne za morebitne zlorabe tega programa v druge
namene.
Uporabljanje programa pomeni strinjanje s to izjavo. Trenutna verzija
programa
je 2.2.3
Primeri NCD datotek
Tiskano
vezje
Vezje je v formatu CorelDraw 7
ali PostScript.
DEMO verzija programa za mikrokontroler
Avtor: Srečko Lavrič
Zadnja sprememba: 09. maja 2005