コード例 #1
4
ファイル: led_board_1.py プロジェクト: DirkUK/python-gpiozero
from gpiozero import LEDBoard
from time import sleep
from signal import pause

leds = LEDBoard(5, 6, 13, 19, 26)

leds.on()
sleep(1)
leds.off()
sleep(1)
leds.value = (1, 0, 1, 0, 1)
sleep(1)
leds.blink()

pause()
コード例 #2
0
def launch_sequence():
    """
    Test that all the leds are operating.
    """

    # Manually configure the leds as PWM compatible
    # Each number is a GPIO pin number
    with LEDBoard(17, 22, 9, 5, 13, pwm=True) as green_leds:
        # Ensure everything is off to start
        green_leds.off()

    with LEDBoard(4, 27, 10, 11, 6, pwm=True) as red_leds:
        # Ensure everything is off to start
        red_leds.off()

        # Pulse red LEDs on
        pulse_leds(red_leds)
        sleep(3)

        # Swoosh up down
        fade_in = 0
        fade_out = 0.7
        pause = 0.25
        for repeat in range(5):
            pulse_leds(red_leds, fade_in, fade_out, pause)
            pulse_leds(reversed(red_leds), fade_in, fade_out, pause)
コード例 #3
0
ファイル: snowman.py プロジェクト: groovymarty/raspberry-fun
 def __init__(self, pwm=False, initial_value=False, pin_factory=None):
     super(Snowman, self).__init__(
         face=LEDBoard(leftEye=23,
                       rightEye=24,
                       nose=25,
                       pwm=pwm,
                       initial_value=initial_value,
                       _order=('leftEye', 'rightEye', 'nose'),
                       pin_factory=pin_factory),
         body=LEDBoard(left=LEDBoard(top=7,
                                     middle=8,
                                     bottom=9,
                                     pwm=pwm,
                                     initial_value=initial_value,
                                     _order=('top', 'middle', 'bottom'),
                                     pin_factory=pin_factory),
                       right=LEDBoard(top=17,
                                      middle=18,
                                      bottom=22,
                                      pwm=pwm,
                                      initial_value=initial_value,
                                      _order=('top', 'middle', 'bottom'),
                                      pin_factory=pin_factory),
                       pwm=pwm,
                       initial_value=initial_value,
                       _order=('left', 'right'),
                       pin_factory=pin_factory),
         pwm=pwm,
         initial_value=initial_value,
         _order=('face', 'body'),
         pin_factory=pin_factory)
コード例 #4
0
def active_seismometer(callback, callback_interval):
    buzzer = Buzzer(3)
    status_led = LED(26)
    scale_led = LEDBoard(a=18, b=23, c=12, d=19, e=6, f=22, g=17, xdp=16)

    seismometer = Seismometer()
    seismometer.start_calculation(callback, callback_interval)

    while True:
        try:
            seismic_scale = seismometer.seismic_scale
            scale_led.value = SCALE_LED_CHARSETS[
                seismometer.get_user_friendly_formatted_seismic_scale()]

            if seismometer.ready:
                if not status_led.is_lit:
                    status_led.on()

                if seismic_scale >= 3.5:
                    if not buzzer.is_active:
                        buzzer.on()
                else:
                    buzzer.off()
        except KeyboardInterrupt:
            break

    seismometer.stop_calculation()
    scale_led.off()
    status_led.off()
    buzzer.off()
コード例 #5
0
 def __init__(self, pwm=False, initial_value=False, pin_factory=None):
     super(ChristmasTree, self).__init__(
         baubles=LEDBoard(
             bottom=LEDBoard(
                 left=11, midleft=16, midright=17, right=18,
                 pwm=pwm, initial_value=initial_value,
                 _order=('left', 'midleft', 'midright', 'right'),
                 pin_factory=pin_factory),
             middle=LEDBoard(
                 left=19, midleft=20, midright=21, right=22,
                 pwm=pwm, initial_value=initial_value,
                 _order=('left', 'midleft', 'midright', 'right'),
                 pin_factory=pin_factory),
             top=LEDBoard(
                 left=23, right=24,
                 pwm=pwm, initial_value=initial_value,
                 _order=('left', 'right'),
                 pin_factory=pin_factory),
             ),
         star=12,
         pwm=pwm, initial_value=initial_value,
         _order=('baubles', 'star'),
         pin_factory=pin_factory
         )
             
