rotor 0.1.5 → 0.1.6
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 +4 -4
- data/CHANGELOG.md +13 -0
- data/README.md +23 -25
- data/lib/rotor/gcode.rb +12 -33
- data/lib/rotor/stepper.rb +2 -2
- data/lib/rotor/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6a9f96abcefc34dafec5fbb7e2b42001a914a3c
|
4
|
+
data.tar.gz: 9cafb0d441b1ca31778ee344d3740f5aa3021d8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55aae03f77e9c557d2753f52be0c59153fce2d3b70b9c88bfa14e0b41e23192945c5be829dd34be171bf597d28e80f835cafff3e150b7acd8d45d6cf6013ca80
|
7
|
+
data.tar.gz: e08346a466a3f9ac1b24da19e2759c7451631f0e28515ec8577410b44ec1cec478447fc107fd944122cb41fc322740af9e849d24bf3dc316052ea81de258d3d7
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
Rotor (Ruby Motor)
|
2
|
+
==================
|
3
|
+
|
4
|
+
Version 0.1.6
|
5
|
+
-------------
|
6
|
+
|
7
|
+
The GCode Module now has an option to specify the G0 Fast Move speed.
|
8
|
+
|
9
|
+
Rotor::Gcode.new(stepper_x=nil,stepper_y=nil,stepper_z=nil,scale=1,servo=nil,fast_move=1)
|
10
|
+
|
11
|
+
gcode = Rotor::Gcode.new(stepper_x,stepper_y,stepper_z,1,servo,1)
|
12
|
+
|
13
|
+
Updated the README with new examples and updated documentation.
|
data/README.md
CHANGED
@@ -162,8 +162,13 @@ Enter each stepper motor (or nil if you do not have that particular axis) along
|
|
162
162
|
with the scale (multiplies all coordinates by this. Typically you will keep this
|
163
163
|
at 1).
|
164
164
|
|
165
|
+
The last variable is the speed in which G0 will move. Typically, this move should
|
166
|
+
be faster than your normal movement speed.
|
167
|
+
|
168
|
+
Rotor::Gcode.new(stepper_x=nil,stepper_y=nil,stepper_z=nil,scale=1,servo=nil,fast_move=1)
|
169
|
+
|
165
170
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
166
|
-
#gcode = Rotor::Gcode.new(stepper_x,stepper_y,stepper_z,1,servo)
|
171
|
+
#gcode = Rotor::Gcode.new(stepper_x,stepper_y,stepper_z,1,servo,1)
|
167
172
|
gcode = Rotor::Gcode.new(nil,nil,nil,1,nil)
|
168
173
|
gcode.open('sample.nc')
|
169
174
|
gcode.simulate(accuracy=8,speed=1)
|
@@ -201,34 +206,27 @@ Here is the real world sample code that I am using to plot
|
|
201
206
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
202
207
|
require 'rotor'
|
203
208
|
begin
|
204
|
-
stepper_x = Rotor::Stepper.new(23,12,17,24,nil,13,0,157.48)
|
205
|
-
stepper_y = Rotor::Stepper.new(25, 4,21,22,nil,19,0,157.48)
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
gcode = Rotor::Gcode.new(stepper_x,stepper_y,nil,1
|
209
|
+
stepper_x = Rotor::Stepper.new(23,12,17,24,nil,13 ,0,157.48)
|
210
|
+
stepper_y = Rotor::Stepper.new(25, 4,21,22,nil,19 ,0,157.48)
|
211
|
+
stepper_z = Rotor::Stepper.new(16,20, 6,26,nil,nil,0,157.48)
|
212
|
+
puts "Moving to home and soft origin"
|
213
|
+
stepper_z.forward(1,10)
|
214
|
+
stepper_x.set_home(:forward)
|
215
|
+
stepper_y.set_home(:forward)
|
216
|
+
stepper_x.backwards(2,120)
|
217
|
+
stepper_y.backwards(2,70)
|
218
|
+
stepper_z.backwards(1,10)
|
219
|
+
puts "Running Code"
|
220
|
+
|
221
|
+
gcode = Rotor::Gcode.new(stepper_x,stepper_y,stepper_z,1,nil,1.5)
|
217
222
|
gcode.open('output.nc')
|
218
|
-
gcode.simulate(
|
223
|
+
gcode.simulate(16,5)
|
219
224
|
|
220
225
|
ensure
|
221
|
-
servo.rotate(:up)
|
222
|
-
|
223
|
-
stepper_x.set_home(:backwards)
|
224
|
-
stepper_y.set_home(:backwards)
|
225
|
-
stepper_x.forward(1,4000)
|
226
|
-
stepper_y.forward(1,4000)
|
227
|
-
|
228
226
|
stepper_x.power_down
|
229
227
|
stepper_y.power_down
|
230
|
-
|
231
|
-
[23,12,17,24,13,25,4,21,22,19,13].each do |pin|
|
228
|
+
stepper_z.power_down
|
229
|
+
[23,12,17,24,13,25,4,21,22,19,13,16,20,6,26].each do |pin|
|
232
230
|
`echo #{pin} > /sys/class/gpio/unexport`
|
233
231
|
end
|
234
232
|
end
|
@@ -255,7 +253,7 @@ marker is entering into an object.
|
|
255
253
|
|
256
254
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
257
255
|
File.open("output.txt", 'wb') { |file| file.write("x,y,xm,ym\n") }
|
258
|
-
gcode = Rotor::Gcode.new(nil,nil,nil,1,nil)
|
256
|
+
gcode = Rotor::Gcode.new(nil,nil,nil,1,nil,1)
|
259
257
|
gcode.open('output.nc')
|
260
258
|
gcode.simulate
|
261
259
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
data/lib/rotor/gcode.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
module Rotor
|
2
2
|
class Gcode
|
3
|
-
def initialize(stepper_x=nil,stepper_y=nil,stepper_z=nil,scale=1,servo=nil)
|
3
|
+
def initialize(stepper_x=nil,stepper_y=nil,stepper_z=nil,scale=1,servo=nil,fast_move=1)
|
4
4
|
@stepper_x = stepper_x
|
5
5
|
@stepper_y = stepper_y
|
6
6
|
@stepper_z = stepper_z
|
7
|
+
@fast_move = fast_move
|
7
8
|
@scale = scale
|
8
9
|
@servo = servo
|
9
10
|
end
|
@@ -26,33 +27,11 @@ module Rotor
|
|
26
27
|
if parsed_line[:g]
|
27
28
|
#Move to this origin point.
|
28
29
|
if parsed_line[:g] == 0
|
29
|
-
|
30
|
-
|
31
|
-
@servo.rotate(:down) if @servo
|
32
|
-
@stepper_z.forward(5,25) if @stepper_z
|
33
|
-
elsif parsed_line[:z] && parsed_line[:f].nil? && parsed_line[:x].nil? && parsed_line[:y].nil?
|
34
|
-
puts "Raising marker::#{parsed_line}"
|
35
|
-
@stepper_z.backwards(5,25) if @stepper_z
|
36
|
-
@servo.rotate(:up) if @servo
|
37
|
-
else
|
38
|
-
puts "Move Stepper::#{parsed_line}"
|
39
|
-
move_stepper(parsed_line,speed)
|
40
|
-
end
|
30
|
+
puts "Move Stepper::#{parsed_line}"
|
31
|
+
move_stepper(parsed_line,@fast_move)
|
41
32
|
elsif parsed_line[:g] == 1
|
42
|
-
|
43
|
-
|
44
|
-
@servo.rotate(:down) if @servo
|
45
|
-
@stepper_z.forward(5,25) if @stepper_z
|
46
|
-
elsif parsed_line[:z] && parsed_line[:f].nil? && parsed_line[:x].nil? && parsed_line[:y].nil?
|
47
|
-
puts "Raising marker::#{parsed_line}"
|
48
|
-
@stepper_z.backwards(5,25) if @stepper_z
|
49
|
-
@servo.rotate(:up) if @servo
|
50
|
-
elsif parsed_line[:z].nil? && parsed_line[:f] && parsed_line[:x].nil? && parsed_line[:y].nil?
|
51
|
-
# Set feed/spin rate
|
52
|
-
else
|
53
|
-
puts "Move Stepper::#{parsed_line}"
|
54
|
-
move_stepper(parsed_line,speed)
|
55
|
-
end
|
33
|
+
puts "Move Stepper::#{parsed_line}"
|
34
|
+
move_stepper(parsed_line,speed)
|
56
35
|
elsif parsed_line[:g] == 2 || parsed_line[:g] == 3
|
57
36
|
# Get my ARC on
|
58
37
|
ignore = false
|
@@ -147,7 +126,7 @@ module Rotor
|
|
147
126
|
if @stepper_x # && @stepper_x.at_safe_area?
|
148
127
|
threads << Thread.new { @stepper_x.backwards(delay, @x_movement) }
|
149
128
|
end
|
150
|
-
end
|
129
|
+
end unless @x_movement == 0
|
151
130
|
@x = @x_move
|
152
131
|
end
|
153
132
|
|
@@ -167,7 +146,7 @@ module Rotor
|
|
167
146
|
if @stepper_y # && @stepper_y.at_safe_area?
|
168
147
|
threads << Thread.new { @stepper_y.backwards(delay, @y_movement) }
|
169
148
|
end
|
170
|
-
end
|
149
|
+
end unless @y_movement == 0
|
171
150
|
@y = @y_move
|
172
151
|
end
|
173
152
|
|
@@ -179,20 +158,20 @@ module Rotor
|
|
179
158
|
|
180
159
|
@z_movement = (@z_move - @z).abs
|
181
160
|
|
182
|
-
if @z_move.to_f
|
161
|
+
if @z_move.to_f > @z #move to the right
|
183
162
|
if @stepper_z # && @stepper_z.at_safe_area?
|
184
163
|
threads << Thread.new { @stepper_z.forward(delay, @z_movement) }
|
185
164
|
end
|
186
|
-
elsif @z_move.to_f
|
165
|
+
elsif @z_move.to_f < @z #move to the left
|
187
166
|
if @stepper_z # && @stepper_z.at_safe_area?
|
188
167
|
threads << Thread.new { @stepper_z.backwards(delay, @z_movement) }
|
189
168
|
end
|
190
|
-
end
|
169
|
+
end unless @z_movement == 0
|
191
170
|
@z = @z_move
|
192
171
|
end
|
193
172
|
puts "Moving to G#{parsed_line[:g]} #{@x_move}(#{@x_movement}), #{@y_move}(#{@y_movement}), #{@z_move}(#{@z_movement})"
|
194
173
|
threads.each { |thr| thr.join }
|
195
|
-
File.open("output.txt", 'a') { |file| file.write("#{@x_move},#{@y_move},#{@x_movement},#{@y_movement}\n") } if File.exists?("output.txt")
|
174
|
+
File.open("output.txt", 'a') { |file| file.write("#{@x_move},#{@y_move},#{@z_move},#{@x_movement},#{@y_movement},#{@z_movement}\n") } if File.exists?("output.txt")
|
196
175
|
end
|
197
176
|
|
198
177
|
def parse_line(line)
|
data/lib/rotor/stepper.rb
CHANGED
@@ -61,8 +61,8 @@ module Rotor
|
|
61
61
|
puts "Setting #{direction} with Homing on GPIO #{@homing_switch}"
|
62
62
|
@move = true
|
63
63
|
while @move == true
|
64
|
-
backwards(1,1) if direction == :backwards && @io.read(@homing_switch) == @homing_normally
|
65
|
-
forward(1,1) if direction == :forward && @io.read(@homing_switch) == @homing_normally
|
64
|
+
backwards(1.5,1) if direction == :backwards && @io.read(@homing_switch) == @homing_normally
|
65
|
+
forward(1.5,1) if direction == :forward && @io.read(@homing_switch) == @homing_normally
|
66
66
|
@move = false unless @io.read(@homing_switch) == @homing_normally
|
67
67
|
end
|
68
68
|
end
|
data/lib/rotor/version.rb
CHANGED
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.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kobaltz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -60,6 +60,7 @@ extensions: []
|
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
62
|
- ".gitignore"
|
63
|
+
- CHANGELOG.md
|
63
64
|
- Gemfile
|
64
65
|
- LICENSE.txt
|
65
66
|
- README.md
|