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_POWER_RATIO =

default dc motor power 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_power_ratios = {
    PORT_M1 => DEFAULT_DC_MOTOR_POWER_RATIO,
    PORT_M2 => DEFAULT_DC_MOTOR_POWER_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_power_ratioObject



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

def left_dc_motor_power_ratio
  @dc_motor_power_ratios[PORT_M1]
end

#left_dc_motor_power_ratio=(val) ⇒ Object



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

def left_dc_motor_power_ratio=(val)
  set_dc_motor_power_ratio(PORT_M1, val)
end

#left_sensor_valueObject



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

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

#right_dc_motor_power_ratioObject



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

def right_dc_motor_power_ratio
  @dc_motor_power_ratios[PORT_M2]
end

#right_dc_motor_power_ratio=(val) ⇒ Object



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

def right_dc_motor_power_ratio=(val)
  set_dc_motor_power_ratio(PORT_M2, val)
end

#right_sensor_valueObject



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

def right_sensor_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 Also known as: turn_off_left_led



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

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

#turn_off_red_ledObject Also known as: turn_off_right_led



98
99
100
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 98

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

#turn_on_blue_ledObject Also known as: turn_on_left_led



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

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

#turn_on_red_ledObject Also known as: turn_on_right_led



93
94
95
# File 'lib/smalruby/hardware/smalrubot_s1.rb', line 93

def turn_on_red_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