def create_hardware(klass, pin = nil)
      klass = NullHardware unless @initialized_hardware
      key = [klass, pin]
      @hardware_cache.synchronize do
        @hardware_cache[key] ||= klass.new(pin: pin)
      end
      @hardware_cache[key]
    end
def create_hardware(klass, pin = nil)
      klass = NullHardware unless @initialized_hardware
      key = [klass, pin]
      @hardware_cache.synchronize do
        @hardware_cache[key] ||= klass.new(pin: pin)
      end
      @hardware_cache[key]
    end
ハードウェアのインスタンスを生成する

 作成したハードウェアのインスタンスはキャッシュする

 @param [Class] klass ハードウェアのクラス
 @param [String|Numeric] pin ピン番号
 @return [Object] ハードウェアのインスタンス