Challenge - 5 Problems
Reaction Time Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate1:30remaining
What is the output of this reaction time measurement snippet?
Consider this Python code snippet for a reaction time game on Raspberry Pi. What will it print after the user presses Enter?
Raspberry Pi
import time start = time.time() input('Press Enter as fast as you can!') end = time.time() print(f'Reaction time: {end - start:.3f} seconds')
Attempts:
2 left
💡 Hint
The printed time is the difference between when the prompt appears and when Enter is pressed.
✗ Incorrect
The code measures the time before and after the user presses Enter, then prints the difference as reaction time. The exact number depends on user speed, but it will be a positive float, not zero or a syntax error.
🧠 Conceptual
intermediate1:00remaining
Which Raspberry Pi component is best for detecting a physical button press in a reaction time game?
You want to measure reaction time using a physical button connected to your Raspberry Pi. Which component should you use to detect the button press?
Attempts:
2 left
💡 Hint
Think about how to read a simple on/off signal from a button.
✗ Incorrect
GPIO pins configured as inputs with pull-up or pull-down resistors are used to detect button presses. PWM, I2C, and SPI are for other purposes.
🔧 Debug
advanced2:00remaining
Why does this reaction time game code never detect the button press?
This code is supposed to detect a button press on GPIO pin 17 and print reaction time, but it never prints anything. What is the problem?
Raspberry Pi
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(17, GPIO.IN) start = time.time() while True: if GPIO.input(17) == GPIO.HIGH: end = time.time() print(f'Reaction time: {end - start:.3f} seconds') break
Attempts:
2 left
💡 Hint
Check how the button wiring affects the signal level when pressed.
✗ Incorrect
If the button connects the pin to ground when pressed, the input reads LOW, so checking for HIGH never detects the press.
📝 Syntax
advanced1:30remaining
Which option fixes the syntax error in this Raspberry Pi reaction time code?
This code snippet has a syntax error. Choose the corrected version.
Raspberry Pi
import time start = time.time() input('Press Enter') end = time.time() print(f'Reaction time: {end - start:.3f seconds')
Attempts:
2 left
💡 Hint
Check the placement of the closing brace and parentheses in the f-string.
✗ Incorrect
The original code misses a closing brace '}' before ' seconds'. Option A correctly closes the expression inside the braces.
🚀 Application
expert3:00remaining
How to implement a non-blocking reaction time game loop on Raspberry Pi?
You want to create a reaction time game that waits a random time, then lights an LED and measures how fast the user presses a button. The program should not freeze while waiting. Which approach is best?
Attempts:
2 left
💡 Hint
Think about how to keep the program responsive while waiting.
✗ Incorrect
Using a loop that checks the current time and button state repeatedly with short sleeps allows the program to stay responsive and measure reaction time accurately.