import datetime import pygame import time import sys import RPi.GPIO as GPIO # Import Raspberry Pi GPIO library from time import sleep # Import the sleep function from the time module GPIO.setwarnings(False) # Ignore warning for now GPIO.setmode(GPIO.BOARD) # Use physical pin numbering GPIO.setup(7, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(11, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(12, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(13, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(15, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(16, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(18, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(22, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(29, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(31, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(32, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(33, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(35, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(36, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(37, GPIO.OUT, initial=GPIO.LOW) #BULB_1 def bulb1Red(): GPIO.output(7, GPIO.HIGH) GPIO.output(11, GPIO.LOW) GPIO.output(12, GPIO.LOW) def bulb1Green(): GPIO.output(7, GPIO.LOW) GPIO.output(11, GPIO.HIGH) GPIO.output(12, GPIO.LOW) def bulb1Blue(): GPIO.output(7, GPIO.LOW) GPIO.output(11, GPIO.LOW) GPIO.output(12, GPIO.HIGH) def bulb1White(): GPIO.output(7, GPIO.HIGH) GPIO.output(11, GPIO.HIGH) GPIO.output(12, GPIO.HIGH) #BULB_2 def bulb2Red(): GPIO.output(13, GPIO.HIGH) GPIO.output(15, GPIO.LOW) GPIO.output(16, GPIO.LOW) def bulb2Green(): GPIO.output(13, GPIO.LOW) GPIO.output(15, GPIO.HIGH) GPIO.output(16, GPIO.LOW) def bulb2Blue(): GPIO.output(13, GPIO.LOW) GPIO.output(15, GPIO.LOW) GPIO.output(16, GPIO.HIGH) def bulb2White(): GPIO.output(13, GPIO.HIGH) GPIO.output(15, GPIO.HIGH) GPIO.output(16, GPIO.HIGH) #BULB_3 def bulb3Red(): GPIO.output(18, GPIO.HIGH) GPIO.output(22, GPIO.LOW) GPIO.output(29, GPIO.LOW) def bulb3Green(): GPIO.output(18, GPIO.LOW) GPIO.output(22, GPIO.HIGH) GPIO.output(29, GPIO.LOW) def bulb3Blue(): GPIO.output(18, GPIO.LOW) GPIO.output(22, GPIO.LOW) GPIO.output(29, GPIO.HIGH) def bulb3White(): GPIO.output(18, GPIO.HIGH) GPIO.output(22, GPIO.HIGH) GPIO.output(29, GPIO.HIGH) #BULB_4 def bulb4Red(): GPIO.output(31, GPIO.HIGH) GPIO.output(32, GPIO.LOW) GPIO.output(33, GPIO.LOW) def bulb4Green(): GPIO.output(31, GPIO.LOW) GPIO.output(32, GPIO.HIGH) GPIO.output(33, GPIO.LOW) def bulb4Blue(): GPIO.output(31, GPIO.LOW) GPIO.output(32, GPIO.LOW) GPIO.output(33, GPIO.HIGH) def bulb4White(): GPIO.output(31, GPIO.HIGH) GPIO.output(32, GPIO.HIGH) GPIO.output(33, GPIO.HIGH) #BULB_5 def bulb5Red(): GPIO.output(35, GPIO.HIGH) GPIO.output(36, GPIO.LOW) GPIO.output(37, GPIO.LOW) def bulb5Green(): GPIO.output(35, GPIO.LOW) GPIO.output(36, GPIO.HIGH) GPIO.output(37, GPIO.LOW) def bulb5Blue(): GPIO.output(35, GPIO.LOW) GPIO.output(36, GPIO.LOW) GPIO.output(37, GPIO.HIGH) def bulb5White(): GPIO.output(35, GPIO.HIGH) GPIO.output(36, GPIO.HIGH) GPIO.output(37, GPIO.HIGH) white = (255,255,255) black = (0,0,0) red = (255,0,0,125) blue = (0,0,255) green = (0,100,0) color_of_5 = 0 color_of_3 = 0 color_of_2 = 0 color_of_1 = 0 gamedisplay = pygame.display.set_mode((415,265)) gamedisplay.fill(white) pygame.display.set_caption('Fibonacci Clock') num_list = [5,3,2,1,1] def hour_factors(d1): j=0 while(d1 != 0): if(d1 >= num_list[j]): d1 = d1-num_list[j] hr_factors.append(num_list[j]) j+=1 def minute_factors(d2): j = 0 while(d2 != 0): if(d2 >= num_list[j]): d2 = d2-num_list[j] min_factors.append(num_list[j]) j+=1 def assign_colors(): if (5 in hr_factors) and (5 in min_factors): color_of_5 = blue bulb5Blue() elif (5 in hr_factors): color_of_5 = red bulb5Red() elif (5 in min_factors): color_of_5 = green bulb5Green() else: color_of_5 = white bulb5White() if (3 in hr_factors) and (3 in min_factors): color_of_3 = blue bulb4Blue() elif (3 in hr_factors): color_of_3 = red bulb4Red() elif (3 in min_factors): color_of_3 = green bulb4Green() else: color_of_3 = white bulb4White() if (2 in hr_factors) and (2 in min_factors): color_of_2 = blue bulb3Blue() elif (2 in hr_factors): color_of_2 = red bulb3Red() elif (2 in min_factors): color_of_2 = green bulb3Green() else: color_of_2 = white bulb3White() if (1 in hr_factors) and (1 in min_factors): color_of_1 = blue bulb2Blue() elif (1 in hr_factors): color_of_1 = red bulb2Red() elif (1 in min_factors): color_of_1 = green bulb2Green() else: color_of_1 = white bulb2White() return color_of_1,color_of_11,color_of_2,color_of_3,color_of_5 while 1: t = datetime.datetime.now() hr = t.hour mn = t.minute if (hr==00) or (hr==12): color_of_11 = red hr = 12 bulb1Red() else: color_of_11 = white bulb1White() mn5 = mn%5 if (mn5 == 0): mn = mn/5 else: mn = mn-mn5 mn = mn/5 if(hr > 12): hr = hr-12 d1 = hr d2 = mn hr_factors = [] min_factors = [] hour_factors(d1) minute_factors(d2) color_of_1,color_of_11,color_of_2,color_of_3,color_of_5 = assign_colors() pygame.draw.rect(gamedisplay,black,[0,0,5,265]) pygame.draw.rect(gamedisplay,black,[5,0,415,5]) r2 = pygame.draw.rect(gamedisplay,color_of_2,[5,5,100,105]) pygame.draw.rect(gamedisplay,black,[105,5,5,105]) r1 = pygame.draw.rect(gamedisplay,color_of_1,[110,5,50,50]) pygame.draw.rect(gamedisplay,black,[110,55,50,5]) r11 = pygame.draw.rect(gamedisplay,color_of_11,[110,60,50,50]) pygame.draw.rect(gamedisplay,black,[160,5,5,265]) pygame.draw.rect(gamedisplay,black,[5,110,160,5]) r3=pygame.draw.rect(gamedisplay,color_of_3,[5,115,155,150]) pygame.draw.rect(gamedisplay,black,[5,260,415,5]) pygame.draw.rect(gamedisplay,black,[160,5,5,400]) r4 = pygame.draw.rect(gamedisplay,color_of_5,[165,5,250,255]) pygame.draw.rect(gamedisplay,black,[410,5,5,405]) pygame.display.update() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.display.quit() sys.exit()