On this stage, the functionality, measures, and tests being presented, really this is a very simple module so don't expect anything too fancy.
1 General design
Structurally this module consists in a simple square platform with an extension in one of this sides to hold it with the position and orientation acquisition system, besides in the bottom there is a triangular form to put a button and use it in a more affordable way, the main measures in mm are:
The circuit used for the electric part of this module is very simple, in essence, consist in an array of buttons with its respective resistance (of 1K ohm) to the ground, the analysis with respect to the power consumption being presented in another stage, then the circuit is:
The whole circuit is:
The scheme of the algorithm will serve as a base to any other project of your interest, therefore, the necessary parts of the code and its flows will be presented, the scheme is:
As you can see, the dynamics of this scheme is very simple, roughly it sensing the digital states of the pins used and realize a determinate action. The position and orientation of this modules, as the other, its given by the system presented in stage 2.
For this test, an Arduino Due being used to simulate a mouse, the main goals are:
- Test the buttons.
- See if the orientation and position acquisition system works fine with modules
The main process of the algorithm is: take an arbitrary central position of which the distances in x, y and z-axis will be measured, this magnitude be scaling to transform it in a constant movement of the mouse in the respective axis in the screen, if this magnitude is big, the mouse's movement will be big.
The way to simulate it is through the buttons and roll angle, the next image illustrate that:
The tests show that the arm works fine, besides the buttons works perfectly (I don't need to add a 555 to control the internal erratic switching that happens when it is pushed). The mouse's movement works as planned in general terms, but it looks faster than a normal one, so it can be a little difficult to use, it can be improved with a better algorithm, the next video shows that.
Follow the same idea, other application is: