Update
Wow, it's been a while since this project has gotten an update. After a long hiatus, I have finally completed the assembly and testing of the current sensing booster-pack. The only problem i ran into was one of the tiny 0402 caps was shorted because of a poor soldering job. I was able to fix that easily enough, and since I tested for continuity between power and ground before actually powering the board I didn't break anything. I also modified the firmware to use the new ADC channels that the booster pack feeds into. To verify, I was able to apply voltages to each of the motor phases and see the correct current output in the ADC registers. Over the last couple of days I have been working on a task-scheduler that I can use to do various tasks at fixed rates using one timer. I used this blog post as a template, but since I am using C++ I am doing things a little differently. Check the github if you are interested. I will use this for my control loops as well as data transfer to a host-PC (more on that later...)
Whats Next?
The obvious next step is to start working on the controller. We very obviously need current controllers for both the A and B phases. In my experience developing control systems, ones job becomes much easier if he/she is able to see an output of the control signals as well as the setpoint in order to do step-response test, see errors in real time, etc. My plan is to develop a GUI in Python that communicates with the motor control processor to facilitate this. This GUI will make tuning and validating the system much easier. I usually use Java for this sort of thing, so I am excited to see what Python brings to the table. Once the GUI is working I'll implement the PID controllers for the current control system and start testing.
John Taylor
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.