class NXT::Connector::Input::Ultrasonic
Implements the “ultrasonic” sensor for the NXT
2.0 module.
Constants
- UNIT
Attributes
interface[RW]
port[RW]
Public Class Methods
new(port, interface)
click to toggle source
# File lib/nxt/connector/input/ultrasonic.rb, line 24 def initialize(port, interface) @port = port @interface = interface end
Public Instance Methods
distance()
click to toggle source
# File lib/nxt/connector/input/ultrasonic.rb, line 29 def distance ls_write(NXT::Protocols::I2C.read_measurement_byte_0) while ls_get_status < 1 sleep(0.1) # TODO: implement timeout so we don't get stuck if the expected data never comes end distance = ls_read[0] if @unit == :centimeters distance.to_i else (distance * 0.3937008).to_i end end
distance!()
click to toggle source
# File lib/nxt/connector/input/ultrasonic.rb, line 46 def distance! d = distance raise UnmeasurableDistance if d == 255 d end
start()
click to toggle source
# File lib/nxt/connector/input/ultrasonic.rb, line 53 def start sensor_type(:lowspeed_9v) sensor_mode(:raw) update_input_mode ls_clear_buffer # set sensor to continuously send pings ls_write(NXT::Protocols::I2C.continuous_measurement_command) end