Unul dintre cele mai interesante
site-uri pentru mine, rãmîne   www.instructables.com; De aici, m-am inspirat şi am
construit un “miniCNC” cu cheltuieli şi eforturi minime.
 Am reuşit sa înţeleg funcţionarea şi sã 
experimentez programarea simplistã a unei maşini cu comandã numericã.
 Adevãrul este cã  am plecat de la modelul  “Pocket-laser-engraver  “ - adicã un CNC pentru gravat cu diodã laser  ( vezi 
http://www.instructables.com/id/Pocket-laser-engraver/?ALLSTEPS ) 
Nu o sã mai descriu construcţia, doarece este suficient prezentatã în site-ul menţionat mai sus.O sã menţionez numai problemele care au apãrut !
Nu o sã mai descriu construcţia, doarece este suficient prezentatã în site-ul menţionat mai sus.O sã menţionez numai problemele care au apãrut !
Deoarece nu am reuşit sã procur o
diodã laser cu care sã pot grava, am adãugat un al 3-lea motor pas cu pas
(de la o unitate de discheta  veche) pentru deplasare pe axa Z şi un suport
pentru un pix cu gel, ca sã pot face încercãri
( pânã când  voi putea achiziţiona dioda
laser)! 
 1.  Pentru partea mecanicã am mai utilizat douã
unitãti  CD-ROM vechi. Au trebuit desfãcute,
 modificate şi amplasate pe o planşetã. Suportii şi piesele de complectare le-am fãcut din placã PVC cu grosime de 2 -
2,5 mm  lipite cu “picãtura “.
Cea mai dificilã problemã, a fost sã aliniez
subansamblele pe cele 3 axe aşa încât sã
fie asiguratã concurenţa axelor într-un
punct şi perpendicularitatea celor 3 plane.   Pentru partea de comandã numericã ,
am utilizat board-ul ArduinoUno şi 3
drivere EasyStepper pentru  motoarele pas cu pas;
 De 
aici au apãrut şi problemele! Pentru motoarele pas cu pas PL15S-020 am
gãsit pe net o fisã tehnicã la eMinebea.com (http://www.kmmotor21.co.kr/pl15s_020.htm).
2 .De reţinut cã tensiunea de lucru maximã la
aceste motoare este de 5v, iar rezistenţa este de 10ohmi  pe fazã.  Easy Driver 
este construit sa meargã de la 6 la 12 V 
şi dacã nu tineţi seama de acest lucru , apar neplãceri. Mie nu mi-a
funcţionat sub 7v. Am fost nevoit sã adaptez radiatoare la circuitul integrat
de la Easy Driver pentru cã altfel se încãlzeşte
excesiv 3.Tot la Easy Driver, existã probleme din fabricaţie. Tensiunea de ieşire
pentru CoilA şi , CoilB se regleazã din potenţiometru
(vezi figura). Atenţie :  marcajele min şi max de pe cablaj sunt inversate : adicã min este max şi invers!
Trebuie pus voltmetrul si efectuat reglajul cu grijã. Am gãsit specificaţia
asta pe un forum, şi este realã !
In rest , ar fi Ok! Se pot programa micropaşi – în loc de 20 de paşi pe rotatie disponibil la steppere se pot opţine 8x20 = 160 micropaşi pe rotaţie.
 Orice conectare /modificare sau
“manevrã de montare” la Easy Driver”   trebuie facutã fãrã ca sã fie conectatã
tensiunea!
Trebuie consultatã obligatoriu fişa tehnicã de date!
Se poate gãsi bibliografie la Easy Driver aici:
http://www.robofun.ro/mecanice/driver
Se poate gãsi bibliografie la Easy Driver aici:
http://www.robofun.ro/mecanice/driver
Au urmat etapele pentru soft :
  4.Instalarea interpretorului de
comenzi Grbl pe ArduinoUno.
Am fãcut download de la https://github.com/Protoneer/GRBL-Arduino-Library/archive/master.zip , şi am obţinut
librãria necesarã  ; dupã dezarhivare, în fişerul README.md am citit
instrucţiunile de instalare: 
- se creeazã un
director   C:\\
arduino-1.0.3\libraries\GRBL unde se copie sursa dezarhivatã
- se deschide
Arduino-1.0.3;
- se deschide din  meniu File
->Examples->GRBL şi trebuie sã regãsiţi douã exemple: ArduinoUno si ArduinoDuemilanove ;
-am deschis exemplul ArduinoUno;
-am fãcut upload la fişierul ArduinoUno
, dar nu mi-a mers din prima încercare !
-am tastat în meniu Sketch->ImportLibrary->
GRBL şi am reuşit sã compilez şi sã încarc programul pe board-ul ArduinoUno!
  5.Setarea Grbl ( a interpretorului Grbl)
Setarera se face cu board-ul ArduinoUno cuplat la calculator şi  IDE-ul Arduino deschis.   
- dacã acum deschizi SerialMonitor (dupã upload) va  apare expresia :    Grbl 0.8c [ ‘$’ for help]
care confirmã cã interpretorul este funcţional !
Cu comanda '$'+ enter din monitorul serial, se deschide meniul
pentru setarea interpretorului
Grbl.
Explicatii amanuntite pe : http://dank.bengler.no/-/page/show/5474_configuringgrbl?ref=checkpoint
 
Ce am setat: 
Explicatii amanuntite pe : http://dank.bengler.no/-/page/show/5474_configuringgrbl?ref=checkpoint
- am "descoperit" cã stepperul  pe axa ox are 20pasi pe rotatie si deplasare mm/1rotatie ax , 
corectie  necesarã: (20x8):3=53.33 micropaşi/1mm  
- stepperul pe oy  are 20paşi/rotaţien si deplasare 4,5 mm/1rotatie ax, corectia este de    (20x8):4,5 =35.55micropasi/1mm
la fel, am calculat si corectia pe axa oz;
Am modificat in programul din ArduinoISP succesiv in monitorul serial  : $0=53.333 şi enter; apoi  $1= 35.55;
Dupã incercri,  am erori la deplasare la cifra 3 dupa
virgula (0.003 mm) !
  6.Instalarea interfeţei pe
calculator
Am utilizat softul :     UniversalGcodeSender-all32  versiunea 1.0.5 conceput in Java, pentru Windows;     (download free:  https://github.com/grbl/Universal-G-Code-Sender
)
(recomandare si: http://blog.protoneer.co.nz/quick-grbl-setup-guide-for-windows-arduino-g-code-interpreter/ )
Dupã lansarea în execuţie, cu miniCNC-ul
conectat, se selecteazã portul serial (la mine COM3), click pe Open, şi
comenzile devin active .  
  7.Probe, cu comenzi din taste 
De aici , am fãcut încercãri ;
Verific miscarea pe fiecare axã:
Din meniul dreapta sus se poate selecta modul de lucru:
- FileMode pentru incãrcarea
unui program de lucru dintr-un fisier.nc
- Command Mode    pentru comenzi in codG din linia de
comansdã
-  dacã se bifeazã casuţa EnableArrowKeyMovement, din
MachineJogink se pot face comenzi de deplasare din butoane, dupã ce setãm
marimea deplasãrii la un click din StepSize;
Am lucrat  cu ultima variantã  , ca sã verific cã miniCNC-ul meu este funcţional
si setat corect: De aici , am fãcut încercãri ;
Verific miscarea pe fiecare axã:
-introduc de la
consolã în linia de comanda  
G00 X10 Y10 Z5 
  apoi şi enter:  merge  
- introduc de
la consolã în linia de comanda o valoare pentu  z ( am masurat cu linearul 10 mm intre pix şi
hîrte) -ca sã lase urma pe hârtie cu pixul şi sã trasez
 o linie pe axa x , de 10 mm  
      G90 X10 Y0 Z10 
   apoi enter merge
Diferenţa între G90 si G91:
Cu G00 la
comenzi succesive, se executã  deplasarea
în coordonate absolute maşinã ( se deplaseazã la fiecare punct nou  dupã valorile faţã de origine) :  
      G90 X10 Y10 Z0 duce în punctul 10; 10; 0 –
coordonate absolute ;
      G90 X5 Y5 Z0 – ne trimite in 5,5,0 
Cu G91, se
deplaseaza în coordonate relative (se deplaseazã la un punct nou raportat la
coordonatele punctului anterior):
      Cu G91 X10 Y10 Z2  ajungem în A(10;10;2)  
Urmat de 
      Cu G91 X5 Z5 Z-2    cu care ajungem in B(15; 15; -0)
      Cu G91 X12 Y12 Z3   ajungem
in C( 27; 27; 3)
Ca sã revin la
zero maşina (în origine ) tastez 
      G90 X0 Y0 Z0
Vreau sã trasez
o linie şi introduc succesiv comenzile : 
      G91 X5 Y5 Z106       din punctul (5, 5 ,6)   Z6 am coborit pixul la hirtie 
      G91 X10 Y10 Z0     in punctul X15; Y15; Z0 
      G91 X0 Y0 Z-6      si ridicam pixul
8.Programarea  în
G-code şi probe. 
Programare CNC
Programare CNC
Am pus pe blog
şio douã progrãmele mici , care pot fi copiate ( se şterg toate comentariile
şi se lasã numai liniile de cod);
Este necesar un
editor de cod  G. Eu am folosit CNC Syntax Editor 3.1.0.1119  free trial de la   http://www.cnc-syntax-editor.com/ ; 
Fişierele scrise le-am salvat cu extensia .nc
Acum , vreau sa desenez un dreptunghi  din comenzi interfata:
Drepunghi
G00 (pozitionare
in sistemul de coordonate curent– nu-i miscare de lucru !!)
G90 (miscare in
coordonate absolute )
G21 (seteaza
unitati de masura in mm) 
G0 X8.9115
Y27.1111 Z10 (pozitionarte rapida virf in 
punctul X;Y;Z)
M03
G1  F40.000000
G1  X31.2531 Y27.1111
G1  X31.2531 Y9.7901
G1  X8.9115 Y9.7901
G1  X8.9115 Y27.1111
M05
G0 X0.000
Y0.000 Z-2  (pozitioneaza virful in
0,0,-2) ca sa nu mai lase urma  
M05
      M02 
Program cerc
G90                       comanda
pozitionare in sist curent; cod modal
G21                       distante in mm
G0 X33.0688
Y19.7089 Z10.00            deplasare
rapida in punctul specifcat       
M03
G1F50.000000
G02 X29.1558
Y10.262 I-13.3599 J-0.  interpolare
circulara
G02
X19.7089 Y6.349 I-9.4469 J9.4469
G02 X10.262
Y10.262 I0. J13.3599
G02 X6.349
Y19.7089 I9.4469 J9.4469
G02 X10.262
Y29.1558 I13.3599 J-0.
G02
X19.7089 Y33.0688 I9.4469 J-9.4469
G02
X29.1558 Y29.1558 I-0. J-13.3599
G02
X33.0688 Y19.7089 I-9.4469 J-9.4469
G1  X33.0688 Y19.7089  Z-2.00
M05
G0 X0.000
Y0.000 Z0.00
M05
      M02
In final, o observaţie :
- lucrez cu
ArduinoUno ca simplu începãtor, de anul trecut şi merge!
- am fost
curios sã vãd ce înseamnã sã construieşti un sistem cu comandã  numericã, ce probleme sunt.
- pînã la
urmã am reuşit sã gãsesc varianta cea mai ieftinã şi uşoarã de abordat pentru mine; 
- chiar dacã
“mecanismele” sânt refolosite şi cu uzuri, şi-au îndeplinit
scopul, adicã  sã  înţeleg “ce,cum,
şi care e drumul de parcurs ” – sau într-un limbaj
mai elevat: cercetare bibliograficã, muncã multã, încercãri,
experimentare ;              
    Acum, chiar cã ar merge şi o investiţie
serioasã, într-o maşinã care sã execute prelucrãri !  





Bravo!Felicitari!Articolul tau este un punct de plecare si pentru mine.Multumesc.
RăspundețiȘtergere