コード例 #6
0
ファイル: Light.py プロジェクト: emilywright/P.O.D
 def __init__(self, hostIP):
     ''' initialize the hostIP and leds GPIO pins'''
     self.hostIP = hostIP    # host is the one that controls the lights
     self.factory = PiGPIOFactory(host=hostIP)
     # 18, 19, 20, 21, 22, 23, 24, 25 are the connected GPIO pins
     self.leds = LEDBoard(18, 19, 20, 21, 22, 23, 24, 25,
                          pwm=True, pin_factory=self.factory)
コード例 #7
0
    def __init__(self):
        ''' initialize the hostIP and leds GPIO pins'''

        # 18, 19, 20, 21, 22, 23, 24, 25 are the connected GPIO pins

        self.leds = LEDBoard(18, 19, 20, 21, 22, 23, 24, 25, pwm=False)
        self.sensor = tsl2591.Tsl2591()
        self.lux_dictionary = self.calibrate_light()
コード例 #8
0
def sevensegment(ch,d,pinout):
    #ch is the character to display
    #d is the duration in seconds
    #pinout is the pinout for the display

    from gpiozero import LEDBoard
    from time import sleep
    import traceback

    num = {
            '1': (3,6),
            '2': (2,3,0,4,5),
            '3': (2,3,0,6,5),
            '4': (1,0,3,6),
            '5': (2,1,0,6,5),
            '6': (2,1,4,5,6,0),
            '7': (2,3,6),
            '8': (0,1,2,3,4,5,6),
            '9': (2,3,1,0,6),
            '0': (2,1,4,5,6,3),
            'A': (4,1,2,3,0,6),
            'C': (2,1,4,5),
            'E': (2,1,0,4,5),
            'F': (2,1,0,4),
            'H': (1,4,0,3,6),
            'J': (3,6,5,4),
            'L': (1,4,5),
            'P': (2,3,0,1,4),
            'U': (1,4,5,6,3)
            }

       # Validate the inputs - ch needs to be in the num dictionary, and d needs to be an integer

    try:
        if ch not in num:
            raise ValueError ("Can't display that value on seven segment display)")
        if not type(d) is int:
            raise TypeError ("Expecting an integer for duration")
        if not type(pinout) is tuple:
            raise TypeError ("Need a tuple for pinouts") 
        if len(pinout) != 8:
            raise IndexError ("Need list of 8 pinouts")
        for a in range(0,len(pinout)):
                if not (1<=pinout[a]<=26):
                    raise ValueError ("GPIO pinouts must be from 1 to 26")
    except ValueError as error:
        traceback.print_exc()
    except TypeError as error:
        traceback.print_exc()
    except IndexError as error:
        traceback.print_exc()
    else:
        leds = LEDBoard(*pinout)

        for a in range(0,len(num[ch])):
            leds[num[ch][a]].on()
        sleep(d)
        leds.off()
コード例 #9
0
 def __init__(self, panel):
     self._panel = panel
     if self._panel.width not in range(
             Graphic.WIDTH +
             1) and self._panel.height not in range(Graphic.HEIGHT + 1):
         raise SystemError('Panel size is illegal!')
     self._running = True
     self._coms = LEDBoard(2, 3, 4, 17, 27, 22, 10, 9, 11)
     self._segs = LEDBoard(14, 15, 18, 23, 24, 25, 8, 7, 12, 16, 20, 21)
     self._canvas = Canvas(self._panel.width, self._panel.height)
     self._render_thread = Thread(target=self.render)
     self._update_thread = Thread(target=self.update)
