Continous Servo DIY Robot
As part of my ever-lasting quest for cheap robotics, I’m trying out using continuous servos as the motors.
These are simply standard servos mechanisms where the internal position feed back has been disabled (and the mechanical end-stops removed)
Servo’s use a pulse width method – a 1500ms pulse is centre position (or stop in our case) 2500ms is turn 90 one way (or full speed) and 500ms is turn 90 the other way (or go reverse full speed)
The advantage of using them is that they just need power and a control signal – and the control signal can come directly from a 3.3V device such as a Raspberry Pi or and ESP8266 without any further electronics needed.
This makes it possible to wire up such a robot just using breadboard jumper cables without any need for soldering.
However, I’ve come across a problem in that the servos speed don’t respond progressively to the control signal pulse (unlike PWM controlled motors) – and worse – they don’t respond symmetrically forwards and backwards 🙁
This video shows the behaviour on the particular servo I’m using.
The servo only has 9 distinct speeds : <= -7, -6, -5, -4, -3 to 8, 9, 10, 11, >= 12.
So to cope with this I’ve added in some speed mapping in the WEMOS D1 code and I’m only going to send speed values from -4 to 4 to give 4 different speeds in each direction.
I’m unhappy doing this as all my other robots use -100 to 100 as speed value but going with this method for now