Getting Familiar with FeeTech Servos
I have some FeeTech servos from the SO-101 robot that Moiz and I were tinkering with. Due to all of the work we needed to do to wind down GB, I didn’t get a chance to go as deep.
We built the setup that Moiz ended up taking back to LA, but I only have the components for my set. I’ve got the plastic parts printing on my 3d printer right now.
When we were getting things set up, I remember there was a python library that could be used to interface with the motors, but that it was neither intuitive nor low level. We ended up skipping going into depth on that aspect, but I’m going to try to understand more about how these motors work.
It looks like someone has put together a wrapper and tutorial for using the motors more easily since I was last looking at this stuff: https://github.com/commanderfun/STS3215
Looking at the repo, he has some photos of a test stand that he has for the servos and controller that he 3D printed. This would be a really good first 3D project to make.
Ok so I’ve been doing the getting started tutorial of the library. I went through the first part using the motor fairly directly. In servo mode, you’re able to set the current target position as well as the speed and acceleration. This works by sending some data over the serial port to write those values to the register in the control board which internally does the stuff to hit that target. You can also read values from those registers to understand the current temperature, current, and load that the motor is under. You can perform these reads during the execution of a movement (if the speed is low and the distance is great, the movement will continue after the call to set the position during which time you can be reading values from the registers). There is also a wheel mode which lets the motor spin freely and continuously. You set a speed rather than a position.
The next part of the tutorial covers usage of the wrapper which has a nicer api.
I do seem to be running into the servo not responding after using it a bit. Then I get comms errors…