コード例 #10
0
    def assign_leds(self, led_pins):
        self._close_leds()

        try:
            self._leds = LEDBoard(
                fine=led_pins.get('fine'),
                cloud=led_pins.get('cloud'),
                rain=led_pins.get('rain'),
                snow=led_pins.get('snow'),
                pwm=True,
            )
        except PinInvalidPin:
            pass
コード例 #11
0
    def __init__(self, parent=None):
        super().__init__(parent)  # 父类的构造函数
        self.setupUi(self)  # 初始化程序界面
        # factory = PiGPIOFactory(host='169.254.163.132')  # 填写树莓派的IP地址

        self.timer_camera_tongkong = QtCore.QTimer()
        self.timer_camera_hateman = QtCore.QTimer()  # 定义定时器,用于控制显示视频的帧率

        self.cap_tongkong = cv2.VideoCapture()
        self.cap_hateman = cv2.VideoCapture()  # 视频流
        self.CAM_TONGKONG = 0  # 为0时表示视频流来自笔记本内置摄像头
        self.CAM_HATEMAN = 2
        ####验光仪光路硬件部分定义
        self.laser = PWMLED(17)
        self.wuxiang = PWMLED(6)
        self.yuanhuan_in = PWMLED(13)
        self.yuanhuan_out = PWMLED(16)
        self.buttun = Button(18)
        self.yuanhuan_in.value = 0.2
        self.laser.value = 0.25
        self.graph = LEDBoard(20, 21, 22, 23)

        #####圆环中心坐标
        self.yuanhuan_x = self.spinBox_up.value()
        self.yuanhuan_y = self.spinBox_right.value()
        self.slot_init()  # 初始化槽函数t自带的,会关闭程序
コード例 #12
0
def pibooth_startup(app, cfg):
    """Create the LED instances.

    .. note:: gpiozero is configured as BCM, use a string with "BOARD" to
               use BOARD pin numbering.
    """
    app.led_startup = LEDBoard(*("BOARD{}".format(pin)
                               for pin in cfg.gettuple('CONTROLS', 'startup_led_pin', int)))

    app.led_sequence = LEDBoard(*("BOARD{}".format(pin)
                                for pin in cfg.gettuple('CONTROLS', 'preview_led_pin', int)))

    app.led_flash = LEDBoard(*("BOARD{}".format(pin)
                             for pin in cfg.gettuple('CONTROLS', 'flash_led_pin', int)))

    app.led_startup.on()
コード例 #13
0
class ChristmasTreeListener(StreamListener):
    """Stream Listener and Tree LED controller"""

    tree = LEDBoard(*range(2, 28), pwm=True)
    # Need 26 keywords for the LEDs, the first is the star
    keywords = [
        "star", "snow", "christmas", "santa", "merry", "xmas", "present",
        "gift", "card", "mince", "turkey", "joy", "tree", "light",
        "decoration", "carol", "cake", "wrap", "elves", "jingle", "reindeer",
        "festive", "holiday", "sleigh", "nativity", "peace"
    ]
    # Associate each word with an LED via a dictionary for lookups
    lookup = {word: led for word, led in zip(keywords, tree.leds)}
    # Keep track of how many times a word has been found via a counter dictionary
    word_counter = {word: 0 for word in keywords}

    def on_data(self, data):
        """When new data is received from the Twitter stream"""
        # Parse from JSON string
        parsed_data = json.loads(data)
        # May not contain text, may be limit if the result is < 1% of tweets batch.
        if "text" in parsed_data:  # checks parsed_data's keys for "text"
            # Search for the words, if found, flip the led
            for word, led in self.lookup.items():
                if word in parsed_data["text"]:
                    self.word_counter[word] += 1
                    led.toggle()  # if on, turn off, else turn on.
        return True

    def on_error(self, status):
        print(status)
