Simulator for a personal project that involves a stepper motor driving a larger assembly rotating on a turntable bearing.
Max Acceleration & Deceleration | Slow Acceleration, Max Decceleration |
---|---|
![]() |
![]() |
Max Acceleration, Zoomed & Slowed | Slow Acceleration, Max Decceleration, Zoomed in |
---|---|
![]() |
![]() |
I've been working on a project involving very precisely moving a camera by planar and pitch rotation. Part of that challange is determining how to drive the stepper motor to accelerate and deccelerate the spinning turntable mechanism. As it turns out, the torque output vs rpm curve for steppers is not linear, and must be measured for each motor. Since this curve is nonlinear, the actual calculations become very complicated to do analytically, and for that reason I build this simulator explore the behaviour of the mechanism under different conditions.
The image below is a CAD prototype to give context to the simulator's objective
- Accurately model and simulate the behaviour of a stepper motor under various load conditions at different speeds
- Allow algorithmic control over the simulation, to test how such algorithms might apply to the real prototype
- Display a clean user interface reporting relevant information about the simulation as it progresses
- Demonstrate my ability to convert from a design challange to a programmatic solution using an efficient and modular object-oriented approach
- Convert stepper motor performance curves into runtime evaluable polynomials [DONE✅]
- Set up framework to allow modification of rotating mechanism mass distribution, friction force estimates, and gear ratio [DONE✅]
- Build steppable physics solver [DONE✅]
- Write live plotting GUI [DONE✅]
- Setup gear visualization [DONE✅]
- Finalize linking everything together and displaying results [DONE✅]
Disclaimer: The torque vs RPM curve used in this project is NOT property of the author (Aspen Erlandsson), and all rights are reserved to the respective owner, which remains unknown as the image was obtained from an Amazon product listing with a generic brand name.