Things have been moving at a fast pace in terms of development, with the firmware and studio receiving updates all around. In a nutshell the following major updates have been completed:
- Tinymovr Firmware now handles the motor control loop as part of the main loop (it used to be part of an interrupt). This allows for increased flexibility with respect to passing functions to the main loop for execution. From a user perspective, this change is not noticeable in any way, but it will facilitate future firmware development enormously.
- An initial test suite has been developed, aiming to test Tinymovr Studio features, as well as validate board and firmware functionality for commissioned boards. The tests use Python's unittest framework and are available in the tests/ folder of Studio. In addition, tests are performer as part of continuous integration (CI) in Github, using simulation.
- A significant bug has been fixed that prevented proper communication using UART.
- Tinymovr Studio now works with units (amperes, radians, rad/s etc.), via the Pint package. You can seamlessly use any units you wish for reading and writing to endpoints that support them. For instance, the following is now possible in Studio:
from tinymovr.units import get_registry ureg = get_registry() A = ureg.ampere s = ureg.second rad = ureg.radian tm1.set_pos_setpoint(1.0*rad, 0*rad/s, 0.5*A)
The second and third arguments to the function above are feedforward values for velocity and current.
Keep in mind that the addition of units may break some programs that you might have built around Tinymovr Studio API. To restore broken functionality, it is usually sufficient to modify your calls to getters to work with units. Alternatively, for a quick fix, you can obtain the "magnitude" property of the object returned. See the docs for more information on units.
If you prefer to take some time before diving in the latest changes, the last major version (0.2.x) is still available on PyPI and you can install it easily as follows:
pip uninstall tinymovr # if tinymovr is installed pip install tinymovr==0.2.7
Finally, here are two of the latest demos of Tinymovr. The first demonstrated full-body kinematics on the Tinymovr Quad. The second demonstrates a ‘telepresence’ device: A pair of Tinymovr controllers and motors that mirror each others dynamics.
The code to this last demo is available at the Tinymovr Github repo.
Stay safe and stay tuned for updates!