コード例 #14
0
 def __init__(self):
     self.leds = LEDBoard(4,
                          15,
                          13,
                          21,
                          22,
                          6,
                          12,
                          25,
                          16,
                          17,
                          27,
                          26,
                          9,
                          23,
                          11,
                          5,
                          20,
                          19,
                          14,
                          18,
                          7,
                          8,
                          10,
                          24,
                          2,
                          pwm=True)
コード例 #15
0
async def light_up_xmas():
    tree = LEDBoard(*range(2, 28), pwm=True)

    for led in tree:
        led.source_delay = 0.1
        led.source = random_values()

    await asyncio.sleep(1)
コード例 #16
0
    def setLights(self):
        tree = LEDBoard(*range(2,28),pwm=True)
        for led in tree:
            led.source_delay = 0.1
            led.source = random_values()
            if(self.on == False):
                break

        pause()
コード例 #17
0
def twinkle():
    print("Twinkle twinkle")
    twinkle_time = time.time() + uniform(period_min, period_max)
    tree = LEDBoard(*range(3,28), pwm=True)
    for led in tree:
        led.source_delay = 0.1
        led.source = random_values()
    while twinkle_time > time.time():
       time.sleep(delay)
コード例 #18
0
ファイル: Light.py プロジェクト: emilywright/P.O.D
class Lights():

    def __init__(self, hostIP):
        ''' initialize the hostIP and leds GPIO pins'''
        self.hostIP = hostIP    # host is the one that controls the lights
        self.factory = PiGPIOFactory(host=hostIP)
        # 18, 19, 20, 21, 22, 23, 24, 25 are the connected GPIO pins
        self.leds = LEDBoard(18, 19, 20, 21, 22, 23, 24, 25,
                             pwm=True, pin_factory=self.factory)

    def adjustableLED(self, brightness):
        ''' adjust LED intensity according to brightness assigned'''
        leds = self.processBrightness(brightness)
        self.leds.value = (leds[0], leds[1], leds[2], leds[3],
                           leds[4], leds[5], leds[6], leds[7])

    def hardOnOffLED(self, onTime, offTime, brightness):
        ''' turn LEDS light on for onTime and off for offTime,
            with assigned brightness'''
        while True:
            leds = self.processBrightness(brightness)
            self.leds.value = (leds[0], leds[1], leds[2], leds[3],
                               leds[4], leds[5], leds[6], leds[7])
            sleep(onTime)
            self.leds.off()
            sleep(offTime)

    def processBrightness(self, brightness):
        ''' Return leds switch value as a list
            1 for on, 0 for off '''
        if brightness > 255 or brightness < 0:
            print("invalid light brightness level")
            sys.exit(0)
        leds = [0, 0, 0, 0, 0, 0, 0, 0]     # initially turn everything off
        binLevel = bin(brightness)          # string of form '0b101010'
        binLevel = binLevel[2:]
        binList = list(binLevel)
        binList.reverse()   # because the pins are in reversed order
        for i in range(0, len(binList)):
            if binList[i] == '1':
                leds[i] = 1
        print("active led")
        print(leds)
        return leds
コード例 #19
0
    def run(self):
        tree = LEDBoard(*range(2,28),pwm=True)

        while not self._stop_event.is_set():
            for led in tree:
                if not self._stop_event.is_set():
                    led.on()
                    sleep(0.1)
                    led.off()
                    sleep(0.1)
