This lawnmower has forward - reverse - left - right commands, cutting height adjustment and throttle control. All this from my Hobbyking heli RC.
Using 2x 12Volts DC motors to drive invidually the back wheels.
1 electric jack for the cutting height
1 servo the actuate the throttle
The working principle is fairly simple as at the time my knowledge of programming was fairly low. I used servos to activate micro switches which then are read by a PIC. The PIC then outputs to couplers which drive the relays.
The two motors are driven through the relays by a brushed ESC for speed control.
Step 1: Mechanical Side
Primary drive with toothed belt with a ratio of 8 to 24 teeth pulleys and final drive from 6 to 66 teeth sprockets which give me a speed of 1.21 turns per second which is pretty close to the speed you would push your lawnmower around the garden. I didn't have time to built a proper bearing housing for the drive shafts for each wheels so I used plummer blocks and it ended up working quite well I must say.
The electric jack has a strenght of 50kg push or pull. I had to add a spring to help it raise the height of cutting as it is quite heavy.
One end is bolted on the frame of the mower and the other is bolted on the connecting bar from the back to front wheels.
For the front wheels, I replaced the normal wheels by caster wheels to imrpove the turning.
You also have possibility to remove the chains on the back wheels and push your lawnmover by hand.
Step 2: Electric Side
The PIC outputs are connected to 2 double MC34152P. They basically just react to a change on their input pin (0V or 5V) and will drive their output pin high or low(0V or 12V) accordingly with a maximum current of 1Amp, which is great for relays as the PIC can't handle that kind of load on its pins. These IC's are designed to drive MOSFETS but work very well with relays.
A brushed ESC is an Electronic Speed Controller for motors with brushes. It is connected to the receiver and will output 0 to 100% of the speed I can get depending on my stick position on the remote control to the motors through the relays.
I used 4 pair of 12Vdc relays:
2 relays for the left wheel to go forward and 2 for it to go backward. And the same config for the right wheel.
When turning left, the right wheel will turn forward and the left wheel backwards which give the mower the ability to turn around on its axis. A bit like a tank.
In the black box there is 2 servos and 4 microswitches. 1 servo will give me wether I go forward or backward activating the microswitch needed.
Same thing for left and right.
In the second box, as I added it afterwards I had to built it in a separate box, we find all the relevant parts for the cutting height adjustment.
12Vdc from the battery is then transformed into 24Vdc through a DC-DC converter. It is then outputed to the electric jack through 2 relays (0V;24V) or (24V;0V) to invert the direction of the jack.
These two relays are driven by microswitches and 1 servo.
Each of these 2 relays drive as well a third relay which outputs the 12V into the DC-DC converter. The DC-DC converter is only used when we want to raise or lower the cutting height, it does spare the battery doing it this way.
Step 3: Boards Drawings + Assembly Program for PIC
Every board has wires going from and to another, they are labeled to match the title of the board file name.
Don't hesitate commenting or asking questions if you want or need more informations about anything concerning this project.
The .asm file is really basic, I could if I had time, rewrite it a bit better but hay, it works great so it is what we need.
As well, on the main board drawing, I didnt include the 5pins connector for the programming. I will happily help anyone out if needed.