コード例 #1
0
def main():
    print(' %5s | %6s | %6s' % ('Hour', 'Minute', 'Second'))

    pg = PyGlow(brightness=150, pulse=True, speed=1000, pulse_dir=BOTH)

    try:
        while True:
            print_time(pg)
    except KeyboardInterrupt:
        print('')
        pg.all(0)
コード例 #2
0
def pyglow_flash():

    pyglow = PyGlow()
    val = 200
    glowtime = 0.1

    pyglow.color('white', val)
    sleep(glowtime)
    pyglow.color('blue', val)
    sleep(glowtime)
    pyglow.color('green', val)
    sleep(glowtime)
    pyglow.color('yellow', val)
    sleep(glowtime)
    pyglow.color('orange', val)
    sleep(glowtime)
    pyglow.color('red', val)
    sleep(glowtime)
    pyglow.color('white', 0)
    pyglow.color('blue', 0)
    pyglow.color('green', 0)
    pyglow.color('yellow', 0)
    pyglow.color('orange', 0)
    pyglow.color('red', 0)
コード例 #3
0
# Description:                                                 #
# This program lights up the indivdual colors like in          #
# Spiral Colors 3, but counter clockwise instead.              #
# Then the speeed gradually increases. Then the program starts #
# over again.                                                  #
#                                                              #
# Requirements: PyGlow.py                                      #
#                                                              #
# Author: Paul Ryan                                            #
#                                                              #
################################################################

from PyGlow import PyGlow
from time import sleep

pyglow = PyGlow()

#Initialize
pyglow.all(0)

# Variables
led_brightness = 100

# sleep_speed = 0.25


# Functions
def red_leds_on(sleep_speed):
    sleep_speed = sleep_speed
    # Arm 1, Red
    pyglow.led(1, led_brightness)
コード例 #4
0
ファイル: betelnut10.py プロジェクト: rixwoodling/betelnuts
from PyGlow import PyGlow
from time import sleep

b = 100
s = 1000

pyglow = PyGlow(brightness=b, speed=s, pulse=True)

pyglow.all(0)

count = 0
while (count < 5):
    pyglow.all()

    count = count + 1

pyglow.all(0)
コード例 #5
0
#! /usr/bin/python

# newPiGlow.py
# Author: Darrell Little
# Version: 0.2
# Date: 03/04/2015

from PyGlow import PyGlow
from time import sleep

myPiGlow = PyGlow()

colors = ["white","blue","green","yellow","orange","red"]

c = 0

myPiGlow.all(0)

print "Beginning Colors"

while c < 5:
   for x in colors:
      print "Color: ",x
      myPiGlow.color(x,90)
      sleep(1)
      myPiGlow.color(x,0)
      sleep(1)
      c += 1

