Bird
Raised Fist0
Drone Programmingprogramming~20 mins

Arming and disarming sequence in Drone Programming - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Drone Arming Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of arming sequence with safety check
What is the output of this drone arming code snippet when the safety switch is off?
Drone Programming
safety_switch = False
armed = False
if safety_switch:
    armed = True
print('Armed' if armed else 'Disarmed')
ADisarmed
BArmed
CError: safety_switch undefined
DNone
Attempts:
2 left
💡 Hint
Check the condition that sets the armed state.
🧠 Conceptual
intermediate
2:00remaining
Understanding disarming conditions
Which condition below correctly disarms the drone in a typical sequence?
AIf battery level is below threshold, disarm immediately.
BIf throttle stick is at maximum, disarm immediately.
CIf GPS signal is strong, disarm immediately.
DIf safety switch is on, disarm immediately.
Attempts:
2 left
💡 Hint
Think about what safety-critical conditions require disarming.
🔧 Debug
advanced
2:00remaining
Identify the error in the arming code
What error does this code produce when run? armed = False safety_switch = True if safety_switch = True: armed = True print('Armed' if armed else 'Disarmed')
ANameError: name 'safety_switch' is not defined
BSyntaxError: invalid syntax
CTypeError: unsupported operand type(s)
DNo error, prints 'Armed'
Attempts:
2 left
💡 Hint
Check the if statement syntax carefully.
🚀 Application
advanced
2:00remaining
Number of steps in a safe arming sequence
How many distinct steps are typically required to safely arm a drone?
A1 step: Flip safety switch
B3 steps: Confirm safety switch, throttle low, and GPS lock
C4 steps: Confirm safety switch, throttle low, GPS lock, and battery check
D2 steps: Confirm safety switch and throttle low
Attempts:
2 left
💡 Hint
Consider all safety checks before arming.
❓ Predict Output
expert
3:00remaining
Output of complex arming/disarming logic
What is the output of this code? status = 'disarmed' safety_switch = True throttle = 0 battery = 15 GPS_lock = True if safety_switch and throttle == 0 and battery > 20 and GPS_lock: status = 'armed' elif battery <= 20: status = 'disarmed due to low battery' else: status = 'disarmed' print(status)
Drone Programming
status = 'disarmed'
safety_switch = True
throttle = 0
battery = 15
GPS_lock = True

if safety_switch and throttle == 0 and battery > 20 and GPS_lock:
    status = 'armed'
elif battery <= 20:
    status = 'disarmed due to low battery'
else:
    status = 'disarmed'

print(status)
AError: battery variable undefined
Barmed
Cdisarmed
Ddisarmed due to low battery
Attempts:
2 left
💡 Hint
Check the battery condition and order of conditions.

Practice

(1/5)
1. What does arming a drone do in the flight sequence?
easy
A. Prepares the drone's motors to start spinning for flight
B. Stops the drone's motors immediately
C. Turns off the drone's power completely
D. Calibrates the drone's sensors automatically

Solution

  1. Step 1: Understand the meaning of arming

    Arming means getting the drone ready to fly by enabling its motors to spin.
  2. Step 2: Differentiate arming from disarming

    Disarming stops the motors, so arming must be the opposite: preparing motors to start.
  3. Final Answer:

    Prepares the drone's motors to start spinning for flight -> Option A
  4. Quick Check:

    Arming = prepare motors [OK]
Hint: Arming means motors ready to spin, not stop [OK]
Common Mistakes:
  • Confusing arming with disarming
  • Thinking arming turns off power
  • Assuming arming calibrates sensors
2. Which of the following is the correct syntax to arm a drone using a function call in drone programming?
easy
A. armDrone{}
B. armDrone()
C. arm drone()
D. arm_drone[]

Solution

  1. Step 1: Identify correct function call syntax

    Function calls use the format functionName() with parentheses and no spaces.
  2. Step 2: Check each option

    armDrone() uses correct syntax: armDrone() with parentheses and no spaces.
  3. Final Answer:

    armDrone() -> Option B
  4. Quick Check:

    Function call = name() [OK]
