CNC jyrsin

CNC jyrsin on varsin hyödyllinen työkalu robottien rakentelussa, joten rakensin "romusta" 3 akselisen jyrsimen.
Rakentaminen alkoi kun löysin metalliromuttamolta sopivia osia jyrsimeen, osat ovat ilmeisesti joitakin kokoonpanolinjan komponentteja, mutta en tiedä tarkalleen mihin käyttöön osat ovat alun perin tarkoitettu, mutta ne ovat riittävän tukevia jyrsinkäyttöön, jolla on tarkoitus jyrsiä muovia ja pehmeitä metalleja.

Alla on kuva cnc-jyrsimestä.

CNC_jyrsin.jpg

Koneen koko ei ole kovin suuri, x ja y liikeet ovat vain n. 10 cm (akselin pituus 22 cm ja liikkuvat tasot pituudeltaan 10 cm) z-akselin liike on n. 35 mm. Painoa on kuitenkin koneella riittävästi n. 10 kg.
Välitykset on toteutettu 6x1 mm kierretangoilla ja askelmoottorit ovat bebekin 10 euron askelmoottoreita (1.8 astetta/askel), näistä ei tosin löydy korkeimmilla kierroksilla vääntöä tarpeeksi, joten liikenopeus akseleilla on vain 70mm/min. Resoluutio on 0.005mm/askel, kun kierretangon kierteiden nousu on 1 mm ja moottori pyörähtää yhden kierroksen millimetriä kohden ja askelia tulee 200/kierros.

Alla on kuva cnc-jyrsimestä takaa, josta näkyy kierretangon liitos askelmoottoriin ja muovinen "mutteri".
Askelmoottorin ja kierretangon välinen osa on kierretangoille tarkoitettu jatkomutteri. Vihreä muovi on polyeteeniä. Tähän on tullut päivitys, "mutterit" ovat nykyään messinkiä.

takaa.jpg

CNC jyrsimeen tarvitaan mekaniikan lisäksi myös elektroniikkaa jyrsimen ja tietokoneen väliin, tein neljälle askelmoottorille (joskus lisään jyrsimeen neljännen akselin) ohjaimen, joka liitetään tietokoneen rinnakkaisporttiin. Ohjain soveltuu vain unipolaarisille askelmoottoreille ja pienille virroille (ohjain versio 1).

Ohjain versio 1

ohjaimen kytkentäkaavasta huomaa että ohjainpiirinä on Xilinx CPLD (complex programmable logic device) -piiri, jolle on tehty VHDL:lla (VHSIC hardware description language) askelmoottorille ohjaus. Ohjaus toimii dir/step ohjauksella. Tässä on Eagle -suunnitteluohjelmalla tehty kytkentäkaava ja piirilevytiedosto ohjaimesta:
ohjaimen kytkentäkaava
ohjaimen piirilevytiedosto

Tämä kytkentä toimii hyvin bebekin 10 euron askelmoottorin kanssa, koska mootorin käämiresistanssi on niin iso. Ohjaimessa ei ole virranrajoitusta.

VHDL:lla kirjoitettu askelmoottorin ohjauksen löysin valmiina, mutta muokkasin sitä hieman. Alkuperäinen VHDL -koodi löytyy täältä ja tässä on muokkaamani koodi.
Muut CPLD -piirin tarvitsemat tiedostot:
CPLD piirin sisäinen kytkentä
CPLD -piirin I/O -pinnirajoite tiedosto

Xilinx ISE 9.1i ohjelmalla aukeava koko ohjaimen projektitiedosto

CPLD -piirin projektitiedosto on asetettu eri cpld -piirille (XC9572XL-10PCG44) kuin kytkentäkaavassa (XC9536XL-10PCG44), koska laitoin kytkentäkaavassa olevan cpld -piirin ohjaimeen, mutta olin unohtanut kytkeä ULN2803 piireihin pinnit 10 käyttöjännitteeseen ja jännitepiikki hajotti XC9536XL -tyyppisen piirin ja minulta löytyi XC9572XL tyyppinen piiri, joten vaihdoin sen ohjaimeen ja tietenkin korjasin kytkentää laittamalla ULN piirien pinnit 10 käyttöjännitteeseen (tämä on jo korjattu kytkentäkaavaan ja Eaglen tiedostoihin).
XC9572XL CPLD -piiri on vain isompi macrocells:n osalta kuin piiri XC9536XL, mutta ohjaimen toiminnallisuus mahtuu hyvin tuohon pienempään piiriin.

Ohjain versio 2

