diff options
Diffstat (limited to 'wiiLightMote,rb')
| -rw-r--r-- | wiiLightMote,rb | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/wiiLightMote,rb b/wiiLightMote,rb new file mode 100644 index 0000000..5dc3fac --- /dev/null +++ b/wiiLightMote,rb @@ -0,0 +1,158 @@ + +require 'hue' +require 'cwiid' + +bridge = Hue.application + +loop do + begin + puts "Searching for wiimote(press 1 + 2)" + wiimote = WiiMote.new + puts "Wiimote Connected" + wiimote.rpt_mode = wiimote.rpt_mode = WiiMote::RPT_BTN | WiiMote::RPT_ACC + + wiimote.led = 9 + wiimote.get_state + colour = Hue::Colors::ColorTemperature.new(((([[wiimote.acc[1].to_f,150.0].min,100.0].max - 100.0)/50.0) * 4500) + 2000) + up = [colour,255] + right = [colour,255] + down = [colour,255] + left = [colour,255] + + begin + wiimote.get_state + + if ( wiimote.buttons & WiiMote::BTN_HOME ) != 0 + for bulb in bridge.bulbs + if bulb.on? + bulb.off + else + bulb.on + end + end + sleep(0.245) + end + + if ( wiimote.buttons & WiiMote::BTN_A ) != 0 + for bulb in bridge.bulbs + if bulb.on? + colour = Hue::Colors::ColorTemperature.new(((([[wiimote.acc[1].to_f,150.0].min,100.0].max - 100.0)/50.0) * 4500) + 2000) + bulb.color = colour + end + end + sleep(0.004) + end + + if ( wiimote.buttons & WiiMote::BTN_B ) != 0 + for bulb in bridge.bulbs + if bulb.on? + colour = Hue::Colors::HueSaturation.new((([[wiimote.acc[1].to_f,150.0].min,100.0].max - 100.0)/50.0) * 65535, 255) + bulb.color = colour + end + end + sleep(0.004) + end + + if ( wiimote.buttons & WiiMote::BTN_PLUS ) != 0 + for bulb in bridge.bulbs + if bulb.on? + if ( bulb.brightness + 15 ) < 255 + bulb.brightness += 15 + else + bulb.brightness = 255 + end + end + end + end + + if ( wiimote.buttons & WiiMote::BTN_MINUS ) != 0 + for bulb in bridge.bulbs + if bulb.on? + if ( bulb.brightness - 15 ) > 1 + bulb.brightness -= 15 + else + bulb.brightness = 1 + end + end + end + end + + if ( wiimote.buttons & WiiMote::BTN_UP ) != 0 + for bulb in bridge.bulbs + if (( wiimote.buttons & WiiMote::BTN_1 ) != 0) & bulb.on? + #set preset + up[0] = colour + up[1] = bulb.brightness + + else + if bulb.off? + bulb.on + end + #load preset + bulb.color = up[0] + bulb.brightness = up[1] + end + end + end + if ( wiimote.buttons & WiiMote::BTN_RIGHT ) != 0 + for bulb in bridge.bulbs + if (( wiimote.buttons & WiiMote::BTN_1 ) != 0) & bulb.on? + #set preset + right[0] = colour + right[1] = bulb.brightness + + else + if bulb.off? + bulb.on + end + #load preset + bulb.color = right[0] + bulb.brightness = right[1] + end + end + end + if ( wiimote.buttons & WiiMote::BTN_DOWN ) != 0 + for bulb in bridge.bulbs + if (( wiimote.buttons & WiiMote::BTN_1 ) != 0) & bulb.on? + #set preset + down[0] = colour + down[1] = bulb.brightness + + else + if bulb.off? + bulb.on + end + #load preset + bulb.color = up[0] + bulb.brightness = up[1] + end + end + end + if ( wiimote.buttons & WiiMote::BTN_LEFT ) != 0 + for bulb in bridge.bulbs + if (( wiimote.buttons & WiiMote::BTN_1 ) != 0) & bulb.on? + #set preset + left[0] = colour + left[1] = bulb.brightness + + else + if bulb.off? + bulb.on + end + #load preset + bulb.color = up[0] + bulb.brightness = up[1] + end + end + end + + sleep(0.001) + end until ( wiimote.buttons & WiiMote::BTN_2 ) != 0 + wiimote.close + puts "Wiimote Disconnected" + rescue RuntimeError => e + puts e.message + puts "Trying to connect again..." + end +end + |