コード例 #20
0
class Graphic:
    WIDTH = 12
    HEIGHT = 9
    RENDER_DELAY = .001
    FPS = 60
    TPF = float(1) / FPS

    def __init__(self, panel):
        self._panel = panel
        if self._panel.width not in range(
                Graphic.WIDTH +
                1) and self._panel.height not in range(Graphic.HEIGHT + 1):
            raise SystemError('Panel size is illegal!')
        self._running = True
        self._coms = LEDBoard(2, 3, 4, 17, 27, 22, 10, 9, 11)
        self._segs = LEDBoard(14, 15, 18, 23, 24, 25, 8, 7, 12, 16, 20, 21)
        self._canvas = Canvas(self._panel.width, self._panel.height)
        self._render_thread = Thread(target=self.render)
        self._update_thread = Thread(target=self.update)

    def render(self):
        while self._running:
            for i in range(self._panel.height):
                self._segs.value = self._canvas.matrix[i]
                com = self._coms.leds[i]
                com.on()
                sleep(Graphic.RENDER_DELAY)
                com.off()

    def update(self):
        last = time()
        while self._running:
            start = time()
            current = time()
            self._panel.render(self._canvas, current - last)
            last = current
            try:
                sleep(start + Graphic.TPF - time())
            except IOError:
                pass

    def start(self):
        self._coms.off()
        self._segs.on()
        self._render_thread.start()
        self._update_thread.start()

    def stop(self):
        self._running = False
        self._render_thread.join()
        self._update_thread.join()
        self._segs.close()
        self._coms.close()
コード例 #21
0
class Tree(object):
    Lower = 2
    Upper = 28

    Period = 20

    def __init__(self):
        self.tree = LEDBoard(*range(Tree.Lower, Tree.Upper), pwm=True)

    def reset(self):
        for led in self.tree:
            led.source_delay = 0
            led.source = [0]

    def off(self):
        self.tree.off()

    def on(self):
        self.tree.on()

    def pulse(self):
        self.tree.pulse(fade_in_time=4, fade_out_time=4)

    def flicker(self):
        for led in self.tree:
            led.source_delay = 0.2
            led.source = random_values()

    def sequence(self):
        delay = Tree.Period * 1.0 / (Tree.Upper - Tree.Lower)
        values = []
        for index in range(Tree.Lower, Tree.Upper):
            values.append(0)

        index = 0
        for led in self.tree:
            #delay += 0.1
            led.source_delay = delay
            values[index] = 1
            led.source = list(values)
            values[index] = 0
            index += 1
            #print( led.source )
            #led.on()
            #sleep( 0.1 )
            #led.off()

    def wait(self):
        sleep(Tree.Period)

    def go(self):
        while True:
            self.sequence()
            self.wait()
            self.pulse()
            self.wait()
            self.flicker()
            self.wait()
            self.reset()
コード例 #22
0
def random_led():
    # function that turns off and on random leds
    print("Random LED")
    tree = LEDBoard(*range(4,28))
    random_time = time.time() + uniform(period_min, period_max)
    while random_time > time.time():
        
        # Turn on a random led
        on_lamp = randint(0, 23)
        tree[on_lamp].on()
        time.sleep(on_delay)

        # Turn off a random led
        off_lamp = randint(0, 23)
        tree[off_lamp].off()
コード例 #23
0
 def __init__(self, pwm=False, initial_value=False, pin_factory=None):
     super(PumpkinPi, self).__init__(
         sides=LEDBoard(left=LEDBoard(bottom=18,
                                      midbottom=17,
                                      middle=16,
                                      midtop=13,
                                      top=24,
                                      pwm=pwm,
                                      initial_value=initial_value,
                                      _order=('bottom', 'midbottom',
                                              'middle', 'midtop', 'top'),
                                      pin_factory=pin_factory),
                        right=LEDBoard(bottom=19,
                                       midbottom=20,
                                       middle=21,
                                       midtop=22,
                                       top=23,
                                       pwm=pwm,
                                       initial_value=initial_value,
                                       _order=('bottom', 'midbottom',
                                               'middle', 'midtop', 'top'),
                                       pin_factory=pin_factory),
                        pwm=pwm,
                        initial_value=initial_value,
                        _order=('left', 'right'),
                        pin_factory=pin_factory),
         eyes=LEDBoard(left=12,
                       right=6,
                       pwm=pwm,
                       initial_value=initial_value,
                       _order=('left', 'right'),
                       pin_factory=pin_factory),
         pwm=pwm,
         initial_value=initial_value,
         _order=('eyes', 'sides'),
         pin_factory=pin_factory)
