Protocol Redesign Proposal
I recently purchased the Slider kit knowing that it wasn’t exactly what I wanted but was definitely close, rather inexpensive (comparatively), and seemed pretty solid. Now to make the slider closer to something that is more universally usable I dug into the arduino source code and noticed that all of the tracking is done on device. My thought here is to instead make the arduino fairly dumb, it will take commands on what speed to fire the stepper at and for how long (both rail and platform steppers).
This would allow a shared library to be written for the ios and android apps that could do all of the tracking computations and then send a queue of commands to the arduino to then run through.
The major benefit here being that new functionality could be added by just adding in new functions to the app to translate wanted movement into this queue.
Say we have a 700mm slider and we want to move in a linear fashion from one side to the other while rotating 60 degrees, since the movements are linear we can send just 2 commands to the arduino:
Now This would perform a simplification what is already available in the app and through the arduino code, but we could now do something like have 2 joysticks in the app, one for linear motion, one for rotating the device. If I move the linear joystick left it could send the command:
Then slightly before that previous command runs out, read the joystick value again and send:
We can even go so far as to have a counter on the arduino that we can reset and adjust to keep track of the offsets since the app pressed a button. This would allow for complex moves by recording deltas from a previous point.
I could have a start position of B:
Move to B and hit record:
Then move to C and hit record:
Hit a “Home” button to move back to A and then hit Play to repeat the sequence. If each step is then customizable you could have A -> B slower than B -> C.
Going further, if a limit switch is added to one side we could then home your slider on startup, and save off these recordings so that they could be played back at any time, even if you have turned the device off and back on.
Did a quick wireframe of what a recording page would look like. The track at the bottom would be for a setup similar to the current object tracking setup that is currently available.
Any thoughts or comments? I believe I can do a lot of the arduino code based on what is already currently available and I can work on the android app. The only problem is I wouldn’t be able to work on the ios code since I do not have a mac. I plan on having the library for creating the queue done in c++ so that it can be shared.
Sorry for this late answer/post in this old thread, but i think it is time to revive this. Something like your suggestions would be great, i just realized after ordering that the app don´t have something like keyframes, that you can set, or something to control the accelaration (ramping speed). And i just thought about adding a third axis to make this a motion controlled unit. BUT i am not a programmer, so i started with the “MIT APP INVENTOR 2” to create an app.
Now just heard about the “UGS – Universal GCODE Sender”, which one guy used on is YouTube-Channel to create an DIY Motion COntrol Camera Crane… which is really, really insanse. But since i am a noob in programming (i am a Motion-Designer with some selfthaught Java-Script “for programmed animation”-experiences) it is hard to figur out how to get control of this board and than add another stepper Motor(+driver) and control this via Keyframes. I already started with some beginner tutorials and ordered another arduino board to start a wired test first.
And i already kind of have a simple app (layout and some functions)finished, but can´t test it at the moment. i Uploaded a Screenshot of this test-app.
If there is anyone like me who is intrested in upgrading this project to an “MotionControl-Slider” for Video and easy VIsualEffects (VFX), it would be an honor to wotk together on finding solutions. A programmer would be great but i think everyone could help.