Class: RPiRGB

Inherits:
Object
  • Object
show all
Defined in:
lib/rpi_rgb.rb

Overview

rgb = RPiRGB.new(%w(4 17 27), presets: [0,100,100]) rgb.color = ‘white’ sleep 2 rgb.color = ‘purple’ sleep 2 rgb.color = ‘green’

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pins, brightness: 100, smooth: false, presets: nil) ⇒ RPiRGB

Returns a new instance of RPiRGB.



26
27
28
29
30
31
32
33
34
# File 'lib/rpi_rgb.rb', line 26

def initialize(pins, brightness: 100, smooth: false, presets: nil)
  
  @red, @green, @blue = pins.map do |x| 
    RPiLed.new(x, brightness: brightness, smooth: smooth)
  end
  
  @brightness, @presets = brightness, presets    

end

Instance Attribute Details

#blueObject (readonly)

Returns the value of attribute blue.



24
25
26
# File 'lib/rpi_rgb.rb', line 24

def blue
  @blue
end

#brightnessObject

Returns the value of attribute brightness.



23
24
25
# File 'lib/rpi_rgb.rb', line 23

def brightness
  @brightness
end

#greenObject (readonly)

Returns the value of attribute green.



24
25
26
# File 'lib/rpi_rgb.rb', line 24

def green
  @green
end

#redObject (readonly)

Returns the value of attribute red.



24
25
26
# File 'lib/rpi_rgb.rb', line 24

def red
  @red
end

Instance Method Details

#colourObject Also known as: color



75
76
77
# File 'lib/rpi_rgb.rb', line 75

def colour()
  @colour
end

#colour=(val) ⇒ Object Also known as: color=



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/rpi_rgb.rb', line 46

def colour=(val)
  
  @colour = val

  case val

  when 'red'
    mix @brightness, 0, 0

  when 'green'
    mix 0, @brightness, 0

  when 'blue'
    mix 0, 0, @brightness

  when 'white'
    mix @brightness, @brightness, @brightness

  else
    
    return unless @presets

    preset = @presets[val.to_sym]

    mix(preset) if preset

  end
end

#mix(*values) ⇒ Object



82
83
84
85
86
87
88
# File 'lib/rpi_rgb.rb', line 82

def mix(*values)
  
  values.flatten!
  
  [@red, @green, @blue].each(&:on)
  red.brightness, green.brightness, blue.brightness = values
end

#offObject



90
91
92
# File 'lib/rpi_rgb.rb', line 90

def off()
  [@red, @green, @blue].each(&:off)
end