📖 Scenario: You are programming a drone that must safely handle unexpected problems during flight. To keep the drone safe, you will create a simple system to check for failsafe conditions like low battery or lost GPS signal.
🎯 Goal: Build a small program that sets up drone status data, defines safety limits, checks for failsafe conditions, and prints the safety status.
📋 What You'll Learn
Create a dictionary called drone_status with keys 'battery', 'gps_signal', and 'altitude' with exact values 15, True, and 100 respectively
Create a variable called battery_threshold and set it to 20
Write a failsafe_checks dictionary that sets keys 'low_battery' and 'gps_lost' to True or False based on drone_status and battery_threshold
Print the failsafe_checks dictionary
💡 Why This Matters
🌍 Real World
Drones must constantly check their status to avoid crashes or damage. This project shows how to program simple safety checks.
💼 Career
Understanding how to write failsafe checks is important for drone software engineers and robotics programmers to ensure safe operation.
Progress0 / 4 steps
1
Set up the drone status data
Create a dictionary called drone_status with these exact entries: 'battery': 15, 'gps_signal': True, and 'altitude': 100
Drone Programming
Hint
Use curly braces {} to create the dictionary with the exact keys and values.
2
Define the battery threshold
Create a variable called battery_threshold and set it to 20
Drone Programming
Hint
Just assign the number 20 to the variable battery_threshold.
3
Check for failsafe conditions
Write a dictionary called failsafe_checks that creates keys 'low_battery' and 'gps_lost'. Set 'low_battery' to True if drone_status['battery'] is less than battery_threshold, else False. Set 'gps_lost' to True if drone_status['gps_signal'] is False, else False.
Drone Programming
Hint
Use a dictionary with keys and conditions for values. Use < and not operators.
4
Print the failsafe check results
Write print(failsafe_checks) to display the failsafe status dictionary
Drone Programming
Hint
Use the print function to show the dictionary on screen.
Practice
(1/5)
1. What is the main purpose of testing failsafe scenarios in drone programming?
easy
A. To add more features to the drone's camera
B. To improve the drone's speed and flight time
C. To ensure the drone handles problems safely and avoids crashes
D. To make the drone fly higher than usual
Solution
Step 1: Understand failsafe scenarios
Failsafe scenarios are tests to check how the drone reacts to problems like lost connection or low battery.
Step 2: Identify the main goal
The main goal is to keep the drone safe and avoid crashes during these problems.
Final Answer:
To ensure the drone handles problems safely and avoids crashes -> Option C
Quick Check:
Failsafe = safety first [OK]
Hint: Failsafe means safety during problems [OK]
Common Mistakes:
Confusing failsafe with performance improvements
Thinking failsafe adds new features
Assuming failsafe makes drone fly higher
2. Which of the following code snippets correctly simulates a low battery failsafe check in drone programming?
easy
A. if battery_level < 20:
initiate_landing()
B. if battery_level > 20:
initiate_landing()
C. if battery_level == 100:
initiate_landing()
D. if battery_level != 20:
initiate_landing()
Solution
Step 1: Understand the battery check condition
Low battery means battery level is less than a safe threshold, here 20%.
Step 2: Match condition to code
Only 'if battery_level < 20:' correctly checks for low battery to start landing.
Final Answer:
if battery_level < 20:
initiate_landing() -> Option A
Quick Check:
Low battery = less than 20% [OK]
Hint: Check if battery is below threshold to trigger landing [OK]
Common Mistakes:
Using greater than instead of less than
Checking for exact battery value
Using not equal instead of less than
3. Given the code below simulating a lost connection failsafe, what will be printed?
connection_status = "lost"
if connection_status == "lost":
print("Return to home activated")
else:
print("Continue flying")
medium
A. Return to home activated
B. Continue flying
C. No output
D. SyntaxError
Solution
Step 1: Check the value of connection_status
The variable connection_status is set to "lost".
Step 2: Evaluate the if condition
The condition 'connection_status == "lost"' is true, so the first print runs.
Final Answer:
Return to home activated -> Option A
Quick Check:
Lost connection triggers return home [OK]
Hint: Match variable value to if condition [OK]
Common Mistakes:
Confusing else output with if output
Assuming no output if condition true
Thinking code has syntax error
4. The following code is meant to trigger an emergency landing if the drone loses GPS signal, but it does not work as expected. What is the error?
gps_signal = False
if gps_signal = False:
emergency_landing()
medium
A. The variable gps_signal is not defined
B. Missing parentheses after emergency_landing
C. gps_signal should be True to trigger landing
D. Using assignment '=' instead of comparison '==' in the if condition
Solution
Step 1: Identify the if condition syntax
The code uses 'if gps_signal = False:', which assigns False instead of comparing.
Step 2: Correct the comparison operator
It should be 'if gps_signal == False:' to check the value properly.
Final Answer:
Using assignment '=' instead of comparison '==' in the if condition -> Option D
Quick Check:
Use '==' for comparison, not '=' [OK]
Hint: Use '==' to compare, '=' to assign [OK]
Common Mistakes:
Confusing '=' and '==' in conditions
Forgetting parentheses on function calls
Assuming variable is undefined
5. You want to test a failsafe scenario where the drone must land immediately if either the battery is below 15% or the GPS signal is lost. Which code correctly implements this logic?
battery_level = 10
gps_signal = False
# Choose the correct condition to trigger landing
if _____:
emergency_landing()
hard
A. battery_level < 15 and gps_signal == False
B. battery_level < 15 or gps_signal == False
C. battery_level > 15 or gps_signal == True
D. battery_level > 15 and gps_signal == True
Solution
Step 1: Understand the condition requirements
The drone should land if battery is below 15% OR GPS signal is lost (False).
Step 2: Match logical operator to condition
Use 'or' because either condition triggers landing, so 'battery_level < 15 or gps_signal == False'.
Final Answer:
battery_level < 15 or gps_signal == False -> Option B
Quick Check:
Use OR for either condition triggers landing [OK]
Hint: Use OR to combine multiple failsafe triggers [OK]
Common Mistakes:
Using AND instead of OR
Checking for battery > 15 instead of < 15
Confusing GPS signal True/False meaning
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.