예제 #1
0
from PyGlow import PyGlow
from time import sleep
import os
pyglow = PyGlow()
pyglow.all(0)

for x in range(0, 15):
    pyglow.color("orange", brightness=255, speed=500, pulse=True)
    sleep(1)

os.system("sudo python /home/pi/pyglow/tempglow.py")
#os.system("sudo python /home/pi/pyglow/weatherpyglow.py")    #Set either of these, depending on which type of pyglow lamp you want to reset to
예제 #2
0
from PyGlow import PyGlow
from time import sleep

#b = 100
#s = 200

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

pyglow.all(0)

while True:
#	pyglow.led(1)
	pyglow.color("red",    100)
	pyglow.color("orange",   0)
	pyglow.color("yellow",   0)
	pyglow.color("green",    0)
	pyglow.color("blue",     0)
	pyglow.color("white",    0)
	sleep(0.1)
	pyglow.color("red",      0)
        pyglow.color("orange",   0)
        pyglow.color("yellow",   0)
        pyglow.color("green",    0)
        pyglow.color("blue",     0)
        pyglow.color("white",    0)
        sleep(0.1)
	pyglow.color("red",    100)
        pyglow.color("orange", 100)
        pyglow.color("yellow",   0)
        pyglow.color("green",    0)
예제 #3
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
예제 #4
0
# 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"

myPiGlow.all(0)

myPiGlow.update_leds()
예제 #5
0
from PyGlow import PyGlow
from time import sleep

pyglow = PyGlow()

pyglow.all(0)

while True:
# blue > purple > red
	pyglow.color("blue", 100)
	pyglow.color("red",  0)
	sleep(0.1)
	pyglow.color("red", 10)
	pyglow.color("blue", 90)
	sleep(0.1)
	pyglow.color("red", 20)
	pyglow.color("blue", 80)
	sleep(0.1)
	pyglow.color("red", 30)
	pyglow.color("blue", 70)
	sleep(0.1)
	pyglow.color("red", 40)
	pyglow.color("blue", 60)
	sleep(0.1)
	pyglow.color("red", 50)
	pyglow.color("blue", 50)
	sleep(0.1)
	pyglow.color("red", 60)
	pyglow.color("blue", 40)
   	sleep(0.1)
	pyglow.color("red", 70)
예제 #6
0
temp_f = parsed_json['current_observation']['temp_f']
print "Current temperature in %s is: %s" % (location, temp_f)
f.close()

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)

temperature=int(temp_f)
if temperature < 0:
   pyglow.color("blue", 255)
elif temperature < 10:
     pyglow.color("blue", 255)
     pyglow.color("green", 200)
elif temperature < 20:
     pyglow.color("green", 255)
     pyglow.color("blue", 255)
     pyglow.color("orange", 150)
     pyglow.color("yellow", 255)
elif temperature < 32:
     pyglow.color("green", 255)
     pyglow.color("blue", 120)
     pyglow.color("orange", 150)
     pyglow.color("yellow", 255)
elif temperature < 40:
     pyglow.color("green", 255)
예제 #7
0
from PyGlow import PyGlow
from time import sleep
import urllib

pyglow = PyGlow()  #Setup piglow and turn all off
pyglow.all(0)

yahoo_result = pywapi.get_weather_from_yahoo(
    'FIXX0031'
)  #get weather info from yahoo. Weather codes for city: https://www.edg3.uk/snippets/weather-location-codes/

condition = string.lower(
    yahoo_result['condition']['text']
)  #condition call. This gets a text readout of the current conditions
if condition in ["partly cloudy", "mostly cloudy", "cloudy"]:
    pyglow.color("white", 150)

elif condition in [
        "mixed rain and snow", "mixed snow and sleet", "freezing drizzle",
        "freezing rain", "snow flurries", "light snow showers", "blowing snow",
        "snow", "hail", "sleet", "dust", "heavy snow",
        "scattered snow showers", "snow showers", "light snow",
        "light snow grains"
]:
    pyglow.color("yellow", 150)

elif condition in [
        "severe thunderstorms", "thunderstorms", "isolated thunderstorms",
        "scattered thunderstorms", "thundershowers"
]:
    pyglow.color("red", brightness=150, speed=4000, pulse=True)
