示例#1
4
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
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()
示例#3
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()
示例#4
0
print(rightknobnum)
rightknob_count = 0


def rightknobplay():
    Popen([
        'bash', '/home/pi/buttonboard/lightshowpiMods/play',
        rightknobsound[rightknob_count]
    ]).wait()


# LIGHTS CAMERA ACTION
while True:
    allLEDS.off()
    if redButton.is_pressed:
        allLEDS.on()
        redplay()
        red_count += 1
        print(red_count)
        if red_count >= rednum:
            red_count = 0
    if blueButton.is_pressed:
        allLEDS.on()
        blueplay()
        blue_count += 1
        print(blue_count)
        if blue_count >= bluenum:
            blue_count = 0
    if yellowButton.is_pressed:
        allLEDS.on()
        yellowplay()
示例#5
0
from gpiozero import LEDBoard
from time import sleep
from signal import pause

leds = LEDBoard(18, 23, 24)

# 모두 같이 동작
leds.on()
sleep(1)
leds.off()
sleep(1)

# 개별적인 값을 튜플로 지정
leds.value = (1, 0, 1)
sleep(1)
leds.blink()
pause()
示例#6
0
    18: 19,
    17: 20,
    4: 21,
    24: 22,
    23: 23,
    13: 24,
    5: 25,
    12: 26,
    11: 27
}

leds = LEDBoard(*range(4, 28), pwm=True)


def labelToPin(l):
    return treemap[l]


def toBoard(l):
    return labelToPin(l) - 4


while True:
    for i in treelights:
        sleep(0.1)
        leds.on(toBoard(i))

    for i in treelights:
        sleep(0.1)
        leds.off(toBoard(i))
示例#7
0
#!/usr/bin/env python3
########################################################################
# Filename    : LightWater.py
# Description : Use LEDBar Graph(10 LED) 
# Author      : www.freenove.com
# modification: 2019/12/27
########################################################################
from gpiozero import LEDBoard
from time import sleep
from signal import pause

print ('Program is starting ... ')

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)

while True:
    for index in range(0,len(ledPins),1):       #move led(on) from left to right 
        leds.on(index)  
        sleep(0.1)
        #leds.off(index)
    for index in range(len(ledPins)-1,-1,-1):   #move led(on) from right to left
        leds.off(index)      
        sleep(0.1)
        #leds.off(index)


示例#8
0
def sides(forward):
    # function that lights the leds on the sides in sequence
    # direction is defined by forward being True or False

    side1_leds = LEDBoard(8, 6, 7)
    side2_leds = LEDBoard(11, 5, 12)
    side3_leds = LEDBoard(19, 26, 21)
    side4_leds = LEDBoard(16, 13, 20)
    side5_leds = LEDBoard(25, 24, 23)
    side6_leds = LEDBoard(9, 22, 10)
    side7_leds = LEDBoard(17, 4, 14)
    side8_leds = LEDBoard(27, 18, 15)

    sides_time = time.time() + uniform(period_min, period_max)

    while sides_time > time.time():
        if forward:
            # spin the side leds anticlockwise
            side1_leds.on()
            time.sleep(sides_delay)
            side1_leds.off()
            side2_leds.on()
            time.sleep(sides_delay)
            side2_leds.off()
            side3_leds.on()
            time.sleep(sides_delay)
            side3_leds.off()
            side4_leds.on()
            time.sleep(sides_delay)
            side4_leds.off()
            side5_leds.on()
            time.sleep(sides_delay)
            side5_leds.off()
            side6_leds.on()
            time.sleep(sides_delay)
            side6_leds.off()
            side7_leds.on()
            time.sleep(sides_delay)
            side7_leds.off()
            side8_leds.on()
            time.sleep(sides_delay)
            side8_leds.off()
        else:
            # spin the side leds clockwise
            side8_leds.on()
            time.sleep(sides_delay)
            side8_leds.off()
            side7_leds.on()
            time.sleep(sides_delay)
            side7_leds.off()
            side6_leds.on()
            time.sleep(sides_delay)
            side6_leds.off()
            side5_leds.on()
            time.sleep(sides_delay)
            side5_leds.off()
            side4_leds.on()
            time.sleep(sides_delay)
            side4_leds.off()
            side3_leds.on()
            time.sleep(sides_delay)
            side3_leds.off()
            side2_leds.on()
            time.sleep(sides_delay)
            side2_leds.off()
            side1_leds.on()
            time.sleep(sides_delay)
            side1_leds.off()
示例#9
0
    cathode1.value = BCD.get(lMin)
    cathode2.value = BCD.get(tMin)
    time.sleep(.015)


# Obtain current time and set both minute and hour value
currentTime = time.strftime("%H%M", time.localtime())
# separate time into individual digits
leadHour = int(currentTime[0])
trailHour = int(currentTime[1])
leadMin = int(currentTime[2])
trailMin = int(currentTime[3])
getBCD(leadHour, trailHour, leadMin, trailMin)

#activates the nixie tubes
tubesOn.on()

while True:
    # used so the clock can run independently of the internet after first initialization
    tMin = time.time() + 60

    # run this loop for 1 minute before breaking out into the logical checks
    while time.time() < tMin:
        getBCD(leadHour, trailHour, leadMin, trailMin)
        if offSwitch.is_pressed:
            break

    if offSwitch.is_pressed == False:
        # logic to determine how to increment time for each minute
        # check if the time is at 11pm or 23:00
        if leadHour == 2 and trailHour == 3:
from gpiozero import PWMLED
from time import sleep

tree = LEDBoard(6, 7, 8)
tree1 = LEDBoard(13, 16, 20)
tree2 = LEDBoard(19, 21, 26)
tree3 = LEDBoard(9, 10, 22)
tree4 = LEDBoard(23, 24, 25)
tree5 = LEDBoard(15, 18, 27)
tree6 = LEDBoard(4, 17, 14)
tree7 = LEDBoard(5, 11, 12)
tree8 = PWMLED(2)  #This is the star

while True:
    tree8.pulse()  #Put this first so it starts immediately
    tree.on()
    sleep(0.5)
    tree.off()
    tree1.on()
    sleep(0.5)
    tree1.off()
    tree2.on()
    sleep(0.5)
    tree2.off()
    tree3.on()
    sleep(1)
    tree3.off()
    tree4.on()
    sleep(0.5)
    tree4.off()
    tree5.on()
示例#11
0
#
##

speed = 0.5

import time
from gpiozero import LEDBoard
from gpiozero.tools import random_values
from signal import pause

east = LEDBoard(16, 13, 20, 19, 26, 21, pwm=True)
south = LEDBoard(25, 24, 23, 9, 22, 10, pwm=True)
west = LEDBoard(17, 4, 14, 27, 18, 15, pwm=True)
north = LEDBoard(8, 6, 7, 11, 5, 12, pwm=True)

while True:
    south.off()
    north.on()
    time.sleep(speed)

    west.off()
    east.on()
    time.sleep(speed)

    north.off()
    south.on()
    time.sleep(speed)

    east.off()
    west.on()
    time.sleep(speed)
#Declarations
red = LEDBoard(2, 17, 10, 5)
yellow = LEDBoard(3, 27, 9, 6)
permissiveYellow = LEDBoard(4)
rightYellow = LEDBoard(19)
green = LEDBoard(22, 11, 13)
protectedGreen = LEDBoard(14)
rightGreen = LEDBoard(26)

while True:
    #Setup
    red.off()
    yellow.off()
    permissiveYellow.off()
    rightYellow.off()
    green.on()
    protectedGreen.on()
    rightGreen.off()

    #Protected to permissive left
    sleep(5)  #Number of seconds protected green light is on.
    protectedGreen.off()
    permissiveYellow.blink(1, 1, 10,
                           False)  #This blinks every second for 10 blinks.

    #Permissive left and green to yellow
    green.off()
    yellow.on()

    #Yellow to red
    sleep(2)  #Number of seconds yellow light is on.
示例#13
0
    time.sleep(1)


def lightoff(time):
    # set number of seconds before light turn off
    time.sleep(7)


