mirror of
https://github.com/KevinMidboe/python-gpiozero.git
synced 2025-10-29 17:50:37 +00:00
Implement common add-on boards, re: #17
This commit is contained in:
61
gpiozero/boards.py
Normal file
61
gpiozero/boards.py
Normal file
@@ -0,0 +1,61 @@
|
||||
from .input_devices import Button
|
||||
from .output_devices import LED
|
||||
from .devices import GPIODeviceError
|
||||
|
||||
|
||||
class TrafficLights(object):
|
||||
def __init__(self, red=None, amber=None, green=None):
|
||||
if not all([red, amber, green]):
|
||||
raise GPIODeviceError('Red, Amber and Green pins must be provided')
|
||||
|
||||
self.red = LED(red)
|
||||
self.amber = LED(amber)
|
||||
self.green = LED(green)
|
||||
self.lights = [self.red, self.amber, self.green]
|
||||
|
||||
def lights_on(self):
|
||||
for led in self.lights:
|
||||
led.on()
|
||||
|
||||
def lights_off(self):
|
||||
for led in self.lights:
|
||||
led.off()
|
||||
|
||||
|
||||
class PiTraffic(TrafficLights):
|
||||
def __init__(self):
|
||||
self.red = LED(9)
|
||||
self.amber = LED(10)
|
||||
self.green = LED(11)
|
||||
self.lights = [self.red, self.amber, self.green]
|
||||
|
||||
|
||||
class FishDish(TrafficLights):
|
||||
def __init__(self):
|
||||
red, amber, green = (9, 22, 4)
|
||||
super(FishDish, self).__init__(red, amber, green)
|
||||
self.buzzer = Buzzer(8)
|
||||
self.button = Button(7)
|
||||
self.all = self.lights + [self.buzzer]
|
||||
|
||||
def on(self):
|
||||
for led in self.all:
|
||||
led.on()
|
||||
|
||||
def off(self):
|
||||
for led in self.all:
|
||||
led.off()
|
||||
|
||||
|
||||
class PiLiter(object):
|
||||
def __init__(self):
|
||||
leds = [4, 17, 27, 18, 22, 23, 24, 25]
|
||||
self.leds = [LED(led) for led in leds]
|
||||
|
||||
def on(self):
|
||||
for led in self.leds:
|
||||
led.on()
|
||||
|
||||
def off(self):
|
||||
for led in self.leds:
|
||||
led.off()
|
||||
Reference in New Issue
Block a user