예제 #8
0
파일: test.py 프로젝트: Vrolki/PyGlow
#
# Python module to control Pimoronis PiGlow
# [http://shop.pimoroni.com/products/piglow]
#
# * test.py - set brightness for each color individually
#
#####


from PyGlow import PyGlow


pyglow = PyGlow()

val = input("White: ")
pyglow.color("white", val)

val = input("Blue: ")
pyglow.color("blue", val)

val = input("Green: ")
pyglow.color("green", val)

val = input("Yellow: ")
pyglow.color("yellow", val)

val = input("Orange: ")
pyglow.color("orange", val)

val = input("Red: ")
pyglow.color("red", val)
예제 #9
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)
예제 #10
0
from PyGlow import PyGlow
from time import sleep

myPiGlow = PyGlow()

myPiGlow.all(0)

while True:
   myPiGlow.color("white",90)
   sleep(1)
   myPiGlow.color("white",0)
   sleep(1)
   myPiGlow.color("blue",90)
   sleep(1)
   myPiGlow.color("blue",0)
   sleep(1)
   myPiGlow.color("green",90)
   sleep(1)
   myPiGlow.color("green",0)
   sleep(1)
   myPiGlow.color("yellow",90)
   sleep(1)
   myPiGlow.color("yellow",0)
   sleep(1)
   myPiGlow.color("orange",90)
   sleep(1)
   myPiGlow.color("orange",0)
   sleep(1)
   myPiGlow.color("red",90)
   sleep(1)
   myPiGlow.color("red",0)
예제 #11
0
from PyGlow import PyGlow
from time import sleep

pyglow = PyGlow()

pyglow.all(0)

count = 0
while (count < 10):

	pyglow.color("white", 0)
	pyglow.color("blue", 110)
	sleep(0.1)

        pyglow.color("blue", 0)
        pyglow.color("green", 100)
        sleep(0.1)

	pyglow.color("green", 0)
	pyglow.color("yellow", 100)
	sleep(0.1)

        pyglow.color("yellow", 0)
        pyglow.color("orange", 100)
        sleep(0.2)

        pyglow.color("orange", 0)
        pyglow.color("red", 100)
        sleep(0.3)

예제 #12
0
#PyGlow test

from PyGlow import PyGlow
from time import sleep

pyglow = PyGlow()

pyglow.all(0)

while True:
	pyglow.color("blue", 100)
	sleep(1)
	pyglow.color("blue", 0)
	pyglow.color("red", 100)
	sleep(1)
	pyglow.color("red", 0)

pyglow.update_leds()
예제 #13
0
파일: test.py 프로젝트: s-boardman/PyGlow
#
#####
#
# Python module to control Pimoronis PiGlow
# [http://shop.pimoroni.com/products/piglow]
#
# * test.py - set brightness for each color individually
#
#####

from PyGlow import PyGlow

pyglow = PyGlow()

val = input("White: ")
pyglow.color("white", int(val))

val = input("Blue: ")
pyglow.color("blue", int(val))

val = input("Green: ")
pyglow.color("green", int(val))

val = input("Yellow: ")
pyglow.color("yellow", int(val))

val = input("Orange: ")
pyglow.color("orange", int(val))

val = input("Red: ")
pyglow.color("red", int(val))
예제 #14
0
파일: ab.py 프로젝트: Jameshooper/Nlights
from bs4 import BeautifulSoup
import urllib2
import re
from PyGlow import PyGlow

pyglow = PyGlow()
pyglow.all(0)

url="http://www.aurora-service.eu/aurora-forecast/"
page=urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
kp = find_string = soup.body.findAll(text=re.compile('Kp'), limit=2)
#rank = soup.find("div", {"class": "rank-box"}).h6.contents
kpstring = str(kp)
kpstring = kpstring[34:]
kpstring = kpstring[:5]
kpvalue = float(kpstring)
print kpvalue
if kpvalue >=2:
	#pyglow.all(0)
	pyglow.color("green", 200)
elif (kpvalue <2) and (kpvalue > 1):
	#pyglow.all(0)
	pyglow.color("red", 200)
		
elif kpvalue <=1:
	pyglow.color("yellow", 200)


예제 #15
0
from PyGlow import PyGlow
from time import sleep

pyglow = PyGlow()

pyglow.all(0)

count = 0
while (count < 5):
	pyglow.color("white", 60)
	sleep(0.1)
	pyglow.color("white", 	0)
	pyglow.color("blue",  100)
	sleep(0.1)
	pyglow.color("blue", 	0)
	pyglow.color("green", 100)
	sleep(0.1)
	pyglow.color("green", 	0)
	pyglow.color("yellow",100)
	sleep(0.1)
	pyglow.color("yellow",  0)
        pyglow.color("orange",100)
        sleep(0.1)
	pyglow.color("orange",  0)
        pyglow.color("red",   100)
        sleep(0.1)
	
	pyglow.color("white", 50)
	sleep(0.1)
	pyglow.color("white",   0)
	pyglow.color("blue",  100)
예제 #16
0
#PyGlow test

from PyGlow import PyGlow
from time import sleep

pyglow = PyGlow()

pyglow.all(0)

while True:
    pyglow.color("green", 0)
    pyglow.color("red", 100)
    pyglow.color("yellow", 100)
    sleep(1)
    pyglow.color("green", 100)
    pyglow.color("red", 0)
    pyglow.color("yellow", 100)
    sleep(1)
    pyglow.color("green", 100)
    pyglow.color("red", 100)
    pyglow.color("yellow", 0)
    sleep(1)

pyglow.update_leds()
예제 #17
0
from PyGlow import PyGlow
from time import sleep

pyglow = PyGlow()

pyglow.all(0)

count = 0
while (count < 5):
    pyglow.color("white", 60)
    sleep(0.1)
    pyglow.color("white", 0)
    pyglow.color("blue", 100)
    sleep(0.1)
    pyglow.color("blue", 0)
    pyglow.color("green", 100)
    sleep(0.1)
    pyglow.color("green", 0)
    pyglow.color("yellow", 100)
    sleep(0.1)
    pyglow.color("yellow", 0)
    pyglow.color("orange", 100)
    sleep(0.1)
    pyglow.color("orange", 0)
    pyglow.color("red", 100)
    sleep(0.1)

    pyglow.color("white", 50)
    sleep(0.1)
    pyglow.color("white", 0)
    pyglow.color("blue", 100)
예제 #18
0
#
#####

from PyGlow import PyGlow
from time import sleep
import psutil

pyglow = PyGlow()

while True:

    cpu = psutil.cpu_percent()
    pyglow.all(0)

    if cpu < 5:
        pyglow.color("white", 20)
    elif cpu < 20:
        pyglow.color("white", 20)
        pyglow.color("blue", 20)
    elif cpu < 40:
        pyglow.color("white", 20)
        pyglow.color("blue", 20)
        pyglow.color("green", 20)
    elif cpu < 60:
        pyglow.color("white", 20)
        pyglow.color("blue", 20)
        pyglow.color("green", 20)
        pyglow.color("yellow", 20)
    elif cpu < 80:
        pyglow.color("white", 20)
        pyglow.color("blue", 20)
예제 #19
0
        for led_number in sorted(armConfig[key].iterkeys()):
            pyglow.led(
                led_number,
                led_brightness if armConfig[key][led_number] == "1" else 0)


while True:
    now = datetime.now()
    hour = now.hour

    if show12hr == 1 and now.hour > 12:
        hour -= 12

    # Check if current hour is different and set ready to flash hour
    if hour_current != hour:
        hour_count, hour_current = hour, hour

    turn_on_off_led(hour, now.minute, now.second)

    # Flash the white leds for the hour
    if hour_count != 0:
        sleep(0.5)
        if hour_flash == 1:
            pyglow.color("white", led_brightness)
        if hour_flash == 2:
            pyglow.all(led_brightness)
        sleep(0.5)
        hour_count -= 1
    else:
        sleep(0.1)
예제 #20
0
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)
elif temperature < 0:
    pyglow.color("green", 255)
    pyglow.color("blue", 120)
    pyglow.color("orange", 150)
    pyglow.color("yellow", 255)
elif temperature < 5:
    pyglow.color("green", 255)
예제 #21
0
from PyGlow import PyGlow
from time import sleep

pyglow = PyGlow()

