The goal of this part of the project [short presentation] is to use cheaper motors but not loose the accuracy the dynamixel ones, provide. Since we are using an arduino to control everything about the motor (driving, controller, feedback, diagnostics) we thought it would be very convenient, apart from updating the gains of the PID, also to be able to upload new sketches (code) to arduino.
Starting from the sensor, we are using the Austria Microsystems magnetic encoder, AS5145 [link] with 12-bit resolution, which means 0.088 degrees of accuracy. The reading of the sensor is through SSI (similar to SPI but with 3 pins). The serial word contains the position data plus some flags about the validity of the reading. The other option is to read the position through a pwm output (of the sensor) but that way we donāt have any flags and thatās why we discarded this option.
With being able to read the position, we created input/output data in order to estimate the parameters of the motor. These parameters were used for the design of the PID controller.
About the driver of the motor, we recently changed to the VNH5180A-E [link]. With power supply up to 41V and output current of 8A we believe is suitable for the most RC-servos in the market. It also have the advantage of overvotage clamp, thermal shutdown, PWM up to 20Khzā¦ well I am just reading the datasheet hereā¦ :). Big advantage, the current sensor. The only drawback is itās size (kind of big for the little space we have) but we are working on that.
The communication between the motors it will be through I2C. Therefore in total we will have two cables (or pins) for the supply, two for the I2C, and four for the ISP (Vcc and gnd already on board). The access to this pins and the position on the case of the motor is still on discussion.
We will share it with an implemented PID, tuned for a configuration without a load. The user will have the option to just update the gains, or implement itās own controller (by uploading his code). In the future, if we find some time, we would like to also create a simple application to update the gains and also visualize the input and the output, to make the process of tuning a bit more easy.
Right now we are testing the driver, then will finish the design of the prototype of the pcb and after a test of the whole system, we will share everything. Till then we will share very soon the parts that we are confident of, to get any feedback or ideas for improvements and of course to compare it with ongoing projects.
Dimitris.