A small startup called K-Scale Labs is in the process of developing an affordable, open-source, humanoid robot and Mike Rigsby wanted to build a compatible hand.This three-fingered robot hand is the result, and it makes use of serial bus servos from Waveshare.Most Arduino users are familiar with full-duplex serial communication, which requires two data lines.
The first carries data in one direction, while the second carries data in the other.As such, devices can send and receive data at the same time — they don’t have to wait to until the line is “free” to send data.But half-duplex serial communication is also possible.
Each device just has to wait its turn to send data.That is less common, but it does have some benefits.In this case, Rigsby used Waveshare servo motors that communicate via a half-duplex serial bus.
The benefit is that users can daisy-chain multiple servos together, connecting to a single serial pin on the host device.These particular servo motors also have magnetic encoders instead of potentiometers, which are more reliable.Five of those servos actuate the 3D-printed fingers on Rigsby’s robot hand (the top two fingers have two joints each).
He used an Arduino UNO Rev3 board to control them, but couldn’t use the typical RX and TX (0 and 1) pins for communication over the serial bus.For that reason, he included a serial bus module meant specifically for driving servos like these.This seems to work pretty well and the motors move smoothly — though they currently lack sensors that would enable force/pressure control.