Class: Smalruby::Hardware::MotorDriver

Inherits:
Smalrubot::Components::BaseComponent
  • Object
show all
Defined in:
lib/smalruby/hardware/motor_driver.rb

Overview

モータードライバを表現するクラス

モータードライバのVrefにはPWM出力できるD3, D5, D6, D9, D10, D11の いずれかを接続し、Vin1、Vin2はVrefからの連番(例えば、VrefがD3であ ればVin1、Vin2はそれぞれD4, D5)を接続してください。

動作確認済みのモータードライバの一覧

  • TOSHIBA

    • TA7291P

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ MotorDriver

Returns a new instance of MotorDriver.



19
20
21
22
23
24
25
26
27
28
# File 'lib/smalruby/hardware/motor_driver.rb', line 19

def initialize(options)
  pin = Pin.smalruby_to_smalrubot(options[:pin])
  case pin
  when 3, 5, 6, 9, 10, 11
    super(board: world.board, pin: (pin...(pin + 3)).to_a)
  else
    fail "モーターのピン番号が間違っています: {options[:pin]}"
  end
  self.speed = options[:speed] || 100
end

Instance Attribute Details

#speedObject

モーターの回転速度の割合(0~100%)



17
18
19
# File 'lib/smalruby/hardware/motor_driver.rb', line 17

def speed
  @speed
end

Instance Method Details

#backwardObject

逆転する



45
46
47
# File 'lib/smalruby/hardware/motor_driver.rb', line 45

def backward
  write_pins(speed, 0, 100)
end

#forwardObject

正転する



40
41
42
# File 'lib/smalruby/hardware/motor_driver.rb', line 40

def forward
  write_pins(speed, 100, 0)
end

#stopObject

停止する



50
51
52
# File 'lib/smalruby/hardware/motor_driver.rb', line 50

def stop
  write_pins(0, 0, 0)
end