Christmas time is busy, much more than usual. I would like to have found a little more time for this blog and my home projects, but I guess that’s how it goes. Still I have made some progress.
I’ve finished rewriting the code which drives my prototype, and it now includes communication modules for talking to Simtools. The information pipeline is complete. Now I need to modify the type of information being sent.
The flow of information goes as follows:
* Video game (position data such as X, Y, Z coordinates and Pitch, Roll and Yaw heading):
* * Simtools plugin extracts this data and passes it to Simtools
* Simtools (takes motion data and converts it into setpoints for each axis of the machine):
** Simtools passes this data onto the arduino via serial communications (over USB)
* Arduino (receives setpoint data as a 16 bit position):
** The arduino translates setpoint data to motor position data
** Internal firmware maintains motor positions based on this setpoint data and external feedback sensors
The groundwork for this information flow has been laid and tested, but some tweaks and additions are still needed. I have the encoder mounted to one of the axis as a test, but it hasn’t been coded for yet. The Simtools data still could use a few tweaks to get smoother motion. I need to incorporate some sort of PID to regulate the feedback to the motors. I’d also like to try a few more games and check their motion as well.
All in all I am pretty happy with the progress so far. Just a little bit further and this portion of the prototype can be considered complete.
Here is a video of the first run. As a quick proof of concept test I ran it with the free version of Live For Speed. The motion is not bad, but there is a bit of drift as the steppers are still relying on internal tracking. The Simtools software allows for fine tuning of individual forces for different axes, but that is only really relevant when I go full size. Until then, basic motion will suffice.