I bought a 4tronix M.A.R.S. Rover (Pi Zero edition), and I’ve had a couple of issues.
First, one of the servos controlling the direction of the wheels went wild: it wants to just spin and spin. (With the wheel fitted, it gets stuck, but if you remove the wheel, it’ll just spin around forever.) I’ve replaced it with the spare, which seems to be working, but I’m wondering what recourse I have for the one that appears to be duff.
The sonarTest.py program shows that the ultrasonic range detectors are working fine.
I’ve now moved on to trying to get the motors that drive the wheels to work. When I run the motorTest.py program that 4tronix supply, nothing at all happens. There’s absolutely no sign of life at all from the motors - not even a slight twitch to indicate that they might be thinking of moving.
Normally at this point I’d start poking at the thing with a multimeter and oscilliscope to watch what’s happening on the outputs. From the source code, it looks like it’s using PWM to drive the motors, but I presume the board is taking those outputs and running them through something that can deliver the kind of power the motors will need - I presume the Pi Zero isn’t going to be able to supply enough power to drive them directly.)
However, there seems to be absolutely no information on how the M.A.R.S. Rover actually works. I am wondering if there are any schematics available for it, because without that, troubleshooting is going to be trickier. If I’m able to determine that Pi is producing wave forms that match what the code seems to be asking for, I won’t know what to check next, because I’ve no idea how it’s meant to work.
Looking at the code in rover.py, apparently two PWM outputs are used for each side. It looks like one of each pair is used for forward motion and the other is used for reverse motion (with both outputs being set fully on for ‘brake’). And apparently both the frequency and the duty cycle are adjusted based on the speed, but I’ve got no idea what the intention behind that is.
Right now, I’ve got a device that plain refuses to turn its wheels, with no information available to work out what I can do about it.