rotor 0.0.13 → 0.1.00

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e638f5cf2aa72eba2495da1c20e371835bfbc44f
4
- data.tar.gz: c7d1adb16a04d218a1c60847fbf10aa34da70531
3
+ metadata.gz: 85a4ae370eef40efc19bd9a1745a36e8dbb82943
4
+ data.tar.gz: 9db5dfab12dc9abaad33fb8db53d3cb2a09e82b5
5
5
  SHA512:
6
- metadata.gz: a43c19ecd0b86b11d88412ac257c1e0a7b0d69c746143a07485ef773eefcc70330d70414c97ccd2d99d1c4ee4e6b84236a12f63b4c658a7d41b7b583b695bd89
7
- data.tar.gz: 9a79436b515b18787df5824986633d7b2d906be871ddd9cb4858cbfddc7eeb52991c6a9a6f7499ea1fd67b67123b954bacadefe1d1fedc1dba84a0501d586048
6
+ metadata.gz: 3380a0d8992f067736c53b0aa986a13b94f5aa9b807c33c1b9213ad4e6a5063a35653f00d3cf9815fd32826509ec4ad2cb87b7d964c011287ac7434034b4b3b4
7
+ data.tar.gz: b74c20526d395f4890bb2b7b8b430a629aff4eb48c89f91f57a3e5d9ff60fd242f1bbc3a65c76d4ad2278538893c69bc37c43bc881e416fb17ad81914d989877
data/lib/rotor/gcode.rb CHANGED
@@ -22,9 +22,62 @@ module Rotor
22
22
  if parsed_line[:g]
23
23
  #Move to this origin point.
24
24
  if parsed_line[:g] == 0
25
- move_stepper(parsed_line,1)
25
+ if parsed_line[:z] && parsed_line[:f] && parsed_line[:x].nil? && parsed_line[:y].nil?
26
+ puts "Lowering marker"
27
+ @servo.rotate(:down) if @servo
28
+ elsif parsed_line[:z] && parsed_line[:f].nil? && parsed_line[:x].nil? && parsed_line[:y].nil?
29
+ puts "Raising marker::#{parsed_line}"
30
+ @servo.rotate(:up) if @servo
31
+ else
32
+ puts "Move Stepper::#{parsed_line}"
33
+ move_stepper(parsed_line,1)
34
+ end
26
35
  elsif parsed_line[:g] == 1
27
- move_stepper(parsed_line,10)
36
+ if parsed_line[:z] && parsed_line[:f] && parsed_line[:x].nil? && parsed_line[:y].nil?
37
+ puts "Lowering marker"
38
+ @servo.rotate(:down) if @servo
39
+ elsif parsed_line[:z] && parsed_line[:f].nil? && parsed_line[:x].nil? && parsed_line[:y].nil?
40
+ puts "Raising marker::#{parsed_line}"
41
+ @servo.rotate(:up) if @servo
42
+ else
43
+ puts "Move Stepper::#{parsed_line}"
44
+ move_stepper(parsed_line,25)
45
+ end
46
+ elsif parsed_line[:g] == 2 || parsed_line[:g] == 3
47
+ # Get my ARC on
48
+ puts "DEBUG::#{parsed_line}"
49
+ x_start = @x
50
+ x_end = parsed_line[:x]
51
+
52
+ y_start = @y
53
+ y_end = parsed_line[:y]
54
+
55
+ x_offset = parsed_line[:i]
56
+ y_offset = parsed_line[:j]
57
+
58
+ x_origin = x_offset + x_start
59
+ y_origin = y_offset + y_start
60
+
61
+ radius = Math.sqrt((x_start - x_origin) ** 2 + (y_start - y_origin) ** 2)
62
+
63
+ start_angle = Math.atan2((y_start - y_origin),(x_start - x_origin))
64
+ end_angle = Math.atan2((y_end - y_origin),(x_end - x_origin))
65
+
66
+ steps = (end_angle - start_angle) / 25
67
+
68
+ current_degrees = start_angle
69
+
70
+ 25.times do
71
+ arc_line = {}
72
+ arc_line[:x] = x_origin + radius * Math.cos(current_degrees)
73
+ arc_line[:y] = y_origin + radius * Math.sin(current_degrees)
74
+ arc_line[:z] = nil
75
+ current_degrees += steps
76
+ puts "Move Arc Stepper::#{arc_line}"
77
+ move_stepper(arc_line,25)
78
+ end
79
+
80
+
28
81
  else
