Accomplishments
This week, I was able to implement and test the majority of the car movements for our final demo (forwards with varying increasing/decreasing speeds via keyboard inputs, and full 180ยบ motion on the IMU for steering). Most of my time was spent understanding PWM signals for standard RC ESCs. Since our STM32 produces a 32 MHz HSE clock signal, I used a prescaler value of 32 and a period of 20,000 to obtain a 50 Hz (20 ms period) PWM rate. Additionally, standard RC ESCs operate with a 1-2 ms HIGH every 20 ms, so we start with 1.5 ms for both the motor and servo control signals to start the car at a neutral position (this is also what our reset state will change to). Additionally, I used Caitlyn’s IMU code and linearly interpolated her IMU roll data between 1-2 ms to create a smooth mapping for the servo steering.

Progress / Schedule
I’m on track with the schedule. I’ve been having some difficulty getting the wheels to spin backwards. I believe there’s a sequence of PWM signals that need to be sent to get the Kar moving backwards. However, the WP1625 brushed motor user guide is quite short and I can’t seem to find much information online about the sequence. I will continue working on that this week, and work with Caitlyn to map other IMU motions between the Kontroller and Kar in parallel. Other than that, I’m feeling confident about our upcoming demo, given that we’re already seeing smooth Kar motion in action.
Next Steps / Deliverables
- Get backwards motions working for the Kar’s wheels.
- Fine-tune the steering for the Kar and integrate a PID control loop for speed stabilization.
- Implement haptic motor feedback for the Kontroller.
