CNC vrtalnik za domačo rabo
 

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
 


KAJ JE CNC VRTALNIK?

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.


KAKO DELUJE NAŠ CNC VRTALNIK?

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.


PROGRAMSKA OPREMA

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 je enostaven za uporabo, vendar bom vseeno razložil njegovo delovanje in pomen posameznih nastavitev.

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)


IZDELAVA STROJA

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.


NASTAVLJANJE OFFSETA

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


OPIS VEZJA

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
If P3.5 = 0 Then          'če je končno stikalo pritisnjeno
   P1.3 = 1               'nastavi smer vrtenja motorja nc CW
   For N = 0 To 100
      P1.2 = 0            'postavi CLOCK na nizki nivo
      Delay               'počakaj trenutek
      Delay
      P1.2 = 1            'postavi CLOCK nazaj na visoki nivo
      For J = 0 To M      's to zanko določimo hitrost
         Delay            'vrtenja motorja (spreminjamo
      Next J              'čas med CLOCK impulzi)
   Next N                 'ponovi zgornjo operacijo 100x
End If
P1.3 = 0                  'nastavi smer vrtenja motorja na CCW
Do                        'ponavljaj spodnjo rutino
   P1.2 = 0
   Delay
   Delay
   P1.2 = 1
   For J = 0 To M
      Delay
   Next J
Loop Until P3.5 = 0       'dokler ne pritisneš na končno stikalo

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:
 

Vsakič, ko operacijo uspešno konča, to sporoči računalniku.

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.


SESTAVLJANJE

Č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.


PRVI ZAGON IN UMERJANJE

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


ZAKLJUČEK

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!


SPISEK ELEMENTOV
 
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


IZJAVA

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
 
 

Strinjam se z izjavo                                 Z izjavo se ne strinjam

Primeri NCD datotek

Prenesi primere *.NCD datotek

Tiskano vezje

Vezje je v formatu CorelDraw 7 ali PostScript.

Prenesi (ZIP datoteka)

DEMO verzija programa za mikrokontroler

Prenesi Cnc22d.hex

Avtor: Srečko Lavrič

Zadnja sprememba: 09. maja 2005