Friction & Inclined Plane App
Build an app that calculates the normal force, frictional force, and acceleration of an object sliding down an inclined plane with a specific coefficient of friction.
🎯 Learning Goals
- ▹ Resolve Weight into Parallel and Perpendicular components
- ▹ Understand Normal Force and Coefficient of Friction (μ)
- ▹ Calculate resulting Acceleration using F_net = ma
- ▹ Build trigonometry-based physical simulations
🌎 Why This Matters
Friction is what keeps our cars on the road and our shoes from slipping. Engineers use these calculations to design safe highway ramps, efficient conveyor belts in factories, and even high-performance winter tires.
📖Understanding Inclined Planes & Friction
Theory MasterclassWhen an object is on a slope (inclined plane), gravity pulls it down, but the surface pushes back. We break the force of gravity (mg) into two components: 1. Perpendicular component: F_perp = m × g × cos(θ) This component pushes the object INTO the slope. The surface pushes back with an equal 'Normal Force' (N = F_perp). 2. Parallel component: F_par = m × g × sin(θ) This component pulls the object DOWN the slope. Friction (F_f): A force that opposes motion. It depends on the Normal Force (N) and the material property called the Coefficient of Friction (μ). F_f = μ × N Net Force and Acceleration: The force moving the object down is (F_par - F_f). According to F = ma, the acceleration (a) is: a = (F_par - F_f) / m = g × sin(θ) - μ × g × cos(θ) If F_f > F_par, the object will not slide (acceleration = 0).
Mathematical Foundation
🎨Part A — Designer View (UI Design)
Open MIT App Inventor → Switch to Designer view. Follow each step below to build the interface.
1. Screen Basics
• Set **Screen1** title to "Friction Solver". • Set **AlignHorizontal** to Center.
2. Input Fields
• Drag 2 **TextBoxes** renamed: 'NormalForceTxt' and 'MuTxt'. • Set both to **NumbersOnly**. • Give hints: "Normal Force (N)" and "Mu (0 to 1)".
3. Action Button
• Drag a **Button** renamed 'CalcFBtn'. • Set text to "CALCULATE FRICTION". • Change **BackgroundColor** to Orange.
4. Result Display
• Drag a **Label** renamed 'ResultLbl'. • Set **TextColor** to White and **FontSize** to 22.
🧩Part B — Blocks View (Logic & Calculation)
Switch to Blocks view. Now add the logic that makes your app actually work.
1. Switch to Blocks
• Click the **Blocks** button at the top right corner of the screen.
2. Friction Calculation
• Friction (f) = Coefficient (μ) * Normal Force (N). • Click **CalcFBtn** (Gold). Drag 'when CalcFBtn.Click'. • Click **ResultLbl**. Drag the green 'set ResultLbl.Text to' and snap it inside. • Go to the **Math** drawer (Blue). Drag out the multiplication '*' block.
3. Snapping the Inputs
• Snap [MuTxt.Text] into the first slot and [NormalForceTxt.Text] into the second slot. • These blocks come from clicking the component names on the left.
4. Adding Units (Newtons)
• Go to the **Text** drawer (Bright Pink). Drag a 'join' block. • Join the result with " Newtons" to make it easy to read.
🧪Testing Your App
- ✓Mass=10, Angle=30, μ=0 → Acceleration should be 4.9 m/s² (g/2).
- ✓Mass=10, Angle=30, μ=0.577 (approx tan 30) → Friction should balance parallel weight, acceleration = 0.
- ✓Set Angle=0: Only Normal Force should exist (98 N for 10kg).
🚀Bonus Challenges
Extra credit — impress your instructor
- ★Animate the block sliding down the plane on the Canvas.
- ★Add a 'Material Selection' dropdown (Wood on Steel, Ice on Ice) that automatically sets μ.
- ★Calculate the time taken to reach the bottom if the length of the plane is provided.