smalruby 0.0.29-x86-mingw32 → 0.0.30-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of smalruby might be problematic. Click here for more details.
- checksums.yaml +4 -4
 - data/lib/smalruby/character.rb +6 -0
 - data/lib/smalruby/hardware/button.rb +17 -5
 - data/lib/smalruby/hardware/dino/fix_gets.rb +34 -7
 - data/lib/smalruby/hardware/motor_driver.rb +77 -0
 - data/lib/smalruby/hardware/two_wheel_drive_car.rb +54 -19
 - data/lib/smalruby/hardware.rb +1 -0
 - data/lib/smalruby/version.rb +1 -1
 - data/samples/hardware_button.rb +2 -0
 - data/samples/hardware_button_with_pullup.rb +32 -0
 - data/samples/hardware_motor_driver.rb +110 -0
 - data/samples/hardware_two_wheel_drive_car.rb +40 -12
 - data/samples/hardware_two_wheel_drive_car_run.rb +7 -10
 - metadata +5 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 5785c85deafb1324b46485d22248cc2bf7d58892
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: e79c278f6c33d10c495297caf8631c94088fa8c6
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 7388a304897a11852fdcfedf531f22f9c632ae040982970d1ab12a499e8b7fb63e3a6ac320a70219142b0fd123ec2c11253bec36562929f3dec3aee6b90820fa
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 2721ef1c9e70c0ddff57edf8178458e22377d84071367b647e9ad11e749e64020aab615fb2bd3491b28987fddecd55cd1f53844d51b34e0a3b925f0a7276ba03
         
     | 
    
        data/lib/smalruby/character.rb
    CHANGED
    
    | 
         @@ -391,6 +391,11 @@ module Smalruby 
     | 
|
| 
       391 
391 
     | 
    
         
             
                  Hardware.create_hardware(Hardware::TwoWheelDriveCar, pin)
         
     | 
| 
       392 
392 
     | 
    
         
             
                end
         
     | 
| 
       393 
393 
     | 
    
         | 
| 
      
 394 
     | 
    
         
            +
                # モータードライバ
         
     | 
| 
      
 395 
     | 
    
         
            +
                def motor_driver(pin)
         
     | 
| 
      
 396 
     | 
    
         
            +
                  Hardware.create_hardware(Hardware::MotorDriver, pin)
         
     | 
| 
      
 397 
     | 
    
         
            +
                end
         
     | 
| 
      
 398 
     | 
    
         
            +
             
     | 
| 
       394 
399 
     | 
    
         
             
                # ボタン
         
     | 
| 
       395 
400 
     | 
    
         
             
                def button(pin)
         
     | 
| 
       396 
401 
     | 
    
         
             
                  Hardware.create_hardware(Hardware::Button, pin)
         
     | 
| 
         @@ -534,6 +539,7 @@ module Smalruby 
     | 
|
| 
       534 
539 
     | 
    
         
             
                private
         
     | 
| 
       535 
540 
     | 
    
         | 
| 
       536 
541 
     | 
    
         
             
                def draw_pen(left, top, right, bottom)
         
     | 
| 
      
 542 
     | 
    
         
            +
                  return if !visible || vanished?
         
     | 
| 
       537 
543 
     | 
    
         
             
                  world.current_stage.line(left: left, top: top,
         
     | 
| 
       538 
544 
     | 
    
         
             
                                           right: right, bottom: bottom,
         
     | 
| 
       539 
545 
     | 
    
         
             
                                           color: @pen_color)
         
     | 
| 
         @@ -6,17 +6,29 @@ module Smalruby 
     | 
|
| 
       6 
6 
     | 
    
         
             
                # ボタンを表現するクラス
         
     | 
| 
       7 
7 
     | 
    
         
             
                class Button < Dino::Components::Button
         
     | 
| 
       8 
8 
     | 
    
         
             
                  def initialize(options)
         
     | 
| 
       9 
     | 
    
         
            -
                     
     | 
| 
      
 9 
     | 
    
         
            +
                    @using_pullup = true
         
     | 
| 
      
 10 
     | 
    
         
            +
                    super(board: world.board, pin: Pin.smalruby_to_dino(options[:pin]),
         
     | 
| 
      
 11 
     | 
    
         
            +
                          pullup: true)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                  # プルアップ抵抗を使わない
         
     | 
| 
      
 15 
     | 
    
         
            +
                  def not_use_pullup
         
     | 
| 
      
 16 
     | 
    
         
            +
                    @using_pullup = false
         
     | 
| 
      
 17 
     | 
    
         
            +
                    board.set_pullup(pin, false)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  def stop
         
     | 
| 
      
 21 
     | 
    
         
            +
                    @board.remove_digital_hardware(self)
         
     | 
| 
       10 
22 
     | 
    
         
             
                  end
         
     | 
| 
       11 
23 
     | 
    
         | 
| 
       12 
24 
     | 
    
         
             
                  def up?
         
     | 
| 
       13 
     | 
    
         
            -
                    @state == UP
         
     | 
| 
      
 25 
     | 
    
         
            +
                    @using_pullup ? @state == DOWN : @state == UP
         
     | 
