RGB LED added, untested!

This commit is contained in:
Balthasar Reuter
2018-07-20 17:27:39 +02:00
parent 36c7c3bf52
commit a0cd4eb479
2 changed files with 51 additions and 3 deletions

View File

@@ -26,6 +26,13 @@ exit_pin = 24
trigger_pin = 23
# BOARD pin 7 (BCM pin 4) switches the lamp on and off
lamp_pin = 4
# BOARD pin (BCM pin 17) switches the blue channel
chan_b_pin = 17
# BOARD pin (BCM pin 27) switches the red channel
chan_r_pin = 27
# BOARD pin (BCM pin 22) switches the green channel
chan_g_pin = 22
[Printer]
# Enable printing (True/False)

View File

@@ -46,12 +46,18 @@ class Gpio:
trigger_pin = config.getInt('Gpio', 'trigger_pin')
exit_pin = config.getInt('Gpio', 'exit_pin')
rgb_pin = (config.getInt('Gpio', 'chan_r_pin'),
config.getInt('Gpio', 'chan_g_pin'),
config.getInt('Gpio', 'chan_b_pin'))
logging.info(('GPIO enabled (lamp_pin=%d, trigger_pin=%d, '
'exit_pin=%d)'), lamp_pin, trigger_pin, exit_pin)
'exit_pin=%d, rgb_pins=(%d, %d, %d))'),
lamp_pin, trigger_pin, exit_pin, *rgb_pin)
self._gpio.setButton(trigger_pin, self.trigger)
self._gpio.setButton(exit_pin, self.exit)
self._lamp = self._gpio.setLamp(lamp_pin)
self._rgb = self._gpio.setRgb(rgb_pin)
else:
logging.info('GPIO disabled')
@@ -97,6 +103,21 @@ class Gpio:
self._is_trigger = False
self._gpio.lampOff(self._lamp)
def setRgbColor(self, r, g, b):
if self._is_enabled:
self._gpio.rgbColor(self._rgb, (r, g, b))
def rgbOn(self):
if self._is_enabled:
self._gpio.rgbOn(self._rgb)
def rgbOff(self):
if self._is_enabled:
self._gpio.rgbOff(self._rgb)
def trigger(self):
if self._is_trigger:
@@ -123,11 +144,12 @@ class Gpio:
def showCapture(self):
pass
self.rgbOn()
self.setRgbColor(1, 1, 1)
def showAssemble(self):
pass
self.rgbOff()
def showReview(self):
@@ -146,10 +168,12 @@ class Entities:
import gpiozero
self.LED = gpiozero.LED
self.RGBLED = gpiozero.RGBLED
self.Button = gpiozero.Button
self._buttons = []
self._lamps = []
self._rgb = []
def setButton(self, bcm_pin, handler):
@@ -161,6 +185,11 @@ class Entities:
self._lamps.append(self.LED(bcm_pin))
return len(self._lamps) - 1
def setRgb(self, bcm_pins):
self._rgb.append(self.RGBLED(*bcm_pins))
return len(self._lamps) - 1
def lampOn(self, index):
self._lamps[index].on()
@@ -172,3 +201,15 @@ class Entities:
def lampToggle(self, index):
self._lamps[index].toggle()
def rgbOn(self, index):
self._rgb[index].on()
def rgbOff(self, index):
self._rgb[index].off()
def rgbColor(self, index, color):
self._rgb[index].color = color