コード例 #24
0
class TailLights:
    
    led_lights = LEDBoard(red=21, green=20)
    
    
    def __init__(self):
        self.led_lights.on()
        sleep(0.25)
        self.led_lights.off()
        sleep(0.25)
        
    def blink_red(self, num, duration):
        for x in range(num):
            self.led_lights.red.on()
            sleep(duration)
            self.led_lights.red.off()
            sleep(duration)
    
    def blink_green(self, num, duration):
        for x in range(num):
            self.led_lights.green.on()
            sleep(duration)
            self.led_lights.green.off()
            sleep(duration)
        
    def blink_alternating(self, num, duration):
        for x in range(num):
            self.led_lights.red.off()
            self.led_lights.green.on()
            sleep(duration)
            self.led_lights.red.on()
            self.led_lights.green.off()
            sleep(duration)
        self.led_lights.red.off()
        
    def blink_together(self, num, duration):
        for x in range(num):
            self.led_lights.on()
            sleep(duration)
            self.led_lights.off()
            sleep(duration)
    
    def alarm(self, num):
        for x in range(num):
            self.blink_alternating(2, 0.25)
            self.blink_together(2, 0.5)
コード例 #25
0
 def __init__(self, pwm=False, initial_value=False, pin_factory=None):
     super(Star, self).__init__(outer=LEDBoard(
         A=8,
         B=7,
         C=12,
         D=21,
         E=20,
         F=16,
         G=26,
         H=19,
         I=13,
         J=6,
         K=5,
         L=11,
         M=9,
         N=10,
         O=22,
         P=27,
         Q=17,
         R=4,
         S=3,
         T=14,
         U=23,
         V=18,
         W=15,
         X=24,
         Y=25,
         pwm=pwm,
         initial_value=initial_value,
         _order=('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
                 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
                 'Y'),
         pin_factory=pin_factory),
                                inner=2,
                                pwm=pwm,
                                initial_value=initial_value,
                                _order=('inner', 'outer'),
                                pin_factory=pin_factory)
コード例 #26
0
# modification: 2021/17/01
########################################################################
from gpiozero import LEDBoard
from time import sleep
from signal import pause

print('Program is starting ... ')

numberToConvert = 512

ledPins = [
    "J8:11", "J8:12", "J8:13", "J8:15", "J8:16", "J8:18", "J8:22", "J8:3",
    "J8:5", "J8:24"
]

leds = LEDBoard(*ledPins, active_high=False)

#define array of 10 bit : 0000000000
binary = []
for i in range(10):
    binary.append(0)

print("Init bit array:" + str(binary))

#convert number in binary string
number = numberToConvert
i = len(binary) - 1

while number > 0:
    bit = number % 2
    binary[i] = bit
コード例 #27
0
from gpiozero import LEDBoard
from gpiozero.tools import random_values
from signal import pause
tree = LEDBoard(*range(2,28),pwm=True)
for led in tree:
 led.source_delay = 0.1
 led.source = random_values()
pause()
コード例 #28
0
ファイル: app.py プロジェクト: NikolasDN/Mechi
from flask import Flask, render_template, Response, send_from_directory, url_for
# import numpy as np
# import cv2
# Raspberry Pi camera module (requires picamera package, developed by Miguel Grinberg)
from camera_pi import Camera
from gpiozero import LEDBoard

# cap = cv2.VideoCapture(-1)

leds = LEDBoard(0,
                1,
                2,
                3,
                4,
                pwm=False,
                active_high=False,
                initial_value=False,
                pin_factory=None)  # LEDBoard(17, 18, 15, 27)
#my_message = "Started";