| 
       14 
26 
     | 
    
         
             
                  end
         
     | 
| 
       15 
27 
     | 
    
         | 
| 
       16 
28 
     | 
    
         
             
                  alias_method :on?, :up?
         
     | 
| 
       17 
29 
     | 
    
         | 
| 
       18 
30 
     | 
    
         
             
                  def down?
         
     | 
| 
       19 
     | 
    
         
            -
                     
     | 
| 
      
 31 
     | 
    
         
            +
                    !up?
         
     | 
| 
       20 
32 
     | 
    
         
             
                  end
         
     | 
| 
       21 
33 
     | 
    
         | 
| 
       22 
34 
     | 
    
         
             
                  alias_method :off?, :down?
         
     | 
| 
         @@ -27,8 +39,8 @@ module Smalruby 
     | 
|
| 
       27 
39 
     | 
    
         
             
                    super(options)
         
     | 
| 
       28 
40 
     | 
    
         | 
| 
       29 
41 
     | 
    
         
             
                    s_pin = Pin.dino_to_smalruby(pin)
         
     | 
| 
       30 
     | 
    
         
            -
                    down { world.button_changed(s_pin, :down) }
         
     | 
| 
       31 
     | 
    
         
            -
                    up { world.button_changed(s_pin, :up) }
         
     | 
| 
      
 42 
     | 
    
         
            +
                    down { world.button_changed(s_pin, (@using_pullup ? :up : :down)) }
         
     | 
| 
      
 43 
     | 
    
         
            +
                    up { world.button_changed(s_pin, (@using_pullup ? :down : :up)) }
         
     | 
| 
       32 
44 
     | 
    
         
             
                  end
         
     | 
| 
       33 
45 
     | 
    
         
             
                end
         
     | 
| 
       34 
46 
     | 
    
         
             
              end
         
     | 
| 
         @@ -7,16 +7,43 @@ if Util.windows? 
     | 
|
| 
       7 
7 
     | 
    
         
             
              require 'dino'
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
              if Dino::VERSION >= '0.11'
         
     | 
| 
      
 10 
     | 
    
         
            +
                require 'mutex_m'
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
       10 
12 
     | 
    
         
             
                class Dino::TxRx::Base
         
     | 
| 
      
 13 
     | 
    
         
            +
                  def write(message)
         
     | 
| 
      
 14 
     | 
    
         
            +
                    loop do
         
     | 
| 
      
 15 
     | 
    
         
            +
                      if IO.select(nil, [io], nil)
         
     | 
| 
      
 16 
     | 
    
         
            +
                        io.synchronize { io.syswrite(message) }
         
     | 
| 
      
 17 
     | 
    
         
            +
                        break
         
     | 
| 
      
 18 
     | 
    
         
            +
                      end
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       11 
22 
     | 
    
         
             
                  def gets(timeout = 0.005)
         
     | 
| 
       12 
     | 
    
         
            -
                     
     | 
| 
       13 
     | 
    
         
            -
                     
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
      
 23 
     | 
    
         
            +
                    @buffer ||= ""
         
     | 
| 
      
 24 
     | 
    
         
            +
                    if !@buffer.include?("\n")
         
     | 
| 
      
 25 
     | 
    
         
            +
                      return nil unless IO.select([io], nil, nil, timeout)
         
     | 
| 
      
 26 
     | 
    
         
            +
                      io.synchronize do
         
     | 
| 
      
 27 
     | 
    
         
            +
                        io.read_timeout = (timeout * 1000).to_i
         
     | 
| 
      
 28 
     | 
    
         
            +
                      end
         
     | 
| 
      
 29 
     | 
    
         
            +
                      bytes = []
         
     | 
| 
      
 30 
     | 
    
         
            +
                      until (x = io.synchronize { io.getbyte }).nil?
         
     | 
| 
      
 31 
     | 
    
         
            +
                        bytes.push(x)
         
     | 
| 
      
 32 
     | 
    
         
            +
                      end
         
     | 
| 
      
 33 
     | 
    
         
            +
                      return nil if bytes.empty?
         
     | 
| 
      
 34 
     | 
    
         
            +
                      @buffer += bytes.pack("C*")
         
     | 
| 
       17 
35 
     | 
    
         
             
                    end
         
     | 
| 
       18 
     | 
    
         
            -
                     
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
      
 36 
     | 
    
         
            +
                    @buffer.slice!(/\A[^\n]*\n/)
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                class Dino::TxRx::Serial
         
     | 
| 
      
 41 
     | 
    
         
            +
                  def io
         
     | 
| 
      
 42 
     | 
    
         
            +
                    unless @io
         
     | 
| 
      
 43 
     | 
    
         
            +
                      @io = connect
         
     | 
| 
      
 44 
     | 
    
         
            +
                      @io.extend(Mutex_m)
         
     | 
| 
      
 45 
     | 
    
         
            +
                    end
         
     | 
| 
      
 46 
     | 
    
         
            +
                    @io
         
     | 
| 
       20 
47 
     | 
    
         
             
                  end
         
     | 
| 
       21 
48 
     | 
    
         
             
                end
         
     | 
| 
       22 
49 
     | 
    
         
             
              elsif Dino::VERSION >= '0.10'
         
     | 
| 
         @@ -0,0 +1,77 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- coding: utf-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'smalruby/hardware'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            module Smalruby
         
     | 
| 
      
 5 
     | 
    
         
            +
              module Hardware
         
     | 
| 
      
 6 
     | 
    
         
            +
                # モータードライバを表現するクラス
         
     | 
| 
      
 7 
     | 
    
         
            +
                #
         
     | 
| 
      
 8 
     | 
    
         
            +
                # モータードライバのVrefにはPWM出力できるD3, D5, D6, D9, D10, D11の
         
     | 
| 
      
 9 
     | 
    
         
            +
                # いずれかを接続し、Vin1、Vin2はVrefからの連番(例えば、VrefがD3であ
         
     | 
| 
      
 10 
     | 
    
         
            +
                # ればVin1、Vin2はそれぞれD4, D5)を接続してください。
         
     | 
| 
      
 11 
     | 
    
         
            +
                #
         
     | 
| 
      
 12 
     | 
    
         
            +
                # 動作確認済みのモータードライバの一覧
         
     | 
| 
      
 13 
     | 
    
         
            +
                # * TOSHIBA
         
     | 
| 
      
 14 
     | 
    
         
            +
                #   * TA7291P
         
     | 
| 
      
 15 
     | 
    
         
            +
                class MotorDriver < Dino::Components::BaseComponent
         
     | 
| 
      
 16 
     | 
    
         
            +
                  # モーターの回転速度の割合(0~100%)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  attr_reader :speed
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  def initialize(options)
         
     | 
| 
      
 20 
     | 
    
         
            +
                    pin = Pin.smalruby_to_dino(options[:pin])
         
     | 
| 
      
 21 
     | 
    
         
            +
                    case pin
         
     | 
| 
      
 22 
     | 
    
         
            +
                    when 3, 5, 6, 9, 10, 11
         
     | 
| 
      
 23 
     | 
    
         
            +
                      super(board: world.board, pin: (pin...(pin + 3)).to_a)
         
     | 
| 
      
 24 
     | 
    
         
            +
                    else
         
     | 
| 
      
 25 
     | 
    
         
            +
                      fail "モーターのピン番号が間違っています: {options[:pin]}"
         
     | 
| 
      
 26 
     | 
    
         
            +
                    end
         
     | 
| 
      
 27 
     | 
    
         
            +
                    self.speed = options[:speed] || 100
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                  def speed=(val)
         
     | 
| 
      
 31 
     | 
    
         
            +
                    @speed = val
         
     | 
| 
      
 32 
     | 
    
         
            +
                    if @speed < 0
         
     | 
| 
      
 33 
     | 
    
         
            +
                      @speed = 0
         
     | 
| 
      
 34 
     | 
    
         
            +
                    elsif @speed > 100
         
     | 
| 
      
 35 
     | 
    
         
            +
                      @speed = 100
         
     | 
| 
      
 36 
     | 
    
         
            +
                    end
         
     | 
| 
      
 37 
     | 
    
         
            +
                  end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                  # 正転する
         
     | 
| 
      
 40 
     | 
    
         
            +
                  def forward
         
     | 
| 
      
 41 
     | 
    
         
            +
                    write_pins(speed, 100, 0)
         
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  # 逆転する
         
     | 
| 
      
 45 
     | 
    
         
            +
                  def backward
         
     | 
| 
      
 46 
     | 
    
         
            +
                    write_pins(speed, 0, 100)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  end
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                  # 停止する
         
     | 
| 
      
 50 
     | 
    
         
            +
                  def stop
         
     | 
| 
      
 51 
     | 
    
         
            +
                    write_pins(0, 0, 0)
         
     | 
| 
      
 52 
     | 
    
         
            +
                  end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                  private
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                  def after_initialize(_ = {})
         
     | 
| 
      
 57 
     | 
    
         
            +
                    pins.each do |pin|
         
     | 
| 
      
 58 
     | 
    
         
            +
                      set_pin_mode(pin, :out)
         
     | 
| 
      
 59 
     | 
    
         
            +
                    end
         
     | 
| 
      
 60 
     | 
    
         
            +
                    stop
         
     | 
| 
      
 61 
     | 
    
         
            +
                  end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                  def write_pins(*levels)
         
     | 
| 
      
 64 
     | 
    
         
            +
                    levels.each.with_index do |level, i|
         
     | 
| 
      
 65 
     | 
    
         
            +
                      case level
         
     | 
| 
      
 66 
     | 
    
         
            +
                      when 0
         
     | 
| 
      
 67 
     | 
    
         
            +
                        digital_write(pins[i], Dino::Board::LOW)
         
     | 
| 
      
 68 
     | 
    
         
            +
                      when 100
         
     | 
| 
      
 69 
     | 
    
         
            +
                        digital_write(pins[i], Dino::Board::HIGH)
         
     | 
| 
      
 70 
     | 
    
         
            +
                      else
         
     | 
| 
      
 71 
     | 
    
         
            +
                        analog_write(pins[i], (Dino::Board::HIGH * level / 100.0).round)
         
     | 