print "End Colors"
コード例 #6
0
def main():
    score1 = 0
    score2 = 0
    server = 1
    won = 0
    gameover = False
    effects_timer = 0
    effects_count = 0
    effects_colour = ''
    effect = False

    sound_timer = 0

    start = True
    
    start_time = time.time()
    
    ## Graphics class
    screen = Screen(constants.WIDTH, constants.HEIGHT)

    player1 = Paddle(screen, 3, constants.HEIGHT/2-1, constants.PLAYER1_COLOUR)
    player2 = Paddle(screen, constants.WIDTH-4, constants.HEIGHT/2-1, constants.PLAYER2_COLOUR)

    net = Net(screen, constants.NET_COLOUR)

    ball = Ball(screen, 5, 20, constants.BALL_COLOUR)

    pyglow = PyGlow()

    led = Led(5)

    net.draw()
	
    screen.draw_num(constants.SCORE1[0], constants.SCORE1[1], score1, constants.SCORE_COLOUR)
    screen.draw_num(constants.SCORE2[0], constants.SCORE2[1], score2, constants.SCORE_COLOUR)

    # Initial value
    ball.velocity = [10.0,10.0] #Roughly 8 seconds to cross screen?
    
    screen.draw_str(25, 20, 'START', constants.WHITE)
    screen.draw_str(25, 26, 'GAME!', constants.WHITE)

    Buzzer.startMusic()

    while (True):
	# Calculate time since last frame
        end_time = time.time()
        frame_time = end_time - start_time
        start_time = end_time

	# Pyglow effects
	if (effect):
	    effects_timer += frame_time
	    if (won == 0):
	    	if ((effects_timer)%0.4 > 0.2 and (effects_timer - frame_time)%0.4 <= 0.2):
	    	    pyglow.all(0)
		    effects_count += 1
	    	elif ((effects_timer)%0.4 <= 0.2 and (effects_timer - frame_time)%0.4 > 0.2):
	    	    pyglow.color(effects_colour, 150)
	    	if (effects_count >= 5):
		    effect = False
		    effects_count = 0
	    else:
		if (effects_timer < 0.2):
		    pyglow.color('white', 150)
		elif (effects_timer < 0.4):
		    pyglow.color('blue', 150)
		elif (effects_timer < 0.6):
		    pyglow.color('green', 150)
		elif (effects_timer < 0.8):
		    pyglow.color('yellow', 150)
		elif (effects_timer < 1.0):
		    pyglow.color('orange', 150)
		elif (effects_timer < 1.2):
		    pyglow.color('red', 150)
		elif (effects_timer < 1.4):
		    pyglow.all(0)
		    pyglow.color('white', 150)
		    effects_timer = 0

	sound_timer += frame_time
	if (sound_timer / 0.15 >= 1):
	    Buzzer.stopSound()
	    sound_timer = 0

	# Noise reduction for ADC
	value1 = 0
	value2 = 0
	for i in range(20):	
	    value1 += read_adc(CHAN2)
	    value2 += read_adc(CHAN3)
	value1 /= 20
	value2 /= 20

	# Button inputs
	if (won == 0):
	    # Hardware debounce
	    # Player1 Serve
	    if (GPIO.input(10) == 1):
                if (start):
                    start = False
    		    screen.draw_str(25, 20, 'START', constants.BACKGROUND_COLOUR)
    		    screen.draw_str(25, 26, 'GAME!', constants.BACKGROUND_COLOUR)
                    net.draw()
		    time.sleep(0.2)
	    	    ball.served = True
		    start_time = time.time()-0.01
		    continue
	    	if (server == 1):
	    	    ball.served = True
	    # Player1 Power up
	    if (GPIO.input(9) == 1 and not start):
	    	player1.power_up()

	    # Software debounce
	    # Player2 Serve
	    if (read_adc(CHAN4) < 100):
	    	if (server == 2):
	    	    ball.served = True
	    # Player2 Power up
	    if (debounce(1, 11) and not start):
	    	player2.power_up()
	
        # Lose condition
	if (ball.x >= screen.width-1):
            score1 += 1
            ball.served = False
	    # Draw new score
            screen.draw_num(constants.SCORE1[0], constants.SCORE1[1], score1, constants.SCORE_COLOUR)
    	    pyglow.color('blue', 150)
	    effects_timer = 0
	    effects_colour = 'blue'
	    effect = True
	    # Work out who's turn to serve
	    if ((score1+score2)%10 >= 5):
		server = 2
            	ball.x = player2.x-1
            	ball.y = player2.y + player2.size[1]/2
		ball.velocity = [-10, 10]
	    else:
            	ball.x = player1.x+1
            	ball.y = player1.y + player1.size[1]/2
		ball.velocity = [10, 10]
            
        # Lose condition
	if (ball.x <= 1):
            score2 += 1
            ball.served = False
	    # Draw new score
            screen.draw_num(constants.SCORE2[0], constants.SCORE2[1], score2, constants.SCORE_COLOUR)
    	    pyglow.color('red', 150)
	    effects_timer = 0
	    effects_colour = 'red'
	    effect = True
	    # Work out who's turn to serve
	    if ((score1+score2)%10 >= 5):
		server = 2
            	ball.x = player2.x-1
            	ball.y = player2.y + player2.size[1]/2
		ball.velocity = [-10, 10]
	    else:
            	ball.x = player1.x+1
            	ball.y = player1.y + player1.size[1]/2
		ball.velocity = [10, 10]
        
	# Has someone won?
        if (score1 >= 10):
	    won = 1
	elif (score2 >= 10):
	    won = 2

	# Move player paddles
	player1.move(value1)
	player2.move(value2)

	# Update paddles; if powerup
        player1.update(frame_time)
        player2.update(frame_time)

	# Move ball with paddle if not served
	if (not ball.served):
	    if (server == 1):
		ball.last_pos = [ball.roundx, ball.roundy]
		ball.y = player1.y + player1.size[1] / 2
		ball.x = player1.x + 1
		ball.roundx = int(round(ball.x))
        	ball.roundy = int(round(ball.y))
		if (ball.last_pos != [ball.roundx, ball.roundy]):
		    ball._moved = True

	    if (server == 2):
		ball.last_pos = [ball.roundx, ball.roundy]
		ball.y = player2.y + player2.size[1] / 2
		ball.x = player2.x - 1
		ball.roundx = int(round(ball.x))
        	ball.roundy = int(round(ball.y))
		if (ball.last_pos != [ball.roundx, ball.roundy]):
		    ball._moved = True

        # Collision Detection
        if (ball.roundx == player1.x):
	    # Random speed
	    rx = random.randint(5,15)
	    ry = random.randint(5,15)
	    # Different trajectories, depending on where the paddle was hit
            if (ball.roundy >= player1.y and ball.roundy <= player1.y + player1.size[1]/3):
		ball.velocity[1] = -ry
		ball.velocity[0] = rx
		Buzzer.hitSound()

	    if (ball.roundy >= player1.y + player1.size[1]/3 and ball.roundy <= player1.y + player1.size[1]/3*2):
                ball.velocity[1] = 0
		ball.velocity[0] = rx
		Buzzer.hitSound()

	    if (ball.roundy >= player1.y + player1.size[1]/3*2 and ball.roundy <= player1.y + player1.size[1]):
                ball.velocity[1] = ry
		ball.velocity[0] = rx
		Buzzer.hitSound()

	    # Redraw paddle
	    player1._moved = True

        if (ball.roundx == player2.x):
	    rx = random.randint(5,15)
	    ry = random.randint(5,15)
            if (ball.roundy >= player2.y and ball.roundy <= player2.y + player2.size[1]/3):
		ball.velocity[1] = -ry
		ball.velocity[0] = -rx
		Buzzer.hitSound()

	    if (ball.roundy >= player2.y + player2.size[1]/3 and ball.roundy <= player2.y + player2.size[1]/3*2):
                ball.velocity[1] = 0
		ball.velocity[0] = -rx
		Buzzer.hitSound()

	    if (ball.roundy >= player2.y + player2.size[1]/3*2 and ball.roundy <= player2.y + player2.size[1]):
                ball.velocity[1] = ry
		ball.velocity[0] = -rx
		Buzzer.hitSound()


	    # Redraw paddle
	    player2._moved = True
                
	# Update ball's position
        ball.update(frame_time)
	led.update(ball.x)
        
	# Draw ball
        ball.draw()
    
	# Draw player paddles
        player1.draw()
        player2.draw()

	# Draw net and score if ball was over them
	if (ball. last_pos != [ball.roundx, ball.roundy]):
            net.spot_draw(ball.last_pos[0], ball.last_pos[1])
            screen.spot_num(constants.SCORE1[0], constants.SCORE1[1], score1, constants.SCORE_COLOUR, ball.last_pos[0], ball.last_pos[1])
            screen.spot_num(constants.SCORE2[0], constants.SCORE2[1], score2, constants.SCORE_COLOUR, ball.last_pos[0], ball.last_pos[1])
        
	# Print winner once
	if (won > 0 and not gameover):
            screen.draw_str(17, 20, 'PLAYER ' + str(won), constants.WHITE)
	    screen.draw_str(25, 26, 'WINS!', constants.WHITE)
	    gameover = True
