Class: Smalruby::Hardware::TwoWheelDriveCar
- Inherits:
-
Dino::Components::BaseComponent
- Object
- Dino::Components::BaseComponent
- Smalruby::Hardware::TwoWheelDriveCar
- Defined in:
- lib/smalruby/hardware/two_wheel_drive_car.rb
Overview
2WD車のモーターを表現するクラス
Instance Method Summary collapse
-
#backward(left_level = 100, right_level = 100) ⇒ Object
後退する.
-
#forward(left_level = 100, right_level = 100) ⇒ Object
前進する.
-
#initialize(options) ⇒ TwoWheelDriveCar
constructor
A new instance of TwoWheelDriveCar.
-
#run(options = {}) ⇒ Object
命令する.
-
#stop ⇒ Object
停止する.
-
#turn_left(left_level = 100, right_level = 100) ⇒ Object
左に曲がる.
-
#turn_right(left_level = 100, right_level = 100) ⇒ Object
右に曲がる.
Constructor Details
#initialize(options) ⇒ TwoWheelDriveCar
Returns a new instance of TwoWheelDriveCar.
8 9 10 11 12 13 14 15 16 |
# File 'lib/smalruby/hardware/two_wheel_drive_car.rb', line 8 def initialize() pin = Pin.smalruby_to_dino([:pin]) case pin when 2..10 super(board: world.board, pin: (pin...(pin + 4)).to_a) else fail "モーターのピン番号が間違っています: {options[:pin]}" end end |
Instance Method Details
#backward(left_level = 100, right_level = 100) ⇒ Object
後退する
25 26 27 |
# File 'lib/smalruby/hardware/two_wheel_drive_car.rb', line 25 def backward(left_level = 100, right_level = 100) digital_write_pins(0, left_level, 0, right_level) end |
#forward(left_level = 100, right_level = 100) ⇒ Object
前進する
19 20 21 22 |
# File 'lib/smalruby/hardware/two_wheel_drive_car.rb', line 19 def forward(left_level = 100, right_level = 100) digital_write_pins(left_level, 0, right_level, 0) end |
#run(options = {}) ⇒ Object
命令する
45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/smalruby/hardware/two_wheel_drive_car.rb', line 45 def run( = {}) defaults = { command: 'forward', sec: nil, left_level: 100, right_level: 100, } opts = Util.(, defaults) send(opts[:command], opts[:left_level], opts[:right_level]) sleep(opts[:sec]) if opts[:sec] stop unless opts[:command] == :stop end |
#stop ⇒ Object
停止する
40 41 42 |
# File 'lib/smalruby/hardware/two_wheel_drive_car.rb', line 40 def stop digital_write_pins(0, 0, 0, 0) end |
#turn_left(left_level = 100, right_level = 100) ⇒ Object
左に曲がる
30 31 32 |
# File 'lib/smalruby/hardware/two_wheel_drive_car.rb', line 30 def turn_left(left_level = 100, right_level = 100) digital_write_pins(0, left_level, right_level, 0) end |
#turn_right(left_level = 100, right_level = 100) ⇒ Object
右に曲がる
35 36 37 |
# File 'lib/smalruby/hardware/two_wheel_drive_car.rb', line 35 def turn_right(left_level = 100, right_level = 100) digital_write_pins(left_level, 0, 0, right_level) end |