Class: OnionOmega::Stepper
- Inherits:
-
Object
- Object
- OnionOmega::Stepper
- Defined in:
- lib/onion_omega/stepper.rb
Instance Method Summary collapse
- #backward(steps = 1) ⇒ Object
- #forward(steps = 1) ⇒ Object
-
#initialize(range:, pins: [0, 1, 2, 3], half_stepping: false, persist_to_file: nil, gpio: GPIO.new) ⇒ Stepper
constructor
A new instance of Stepper.
- #reset ⇒ Object
- #set_percentage(percentage) ⇒ Object
Constructor Details
#initialize(range:, pins: [0, 1, 2, 3], half_stepping: false, persist_to_file: nil, gpio: GPIO.new) ⇒ Stepper
Returns a new instance of Stepper.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/onion_omega/stepper.rb', line 6 def initialize( range:, pins: [0, 1, 2, 3], half_stepping: false, persist_to_file: nil, gpio: GPIO.new ) @range = range @pins = pins @sequencer = StepperSequencer.new( number_of_pins: @pins.count, half_stepping: half_stepping ) @file = persist_to_file @current_step = (@file && File.exists?(@file)) ? File.read(@file).to_i : 0 @gpio = gpio initialise_gpio end |
Instance Method Details
#backward(steps = 1) ⇒ Object
29 30 31 |
# File 'lib/onion_omega/stepper.rb', line 29 def backward(steps=1) steps.times { step(-1) } end |
#forward(steps = 1) ⇒ Object
25 26 27 |
# File 'lib/onion_omega/stepper.rb', line 25 def forward(steps=1) steps.times { step(1) } end |
#reset ⇒ Object
43 44 45 |
# File 'lib/onion_omega/stepper.rb', line 43 def reset set_percentage 0 end |
#set_percentage(percentage) ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'lib/onion_omega/stepper.rb', line 33 def set_percentage(percentage) desired_step = (percentage * @range).round steps = desired_step - @current_step if steps > 0 steps.times { forward } elsif steps < 0 steps.abs.times { backward } end end |