app = Flask(__name__, static_url_path='/static')

# def get_frame():
#     while(cap.isOpened()):
#         ret, frame = cap.read()
#         if ret==True:
#             #frame = cv2.flip(frame,0)
#             return frame


@app.route('/')
コード例 #29
0
from gpiozero import LEDBoard
from time import sleep

t = 0.2
setting = 3
if (setting == 0):
    ledRow = LEDBoard(18, 23, 17, 22, 12, 16, 5, 13)
    while True:
        for i in range(8):
            if (i != 0):
                ledRow[i].on()
                sleep(t)
                ledRow[i].off()
                sleep(t)
        for i in range(8):
            if (i != 0):
                ledRow[7 - i].on()
                sleep(t)
                ledRow[7 - i].off()
                sleep(t)
elif (setting == 1):
    ledHalfs = LEDBoard(18, 13, 23, 5, 17, 16, 22, 12)
    while True:
        for i in range(8):
            ledHalfs[i].on()
            sleep(.2)
        sleep(1)
        for i in range(8):
            ledHalfs[7 - i].off()
            sleep(.2)
        sleep(1)
コード例 #30
0
ファイル: ladder.py プロジェクト: ForToffee/SnowPi
# by Carl Monk (@ForToffee)
# github.com/fortoffee
 
from time import sleep
from datetime import datetime 
from gpiozero import LED, LEDBoard, Button, Buzzer
import random 
 
board = LEDBoard(9, 22, 8, 18, 7, 17, 23, 24, 25)
button = Button(21)
buzzer = Buzzer(20)


def game():
	random.seed()
	board.on()
	sleep(0.25)
	board.leds[7].off()
	board.leds[6].off()
	sleep(0.25)
	board.leds[8].off()
	sleep(0.25)
	
	for i in range(5, -1, -2):
		board.leds[i].off()
		board.leds[i-1].off()
		sleep(0.25)
	
	gameState = 0	#1 = win, -1 = lose
	led = 0
	while gameState == 0 :
コード例 #31
0
ファイル: led_board_7.py プロジェクト: DirkUK/python-gpiozero
from gpiozero import LEDBoard
from time import sleep

leds = LEDBoard(red=LEDBoard(top=2, bottom=3), green=LEDBoard(top=4, bottom=5))

