added general pinout info at the top, changed the start pin to have an inhibitor latch
This commit is contained in:
		@@ -1,6 +1,49 @@
 | 
				
			|||||||
#!/usr/bin/env python
 | 
					#!/usr/bin/env python
 | 
				
			||||||
#coding=utf-8
 | 
					#coding=utf-8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					############################################
 | 
				
			||||||
 | 
					########### GENERAL INFORMATION ############
 | 
				
			||||||
 | 
					############################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Pinout for assembly: 
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#               3V3  (1) (2)  5V    
 | 
				
			||||||
 | 
					#      pin_shutdown  (3) (4)  5V    
 | 
				
			||||||
 | 
					#                 -  (5) (6)  GND   
 | 
				
			||||||
 | 
					#                 -  (7) (8)  -
 | 
				
			||||||
 | 
					#               GND  (9) (10) -
 | 
				
			||||||
 | 
					#                 - (11) (12) -
 | 
				
			||||||
 | 
					#                 - (13) (14) GND   
 | 
				
			||||||
 | 
					#                 - (15) (16) pin_blue
 | 
				
			||||||
 | 
					#               3V3 (17) (18) pin_green
 | 
				
			||||||
 | 
					#                 - (19) (20) GND   
 | 
				
			||||||
 | 
					#                 - (21) (22) pin_red
 | 
				
			||||||
 | 
					#                 - (23) (24) -
 | 
				
			||||||
 | 
					#               GND (25) (26) - 
 | 
				
			||||||
 | 
					#                 - (27) (28) - 
 | 
				
			||||||
 | 
					#                 - (29) (30) GND   
 | 
				
			||||||
 | 
					#         pin_error (31) (32) pin_start
 | 
				
			||||||
 | 
					#                 - (33) (34) GND   
 | 
				
			||||||
 | 
					#                 - (35) (36) -
 | 
				
			||||||
 | 
					#                 - (37) (38) -
 | 
				
			||||||
 | 
					#               GND (39) (40) -
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# default state of pins:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 32: pull up
 | 
				
			||||||
 | 
					# 31: pull down
 | 
				
			||||||
 | 
					# 3:  pull down
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# make sure leds are on pull-up default pins
 | 
				
			||||||
 | 
					# so when their state is undefined, the led 
 | 
				
			||||||
 | 
					# strips are switched off!
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 22: pull up
 | 
				
			||||||
 | 
					# 18: pull up
 | 
				
			||||||
 | 
					# 16: pull up
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
############################################
 | 
					############################################
 | 
				
			||||||
############# START OF IMPORTS #############
 | 
					############# START OF IMPORTS #############
 | 
				
			||||||
############################################
 | 
					############################################
 | 
				
			||||||
@@ -350,6 +393,8 @@ led_init()
 | 
				
			|||||||
game_running = False
 | 
					game_running = False
 | 
				
			||||||
game_just_started = True
 | 
					game_just_started = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pin_start_inhibit = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
############################################
 | 
					############################################
 | 
				
			||||||
########## END OF INITIALISATION ###########
 | 
					########## END OF INITIALISATION ###########
 | 
				
			||||||
############################################
 | 
					############################################
 | 
				
			||||||
@@ -406,8 +451,13 @@ while True:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            pygame.display.flip()
 | 
					            pygame.display.flip()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if GPIO.input(pin_start) == True and game_running == False: #wait for the user to press start button
 | 
					        if GPIO.input(pin_start) == True and pin_start_inhibit == False and game_running == False: #wait for the user to press start button
 | 
				
			||||||
                game_running = True
 | 
					                game_running = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                # set an inhibitor bit to stop the contact from possibly vibrating and
 | 
				
			||||||
 | 
					                # causing a stop of the game immediately after start
 | 
				
			||||||
 | 
					                pin_start_inhibit = True
 | 
				
			||||||
 | 
					                pin_start_inhibit_timer_start = pygame.time.get_ticks()
 | 
				
			||||||
                errors = 0
 | 
					                errors = 0
 | 
				
			||||||
                error_added = False
 | 
					                error_added = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -420,6 +470,13 @@ while True:
 | 
				
			|||||||
        if game_running == True: # game running
 | 
					        if game_running == True: # game running
 | 
				
			||||||
                print("Game running normally")
 | 
					                print("Game running normally")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                # if the start pin is inhibited and at least 3 seconds have passed,
 | 
				
			||||||
 | 
					                # stop blocking the pin
 | 
				
			||||||
 | 
					                if pin_start_inhibit == True:
 | 
				
			||||||
 | 
					                    if (pygame.time.get_ticks()-start_ticks)/1000 > 3:
 | 
				
			||||||
 | 
					                        pin_start_inhibit = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if GPIO.input(pin_error) == True:
 | 
					                if GPIO.input(pin_error) == True:
 | 
				
			||||||
                        if error_added == False:
 | 
					                        if error_added == False:
 | 
				
			||||||
                                errors += 1
 | 
					                                errors += 1
 | 
				
			||||||
@@ -446,7 +503,8 @@ while True:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                pygame.display.flip()
 | 
					                pygame.display.flip()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if GPIO.input(pin_start) != True:
 | 
					                # if the start input is gone and the start pin isnt inhibited
 | 
				
			||||||
 | 
					                if GPIO.input(pin_start) != True and pin_start_inhibit == False:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        change_led_colour(100,10,10)
 | 
					                        change_led_colour(100,10,10)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user