| 
      
 72 
     | 
    
         
            +
                      end
         
     | 
| 
      
 73 
     | 
    
         
            +
                    end
         
     | 
| 
      
 74 
     | 
    
         
            +
                  end
         
     | 
| 
      
 75 
     | 
    
         
            +
                end
         
     | 
| 
      
 76 
     | 
    
         
            +
              end
         
     | 
| 
      
 77 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -5,35 +5,58 @@ module Smalruby 
     | 
|
| 
       5 
5 
     | 
    
         
             
              module Hardware
         
     | 
| 
       6 
6 
     | 
    
         
             
                # 2WD車のモーターを表現するクラス
         
     | 
| 
       7 
7 
     | 
    
         
             
                class TwoWheelDriveCar < Dino::Components::BaseComponent
         
     | 
| 
      
 8 
     | 
    
         
            +
                  # 左のモーターの速度%
         
     | 
| 
      
 9 
     | 
    
         
            +
                  attr_reader :left_speed
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                  # 右のモーターの速度%
         
     | 
| 
      
 12 
     | 
    
         
            +
                  attr_reader :right_speed
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
       8 
14 
     | 
    
         
             
                  def initialize(options)
         
     | 
| 
      
 15 
     | 
    
         
            +
                    @left_speed = 100
         
     | 
| 
      
 16 
     | 
    
         
            +
                    @right_speed = 100
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       9 
18 
     | 
    
         
             
                    pin = Pin.smalruby_to_dino(options[:pin])
         
     | 
| 
       10 
19 
     | 
    
         
             
                    case pin
         
     | 
| 
       11 
     | 
    
         
            -
                    when  
     | 
| 
      
 20 
     | 
    
         
            +
                    when 5
         
     | 
| 
      
 21 
     | 
    
         
            +
                      super(board: world.board, pin: [5, 6, 9, 10])
         
     | 
| 
      
 22 
     | 
    
         
            +
                    when 6
         
     | 
| 
       12 
23 
     | 
    
         
             
                      super(board: world.board, pin: (pin...(pin + 4)).to_a)
         
     | 
| 
       13 
24 
     | 
    
         
             
                    else
         
     | 
| 
       14 
25 
     | 
    
         
             
                      fail "モーターのピン番号が間違っています: {options[:pin]}"
         
     | 
| 
       15 
26 
     | 
    
         
             
                    end
         
     | 
| 
       16 
27 
     | 
    
         
             
                  end
         
     | 
| 
       17 
28 
     | 
    
         | 
| 
      
 29 
     | 
    
         
            +
                  [:left, :right].each do |lor|
         
     | 
| 
      
 30 
     | 
    
         
            +
                    define_method("#{lor}_speed=") do |val|
         
     | 
| 
      
 31 
     | 
    
         
            +
                      name = "@#{lor}_speed"
         
     | 
| 
      
 32 
     | 
    
         
            +
                      if val < 0
         
     | 
| 
      
 33 
     | 
    
         
            +
                        instance_variable_set(name, 0)
         
     | 
| 
      
 34 
     | 
    
         
            +
                      elsif val > 100
         
     | 
| 
      
 35 
     | 
    
         
            +
                        instance_variable_set(name, 100)
         
     | 
| 
      
 36 
     | 
    
         
            +
                      else
         
     | 
| 
      
 37 
     | 
    
         
            +
                        instance_variable_set(name, val)
         
     | 
| 
      
 38 
     | 
    
         
            +
                      end
         
     | 
| 
      
 39 
     | 
    
         
            +
                    end
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
       18 
42 
     | 
    
         
             
                  # 前進する
         
     | 
| 
       19 
     | 
    
         
            -
                  def forward 
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                    digital_write_pins(left_level, 0, right_level, 0)
         
     | 
| 
      
 43 
     | 
    
         
            +
                  def forward
         
     | 
| 
      
 44 
     | 
    
         
            +
                    digital_write_pins(left_speed, 0, right_speed, 0)
         
     | 
| 
       22 
45 
     | 
    
         
             
                  end
         
     | 
| 
       23 
46 
     | 
    
         | 
| 
       24 
47 
     | 
    
         
             
                  # 後退する
         
     | 
| 
       25 
     | 
    
         
            -
                  def backward 
     | 
