For a long time now, I’ve always wanted to build my own robotic mower. After all, the required features for such device are:
- Moving forward, backward and turn.
- Detect collisions and the edge of the lawn.
- Find its way back to its base when batteries are low.
- Well… mow obviously…
Nothing an arduino and a few electronics cannot solve right?
First, I started by designing the wheels for 3D printing:

It took 23h of printing per wheel. The result is good and holly molly do the spikes hurt! Plenty of grip here! Of course a cover will prevent dirt from getting inside of it.

Now for the motors, I searched for a standard, 12v, high torque motors with quadrature encoders. It may become handy to detect if the motor is stalling against an obstacle. another solution would be a current sensor detecting a pike in the current indicating a stall.

Those cheap motors seem to do the job. I may use more powerful motors later but for my early tests, it’s good enough. I can easily control them with an Arduino Mega with L298N Dual H-Bridge DC Stepper Motor Driver. They are cheap, easy to use and can control 2 motors with a single board.

Now, for the cutting part, I recycled an old brushless motor initially used to power a RC plane. I made a few Arduino tests to check if I am able to control it using PWM. Easy peasy, Arduino comes with a library allowing me to send a PWM signal that the ESC understands. I can now control the brushless motor.
Fot he collision detection, my first attempt is using 3 NC switches in serial. If any of those switches is triggered, the loop is opened and the Arduino can Easily detect it.
The first test run seems promising.
More to come…