📖 Scenario: You are programming a drone to switch between different flight modes. Each mode controls how the drone behaves in the air. The modes are Stabilize, AltHold, Loiter, and Auto. You will create a program that stores these modes, sets a current mode, checks if the mode is safe to fly, and then prints the current mode.
🎯 Goal: Build a simple program that manages drone flight modes by storing them, selecting one, checking its safety, and displaying the active mode.
📋 What You'll Learn
Create a dictionary with flight modes and their descriptions
Create a variable to hold the current flight mode
Write code to check if the current mode is safe to fly
Print the current flight mode and its description
💡 Why This Matters
🌍 Real World
Drones use flight modes to control how they fly. Programming these modes helps pilots and autonomous systems manage drone behavior safely and efficiently.
💼 Career
Understanding how to manage flight modes is important for drone software developers, robotics engineers, and anyone working with autonomous flying vehicles.
Progress0 / 4 steps
1
Create the flight modes dictionary
Create a dictionary called flight_modes with these exact entries: 'Stabilize': 'Manual control with self-leveling', 'AltHold': 'Hold altitude automatically', 'Loiter': 'Hold position and altitude', 'Auto': 'Fully autonomous flight'.
Drone Programming
Hint
Use curly braces {} to create a dictionary. Each entry has a key and a value separated by a colon.
2
Set the current flight mode
Create a variable called current_mode and set it to the string 'Loiter'.
Drone Programming
Hint
Assign the string 'Loiter' to the variable current_mode.
3
Check if the current mode is safe to fly
Create a variable called safe_modes as a list containing 'Stabilize', 'AltHold', and 'Loiter'. Then create a variable called is_safe that is True if current_mode is in safe_modes, otherwise False.
Drone Programming
Hint
Use a list to store safe modes. Use the in keyword to check membership.
4
Print the current flight mode and its description
Write a print statement that outputs: "Current mode: {current_mode} - {description}" where {current_mode} is the value of the variable current_mode and {description} is the description from flight_modes for that mode.
Drone Programming
Hint
Use an f-string to insert variables inside the print statement.
Practice
(1/5)
1. Which flight mode allows the pilot to manually control the drone's attitude and throttle without automatic stabilization?
easy
A. Auto mode
B. Stabilize mode
C. Loiter mode
D. AltHold mode
Solution
Step 1: Understand Stabilize mode function
Stabilize mode lets the pilot control the drone manually, with basic stabilization but no automatic altitude hold.
Step 2: Compare with other modes
AltHold holds altitude automatically, Loiter holds position, and Auto runs pre-programmed missions.
Final Answer:
Stabilize mode -> Option B
Quick Check:
Manual control = Stabilize mode [OK]
Hint: Manual flying without altitude hold is Stabilize mode [OK]
Common Mistakes:
Confusing AltHold with Stabilize
Thinking Loiter allows manual control
Assuming Auto mode is manual
2. Which of the following is the correct way to set the drone to AltHold mode in code?
easy
A. set_mode('Loiter')
B. set_mode('Auto')
C. set_mode('AltHold')
D. set_mode('Stabilize')
Solution
Step 1: Identify the function to set mode
The function set_mode() is used to change the drone's flight mode by passing the mode name as a string.
Step 2: Match the mode name for altitude hold
To hold altitude automatically, the mode name must be 'AltHold'.
Final Answer:
set_mode('AltHold') -> Option C
Quick Check:
Altitude hold mode = 'AltHold' string [OK]
Hint: Use exact mode name string 'AltHold' in set_mode() [OK]
Common Mistakes:
Using wrong mode string like 'Auto' or 'Loiter'
Misspelling mode names
Passing mode as variable instead of string
3. What will be the output of this code snippet?
mode = 'Loiter'
if mode == 'Stabilize':
print('Manual control active')
elif mode == 'AltHold':
print('Altitude hold active')
elif mode == 'Loiter':
print('Position hold active')
else:
print('Automatic mission active')
medium
A. Position hold active
B. Altitude hold active
C. Manual control active
D. Automatic mission active
Solution
Step 1: Check the value of mode variable
The variable mode is set to 'Loiter'.
Step 2: Follow the if-elif conditions
The code checks if mode equals 'Stabilize' or 'AltHold' first, which it does not. Then it checks if mode equals 'Loiter', which is true, so it prints 'Position hold active'.
Final Answer:
Position hold active -> Option A
Quick Check:
mode == 'Loiter' prints 'Position hold active' [OK]
Hint: Match variable value with if-elif conditions carefully [OK]
Common Mistakes:
Choosing first if condition without checking value
Confusing Loiter with Auto mode output
Ignoring else block
4. Identify the error in this code snippet that tries to switch to Auto mode:
A. SyntaxError: '=' used instead of '==' in if condition
B. RuntimeError: mode variable undefined
C. Logical error: should use '!=' instead of '='
D. No error, code runs fine
Solution
Step 1: Check the if condition syntax
The condition uses a single '=' which is assignment, not comparison. This causes a syntax error in Python.
Step 2: Correct the condition to use '==' for comparison
Changing '=' to '==' fixes the syntax and allows proper comparison.
Final Answer:
SyntaxError: '=' used instead of '==' in if condition -> Option A
Quick Check:
Use '==' for comparisons, '=' is assignment [OK]
Hint: Use '==' in if conditions, '=' is for assignment [OK]
Common Mistakes:
Using '=' instead of '==' in conditions
Confusing assignment with comparison
Ignoring syntax errors
5. You want the drone to automatically fly a mission but keep altitude stable if GPS signal is lost. Which mode combination should your program switch between?
hard
A. Stabilize mode for mission, switch to Auto if GPS lost
B. Loiter mode for mission, switch to Stabilize if GPS lost
C. AltHold mode for mission, switch to Loiter if GPS lost
D. Auto mode for mission, switch to AltHold if GPS lost
Solution
Step 1: Understand mission and GPS loss handling
Auto mode runs the mission automatically. If GPS is lost, the drone cannot continue Auto mode safely.
Step 2: Choose AltHold to maintain altitude during GPS loss
AltHold keeps altitude stable without GPS, preventing sudden drops.
Final Answer:
Auto mode for mission, switch to AltHold if GPS lost -> Option D
Quick Check:
Auto + AltHold for GPS loss safety [OK]
Hint: Auto for mission, AltHold to keep altitude if GPS fails [OK]
Common Mistakes:
Using Stabilize during GPS loss risking altitude drop
Confusing Loiter with mission mode
Not switching modes on GPS loss
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.