Bird
Raised Fist0
Drone Programmingprogramming~20 mins

How motor speed controls movement in Drone Programming - Practice Exercises

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Drone Motor Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the drone's movement direction?

Given the motor speeds below, what direction will the drone move?

motor_speeds = {'front_left': 1200, 'front_right': 1200, 'rear_left': 1300, 'rear_right': 1300}
AThe drone will move backward.
BThe drone will move forward.
CThe drone will move left.
DThe drone will move right.
Attempts:
2 left
💡 Hint

Higher speed on rear motors lifts the rear more, causing the drone to tilt forward.

❓ Predict Output
intermediate
2:00remaining
What is the drone's rotation direction?

Consider this motor speed setup:

motor_speeds = {'front_left': 1400, 'front_right': 1200, 'rear_left': 1200, 'rear_right': 1400}

What rotation will the drone perform?

AThe drone will ascend straight up.
BThe drone will rotate counterclockwise (yaw left).
CThe drone will descend straight down.
DThe drone will rotate clockwise (yaw right).
Attempts:
2 left
💡 Hint

Opposite motors spinning faster cause rotation.

🔧 Debug
advanced
2:00remaining
Identify the error in motor speed adjustment code

What error will this code cause when adjusting motor speeds?

def adjust_speeds(speeds):
    for motor in speeds:
        speeds[motor] += 100
    return speeds

motors = {'front_left': 1200, 'front_right': 1200, 'rear_left': 1200}
adjust_speeds(motors)
ANo error; the speeds are updated correctly.
BTypeError because you cannot add int to dict.
CKeyError because 'rear_right' motor is missing.
DRuntimeError due to modifying dict during iteration.
Attempts:
2 left
💡 Hint

Check if the code modifies the dictionary keys or values during iteration.

🧠 Conceptual
advanced
2:00remaining
How does increasing all motor speeds equally affect the drone?

If all four motors increase speed by the same amount, what happens to the drone?

AThe drone ascends vertically.
BThe drone rotates clockwise.
CThe drone moves sideways.
DThe drone tilts forward.
Attempts:
2 left
💡 Hint

Think about lift force when all motors push equally.

❓ Predict Output
expert
2:00remaining
What is the final motor speed after applying throttle and pitch?

Given this code snippet, what is the final speed of the front_left motor?

base_speed = 1000
throttle = 200
pitch = -50

motor_speeds = {
    'front_left': base_speed + throttle + pitch,
    'front_right': base_speed + throttle - pitch,
    'rear_left': base_speed + throttle - pitch,
    'rear_right': base_speed + throttle + pitch
}
A1200
B1050
C1150
D950
Attempts:
2 left
💡 Hint

Calculate base_speed + throttle + pitch carefully.

Practice

(1/5)
1. What happens when all four drone motors run at the same speed?
easy
A. The drone spins rapidly in place
B. The drone hovers or moves straight up or down
C. The drone moves sideways
D. The drone immediately lands

Solution

  1. Step 1: Understand motor speed effect on lift

    When all motors run at the same speed, they produce equal lift, balancing the drone.
  2. Step 2: Determine movement from equal lift

    Equal lift means the drone either stays in place (hover) or moves straight up/down if speed changes.
  3. Final Answer:

    The drone hovers or moves straight up or down -> Option B
  4. Quick Check:

    Equal motor speeds = hover/up/down [OK]
Hint: Same speed on all motors means hover or vertical move [OK]
Common Mistakes:
  • Thinking equal speeds cause spinning
  • Assuming sideways movement with equal speeds
  • Confusing motor speed with drone landing
2. Which of the following is the correct way to set motor speeds in code to make the drone hover?
easy
A. setMotorSpeeds(100, 90, 100, 90);
B. setMotorSpeeds(0, 0, 0, 0);
C. setMotorSpeeds(100, 100, 100, 100);
D. setMotorSpeeds(100, 110, 90, 100);

Solution

  1. Step 1: Identify equal motor speeds for hover

    Hover requires all motors to run at the same speed to balance lift.
  2. Step 2: Check each option for equal speeds

    Only setMotorSpeeds(100, 100, 100, 100); has all motors set to 100, equal speeds for hover.
  3. Final Answer:

    setMotorSpeeds(100, 100, 100, 100); -> Option C
  4. Quick Check:

    Equal speeds in code = hover [OK]
Hint: Equal values in all motor speed parameters mean hover [OK]
Common Mistakes:
  • Using different speeds thinking it still hovers
  • Setting all speeds to zero which stops motors
  • Mixing up parameter order
3. Given this code snippet:
setMotorSpeeds(120, 100, 120, 100);

What movement will the drone most likely perform?
medium
A. Move forward
B. Hover in place
C. Tilt sideways and move right
D. Rotate clockwise

Solution

  1. Step 1: Analyze motor speed differences

    Motors 1 and 3 run faster (120) than motors 2 and 4 (100), creating torque imbalance.
  2. Step 2: Understand effect of torque imbalance

    This imbalance causes the drone to rotate (yaw) clockwise due to uneven motor speeds.
  3. Final Answer:

    Rotate clockwise -> Option D
  4. Quick Check:

    Unequal opposite motors speed = rotation [OK]
Hint: Faster opposite motors cause rotation [OK]
Common Mistakes:
  • Assuming forward movement from speed difference
  • Thinking drone hovers with different speeds
  • Confusing rotation direction
4. This code is intended to make the drone move forward:
setMotorSpeeds(110, 110, 90, 90);

But the drone spins instead. What is the likely error?
medium
A. Left and right motors have different speeds causing spin
B. Front motors are slower than rear motors
C. Motors on opposite sides have same speeds causing rotation
D. All motors have equal speeds causing hover

Solution

  1. Step 1: Identify motor speed pairs

    Motors 1 and 2 are 110, motors 3 and 4 are 90; left and right sides differ.
  2. Step 2: Understand effect of left-right speed difference

    Different speeds on left vs right cause the drone to spin (yaw), not move forward.
  3. Final Answer:

    Left and right motors have different speeds causing spin -> Option A
  4. Quick Check:

    Unequal left-right speeds = spin [OK]
Hint: Left-right speed difference causes spin, not forward move [OK]
Common Mistakes:
  • Thinking front-rear speed difference causes spin
  • Assuming equal speeds cause spin
  • Mixing motor numbering sides
5. You want the drone to tilt forward and move forward smoothly. Which motor speed setting is best?
setMotorSpeeds(95, 95, 105, 105);

Why does this work?
hard
A. Front motors slower than rear motors tilt drone forward
B. Rear motors slower than front motors tilt drone backward
C. Left motors faster than right motors cause forward tilt
D. All motors equal speed cause forward movement

Solution

  1. Step 1: Identify motor speed distribution

    Motors 1 and 2 (front) run at 95, motors 3 and 4 (rear) at 105; front motors slower than rear.
  2. Step 2: Understand tilt direction from speed difference

    Slower front motors provide less lift upfront, tilting the nose down for forward movement.
  3. Final Answer:

    Front motors slower than rear motors tilt drone forward -> Option A
  4. Quick Check:

    Slower front motors = forward tilt [OK]
Hint: Slower front motors than rear tilt drone forward [OK]
Common Mistakes:
  • Thinking faster front motors tilt forward
  • Confusing left-right with front-rear speeds
  • Assuming equal speeds cause tilt
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