Setting up the PS3 Controller
I decided to use a PS3 Controller to control Sputnik remotely. Mainly because we have a PS3 with a spare controller.
The following link is a good tutorial on setting this up.
https://www.piborg.org/blog/rpi-ps3-help
I use evdev to read the input from the controller. The following link gives a nice bit of sample code on reading the events, although I had to write a test program to display all the event values in order to map the events to the joysticks and buttons. The diagram given on this site doesn't match up with what I saw when testing.
https://www.ev3dev.org/docs/tutorials/using-ps3-sixaxis/
Use pip3 instead of pip to install the Python 3 evdev libraries.
pip3 install evdev