コード例 #7
0
ファイル: Pong.py プロジェクト: person0709/barebone_pong
def main():
    score1 = 9
    score2 = 0
    server = 1
    won = 0
    gameover = False
    effects_timer = 0
    effects_count = 0
    effects_colour = ''
    effect = False

    start = True

    start_time = time.time()

    ## Graphics class
    screen = Screen(constants.WIDTH, constants.HEIGHT)

    player1 = Paddle(screen, 3, constants.HEIGHT / 2 - 1,
                     constants.PLAYER1_COLOUR)
    player2 = Paddle(screen, constants.WIDTH - 4, constants.HEIGHT / 2 - 1,
                     constants.PLAYER2_COLOUR)

    net = Net(screen, constants.NET_COLOUR)

    ball = Ball(screen, 5, 20, constants.BALL_COLOUR)

    pyglow = PyGlow()

    led = Led(5)

    net.draw()

    screen.draw_num(constants.SCORE1[0], constants.SCORE1[1], score1,
                    constants.SCORE_COLOUR)
    screen.draw_num(constants.SCORE2[0], constants.SCORE2[1], score2,
                    constants.SCORE_COLOUR)

    # Initial value
    ball.velocity = [10.0, 10.0]  #Roughly 8 seconds to cross screen?

    screen.draw_str(25, 20, 'START', constants.WHITE)
    screen.draw_str(25, 26, 'GAME!', constants.WHITE)

    while (True):
        end_time = time.time()
        frame_time = end_time - start_time
        start_time = end_time

        if (effect):
            effects_timer += frame_time
            if ((effects_timer) % 0.4 > 0.2
                    and (effects_timer - frame_time) % 0.4 <= 0.2):
                pyglow.all(0)
                effects_count += 1
            elif ((effects_timer) % 0.4 <= 0.2
                  and (effects_timer - frame_time) % 0.4 > 0.2):
                pyglow.color(effects_colour, 150)
            if (effects_count >= 5):
                effect = False
                effects_count = 0

