機(jī)械社區(qū)

 找回密碼
 注冊(cè)會(huì)員

QQ登錄

只需一步,快速開始

搜索
查看: 8413|回復(fù): 10
打印 上一主題 下一主題

基于電子積木arduino(AVR)的G代碼解釋器原代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2012-8-6 19:48:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
基于電子積木arduino的G代碼解釋器原代碼,來(lái)源于http://arduino.cc/forum/搜CNC
5 I9 A& c. d  r1 h6 \/ x7 g我去年收集了許多程序,經(jīng)過(guò)測(cè)試挑選出可以用,后來(lái)沒(méi)時(shí)間繼續(xù)研究學(xué)習(xí),現(xiàn)在發(fā)
- c; \  |+ n8 a- U8 D- e2 y3 P上來(lái)給有用的朋友參考
4 C8 o* N; A) a4 a# Q下面是其中的小段源碼) D6 ^5 R& a* K4 W. K* T. m
//init our variables
3 @9 g1 Y. z+ n- R) q; [long max_delta;7 \8 u* V2 `# @6 I
long x_counter;
5 e) O& x0 H2 @3 G, Ulong y_counter;- K1 O9 c3 ]1 @+ t" D3 H
long z_counter;
; j" O* k' M. o6 ]- vbool x_can_step;
0 _/ p3 p  [7 m% Hbool y_can_step;! T. q% ^/ ^+ H$ Y& `' o
bool z_can_step;" a6 d, [/ d6 W2 z6 |! x- m
int milli_delay;; @1 m4 [3 ^# l/ H: Y1 i# {9 n2 w
void init_steppers(). c& [% d% |; M
{# y$ z, {4 k+ m' B" J
//turn them off to start.
9 M3 n) S4 o. T7 g' r# V disable_steppers();
; c# q  j1 F6 U. A
$ q" z) c; s/ G9 P! {4 c //init our points.0 G* Q/ i. m: h& U" N2 n
current_units.x = 0.0;1 N1 \+ n0 c$ b
current_units.y = 0.0;
7 Z) ]0 Y; P2 j  a: H% }  L current_units.z = 0.0;
" z7 n8 _& s6 z% P) ^- n/ f target_units.x = 0.0;; K, i* k1 E# `" V, W
target_units.y = 0.0;
( \: B9 k: Y. t- `2 r* U3 I0 s target_units.z = 0.0;
2 O: j! Q% S: s# S4 @# A
9 ^1 J6 {7 s7 Z& \, b7 i pinMode(X_STEP_PIN, OUTPUT);; @3 x) `, x+ ^" m
pinMode(X_DIR_PIN, OUTPUT);( l$ e6 B! }, ~; E' j9 i
pinMode(X_ENABLE_PIN, OUTPUT);
! e: U6 U+ d0 n) ] pinMode(X_MIN_PIN, INPUT);
( o7 ?6 K* F4 `/ Y! D pinMode(X_MAX_PIN, INPUT);
8 A! h& m' s2 ^( z' b, L% W
0 ]* n. s) ~' k( u: X6 ~5 ]# f pinMode(Y_STEP_PIN, OUTPUT);9 L, d5 C" \5 ^) [
pinMode(Y_DIR_PIN, OUTPUT);# h. M% B( i( N8 t3 M
pinMode(Y_ENABLE_PIN, OUTPUT);, E# F* }( s: n. _+ Z- U
pinMode(Y_MIN_PIN, INPUT);; H0 @* u; y2 O3 `  K0 s
pinMode(Y_MAX_PIN, INPUT);1 ?7 G; _# ]8 c" _  q

0 C; v4 B  Z2 v" s; r, P0 s pinMode(Z_STEP_PIN, OUTPUT);9 J& k2 p  E( m" O0 d
pinMode(Z_DIR_PIN, OUTPUT);! K4 l8 R5 A6 d. a
pinMode(Z_ENABLE_PIN, OUTPUT);! _+ Y5 c) u! }5 v
pinMode(Z_MIN_PIN, INPUT);! A7 C& ]1 L/ f1 l) \" ]
pinMode(Z_MAX_PIN, INPUT);
! p5 r) H- ?3 r1 k, ^ ! U' L. r* V5 B; E( D$ o5 x
//figure our stuff.
& w+ `' I5 P( V6 y calculate_deltas();
/ v: L0 F% g$ S4 m% R2 Y- }}2 h# a- k, y0 f$ t$ y% ?
void dda_move(long micro_delay)
# {7 g9 B3 `" N/ J/ X. `{4 `1 \" D2 _8 Q) p+ S
//enable our steppers
' s" b0 R6 k: r0 v( W. O digitalWrite(X_ENABLE_PIN, HIGH);
9 a4 s2 `' \( r( u" U' R5 `1 Z digitalWrite(Y_ENABLE_PIN, HIGH);
, @, j* R: u; m, D+ B digitalWrite(Z_ENABLE_PIN, HIGH);
% N! F- s3 b( K1 v5 H " I9 x' d, S) ]
//figure out our deltas$ ~+ H! c( ~  H7 r* _: e
max_delta = max(delta_steps.x, delta_steps.y);( B, N+ z: D% C; r. ?
max_delta = max(delta_steps.z, max_delta);
# f/ {0 G" \) T9 X //init stuff.; e* b2 N% d* r  W% G! Q6 |
long x_counter = -max_delta/2;5 {9 Q9 K; K) q/ f% [( f7 e2 b
long y_counter = -max_delta/2;
, K. S! w$ g9 }+ e long z_counter = -max_delta/2;
, j$ p& Z4 ]" Y& _4 V! j1 y4 d7 [ * Z4 ^; z, S5 `; g: C
//our step flags) R8 o) L( I- T
bool x_can_step = 0;5 A% ~& j1 W- k/ B0 }: T; r
bool y_can_step = 0;. R/ n( L8 W& _
bool z_can_step = 0;) h0 ]6 Q/ |7 ^! H  G. H

