Bird
Raised Fist0
Drone Programmingprogramming~10 mins

Battery failsafe in Drone Programming - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check if the battery level is below the critical threshold.

Drone Programming
if battery_level [1] critical_threshold:
    initiate_landing()
Drag options to blanks, or click blank then click option'
A>
B<
C==
D>=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '>' instead of '<' causes the failsafe to trigger incorrectly.
Using '==' only triggers when battery level equals threshold, missing lower levels.
2fill in blank
medium

Complete the code to reduce drone speed when battery is low.

Drone Programming
if battery_level [1] warning_threshold:
    speed = reduced_speed
Drag options to blanks, or click blank then click option'
A<=
B!=
C==
D>=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '>=' causes speed reduction when battery is high.
Using '!=' triggers speed change incorrectly.
3fill in blank
hard

Fix the error in the failsafe activation condition.

Drone Programming
if battery_level [1] critical_threshold and not is_charging:
    activate_failsafe()
Drag options to blanks, or click blank then click option'
A<
B>
C>=
D<=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '>=' triggers failsafe when battery is sufficient.
Using '>' or '>=' misses low battery cases.
4fill in blank
hard

Fill both blanks to create a dictionary of battery status for each drone.

Drone Programming
battery_status = {drone_id: [1] for drone_id in drone_list if battery_levels[drone_id] [2] warning_threshold}
Drag options to blanks, or click blank then click option'
Abattery_levels[drone_id]
B>
C<=
Ddrone_id
Attempts:
3 left
💡 Hint
Common Mistakes
Using '>' instead of '<=' includes drones with high battery.
Using 'drone_id' as value stores only IDs, not battery levels.
5fill in blank
hard

Fill all three blanks to create a failsafe report dictionary with drone ID, battery level, and status.

Drone Programming
failsafe_report = [1]: [2] for [3] in drones if drones[[3]]['battery'] < critical_threshold
Drag options to blanks, or click blank then click option'
Adrone_id
Bbattery_level
C<
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong variable name in the loop.
Using incorrect comparison operator.

Practice

(1/5)
1. What is the main purpose of a battery failsafe in drone programming?
easy
A. To prevent drone crashes by acting when battery is low
B. To increase the drone's speed automatically
C. To improve the camera quality during flight
D. To connect the drone to Wi-Fi networks

Solution

  1. Step 1: Understand the battery failsafe concept and identify the correct purpose

    The battery failsafe is designed to protect the drone from running out of power mid-flight. Preventing crashes by triggering safe actions like landing or returning home when battery is low is the main goal.
  2. Final Answer:

    To prevent drone crashes by acting when battery is low -> Option A
  3. Quick Check:

    Failsafe = prevent crashes [OK]
Hint: Failsafe triggers on low battery to avoid crashes [OK]
Common Mistakes:
  • Confusing failsafe with speed control
  • Thinking it improves camera quality
  • Assuming it manages Wi-Fi connections
2. Which of the following is the correct syntax to check if the battery level is below 20% in drone programming?
easy
A. if battery_level == 20:
B. if battery_level > 20:
C. if battery_level < 20:
D. if battery_level = 20:

Solution

  1. Step 1: Identify the comparison operator and confirm syntax for less than

    The symbol '<' means less than, so 'battery_level < 20' checks if battery is below 20%. Using a single '=' is assignment, '==' is equality check, but we want less than, so '<' is correct.
  2. Final Answer:

    if battery_level < 20: -> Option C
  3. Quick Check:

    Less than 20% check = if battery_level < 20 [OK]
Hint: Use '<' to check if battery is below threshold [OK]
Common Mistakes:
  • Using '=' instead of '<' for comparison
  • Using '>' which checks above threshold
  • Confusing '==' with less than operator
3. What will be the output of this drone battery check code snippet?
battery_level = 15
if battery_level < 20:
    action = 'Return to home'
else:
    action = 'Continue flying'
print(action)
medium
A. Continue flying
B. SyntaxError
C. No output
D. Return to home

Solution

  1. Step 1: Check battery_level value, condition, and determine action

    battery_level is 15, which is less than 20, so the condition is true. Since condition is true, action is set to 'Return to home'. The else block is skipped.
  2. Final Answer:

    Return to home -> Option D
  3. Quick Check:

    battery_level 15 < 20 triggers 'Return to home' [OK]
Hint: Check condition true or false to pick output [OK]
Common Mistakes:
  • Assuming else block runs when condition is true
  • Confusing '<' with '>' operator
  • Expecting syntax error from correct code
4. Identify the error in this battery failsafe code snippet:
if battery_level = 15:
    trigger_landing()
medium
A. Missing colon ':' after if statement
B. Using '=' instead of '==' in condition
C. Incorrect function name 'trigger_landing()'
D. battery_level should be a string

Solution

  1. Step 1: Check if statement syntax and confirm other elements

    The '=' sign is used for assignment, not comparison. For comparison, '==' is needed. The colon ':' is present, function name looks valid, and battery_level should be a number, not string.
  2. Final Answer:

    Using '=' instead of '==' in condition -> Option B
  3. Quick Check:

    Use '==' to compare values in if [OK]
Hint: Use '==' for comparison, '=' is assignment [OK]
Common Mistakes:
  • Confusing '=' with '==' in conditions
  • Ignoring missing colon errors
  • Assuming variable type must be string
5. You want your drone to automatically land if battery is below 15%, and return home if battery is between 15% and 25%. Which code snippet correctly implements this failsafe?
hard
A. if battery_level < 15: land() elif battery_level >= 15 and battery_level <= 25: return_home()
B. if battery_level <= 15: return_home() elif battery_level > 15 and battery_level < 25: land()
C. if battery_level > 15: land() elif battery_level < 25: return_home()
D. if battery_level == 15: land() else: return_home()

Solution

  1. Step 1: Analyze battery level conditions and match to code options

    Battery below 15% means battery_level < 15 triggers landing. Between 15% and 25% means battery_level >= 15 and battery_level <= 25 triggers return home.
    if battery_level < 15:
    land()
    elif battery_level >= 15 and battery_level <= 25:
    return_home() correctly uses conditions. Others mix conditions or reverse actions.
  2. Final Answer:

    if battery_level < 15: land() elif battery_level >= 15 and battery_level <= 25: return_home() -> Option A
  3. Quick Check:

    Correct ranges and actions match if battery_level < 15: land() elif battery_level >= 15 and battery_level <= 25: return_home() [OK]
Hint: Check ranges carefully and match actions exactly [OK]
Common Mistakes:
  • Swapping landing and return actions
  • Using wrong comparison operators
  • Not covering full battery range properly