Class: Smalruby::Hardware::SmalrubotS1

Inherits:
Object
  • Object
show all
Includes:
Smalrubot::Board::Studuino
Defined in:
lib/smalruby/hardware/smalrubot_s1.rb

Overview

Smalrubot on Studuino v1 class

Constant Summary collapse

DEFAULT_DC_MOTOR_PACE_RATIO =

default dc motor pace ratio

50

Instance Method Summary collapse

Constructor Details

#initialize(_) ⇒ SmalrubotS1

Returns a new instance of SmalrubotS1.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 13

def initialize(_)
  world.board.init_dc_motor_port(PORT_M1, 0)
  world.board.init_dc_motor_port(PORT_M2, 0)

  world.board.init_sensor_port(PORT_A0, PIDLED)
  world.board.init_sensor_port(PORT_A1, PIDLED)

  world.board.init_sensor_port(PORT_A4, PIDIRPHOTOREFLECTOR)
  world.board.init_sensor_port(PORT_A5, PIDIRPHOTOREFLECTOR)

  @dc_motor_pace_ratios = {
    PORT_M1 => DEFAULT_DC_MOTOR_PACE_RATIO,
    PORT_M2 => DEFAULT_DC_MOTOR_PACE_RATIO,
  }
end

Instance Method Details

#backward(sec: nil) ⇒ Object

backward

Parameters:

  • time (Float)

    of backwarding



# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 50


#forward(sec: nil) ⇒ Object

forward

Parameters:

  • time (Float)

    of forwarding



# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 45


#left_dc_motor_pace_ratioObject



29
30
31
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 29

def left_dc_motor_pace_ratio
  @dc_motor_pace_ratios[PORT_M1]
end

#left_dc_motor_pace_ratio=(val) ⇒ Object



33
34
35
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 33

def left_dc_motor_pace_ratio=(val)
  set_dc_motor_pace_ratio(PORT_M1, val)
end

#left_ir_photoreflector_valueObject



75
76
77
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 75

def left_ir_photoreflector_value
  world.board.get_ir_photoreflector_value(PORT_A4).to_i
end

#right_dc_motor_pace_ratioObject



37
38
39
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 37

def right_dc_motor_pace_ratio
  @dc_motor_pace_ratios[PORT_M2]
end

#right_dc_motor_pace_ratio=(val) ⇒ Object



41
42
43
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 41

def right_dc_motor_pace_ratio=(val)
  set_dc_motor_pace_ratio(PORT_M2, val)
end

#right_ir_photoreflector_valueObject



79
80
81
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 79

def right_ir_photoreflector_value
  world.board.get_ir_photoreflector_value(PORT_A5).to_i
end

#stop(sec: nil) ⇒ Object

stop

Parameters:

  • time (Float)

    of stopping



69
70
71
72
73
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 69

i(forward backward turn_left turn_right stop).each do |direction|
  define_method(direction) do |sec: nil|
    run(direction, sec: sec)
  end
end

#turn_left(sec: nil) ⇒ Object

turn left

Parameters:

  • time (Float)

    of turning left



# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 55


#turn_off_blue_ledObject



95
96
97
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 95

def turn_off_blue_led
  world.board.led(PORT_A0, OFF)
end

#turn_off_white_ledObject



87
88
89
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 87

def turn_off_white_led
  world.board.led(PORT_A1, OFF)
end

#turn_on_blue_ledObject



91
92
93
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 91

def turn_on_blue_led
  world.board.led(PORT_A0, ON)
end

#turn_on_white_ledObject



83
84
85
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 83

def turn_on_white_led
  world.board.led(PORT_A1, ON)
end

#turn_right(sec: nil) ⇒ Object

turn right

Parameters:

  • time (Float)

    of turning right



# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 60