Bird
Raised Fist0
Drone Programmingprogramming~30 mins

Testing failsafe scenarios in Drone Programming - Mini Project: Build & Apply

Choose your learning style10 modes available
Testing failsafe scenarios
📖 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

  1. Step 1: Understand failsafe scenarios

    Failsafe scenarios are tests to check how the drone reacts to problems like lost connection or low battery.
  2. Step 2: Identify the main goal

    The main goal is to keep the drone safe and avoid crashes during these problems.
  3. Final Answer:

    To ensure the drone handles problems safely and avoids crashes -> Option C
  4. 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

  1. Step 1: Understand the battery check condition

    Low battery means battery level is less than a safe threshold, here 20%.
  2. Step 2: Match condition to code

    Only 'if battery_level < 20:' correctly checks for low battery to start landing.
  3. Final Answer:

    if battery_level < 20: initiate_landing() -> Option A
  4. 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

  1. Step 1: Check the value of connection_status

    The variable connection_status is set to "lost".
  2. Step 2: Evaluate the if condition

    The condition 'connection_status == "lost"' is true, so the first print runs.
  3. Final Answer:

    Return to home activated -> Option A
  4. 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

  1. Step 1: Identify the if condition syntax

    The code uses 'if gps_signal = False:', which assigns False instead of comparing.
  2. Step 2: Correct the comparison operator

    It should be 'if gps_signal == False:' to check the value properly.
  3. Final Answer:

    Using assignment '=' instead of comparison '==' in the if condition -> Option D
  4. 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

  1. Step 1: Understand the condition requirements

    The drone should land if battery is below 15% OR GPS signal is lost (False).
  2. Step 2: Match logical operator to condition

    Use 'or' because either condition triggers landing, so 'battery_level < 15 or gps_signal == False'.
  3. Final Answer:

    battery_level < 15 or gps_signal == False -> Option B
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard