module Artoo::Drivers::BidirectionalWithForwardBackwardPins
Public Instance Methods
backward(speed = nil)
click to toggle source
Sets movement backward @param [Integer] speed
# File lib/artoo/drivers/motor.rb, line 122 def backward(speed = nil) direction(:backward) speed ? self.speed(speed) : start end
backward?()
click to toggle source
# File lib/artoo/drivers/motor.rb, line 131 def backward? (not forward?) end
forward(speed = nil)
click to toggle source
Sets movement forward @param [Integer] speed
# File lib/artoo/drivers/motor.rb, line 115 def forward(speed = nil) direction(:forward) speed ? self.speed(speed) : start end
forward?()
click to toggle source
# File lib/artoo/drivers/motor.rb, line 127 def forward? @current_direction == :forward end
Private Instance Methods
change_state(state)
click to toggle source
# File lib/artoo/drivers/motor.rb, line 136 def change_state(state) @current_state = state @current_speed = state.zero? ? 0 : 255 if state == :high direction(@current_direction) speed(@current_speed) if speed_pin elsif state == :low direction(:none) end end
direction(direction)
click to toggle source
# File lib/artoo/drivers/motor.rb, line 147 def direction(direction) @current_direction = direction case direction when :forward forward_pin_level = :high backward_pin_level = :low when :backward forward_pin_level = :low backward_pin_level = :high when :none forward_pin_level = :low backward_pin_level = :low end connection.digital_write(@forward_pin, forward_pin_level) connection.digital_write(@backward_pin, backward_pin_level) end