Hint: Functions always use parentheses () to call [OK]
Common Mistakes:
  • Using brackets [] or braces {} instead of parentheses
  • Adding spaces inside function name
  • Missing parentheses in function call
3. Given the code snippet:
drone_state = {'armed': False}

def arm():
    if not drone_state['armed']:
        drone_state['armed'] = True
        return 'Drone armed'
    else:
        return 'Drone already armed'

print(arm())
print(arm())

What is the output?
medium
A. Drone already armed\nDrone armed
B. Drone armed\nDrone armed
C. Drone armed\nDrone already armed
D. Error: KeyError

Solution

  1. Step 1: Check initial drone state

    Initially, drone_state['armed'] is False, so first call to arm() sets it to True and returns 'Drone armed'.
  2. Step 2: Analyze second call to arm()

    Now drone_state['armed'] is True, so second call returns 'Drone already armed'.
  3. Final Answer:

    Drone armed\nDrone already armed -> Option C
  4. Quick Check:

    First arm sets True, second arm detects already armed [OK]
Hint: First call arms, second call detects armed state [OK]
Common Mistakes:
  • Assuming both calls arm the drone again
  • Confusing the boolean check logic
  • Expecting a KeyError due to dictionary access
4. The following code is intended to disarm the drone, but it causes an error:
drone_state = {'armed': True}

def disarm():
    if drone_state['armed'] = True:
        drone_state['armed'] = False
        return 'Drone disarmed'
    else:
        return 'Drone already disarmed'

print(disarm())

What is the error and how to fix it?
medium
A. KeyError: 'armed' key missing in drone_state
B. IndentationError: Incorrect indentation in function
C. TypeError: Cannot assign boolean to dictionary key
D. SyntaxError: Use '==' for comparison instead of '='

Solution

  1. Step 1: Identify the error in the if condition

    The code uses '=' which is assignment, not comparison. This causes a SyntaxError.
  2. Step 2: Correct the comparison operator

    Replace '=' with '==' to compare drone_state['armed'] to True.
  3. Final Answer:

    SyntaxError: Use '==' for comparison instead of '=' -> Option D
  4. Quick Check:

    Comparison needs '==' not '=' [OK]
Hint: Use '==' to compare values, '=' to assign [OK]
Common Mistakes:
  • Using '=' instead of '==' in conditions
  • Assuming dictionary key is missing
  • Confusing indentation errors with syntax errors
5. You want to write a function toggle_arm() that arms the drone if disarmed, and disarms if armed. Given drone_state = {'armed': False}, which code correctly implements this behavior?
hard
A. def toggle_arm(): drone_state['armed'] = not drone_state['armed'] return 'Drone armed' if drone_state['armed'] else 'Drone disarmed'
B. def toggle_arm(): if drone_state['armed'] == False: drone_state['armed'] = False return 'Drone disarmed' else: drone_state['armed'] = True return 'Drone armed'
C. def toggle_arm(): if not drone_state['armed']: drone_state['armed'] = False return 'Drone disarmed' else: drone_state['armed'] = True return 'Drone armed'
D. def toggle_arm(): drone_state['armed'] = True return 'Drone armed' drone_state['armed'] = False return 'Drone disarmed'

Solution

  1. Step 1: Understand toggle logic

    Toggle means switch state: if armed, disarm; if disarmed, arm.
  2. Step 2: Check each option's logic

    def toggle_arm(): drone_state['armed'] = not drone_state['armed'] return 'Drone armed' if drone_state['armed'] else 'Drone disarmed' uses 'not' to flip boolean and returns correct message based on new state.
  3. Final Answer:

    def toggle_arm(): drone_state['armed'] = not drone_state['armed'] return 'Drone armed' if drone_state['armed'] else 'Drone disarmed' -> Option A
  4. Quick Check:

    Toggle by flipping boolean with 'not' [OK]
Hint: Use 'not' to flip armed state quickly [OK]
Common Mistakes:
  • Not flipping the state correctly
  • Returning wrong message after toggle
  • Code after return statement ignored
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