Bird
Raised Fist0
Drone Programmingprogramming~10 mins

How motor speed controls movement in Drone Programming - Visual Walkthrough

Choose your learning style10 modes available
Concept Flow - How motor speed controls movement
Set motor speeds
↓
Compare motor speeds
↓
Adjust drone movement
↓
Move drone in direction
↓
Repeat or stop
The drone sets motor speeds, compares them to decide direction, adjusts movement, and moves accordingly.
Execution Sample
Drone Programming
motor_speeds = {'front_left': 1000, 'front_right': 1000, 'rear_left': 1000, 'rear_right': 1000}

if motor_speeds['front_left'] > motor_speeds['front_right']:
    movement = 'turn left'
else:
    movement = 'go straight'

print(movement)
This code compares front left and front right motor speeds to decide if the drone turns left or goes straight.
Execution Table
Stepmotor_speeds['front_left']motor_speeds['front_right']ConditionMovement DecisionOutput
1100010001000 > 1000go straightgo straight
2----Prints 'go straight'
💡 Condition is false because front_left speed is not greater than front_right speed, so movement is 'go straight'.
Variable Tracker
VariableStartAfter Step 1Final
motor_speeds['front_left']100010001000
motor_speeds['front_right']100010001000
movementundefinedgo straightgo straight
Key Moments - 2 Insights
Why does the drone decide to 'go straight' when both motor speeds are equal?
Because the condition checks if front_left speed is greater than front_right. When equal, condition is false, so it chooses 'go straight' as shown in execution_table row 1.
What happens if front_left motor speed is higher than front_right?
The condition becomes true, so movement would be set to 'turn left'. This is the opposite branch of the one shown in execution_table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the movement decision at step 1?
Aturn right
Bturn left
Cgo straight
Dhover
💡 Hint
Check the 'Movement Decision' column in execution_table row 1.
At which step does the program print the movement output?
AStep 1
BStep 2
CBefore Step 1
DAfter Step 2
💡 Hint
Look at the 'Output' column in execution_table row 2.
If motor_speeds['front_left'] was 1100 and front_right was 1000, what would the movement be?
Aturn left
Bgo straight
Cturn right
Dhover
💡 Hint
Refer to the condition in execution_table and key_moments about when front_left speed is greater.
Concept Snapshot
Set motor speeds for each drone motor.
Compare speeds to decide direction.
Higher speed on one side causes turn.
Equal speeds mean go straight.
Adjust movement based on motor speed differences.
Full Transcript
This visual execution shows how motor speeds control drone movement. The program sets speeds for four motors. It compares front left and front right motor speeds. If front left speed is higher, the drone turns left. If speeds are equal, it goes straight. The execution table shows the condition check and movement decision. Variables track motor speeds and movement choice. Key moments explain why equal speeds lead to going straight and what happens if one motor speed is higher. The quiz tests understanding of movement decisions based on motor speed comparisons.

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