pyglow.all(0)

while True:
    # blue > purple > red
    pyglow.color("blue", 100)
    pyglow.color("red", 0)
    sleep(0.1)
    pyglow.color("red", 10)
    pyglow.color("blue", 90)
    sleep(0.1)
    pyglow.color("red", 20)
    pyglow.color("blue", 80)
    sleep(0.1)
    pyglow.color("red", 30)
    pyglow.color("blue", 70)
    sleep(0.1)
    pyglow.color("red", 40)
    pyglow.color("blue", 60)
    sleep(0.1)
    pyglow.color("red", 50)
    pyglow.color("blue", 50)
    sleep(0.1)
    pyglow.color("red", 60)
    pyglow.color("blue", 40)
    sleep(0.1)
    pyglow.color("red", 70)
예제 #22
0
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
예제 #23
0
from PyGlow import PyGlow
from time import sleep
import os
pyglow = PyGlow()
pyglow.all(0)


for x in range(0, 15):
   pyglow.color("red", brightness=255, speed=500, pulse=True)
   sleep(1)

os.system("sudo python /home/pi/pyglow/tempglow.py")
#os.system("sudo python /home/pi/pyglow/weatherpyglow.py")    #Set either of these, depending on which type of pyglow lamp you want to reset to

예제 #24
0
파일: cpu.py 프로젝트: Vrolki/PyGlow

from PyGlow import PyGlow
from time import sleep
import psutil


pyglow = PyGlow()

while True:

    cpu = psutil.cpu_percent()
    pyglow.all(0)

    if cpu < 5:
        pyglow.color("white", 20)
    elif cpu < 20:
        pyglow.color("white", 20)
        pyglow.color("blue", 20)
    elif cpu < 40:
        pyglow.color("white", 20)
        pyglow.color("blue", 20)
        pyglow.color("green", 20)
    elif cpu < 60:
        pyglow.color("white", 20)
        pyglow.color("blue", 20)
        pyglow.color("green", 20)
        pyglow.color("yellow", 20)
    elif cpu < 80:
        pyglow.color("white", 20)
        pyglow.color("blue", 20)
예제 #25
0
파일: clock.py 프로젝트: Vrolki/PyGlow
    if armtop == "h":
        arm1 = list(binhour)
    elif armtop == "m":
        arm1 = list(binmin)
    else:
        arm1 = list(binsec)
    led01 = ledbrightness if arm1[5] == "1" else 0
    pyglow.led(1, led01)
    led02 = ledbrightness if arm1[4] == "1" else 0
    pyglow.led(2, led02)
    led03 = ledbrightness if arm1[3] == "1" else 0
    pyglow.led(3, led03)
    led04 = ledbrightness if arm1[2] == "1" else 0
    pyglow.led(4, led04)
    led05 = ledbrightness if arm1[1] == "1" else 0
    pyglow.led(5, led05)
    led06 = ledbrightness if arm1[0] == "1" else 0
    pyglow.led(6, led06)

    # Flash the white leds for the hour
    if hourcount != 0:
        sleep(0.5)
        if hourflash == 1:
            pyglow.color("white", ledbrightness)
        if hourflash == 2:
            pyglow.all(ledbrightness)
        sleep(0.5)
        hourcount = hourcount - 1
    else:
        sleep(0.1)
예제 #26
0
from PyGlow import PyGlow
from time import sleep
import os
pyglow = PyGlow()
pyglow.all(0)


for x in range(0, 15):
   pyglow.color("orange", brightness=255, speed=500, pulse=True)
   sleep(1)

os.system("sudo python /home/pi/pyglow/tempglow.py")
#os.system("sudo python /home/pi/pyglow/weatherpyglow.py")    #Set either of these, depending on which type of pyglow lamp you want to reset to

예제 #27
0
from PyGlow import PyGlow
from time import sleep
import os
pyglow = PyGlow()
pyglow.all(0)

for x in range(0, 15):
    pyglow.color("green", brightness=255, speed=500, pulse=True)
    sleep(1)

os.system("sudo python /home/pi/pyglow/tempglow.py")
#os.system("sudo python /home/pi/pyglow/weatherpyglow.py")    #Set either of these, depending on which type of pyglow lamp you want to reset to