📖 Scenario: You are working on a drone project. The drone needs to stay balanced and stable while flying. This is done by the drone's firmware, which reads sensor data and adjusts the motors to keep the drone steady.
🎯 Goal: Build a simple program that simulates how firmware uses sensor data to control drone stability by adjusting motor speeds.
📋 What You'll Learn
Create a dictionary called sensor_data with keys 'pitch', 'roll', and 'yaw' and their exact float values
Create a variable called stability_threshold and set it to the exact value 0.5
Use a for loop with variables axis and value to iterate over sensor_data.items() and create a new dictionary motor_adjustments that sets each axis to -value if the absolute value of value is greater than stability_threshold, otherwise 0
Print the motor_adjustments dictionary
💡 Why This Matters
🌍 Real World
Drone firmware constantly reads sensors and adjusts motors to keep the drone balanced and safe during flight.
💼 Career
Understanding how firmware controls stability is key for drone developers, robotics engineers, and embedded systems programmers.
Progress0 / 4 steps
1
DATA SETUP: Create sensor data dictionary
Create a dictionary called sensor_data with these exact entries: 'pitch': 0.3, 'roll': -0.7, 'yaw': 0.1
Drone Programming
Hint
Think of sensor_data as the drone's balance readings for pitch, roll, and yaw.
2
CONFIGURATION: Set stability threshold
Create a variable called stability_threshold and set it to the exact value 0.5
Drone Programming
Hint
This threshold helps decide when the drone needs to adjust motor speeds.
3
CORE LOGIC: Calculate motor adjustments
Use a for loop with variables axis and value to iterate over sensor_data.items(). Create a new dictionary called motor_adjustments that sets each axis to -value if the absolute value of value is greater than stability_threshold, otherwise set it to 0
Drone Programming
Hint
Think: if the drone tilts too much on an axis, the motor should push back in the opposite direction.
4
OUTPUT: Display motor adjustments
Write print(motor_adjustments) to display the motor adjustments dictionary
Drone Programming
Hint
The output shows how the drone firmware would adjust motors to keep stable.
Practice
(1/5)
1. Why is firmware important for drone stability?
easy
A. It adjusts motor speeds based on sensor data to keep the drone balanced.
B. It controls the drone's camera settings.
C. It manages the drone's battery charging.
D. It updates the drone's GPS location only.
Solution
Step 1: Understand firmware role in drones
Firmware reads sensor data like gyroscope and accelerometer to know drone's position.
Step 2: Connect firmware to motor control
Firmware changes motor speeds to correct drone's tilt and keep it stable.
Final Answer:
It adjusts motor speeds based on sensor data to keep the drone balanced. -> Option A
Quick Check:
Firmware controls motors for stability = A [OK]
Hint: Firmware controls motors using sensors to keep drone steady [OK]
Common Mistakes:
Confusing firmware with camera control
Thinking firmware only manages battery
Believing firmware only updates GPS
2. Which of the following is the correct way to update motor speed in drone firmware code?
easy
A. motorSpeed = sensorValue * 2;
B. motorSpeed == sensorValue * 2;
C. motorSpeed := sensorValue * 2;
D. motorSpeed => sensorValue * 2;
Solution
Step 1: Identify assignment syntax in common programming languages
Assignment uses single equal sign '=', not '==' or ':=' or '=>'.
Step 2: Check each option
motorSpeed = sensorValue * 2; uses '=', correct for assigning value. Others are comparison or invalid syntax.
Final Answer:
motorSpeed = sensorValue * 2; -> Option A
Quick Check:
Assignment uses '=' sign = A [OK]
Hint: Use single '=' for assignment, not '==' or ':=' [OK]
Common Mistakes:
Using '==' instead of '=' for assignment
Confusing ':=' from other languages
Using '=>' which is arrow function syntax
3. Given this pseudocode snippet in drone firmware:
B. motorSpeed should be a function, not a variable
C. print statement is invalid
D. Missing colon ':' after if and else statements
Solution
Step 1: Check syntax for if-else in Python-like code
Python requires ':' after if and else conditions.
Step 2: Verify other parts
motorSpeed as variable is fine, comparison is valid, print is correct.
Final Answer:
Missing colon ':' after if and else statements -> Option D
Quick Check:
if-else needs ':' = C [OK]
Hint: Add ':' after if and else lines to fix syntax [OK]
Common Mistakes:
Thinking motorSpeed must be a function
Believing sensorValue can't be compared
Assuming print is wrong
5. You want the drone firmware to reduce motor speed by 10% if the sensor detects instability (sensorValue > 50). Which code snippet correctly implements this?
hard
A. if sensorValue > 50:
motorSpeed = motorSpeed * 10
B. if sensorValue > 50:
motorSpeed = motorSpeed * 0.9
C. if sensorValue > 50:
motorSpeed = motorSpeed - 0.1
D. if sensorValue > 50
motorSpeed = motorSpeed - 10%
Solution
Step 1: Understand percentage reduction in code
Reducing by 10% means multiplying by 0.9 (100% - 10% = 90% = 0.9).
Step 2: Check syntax and calculation correctness
if sensorValue > 50:
motorSpeed = motorSpeed * 0.9 uses correct if syntax and multiplies motorSpeed by 0.9. Others have syntax errors or wrong math.
Final Answer:
if sensorValue > 50:
motorSpeed = motorSpeed * 0.9 -> Option B
Quick Check:
Reduce speed by 10% = multiply by 0.9 [OK]
Hint: Multiply motorSpeed by 0.9 to reduce by 10% [OK]
Common Mistakes:
Using '10%' directly in code causing syntax error
Subtracting 0.1 instead of 10%
Multiplying by 10 instead of 0.9
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.