% \, V2 |. a% N+ W; G if (micro_delay >= 16383)9 G( o8 x. [' M. B7 ?8 e
  milli_delay = micro_delay / 1000;
2 K, x$ ~& f. a( ^; M else( D, x. P8 w1 k4 _; ~0 M
  milli_delay = 0;
# t8 H& D1 M+ q" |/ F! V; B& K, x

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒(méi)有帳號(hào)?注冊(cè)會(huì)員

x
回復(fù)

使用道具 舉報(bào)

2#
 樓主| 發(fā)表于 2012-8-6 19:50:44 | 只看該作者
有2軸圓弧查補(bǔ)和3軸直線查補(bǔ)功能
3#
發(fā)表于 2013-8-7 14:46:24 | 只看該作者
謝謝分享。
4#
發(fā)表于 2013-8-25 00:01:13 | 只看該作者
謝謝分享。
5#
發(fā)表于 2014-12-2 14:14:14 | 只看該作者
謝謝分享
6#
發(fā)表于 2015-5-2 17:56:27 | 只看該作者
謝謝分享!
7#
發(fā)表于 2015-5-5 10:06:23 | 只看該作者
感謝分享
8#
發(fā)表于 2015-5-5 10:18:43 | 只看該作者
電子積木是什么意思?是CNC的G碼嗎?
9#
發(fā)表于 2015-9-27 00:13:28 | 只看該作者
這個(gè)還沒(méi)怎么接觸過(guò),樓主能詳細(xì)解釋解釋嗎
3 ]- f3 p9 L3 L0 O
10#
發(fā)表于 2015-10-5 11:21:26 | 只看該作者
謝謝分享  

本版積分規(guī)則

小黑屋|手機(jī)版|Archiver|機(jī)械社區(qū) ( 京ICP備10217105號(hào)-1,京ICP證050210號(hào),浙公網(wǎng)安備33038202004372號(hào) )

GMT+8, 2024-9-24 13:16 , Processed in 0.062020 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表