Sha256: 42a8d2aa2261e82750bc14fb114eef82f2dabc9fb0c7a725ff1bda672c21d3ca

Contents?: true

Size: 793 Bytes

Versions: 40

Compression:

Stored size: 793 Bytes

Contents

# -*- coding: utf-8 -*-
require 'smalruby/hardware'

module Smalruby
  module Hardware
    # サーボモーターを表現するクラス
    class Servo < Dino::Components::Servo
      def initialize(options)
        super(board: world.board, pin: Pin.smalruby_to_dino(options[:pin]))
      end

      # @!method position=(angle)
      # サーボモーターを(  )度にする

      private

      # HACK: GROVEシステムのサーボモーターでは5よりも小さい値を指定す
      #   るとモーターが発振してしまう
      MIN_ANGLE = 5
      MAX_ANGLE = 180

      def angle(value)
        v = value.to_i
        if v < MIN_ANGLE
          MIN_ANGLE
        elsif v > MAX_ANGLE
          MAX_ANGLE
        else
          v
        end
      end
    end
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
smalruby-0.0.32-x86-mingw32 lib/smalruby/hardware/servo.rb
smalruby-0.0.32 lib/smalruby/hardware/servo.rb
smalruby-0.0.31-x86-mingw32 lib/smalruby/hardware/servo.rb
smalruby-0.0.31 lib/smalruby/hardware/servo.rb
smalruby-0.0.30-x86-mingw32 lib/smalruby/hardware/servo.rb
smalruby-0.0.30 lib/smalruby/hardware/servo.rb
smalruby-0.0.29-x86-mingw32 lib/smalruby/hardware/servo.rb
smalruby-0.0.29 lib/smalruby/hardware/servo.rb
smalruby-0.0.28-x86-mingw32 lib/smalruby/hardware/servo.rb
smalruby-0.0.28 lib/smalruby/hardware/servo.rb
smalruby-0.0.27-x86-mingw32 lib/smalruby/hardware/servo.rb
smalruby-0.0.27 lib/smalruby/hardware/servo.rb
smalruby-0.0.26-x86-mingw32 lib/smalruby/hardware/servo.rb
smalruby-0.0.26 lib/smalruby/hardware/servo.rb
smalruby-0.0.25-x86-mingw32 lib/smalruby/hardware/servo.rb
smalruby-0.0.25 lib/smalruby/hardware/servo.rb
smalruby-0.0.24-x86-mingw32 lib/smalruby/hardware/servo.rb
smalruby-0.0.24 lib/smalruby/hardware/servo.rb
smalruby-0.0.23-x86-mingw32 lib/smalruby/hardware/servo.rb
smalruby-0.0.23 lib/smalruby/hardware/servo.rb