leds.red.on() ## both reds on
sleep(1)
leds.green.on()  # both greens on
sleep(1)
leds.off()  # all off
sleep(1)
leds.red.top.on()  # top red on
sleep(1)
leds.green.bottom.on()  # bottom green on
sleep(1)
コード例 #32
0
    def __init__(self, config):
        self._config = config

        # Clean directory where pictures are saved
        savedir = config.getpath('GENERAL', 'directory')
        if not osp.isdir(savedir):
            os.makedirs(savedir)
        elif osp.isdir(savedir) and config.getboolean('GENERAL', 'debug'):
            shutil.rmtree(savedir)
            os.makedirs(savedir)

        # Prepare the pygame module for use
        os.environ['SDL_VIDEO_CENTERED'] = '1'
        pygame.init()
        # Dont catch mouse motion to avoid filling the queue during long actions
        pygame.event.set_blocked(pygame.MOUSEMOTION)

        # Create window of (width, height)
        init_size = self._config.gettyped('WINDOW', 'size')
        init_debug = self._config.getboolean('GENERAL', 'debug')
        init_color = self._config.gettyped('WINDOW', 'background')
        init_text_color = self._config.gettyped('WINDOW', 'text_color')
        if not isinstance(init_color, (tuple, list)):
            init_color = self._config.getpath('WINDOW', 'background')

        title = 'Pibooth v{}'.format(pibooth.__version__)
        if not isinstance(init_size, str):
            self._window = PtbWindow(title,
                                     init_size,
                                     color=init_color,
                                     text_color=init_text_color,
                                     debug=init_debug)
        else:
            self._window = PtbWindow(title,
                                     color=init_color,
                                     text_color=init_text_color,
                                     debug=init_debug)

        # Create plugin manager and defined hooks specification
        self._plugin_manager = pluggy.PluginManager(
            hookspecs.hookspec.project_name)
        self._plugin_manager.add_hookspecs(hookspecs)
        self._plugin_manager.load_setuptools_entrypoints(
            hookspecs.hookspec.project_name)

        # Register plugins
        custom_paths = [
            p for p in self._config.gettuple('GENERAL', 'plugins', 'path') if p
        ]
        load_plugins(self._plugin_manager, *custom_paths)

        # Define states of the application
        self._machine = StateMachine(self._plugin_manager, self._config, self,
                                     self._window)
        self._machine.add_state('wait')
        self._machine.add_state('choose')
        self._machine.add_state('chosen')
        self._machine.add_state('preview')
        self._machine.add_state('capture')
        self._machine.add_state('processing')
        self._machine.add_state('print')
        self._machine.add_state('finish')

        # ---------------------------------------------------------------------
        # Variables shared with plugins
        # Change them may break plugins compatibility
        self.dirname = None
        self.capture_nbr = None
        self.capture_choices = (4, 1)
        self.nbr_duplicates = 0
        self.previous_picture = None
        self.previous_animated = None
        self.previous_picture_file = None

        self.camera = camera.get_camera(
            config.getint('CAMERA', 'iso'),
            config.gettyped('CAMERA', 'resolution'),
            config.getint('CAMERA', 'rotation'),
            config.getboolean('CAMERA', 'flip'),
            config.getboolean('CAMERA', 'delete_internal_memory'))

        self.button_capture = Button(
            "BOARD" + config.get('CONTROLS', 'picture_btn_pin'),
            bounce_time=config.getfloat('CONTROLS', 'debounce_delay'),
            pull_up=True,
            hold_time=1)

        self.button_print = Button(
            "BOARD" + config.get('CONTROLS', 'print_btn_pin'),
            bounce_time=config.getfloat('CONTROLS', 'debounce_delay'),
            pull_up=True,
            hold_time=1)

        self.leds = LEDBoard(
            capture="BOARD" + config.get('CONTROLS', 'picture_led_pin'),
            printer="BOARD" + config.get('CONTROLS', 'print_led_pin'),
            preview="BOARD" + config.get('CONTROLS', 'preview_led_pin'),
            start="BOARD" + config.get('CONTROLS', 'startup_led_pin'))

        self.printer = PtbPrinter(config.get('PRINTER', 'printer_name'))
コード例 #33
0
ファイル: led_board_5.py プロジェクト: DirkUK/python-gpiozero
from gpiozero import LEDBoard
from time import sleep

leds = LEDBoard(2, 3, 4, 5, 6, 7, 8, 9)

for led in leds[3:]:  # leds 3 and onward
    led.on()
sleep(1)
leds.off()

for led in leds[:2]:  # leds 0 and 1
    led.on()
sleep(1)
leds.off()

for led in leds[::2]:  # even leds (0, 2, 4...)
    led.on()
sleep(1)
leds.off()

for led in leds[1::2]:  # odd leds (1, 3, 5...)
    led.on()
sleep(1)
leds.off()
コード例 #34
0
ファイル: pressenter.py プロジェクト: Skyjammin/3dxmastree
##
# Press enter to light up the tree
##

from time import sleep
from gpiozero import LEDBoard
tree = LEDBoard(*range(2, 28), pwm=True)

tree.off()  # Turn all LED's off
print("Press Enter to Light Up Tree")

while True:

    raw_input()
    print("button pressed")
    tree.on()
    sleep(.2)
    tree.off()
コード例 #35
0
from gpiozero import LEDBoard

leds = LEDBoard(5, 6, 13, 19, 26, pwm=True)

leds.value = (0.2, 0.4, 0.6, 0.8, 1.0)