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.

FTVOGUE Moteur CC 12V Moteur à réducteur à vis sans fin à couple élevé avec codeur Srong Autobloquant(10RPM)

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.

Dual H-Bridge DC Stepper Motor Driver - L298N

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…