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
Speed control during mission
📖 Scenario: You are programming a drone to fly a mission. The drone must adjust its speed based on the distance to the next waypoint to fly safely and efficiently.
🎯 Goal: Build a program that sets the drone's speed for each waypoint based on the distance to that waypoint.
📋 What You'll Learn
Create a dictionary with waypoints and their distances
Add a speed limit variable
Use a loop to set speed based on distance
Print the speed settings for each waypoint
💡 Why This Matters
🌍 Real World
Drones need to adjust their speed during missions to save battery and avoid obstacles safely.
💼 Career
Understanding how to control speed based on conditions is important for drone software developers and robotics engineers.
Progress0 / 4 steps
1
Create waypoints with distances
Create a dictionary called waypoints with these exact entries: 'WP1': 100, 'WP2': 250, 'WP3': 400, 'WP4': 150
Drone Programming
Hint
Use curly braces to create a dictionary with the waypoint names as keys and distances as values.
2
Set maximum speed limit
Create a variable called max_speed and set it to 50 to represent the maximum speed of the drone.
Drone Programming
Hint
Just assign the number 50 to the variable max_speed.
3
Calculate speed for each waypoint
Use a for loop with variables wp and dist to iterate over waypoints.items(). Inside the loop, create a variable called speed that is max_speed if dist is greater than 200, otherwise dist / 4.
Drone Programming
Hint
Use a conditional expression to set speed based on the distance.
4
Print speed settings
Inside the same for loop, write a print statement that outputs: "Waypoint {wp} speed set to {speed}" using an f-string.
Drone Programming
Hint
Use print(f"Waypoint {wp} speed set to {speed}") inside the loop.
Practice
(1/5)
1. What is the main reason to adjust the drone's speed during a mission?
easy
A. To save battery by flying as fast as possible
B. To change the drone's color
C. To make the drone hover in place
D. To fly slower near obstacles for safety
Solution
Step 1: Understand speed control purpose
Speed control helps adjust how fast the drone flies to match mission needs.
Step 2: Identify safety reason
Flying slower near obstacles reduces crash risk and improves control.
Final Answer:
To fly slower near obstacles for safety -> Option D
Quick Check:
Safety needs slower speed near obstacles = B [OK]
Hint: Slower speed near obstacles means safer flight [OK]
Common Mistakes:
Thinking faster speed always saves battery
Confusing speed control with hovering
Believing speed changes drone color
2. Which of the following is the correct way to set the drone speed to 5 meters per second in code?
easy
A. setSpeed(drone, 5)
B. drone.speed = '5mps'
C. drone.setSpeed(5)
D. drone.speed(5)
Solution
Step 1: Identify correct method syntax
The method to set speed is called on the drone object with a number argument.
Step 2: Check each option
drone.setSpeed(5) uses drone.setSpeed(5) which is correct syntax for setting speed to 5.
Final Answer:
drone.setSpeed(5) -> Option C
Quick Check:
Method call with number argument = A [OK]
Hint: Use object.method(value) to set speed [OK]
Common Mistakes:
Using string instead of number for speed
Calling speed as a function instead of method
Passing drone as argument instead of calling method on it
3. What will be the output of this code snippet?
drone.setSpeed(3)
print(drone.speed)
medium
A. None
B. 3
C. Error: speed attribute not found
D. drone.setSpeed(3)
Solution
Step 1: Understand setSpeed effect
Calling drone.setSpeed(3) sets the drone's speed attribute to 3.
Step 2: Print drone.speed value
Printing drone.speed outputs the current speed value, which is 3.
Final Answer:
3 -> Option B
Quick Check:
Set speed to 3, print speed = 3 [OK]
Hint: setSpeed changes speed attribute; print shows it [OK]
Common Mistakes:
Expecting method call to print
Assuming speed attribute is missing
Confusing method name with attribute
4. The following code is intended to set the drone speed to 10 m/s but causes an error. What is the problem?
drone.setspeed(10)
medium
A. Method name is case-sensitive; should be setSpeed
B. Speed value 10 is too high and causes error
C. Missing parentheses after method name
D. drone object is not defined
Solution
Step 1: Check method name spelling
Method names are case-sensitive; 'setspeed' is incorrect, correct is 'setSpeed'.
Step 2: Confirm other options
Speed 10 is valid, parentheses are present, and drone object assumed defined.
Final Answer:
Method name is case-sensitive; should be setSpeed -> Option A
Quick Check:
Case-sensitive method names cause errors = A [OK]
Hint: Check exact method name spelling and case [OK]
Common Mistakes:
Ignoring case sensitivity in method names
Assuming value too high causes error
Forgetting parentheses after method
5. You want the drone to fly slower near obstacles and faster in open areas during a mission. Which code snippet correctly changes speed based on distance to obstacle?
distance = drone.getDistance()
if distance < 5:
drone.setSpeed(2)
else:
drone.setSpeed(8)
hard
A. Correctly sets speed slower near obstacles and faster otherwise
B. Sets speed faster near obstacles, which is unsafe
C. Uses wrong comparison operator; should be distance > 5
D. Does not change speed at all
Solution
Step 1: Understand distance check
Code checks if distance to obstacle is less than 5 meters.
Step 2: Analyze speed settings
If close (distance < 5), speed is set to 2 (slow). Else speed is 8 (fast). This matches safe speed control.
Final Answer:
Correctly sets speed slower near obstacles and faster otherwise -> Option A
Quick Check:
Distance check controls speed safely = C [OK]
Hint: Use if distance < threshold for slower speed [OK]