while True:
    #wait for pir to trigger.
    print("Waiting for motion\n")
    pir.wait_for_motion()
    time.sleep(0.5)
    print("There are motion\nTurn on light and play Sound with delay\n")
    pir.when_motion
    led.on()
    sounddelay(time)

    # Play random sounds
    _songs = ('/home/pi/Documents/mp3/K.wav', '/home/pi/Documents/mp3/B.wav')
    _currently_playing_song = None

    def play_a_different_song():
        global _currently_playing_song, _songs

    next_song = random.choice(_songs)
    while next_song == _currently_playing_song:
        next_song = random.choice(_songs)
    _currently_playing_song = next_song
    pygame.mixer.music.load(next_song)
    pygame.mixer.music.play(0)
示例#14
0
board20 = LEDBoard(18, pwm=True)
board18 = LEDBoard(19, pwm=True)
board17 = LEDBoard(20, pwm=True)
board04 = LEDBoard(21, pwm=True)
board24 = LEDBoard(22, pwm=True)
board23 = LEDBoard(23, pwm=True)
board13 = LEDBoard(24, pwm=True)
board05 = LEDBoard(25, pwm=True)
board12 = LEDBoard(26, pwm=True)
board11 = LEDBoard(27, pwm=True)

speed = 5.0

# Turn off
time.sleep(speed)
board24.on()
time.sleep(speed)
board24.off()
board23.on()
time.sleep(speed)
board23.off()
board22.on()
time.sleep(speed)
board22.off()
board21.on()
time.sleep(speed)
board21.off()
board20.on()
time.sleep(speed)
board20.off()
board19.on()
示例#15
0
    "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
    number = number // 2
    i = i - 1

print("Decimal is " + str(numberToConvert) + " Binary is :" + str(binary))

for i in range(len(binary) - 1, -1, -1):
    if binary[i] == 1:
        leds.on(i)
    else:
        leds.off(i)
示例#16
0
##
# 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()
示例#17
0
class Light():
    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()

    def calibrate_light(self):
        ''' Return a dictionary of lux and array value for GPIO Pins'''

        self.leds.on()
        lux_dictionary = dict()
        start_level = 120
        end_level = 180
        interval = 2

        for i in range(start_level, end_level, interval):
            binary = map(int, tuple(format(i, '08b'))[::-1])
            print(binary)
            self.leds.value = binary
            sleep(.3)
            (full1, ir1) = self.sensor.get_full_luminosity()
            (full2, ir2) = self.sensor.get_full_luminosity()
            (full3, ir3) = self.sensor.get_full_luminosity()
            full4 = (full1 + full2 + full3) / 3
            ir4 = (ir1 + ir2 + ir3) / 3
            lux = int(self.sensor.calculate_lux(full4, ir4))
            if lux not in lux_dictionary:

                lux_dictionary[lux] = binary
                print 'lux {} \xef\xbc\x9a {}'.format(lux, lux_dictionary[lux])
            else:
                print 'lux value already exist'

        # self.leds.on()
        # lux_dictionary = dict()
        # start_level = 100.0
        # end_level = 250.0
        # interval = 1.0
        # for i in range(int(start_level*10), int(end_level*10), int(interval*10)):

        #     self.leds.value = tuple(floatToBinary(float(i)/10.0))
        #     #print(floatToBinary(float(i)/10.0))

        #     sleep(.5)
        #     (full1, ir1) = self.sensor.get_full_luminosity()
        #     (full2, ir2) = self.sensor.get_full_luminosity()
        #     (full3, ir3) = self.sensor.get_full_luminosity()
        #     full4 = (full1+full2+full3)/3
        #     ir4 = (ir1+ir2+ir3)/3
        #     lux = int(self.sensor.calculate_lux(full4, ir4))
        #     if lux not in lux_dictionary:

        #         lux_dictionary[lux] = floatToBinary(float(i)/10.0)
        #         print 'lux {} \xef\xbc\x9a {}'.format(lux,
        #                 lux_dictionary[lux])
        #     else:
        #         print 'lux value already exist'

        return lux_dictionary

    def run_test(self):
        start_level = 150.0
        end_level = 170.0
        interval = 0.5
        for i in range(int(start_level * 10), int(end_level * 10),
                       int(interval * 10)):
            print(floatToBinary(float(i) / 10.0))
            self.leds.value = tuple(floatToBinary(float(i) / 10.0))
            sleep(.5)