#noise reduction
        value1 = 0
        value2 = 0
        for i in range(20):
            value1 += read_i2c(CHAN2)
            value2 += read_i2c(CHAN3)

        value1 /= 20
        value2 /= 20

        if (won == 0):
            # Hardware debounce
            # Player1 Serve
            if (GPIO.input(10) == 1):
                if (start):
                    start = False
                    screen.draw_str(25, 20, 'START',
                                    constants.BACKGROUND_COLOUR)
                    screen.draw_str(25, 26, 'GAME!',
                                    constants.BACKGROUND_COLOUR)
                    net.draw()
                if (server == 1):
                    ball.served = True
            # Player1 Power up
            if (GPIO.input(9) == 1):
                player1.power_up()

            # Software debounce
            # Player2 Serve
            if (debounce(0, 17)):
                if (server == 2):
                    ball.served = True
            # Player2 Power up
            if (debounce(1, 11)):
                player2.power_up()

        # Lose condition
        if (ball.x >= screen.width - 1):
            score1 += 1
            ball.served = False
            screen.draw_num(constants.SCORE1[0], constants.SCORE1[1], score1,
                            constants.SCORE_COLOUR)
            pyglow.color('blue', 150)
            effects_timer = 0
            effects_colour = 'blue'
            effect = True
            if ((score1 + score2) % 10 >= 5):
                server = 2
                ball.x = player2.x - 1
                ball.y = player2.y + player2.size[1] / 2
                ball.velocity = [-10, 10]
            else:
                ball.x = player1.x + 1
                ball.y = player1.y + player1.size[1] / 2
                ball.velocity = [10, 10]

        if (ball.x <= 1):
            score2 += 1
            ball.served = False
            ball.x = player1.x + 1
            ball.y = player1.y + player1.size[1] / 2
            screen.draw_num(constants.SCORE2[0], constants.SCORE2[1], score2,
                            constants.SCORE_COLOUR)
            pyglow.color('red', 150)
            effects_timer = 0
            effects_colour = 'red'
            effect = True
            if ((score1 + score2) % 10 >= 5):
                server = 2
                ball.x = player2.x - 1
                ball.y = player2.y + player2.size[1] / 2
                ball.velocity = [-10, 10]
            else:
                ball.x = player1.x + 1
                ball.y = player1.y + player1.size[1] / 2
                ball.velocity = [10, 10]

        if (score1 >= 10):
            won = 1
        elif (score2 >= 10):
            won = 2

