import time
import machine
#import _thread
time.sleep(0.1) # Wait for USB to become ready


# define button pressed to false
button_pressed = False

# define which pins are used for each Led on board and set pins to output mode
led_red_1 = machine.Pin(14,machine.Pin.OUT)
led_yellow_1 = machine.Pin(13,machine.Pin.OUT)
led_green_1 = machine.Pin(12,machine.Pin.OUT)

led_red_2 = machine.Pin(17,machine.Pin.OUT)
led_yellow_2 = machine.Pin(18,machine.Pin.OUT)
led_green_2 = machine.Pin(19,machine.Pin.OUT)

#Define push buttons and buzzer and the pins they are attached to
push_button_blue = machine.Pin(16,machine.Pin.IN,machine.Pin.PULL_DOWN)
push_button_green = machine.Pin(15,machine.Pin.IN,machine.Pin.PULL_DOWN)
buzzer = machine.Pin(20,machine.Pin.OUT)

#define 7 segment displays
top_segment_A = machine.Pin(5,machine.Pin.OUT,value=1)
top_right_segment_B = machine.Pin(6,machine.Pin.OUT,value=1)
top_left_segment_F = machine.Pin(4,machine.Pin.OUT,value=1)
middle_segment_G = machine.Pin(3,machine.Pin.OUT,value=1)
bottom_right_segment_C = machine.Pin(0,machine.Pin.OUT,value=1)
bottom_left_segment_E = machine.Pin(2,machine.Pin.OUT,value=1)
bottom_segment_D = machine.Pin(1,machine.Pin.OUT,value=1)



def crossing_sequence():
    #segment order = [top,top left,top right, middle, bottom left, bottom right, bottom] digits =[1,2,3,4,5]
    digits =['1111111','0001000','1101101','0100010','0100100','1000101','0010100']

    for i in range(8):
        buzzer.value(1)
        time.sleep(0.5)
        buzzer.value(0)
        time.sleep(0.5)
    for i in range(7):
        number = digits[6-i]
        top_segment_A.value(int(number[0]))
        top_left_segment_F.value(int(number[1]))
        top_right_segment_B.value(int(number[2]))
        middle_segment_G.value(int(number[3]))
        bottom_left_segment_E.value(int(number[4]))
        bottom_right_segment_C.value(int(number[5]))
        bottom_segment_D.value(int(number[6]))
        buzzer.value(1)
        time.sleep(0.5)
        buzzer.value(0)
        time.sleep(0.5)
    button_pressed = False

def traffic_light_sequence():
    led_yellow_1.value(0)
    led_red_1.value(1)
    led_red_2.value(1)
    time.sleep(1)
    led_yellow_2.value(1)
    time.sleep(2)
    led_green_2.value(1)
    led_red_2.value(0)
    led_yellow_2.value(0)
    time.sleep(1)
    led_green_2.value(0)
    led_yellow_2.value(1)
    time.sleep(2)
    led_yellow_2.value(0)
    led_red_2.value(1)
    time.sleep(1)
    led_yellow_1.value(1)
    time.sleep(2)
    led_red_1.value(0)
    led_yellow_1.value(0)
    led_green_1(1)
    time.sleep(1)
    led_yellow_1.value(1)
    led_green_1.value(0)
    time.sleep(2)

while True:
    if push_button_green.value() == 1 or push_button_blue.value()==1:
        button_pressed = True
    
    if button_pressed == True:
       led_red_1.value(1)
       led_red_2.value(1)
       led_yellow_1(0) 
       crossing_sequence()
       button_pressed=False

    #Traffic light sequence
    traffic_light_sequence()










######################################################################
#button_pressed = False

#while True:
#    if push_button_1.value() == 1 or push_button_2.value()==1:
#        button_pressed = True
#    time.sleep(0.1)
#
#    if button_pressed == True:
#        for i in range(10):
#            buzzer.value(1)
#            time.sleep(0.2)
#            buzzer.value(0)
#            time.sleep(0.2)
#        button_pressed = False
#######################################################################

##############################################################################
#Code to run if button has been pressed to act as pedestrian crossing sequence
    #if button_pressed == True:
    #    led_red_1.value(1)
    #    led_red_2.value(1)
    #    for i in range(10):
    #        buzzer.value(1)
    #        time.sleep(0.2)
    #        buzzer.value(0)
    #        time.sleep(0.2)
    #global button_pressed
    #button_pressed = False
    ###############################################################################

#############################################################################
#global button_pressed = False

#define function to be run in new thread to check if a button has been pressed 
#def button_reader_thread():
#    global button_pressed
#    while True:
#        if push_button_1.value()==1 or push_button_2.value() ==1:
#            button_pressed = True
#        time.sleep(0.1)
        
#_thread.start_new_thread(button_reader_thread, ())
############################################################################
$abcdeabcde151015202530354045505560fghijfghij
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT