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.
Input Fields
Title: "Inclined Plane Solver" - TextBox: "Mass (kg)" - TextBox: "Angle θ (degrees)" - TextBox: "Coefficient of Friction μ" - Button: "Calculate Forces"
Result Output
Labels for results: - NormalForceLabel: "Normal Force (N): —" - FrictionLabel: "Friction (N): —" - ParallelForceLabel: "Force Down Slope (N): —" - AccelerationLabel: "Acceleration (m/s²): —"
Visualization
Add a Canvas where you draw a simple triangle (the plane) and a square (the object) based on the input angle.
🧩Part B — Blocks View (Logic & Calculation)
Switch to Blocks view. Now add the logic that makes your app actually work.
Trigonometry Logic
Initialize m, g (9.8), theta, and mu from textboxes. Calculate: 1. Normal Force = m × 9.8 × cos(theta) 2. Friction = mu × Normal Force 3. Parallel Force = m × 9.8 × sin(theta)
Acceleration Logic
Net Force = Parallel Force - Friction. If Net Force < 0, then Acceleration = 0 (static friction wins). Else, Acceleration = Net Force / m.
Update Results
Update all labels. Round the numbers to 2 decimal places using: (round(value × 100) / 100).
🧪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.