# TODO: Reduce noise; multiple reads before move?
        player1.move(value1)
        player2.move(value2)

        player1.update(frame_time)
        player2.update(frame_time)

        if (not ball.served):
            if (server == 1):
                ball.last_pos = [ball.roundx, ball.roundy]
                ball.y = player1.y + player1.size[1] / 2
                ball.x = player1.x + 1
                ball.roundx = int(round(ball.x))
                ball.roundy = int(round(ball.y))
                if (ball.last_pos != [ball.roundx, ball.roundy]):
                    ball._moved = True

            if (server == 2):
                ball.last_pos = [ball.roundx, ball.roundy]
                ball.y = player2.y + player2.size[1] / 2
                ball.x = player2.x - 1
                ball.roundx = int(round(ball.x))
                ball.roundy = int(round(ball.y))
                if (ball.last_pos != [ball.roundx, ball.roundy]):
                    ball._moved = True

        # Collision Detection
        if (ball.roundx == player1.x):
            rx = random.randint(5, 15)
            ry = random.randint(5, 15)
            if (ball.roundy >= player1.y
                    and ball.roundy <= player1.y + player1.size[1] / 3):
                ball.velocity[1] = -ry
                ball.velocity[0] = rx

            if (ball.roundy >= player1.y + player1.size[1] / 3
                    and ball.roundy <= player1.y + player1.size[1] / 3 * 2):
                ball.velocity[1] = 0
                ball.velocity[0] = rx

            if (ball.roundy >= player1.y + player1.size[1] / 3 * 2
                    and ball.roundy <= player1.y + player1.size[1]):
                ball.velocity[1] = ry
                ball.velocity[0] = rx

            # Redraw paddle
            player1._moved = True

        if (ball.roundx == player2.x):
            rx = random.randint(5, 15)
            ry = random.randint(5, 15)
            if (ball.roundy >= player2.y
                    and ball.roundy <= player2.y + player2.size[1] / 3):
                ball.velocity[1] = -ry
                ball.velocity[0] = -rx

            if (ball.roundy >= player2.y + player2.size[1] / 3
                    and ball.roundy <= player2.y + player2.size[1] / 3 * 2):
                ball.velocity[1] = 0
                ball.velocity[0] = -rx

            if (ball.roundy >= player2.y + player2.size[1] / 3 * 2
                    and ball.roundy <= player2.y + player2.size[1]):
                ball.velocity[1] = ry
                ball.velocity[0] = -rx

            # Redraw paddle
            player2._moved = True

        ball.update(frame_time)
        led.update(ball.x)

        ball.draw()

        player1.draw()
        player2.draw()

        net.spot_draw(ball.last_pos[0], ball.last_pos[1])
        screen.spot_num(constants.SCORE1[0], constants.SCORE1[1], score1,
                        constants.SCORE_COLOUR, ball.last_pos[0],
                        ball.last_pos[1])
        screen.spot_num(constants.SCORE2[0], constants.SCORE2[1], score2,
                        constants.SCORE_COLOUR, ball.last_pos[0],
                        ball.last_pos[1])

        if (won > 0 and not gameover):
            screen.draw_str(15, 20, 'PLAYER ' + str(won), constants.WHITE)
            screen.draw_str(25, 26, 'WINS!', constants.WHITE)
            gameover = True
コード例 #8
0
import pywapi
import string
from PyGlow import PyGlow
from time import sleep
import urllib