Ohjain versio 1 on muuten ihan hyvä, mutta siitä puutuu virranrajoitin ja tehoaste ei kestä suuria virtoja, joten uudempi ja parempi versio ohjaimesta on suunnitteilla. Ohjain perustuu A3982 IC -piiriin, joka on täydellinen askelmoottoriohjainpiiri. Ohjainpiiri on tarkoitettu bipolaarisille askelmoottoreille, mutta jotkut unipolaariset moottorit voivat toimia bipolaariohjaimella (vai toimiiko kaikki, onko kokemuksia?).

ohjaimen kytkentäkaava Ohjaus toimii dir/step ohjauksella.

Tässä on Eagle -suunnitteluohjelmalla tehty kytkentäkaava ja piirilevytiedosto ohjaimesta (vielä hieman keskeneräisiä):
ohjaimen kytkentäkaava
ohjaimen piirilevytiedosto

Optoeristin

Liitäntä tietokoneeseen on optisesti eristetty ja siitäkin löytyy kytkentäkaava sekä Eagle ohjelman tiedostot:
kytkentäkaava
piirilevytiedosto

CNC ohjain ja optoeristin ovat erillisillä piirilevyillä lähinnä Eaglen ilmaisversion takia (levykoko max. 100x80 mm)
Optoerotin ei kuitenkaan toimi ilman pientä korjausta, optoerottimien (CNY-17) lähtöjen ja varsinaisen CNC ohjain kytkennän väliin pitää laittaa Schmitt trigger bufferit (esim. 74HC541), jotta toiminta olisi varmaa.

CNC ohjain on kytketty seuraavasti tietokoneen LPT -porttiin:

PC LPT
-pinni nro: CNC ohjain:
2…………………………X DIR
3…………………………X STEP
4…………………………Y DIR
5…………………………Y STEP
6…………………………Z DIR
7…………………………Z STEP
8…………………………A DIR
9…………………………A STEP
17………………………ENABLE (ei tosin käytössä)
18-25………………….GND

Alla on kuva korjauksesta, joka tarvitaan optoerotinkytkennän ja askelmoottoriohjaimen väliin, 74HC541 -piirissä onneksi menee kaikki bufferit samaan suuntaan, joten hyppylankoja ei tarvitse montaa.

korjaus.jpg

Kun olin saanut juotettua komponentit piirilevyille ja testasin ensimmäistä kertaa kytkentää ja CPLD -piirin toimintaa, ei laite toiminutkaan halutulla tavalla. Kun laitoin moottorit pyörimään, jäivät ne vain surisemaan paikoilleen, mutta sain ne pyörimään vain hitaalla nopeudella.
Pari päivää ihmettelin laitteen vikaa ja sitten löysin vian. CPLD -piiri on tarkoitettu 3V jännitteelle, I/O kestää 5V jännitteen (eli laajempi I/O:n jännite) ja ilmeisesti optoerottimet jäivät liian pitkäksi aikaa kielletylle jännitealueelle, jolloin CPLD -piiri tulkitsi yhden askeleen moneksi (?). Vian haku oli kyllä hankalaa ilman oskilloskooppia, käytössä oli vain yleismittari ja ledejä, mutta onneksi vika korjaantui Schmitt trigger bufferilla (74HC541).

Toinen "vika" on CNC ohjain kytkennässä, regulaattori on 7805 (TO-220 kotelo) ja käytössä on 22V jännite, jolloin 5V regulaattorin pitää hukata aika iso teho. Regulaattori oli jäähdytyslevyssä, mutta silti se lämpeni niin paljon että ei sitä voinut sormella koskeakaan. Vaihdoin regulaattorin hakkuriregulaattoriin (tyyppi PT78HT205H) joka ei lämpene, en ainakaan huomaa lämpiämistä.

Alla on kuva tietokoneeseen liitettävästä ohjaimesta kansi aukaistuna.
CNC_ohjain.jpg

CNC -jyrsimen ohjaamiseen käytän KCam nimistä ohjelmaa, joka toimii ilman rajoituksia 60 päivää, jonka jälkeen ei voikaan ajaa monen rivin G-Code:a

Muita pieniä ongelmia on ollut esimerkiksi tietokoneesta LPT portin puuttuminen, joka onneksi korjaantui PCMCIA LPT sovittimella. Tosin sovitin ei asennu esim. 0x378 (LPT1) osoiteavaruuteen vaan minun tapauksessa se meni osoitteeseen 0x3FDE. Mutta onneksi KCam:ssa voi asettaa portin osoitteeksi minkä tahansa osoitteen!
Ilmeisesti muissakin CNC -ohjelmissa tämä on mahdollista. DOS ohjelmissa ei taida adapteri toimia ollenkaan, jolloin ei voi käyttää esim. TurboCNC -ohjelmaa

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License