29
82
  # puts "GLINE - Something else"
30
83
  end
@@ -60,24 +113,24 @@ module Rotor
60
113
 
61
114
  if instance_variable_get(:"@#{ets}_move").to_f > instance_variable_get(:"@#{ets}") #move to the right
62
115
  if instance_variable_get(:"@stepper_#{ets}") && instance_variable_get(:"@stepper_#{ets}").at_safe_area?
63
- threads << Thread.new { instance_variable_get(:"@stepper_#{ets}").forward(1, instance_variable_get(:"@#{ets}_movement")) }
116
+ threads << Thread.new { instance_variable_get(:"@stepper_#{ets}").forward(delay, instance_variable_get(:"@#{ets}_movement")) }
64
117
  end
65
118
  elsif instance_variable_get(:"@#{ets}_move").to_f < instance_variable_get(:"@#{ets}") #move to the left
66
119
  if instance_variable_get(:"@stepper_#{ets}") && instance_variable_get(:"@stepper_#{ets}").at_safe_area?
67
- threads << Thread.new { instance_variable_get(:"@stepper_#{ets}").backwards(1, instance_variable_get(:"@#{ets}_movement")) }
120
+ threads << Thread.new { instance_variable_get(:"@stepper_#{ets}").backwards(delay, instance_variable_get(:"@#{ets}_movement")) }
68
121
  end
69
122
  end
70
123
  instance_variable_set(:"@#{ets}",instance_variable_get(:"@#{ets}_move"))
71
124
  end
72
125
  end
73
126
 
74
- puts "Moving to G#{parsed_line[:g]} #{instance_variable_get(:"@x_move")}, #{instance_variable_get(:"@y_move")}, #{instance_variable_get(:"@z_move")}"
127
+ #puts "Moving to G#{parsed_line[:g]} #{instance_variable_get(:"@x_move")}, #{instance_variable_get(:"@y_move")}, #{instance_variable_get(:"@z_move")}"
75
128
  threads.each { |thr| thr.join }
76
129
  end
77
130
 
78
131
  def parse_line(line)
79
132
  returned_json = {}
80
- values = [:g,:x,:y,:z,:i,:j,:m,:f]
133
+ values = [:g,:x,:y,:z,:i,:j,:k,:m,:f]
81
134
  values.each do |element|
82
135
  returned_json[element] = find_value(element,line)
83
136
  end
@@ -88,11 +141,12 @@ module Rotor
88
141
  node = element.to_s.upcase
89
142
  data = line.match /#{node}(?<data>\d+[,.]\d+)/
90
143
  data ||= line.match /#{node}(?<data>\d+)/
144
+ data ||= line.match /#{node}(?<data>-\d+[,.]\d+)/
91
145
  if data
92
146
  case element
93
147
  when :g, :m
94
148
  return data[:data].to_i
95
- when :x,:y,:z,:i,:k,:f
149
+ when :x,:y,:z,:i,:j,:k,:f
96
150
  return data[:data].to_f
97
151
  end
98
152
  else
data/lib/rotor/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rotor
2
- VERSION = "0.0.13"
2
+ VERSION = "0.1.00"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rotor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.1.00
5
5
  platform: ruby
6
6
  authors:
7
7
  - kobaltz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-19 00:00:00.000000000 Z
11
+ date: 2015-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler