While current control and PWM switching play the most direct role in driving brushless DC motors, the motion profile and position-control loop are also essential.
Permanent magnet dc motors need a chunky inductor in series with them if they are fed from an SCR (thyristor) based mains power controller. It is (probably!) possible to safely interface an Arduino to ...