pyglow = PyGlow()  #Setup piglow and turn all off
pyglow.all(0)
pyglow.all(brightness=255, speed=500, pulse=True)
sleep(1)
pyglow.all(brightness=255, speed=500, pulse=True)
sleep(1)
pyglow.all(brightness=255, speed=500, pulse=True)
sleep(1)
yahoo_result = pywapi.get_weather_from_yahoo(
    'FIXX0031'
)  #This gets the weather from Yahoo. Set the code for your city: https://www.edg3.uk/snippets/weather-location-codes/
temp = yahoo_result['condition'][
    'temp']  # This gets only the temperature from the conditions
print temp
temperature = int(temp)
if temperature < -20:
    pyglow.color("blue", 255)
elif temperature < -10:
    pyglow.color("blue", 255)
    pyglow.color("green", 200)
elif temperature < -5:
    pyglow.color("green", 255)
    pyglow.color("blue", 255)
    pyglow.color("orange", 150)
    pyglow.color("yellow", 255)
コード例 #9
0
ファイル: leds.py プロジェクト: benjamingorman/terminal_pong
import RPi.GPIO as GPIO
import config
import logging
import time
import threading
if config.enable_pyglow:
    from PyGlow import PyGlow
    pyglow = PyGlow(brightness=config.pyglow_default_brightness)

led_io_ports = [5, 6, 12, 13, 16, 19, 20, 26]
current_led_showing = None


def setup():
    logging.info("leds: setup called.")
    GPIO.setmode(GPIO.BCM)  #use Broadcom GPIO names
    for port in led_io_ports:
        GPIO.setup(port, GPIO.OUT, initial=0)


def test():
    # flash each led for 0.5 secs
    """
    for port in led_io_ports:
        GPIO.output(port, 1)
        time.sleep(0.5)
        GPIO.output(port, 0)

    flash_pyglow()
    """
    play_pyglow_effect()
コード例 #10
0
ファイル: piglow.py プロジェクト: pramine/home
def slow_pulse_piglow(color):
    piglow = PyGlow(brightness=PULSE_BRIGHTNESS, pulse=True, speed=5000, pulse_dir=BOTH)
    piglow.set_leds(color).update_leds()
コード例 #11
0
ファイル: piglow.py プロジェクト: pramine/home
#first wing (1 of 3 wings), LEDs 1-6
FAN1 = range(1,7)
#second wing (2 of 3 wings), LEDs 13-18
FAN2 = range(13,19)
#third wing (3 of 3 wings), LEDs 7-12
FAN3 = range(7,13)

#LED INDEXES GROUPED BY COLOR
RED = [1, 7, 13]
ORANGE = [2, 8, 14]
YELLOW = [3, 9, 15]
GREEN = [4, 10, 16]
BLUE = [5, 11, 17]
WHITE = [6, 12, 18]

#reset the colors to zero brightness
piglow = PyGlow()
piglow.all(0)

#functions
def slow_pulse_piglow(color):
    piglow = PyGlow(brightness=PULSE_BRIGHTNESS, pulse=True, speed=5000, pulse_dir=BOTH)
    piglow.set_leds(color).update_leds()

try:
    while True:
        #cycle through the colors with a slow pulse
        map(slow_pulse_piglow, [RED, ORANGE, YELLOW, GREEN, BLUE, WHITE])
except:
    piglow.all(0)
コード例 #12
0
# PyGlow
#
#####
#
# Python module to control Pimoronis PiGlow
# [http://shop.pimoroni.com/products/piglow]
#
# * pulsetest.py - test the pulsing light feature
#
#####

from PyGlow import PyGlow

b = input("Maximum brightness: ")
s = input("Speed in milliseconds (try 1000 as a default): ")

pyglow = PyGlow(brightness=int(b), speed=int(s), pulse=True)

pyglow.all(0)

print("Pulsing 1 Light")
pyglow.led(1)

print("Pulsing Arms")
pyglow.arm(1)
pyglow.arm(2)
pyglow.arm(3)

print("Pulsing All")
pyglow.all()