| 
       26 
     | 
    
         
            -
                    digital_write_pins(0,  
     | 
| 
      
 48 
     | 
    
         
            +
                  def backward
         
     | 
| 
      
 49 
     | 
    
         
            +
                    digital_write_pins(0, left_speed, 0, right_speed)
         
     | 
| 
       27 
50 
     | 
    
         
             
                  end
         
     | 
| 
       28 
51 
     | 
    
         | 
| 
       29 
52 
     | 
    
         
             
                  # 左に曲がる
         
     | 
| 
       30 
     | 
    
         
            -
                  def turn_left 
     | 
| 
       31 
     | 
    
         
            -
                    digital_write_pins(0,  
     | 
| 
      
 53 
     | 
    
         
            +
                  def turn_left
         
     | 
| 
      
 54 
     | 
    
         
            +
                    digital_write_pins(0, left_speed, right_speed, 0)
         
     | 
| 
       32 
55 
     | 
    
         
             
                  end
         
     | 
| 
       33 
56 
     | 
    
         | 
| 
       34 
57 
     | 
    
         
             
                  # 右に曲がる
         
     | 
| 
       35 
     | 
    
         
            -
                  def turn_right 
     | 
| 
       36 
     | 
    
         
            -
                    digital_write_pins( 
     | 
| 
      
 58 
     | 
    
         
            +
                  def turn_right
         
     | 
| 
      
 59 
     | 
    
         
            +
                    digital_write_pins(left_speed, 0, 0, right_speed)
         
     | 
| 
       37 
60 
     | 
    
         
             
                  end
         
     | 
| 
       38 
61 
     | 
    
         | 
| 
       39 
62 
     | 
    
         
             
                  # 停止する
         
     | 
| 
         @@ -46,12 +69,10 @@ module Smalruby 
     | 
|
| 
       46 
69 
     | 
    
         
             
                    defaults = {
         
     | 
| 
       47 
70 
     | 
    
         
             
                      command: 'forward',
         
     | 
| 
       48 
71 
     | 
    
         
             
                      sec: nil,
         
     | 
| 
       49 
     | 
    
         
            -
                      left_level: 100,
         
     | 
| 
       50 
     | 
    
         
            -
                      right_level: 100,
         
     | 
| 
       51 
72 
     | 
    
         
             
                    }
         
     | 
| 
       52 
73 
     | 
    
         
             
                    opts = Util.process_options(options, defaults)
         
     | 
| 
       53 
74 
     | 
    
         | 
| 
       54 
     | 
    
         
            -
                    send(opts[:command] 
     | 
| 
      
 75 
     | 
    
         
            +
                    send(opts[:command])
         
     | 
| 
       55 
76 
     | 
    
         
             
                    sleep(opts[:sec]) if opts[:sec]
         
     | 
| 
       56 
77 
     | 
    
         
             
                    stop unless opts[:command] == :stop
         
     | 
| 
       57 
78 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -65,12 +86,26 @@ module Smalruby 
     | 
|
| 
       65 
86 
     | 
    
         
             
                    stop
         
     | 
| 
       66 
87 
     | 
    
         
             
                  end
         
     | 
| 
       67 
88 
     | 
    
         | 
| 
       68 
     | 
    
         
            -
                  def digital_write_pins(* 
     | 
| 
       69 
     | 
    
         
            -
                     
     | 
| 
       70 
     | 
    
         
            -
                       
     | 
| 
       71 
     | 
    
         
            -
                         
     | 
| 
       72 
     | 
    
         
            -
                         
     | 
| 
       73 
     | 
    
         
            -
                         
     | 
| 
      
 89 
     | 
    
         
            +
                  def digital_write_pins(*speeds)
         
     | 
| 
      
 90 
     | 
    
         
            +
                    if pins.first == 5
         
     | 
| 
      
 91 
     | 
    
         
            +
                      speeds.each.with_index do |speed, i|
         
     | 
| 
      
 92 
     | 
    
         
            +
                        level = (Dino::Board::HIGH * speed / 100.0).floor
         
     | 
| 
      
 93 
     | 
    
         
            +
                        case level
         
     | 
| 
      
 94 
     | 
    
         
            +
                        when 0
         
     | 
| 
      
 95 
     | 
    
         
            +
                          digital_write(pins[i], Dino::Board::LOW)
         
     | 
| 
      
 96 
     | 
    
         
            +
                        when 100
         
     | 
| 
      
 97 
     | 
    
         
            +
                          digital_write(pins[i], Dino::Board::HIGH)
         
     | 
| 
      
 98 
     | 
    
         
            +
                        else
         
     | 
| 
      
 99 
     | 
    
         
            +
                          analog_write(pins[i], level)
         
     | 
| 
      
 100 
     | 
    
         
            +
                        end
         
     | 
| 
      
 101 
     | 
    
         
            +
                      end
         
     | 
| 
      
 102 
     | 
    
         
            +
                    else
         
     | 
| 
      
 103 
     | 
    
         
            +
                      2.times do
         
     | 
| 
      
 104 
     | 
    
         
            +
                        speeds.each.with_index do
         
     | 
| 
      
 105 
     | 
    
         
            +
                          |speed, i|
         
     | 
| 
      
 106 
     | 
    
         
            +
                          digital_write(pins[i], (Dino::Board::HIGH * speed / 100.0).floor)
         
     | 
| 
      
 107 
     | 
    
         
            +
                          sleep(0.05) if i.odd?
         
     | 
| 
      
 108 
     | 
    
         
            +
                        end
         
     | 
| 
       74 
109 
     | 
    
         
             
                      end
         
     | 
| 
       75 
110 
     | 
    
         
             
                    end
         
     | 
| 
       76 
111 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/smalruby/hardware.rb
    CHANGED
    
    
    
        data/lib/smalruby/version.rb
    CHANGED
    
    
    
        data/samples/hardware_button.rb
    CHANGED
    
    
| 
         @@ -0,0 +1,32 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- coding: utf-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            DESCRIPTION = <<EOS
         
     | 
| 
      
 4 
     | 
    
         
            +
            ハードウェアのボタン(プルアップ)を操作します
         
     | 
| 
      
 5 
     | 
    
         
            +
            EOS
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            # デジタルの3番ピンに直接ボタンを接続してください。
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            require 'smalruby'
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            init_hardware
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            stage1 = Stage.new(color: 'white')
         
     | 
| 
      
 14 
     | 
    
         
            +
            frog1 = Character.new(costume: 'frog1.png', x: 300, y: 200, visible: false)
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            stage1.on(:start) do
         
     | 
| 
      
 17 
     | 
    
         
            +
              draw_font(string: DESCRIPTION, color: 'black')
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              if button('D3').up?
         
     | 
| 
      
 20 
     | 
    
         
            +
                frog1.visible = false
         
     | 
| 
      
 21 
     | 
    
         
            +
              else
         
     | 
| 
      
 22 
     | 
    
         
            +
                frog1.visible = true
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
            end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            stage1.on(:button_down, 'D3') do
         
     | 
| 
      
 27 
     | 
    
         
            +
              frog1.visible = true
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            stage1.on(:button_up, 'D3') do
         
     | 
| 
      
 31 
     | 
    
         
            +
              frog1.visible = false
         
     | 
| 
      
 32 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,110 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- coding: utf-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            DESCRIPTION = <<EOS
         
     | 
| 
      
 4 
     | 
    
         
            +
            モータードライバ(TA7291P)を操作します
         
     | 
| 
      
 5 
     | 
    
         
            +
            EOS
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            # デジタルの6~11番ピンをそれぞれ左右のモーター用のモータードライバ
         
     | 
| 
      
 8 
     | 
    
         
            +
            # (TA7291P)の4・5・6に接続してください。
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            require 'smalruby'
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            init_hardware
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            stage1 = Stage.new(color: 'white')
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            stage1.on(:start) do
         
     | 
| 
      
 17 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 18 
     | 
    
         
            +
              draw_font(string: DESCRIPTION, color: 'black')
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              motor_driver('D6').speed = 100
         
     | 
| 
      
 21 
     | 
    
         
            +
              motor_driver('D9').speed = 100
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            stage1.on(:key_down, K_UP) do
         
     | 
| 
      
 25 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 26 
     | 
    
         
            +
              draw_font(string: '進む', color: 'black')
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
              motor_driver('D6').forward
         
     | 
| 
      
 29 
     | 
    
         
            +
              motor_driver('D9').forward
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
              await until !Input.key_down?(K_UP)
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
              motor_driver('D6').stop
         
     | 
| 
      
 36 
     | 
    
         
            +
              motor_driver('D9').stop
         
     | 
| 
      
 37 
     | 
    
         
            +
            end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            stage1.on(:key_down, K_DOWN) do
         
     | 
| 
      
 40 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 41 
     | 
    
         
            +
              draw_font(string: 'バックする', color: 'black')
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
              motor_driver('D6').backward
         
     | 
| 
      
 44 
     | 
    
         
            +
              motor_driver('D9').backward
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
              await until !Input.key_down?(K_DOWN)
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              motor_driver('D6').stop
         
     | 
| 
      
 51 
     | 
    
         
            +
              motor_driver('D9').stop
         
     | 
| 
      
 52 
     | 
    
         
            +
            end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            stage1.on(:key_down, K_LEFT) do
         
     | 
| 
      
 55 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 56 
     | 
    
         
            +
              draw_font(string: '左に旋回する', color: 'black')
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
              motor_driver('D6').backward
         
     | 
| 
      
 59 
     | 
    
         
            +
              motor_driver('D9').forward
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
              await until !Input.key_down?(K_LEFT)
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
              motor_driver('D6').stop
         
     | 
| 
      
 66 
     | 
    
         
            +
              motor_driver('D9').stop
         
     | 
| 
      
 67 
     | 
    
         
            +
            end
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
            stage1.on(:key_down, K_RIGHT) do
         
     | 
| 
      
 70 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 71 
     | 
    
         
            +
              draw_font(string: '右に旋回する', color: 'black')
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
              motor_driver('D6').forward
         
     | 
| 
      
 74 
     | 
    
         
            +
              motor_driver('D9').backward
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
              await until !Input.key_down?(K_RIGHT)
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
              motor_driver('D6').stop
         
     | 
| 
      
 81 
     | 
    
         
            +
              motor_driver('D9').stop
         
     | 
| 
      
 82 
     | 
    
         
            +
            end
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
            stage1.on(:key_push, K_W) do
         
     | 
| 
      
 85 
     | 
    
         
            +
              motor_driver('D6').speed += 10
         
     | 
| 
      
 86 
     | 
    
         
            +
             
     | 
| 
      
 87 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 88 
     | 
    
         
            +
              draw_font(string: "左の速度: #{motor_driver('D6').speed}%", color: 'black')
         
     | 
| 
      
 89 
     | 
    
         
            +
            end
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
            stage1.on(:key_push, K_S) do
         
     | 
| 
      
 92 
     | 
    
         
            +
              motor_driver('D6').speed -= 10
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 95 
     | 
    
         
            +
              draw_font(string: "左の速度: #{motor_driver('D6').speed}%", color: 'black')
         
     | 
| 
      
 96 
     | 
    
         
            +
            end
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
            stage1.on(:key_push, K_O) do
         
     | 
| 
      
 99 
     | 
    
         
            +
              motor_driver('D9').speed += 10
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 102 
     | 
    
         
            +
              draw_font(string: "右の速度: #{motor_driver('D9').speed}%", color: 'black')
         
     | 
| 
      
 103 
     | 
    
         
            +
            end
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
            stage1.on(:key_push, K_L) do
         
     | 
| 
      
 106 
     | 
    
         
            +
              motor_driver('D9').speed -= 10
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 109 
     | 
    
         
            +
              draw_font(string: "右の速度: #{motor_driver('D9').speed}%", color: 'black')
         
     | 
| 
      
 110 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -4,8 +4,8 @@ DESCRIPTION = <<EOS 
     | 
|
| 
       4 
4 
     | 
    
         
             
            2WD車のタイヤ(モーター)を操作します
         
     | 
| 
       5 
5 
     | 
    
         
             
            EOS
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
            #  
     | 
| 
       8 
     | 
    
         
            -
            #  
     | 
| 
      
 7 
     | 
    
         
            +
            # PWM出力可能なデジタルの5番・6番ピンに左のモーター、10番・9番ピンに右
         
     | 
| 
      
 8 
     | 
    
         
            +
            # のモーターを接続してください。
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
            require 'smalruby'
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
         @@ -17,15 +17,43 @@ stage1.on(:start) do 
     | 
|
| 
       17 
17 
     | 
    
         
             
              draw_font(string: DESCRIPTION, color: 'black')
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
              loop do
         
     | 
| 
       20 
     | 
    
         
            -
                two_wheel_drive_car(' 
     | 
| 
       21 
     | 
    
         
            -
                sleep( 
     | 
| 
       22 
     | 
    
         
            -
                two_wheel_drive_car(' 
     | 
| 
       23 
     | 
    
         
            -
                sleep( 
     | 
| 
       24 
     | 
    
         
            -
                two_wheel_drive_car(' 
     | 
| 
       25 
     | 
    
         
            -
                sleep( 
     | 
| 
       26 
     | 
    
         
            -
                two_wheel_drive_car(' 
     | 
| 
       27 
     | 
    
         
            -
                sleep( 
     | 
| 
       28 
     | 
    
         
            -
                two_wheel_drive_car(' 
     | 
| 
       29 
     | 
    
         
            -
                sleep( 
     | 
| 
      
 20 
     | 
    
         
            +
                two_wheel_drive_car('D5').forward
         
     | 
| 
      
 21 
     | 
    
         
            +
                sleep(2)
         
     | 
| 
      
 22 
     | 
    
         
            +
                two_wheel_drive_car('D5').backward
         
     | 
| 
      
 23 
     | 
    
         
            +
                sleep(2)
         
     | 
| 
      
 24 
     | 
    
         
            +
                two_wheel_drive_car('D5').turn_left
         
     | 
| 
      
 25 
     | 
    
         
            +
                sleep(0.5)
         
     | 
| 
      
 26 
     | 
    
         
            +
                two_wheel_drive_car('D5').turn_right
         
     | 
| 
      
 27 
     | 
    
         
            +
                sleep(0.5)
         
     | 
| 
      
 28 
     | 
    
         
            +
                two_wheel_drive_car('D5').stop
         
     | 
| 
      
 29 
     | 
    
         
            +
                sleep(1)
         
     | 
| 
       30 
30 
     | 
    
         
             
              end
         
     | 
| 
       31 
31 
     | 
    
         
             
            end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            stage1.on(:key_push, K_E) do
         
     | 
| 
      
 34 
     | 
    
         
            +
              two_wheel_drive_car('D5').left_speed += 1
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 37 
     | 
    
         
            +
              draw_font(string: "速度%: 左< #{two_wheel_drive_car('D5').left_speed} > 右< #{two_wheel_drive_car('D5').right_speed} >", color: 'black')
         
     | 
| 
      
 38 
     | 
    
         
            +
            end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            stage1.on(:key_push, K_D) do
         
     | 
| 
      
 41 
     | 
    
         
            +
              two_wheel_drive_car('D5').left_speed -= 1
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 44 
     | 
    
         
            +
              draw_font(string: "速度%: 左< #{two_wheel_drive_car('D5').left_speed} > 右< #{two_wheel_drive_car('D5').right_speed} >", color: 'black')
         
     | 
| 
      
 45 
     | 
    
         
            +
            end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            stage1.on(:key_push, K_UP) do
         
     | 
| 
      
 48 
     | 
    
         
            +
              two_wheel_drive_car('D5').right_speed += 1
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 51 
     | 
    
         
            +
              draw_font(string: "速度%: 左< #{two_wheel_drive_car('D5').left_speed} > 右< #{two_wheel_drive_car('D5').right_speed} >", color: 'black')
         
     | 
| 
      
 52 
     | 
    
         
            +
            end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            stage1.on(:key_push, K_DOWN) do
         
     | 
| 
      
 55 
     | 
    
         
            +
              two_wheel_drive_car('D5').right_speed -= 1
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
              fill(color: 'white')
         
     | 
| 
      
 58 
     | 
    
         
            +
              draw_font(string: "速度%: 左< #{two_wheel_drive_car('D5').left_speed} > 右< #{two_wheel_drive_car('D5').right_speed} >", color: 'black')
         
     | 
| 
      
 59 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -4,8 +4,8 @@ DESCRIPTION = <<EOS 
     | 
|
| 
       4 
4 
     | 
    
         
             
            2WD車のタイヤ(モーター)を操作します
         
     | 
| 
       5 
5 
     | 
    
         
             
            EOS
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
            #  
     | 
| 
       8 
     | 
    
         
            -
            #  
     | 
| 
      
 7 
     | 
    
         
            +
            # PWM出力可能なデジタルの5番・6番ピンに左のモーター、10番・9番ピンに右
         
     | 
| 
      
 8 
     | 
    
         
            +
            # のモーターを接続してください。
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
            require 'smalruby'
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
         @@ -17,13 +17,10 @@ stage1.on(:start) do 
     | 
|
| 
       17 
17 
     | 
    
         
             
              draw_font(string: DESCRIPTION, color: 'black')
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
              loop do
         
     | 
| 
       20 
     | 
    
         
            -
                two_wheel_drive_car(' 
     | 
| 
       21 
     | 
    
         
            -
                 
     | 
| 
       22 
     | 
    
         
            -
                two_wheel_drive_car(' 
     | 
| 
       23 
     | 
    
         
            -
                 
     | 
| 
       24 
     | 
    
         
            -
                two_wheel_drive_car(' 
     | 
| 
       25 
     | 
    
         
            -
                sleep(1)
         
     | 
| 
       26 
     | 
    
         
            -
                two_wheel_drive_car('D6').run(command: 'turn_right', sec: 2, left_level: 85, right_level: 100)
         
     | 
| 
       27 
     | 
    
         
            -
                sleep(1)
         
     | 
| 
      
 20 
     | 
    
         
            +
                two_wheel_drive_car('D5').run(command: 'forward', sec: 2)
         
     | 
| 
      
 21 
     | 
    
         
            +
                two_wheel_drive_car('D5').run(command: 'backward', sec: 2)
         
     | 
| 
      
 22 
     | 
    
         
            +
                two_wheel_drive_car('D5').run(command: 'turn_left', sec: 2)
         
     | 
| 
      
 23 
     | 
    
         
            +
                two_wheel_drive_car('D5').run(command: 'turn_right', sec: 2)
         
     | 
| 
      
 24 
     | 
    
         
            +
                two_wheel_drive_car('D5').run(command: 'stop', sec: 2)
         
     | 
| 
       28 
25 
     | 
    
         
             
              end
         
     | 
| 
       29 
26 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: smalruby
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.30
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: x86-mingw32
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Kouji Takao
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2014- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2014-08-12 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bundler
         
     | 
| 
         @@ -259,6 +259,7 @@ files: 
     | 
|
| 
       259 
259 
     | 
    
         
             
            - lib/smalruby/hardware/button.rb
         
     | 
| 
       260 
260 
     | 
    
         
             
            - lib/smalruby/hardware/dino/fix_gets.rb
         
     | 
| 
       261 
261 
     | 
    
         
             
            - lib/smalruby/hardware/led.rb
         
     | 
| 
      
 262 
     | 
    
         
            +
            - lib/smalruby/hardware/motor_driver.rb
         
     | 
| 
       262 
263 
     | 
    
         
             
            - lib/smalruby/hardware/null_hardware.rb
         
     | 
| 
       263 
264 
     | 
    
         
             
            - lib/smalruby/hardware/pin.rb
         
     | 
| 
       264 
265 
     | 
    
         
             
            - lib/smalruby/hardware/rgb_led_anode.rb
         
     | 
| 
         @@ -281,7 +282,9 @@ files: 
     | 
|
| 
       281 
282 
     | 
    
         
             
            - samples/extra_car.png
         
     | 
| 
       282 
283 
     | 
    
         
             
            - samples/finding_cars.rb
         
     | 
| 
       283 
284 
     | 
    
         
             
            - samples/hardware_button.rb
         
     | 
| 
      
 285 
     | 
    
         
            +
            - samples/hardware_button_with_pullup.rb
         
     | 
| 
       284 
286 
     | 
    
         
             
            - samples/hardware_led.rb
         
     | 
| 
      
 287 
     | 
    
         
            +
            - samples/hardware_motor_driver.rb
         
     | 
| 
       285 
288 
     | 
    
         
             
            - samples/hardware_rgb_led_anode.rb
         
     | 
| 
       286 
289 
     | 
    
         
             
            - samples/hardware_rgb_led_cathode.rb
         
     | 
| 
       287 
290 
     | 
    
         
             
            - samples/hardware_sensor.rb
         
     |