mainboard design (rough sketch)

after a few issues regarding re-soldering of the prototype board I thought it best to actually design the thing rather that just rely on the thoughts bouncing round my mind … I think I’ve remembered everything.

 
nano #1 reads the voltages of the battery and the charger and measures the current, it uses these to control the charging relay which disable the link between the battery and the charging spikes (after all we don’t want to create a weaponised lawnmower that can electrocute small children who get too close). It also controls the cutting blade motors.
nano #2 reads the edge sensors and the front and rear bumper resistor ladders.
nano #3 primarily controls the drive motors, in addition it reads the data from the 9DOF sensor on it’s own I2C bus.
The pi zero w communicates with nano’s #1&2 via I2C (with the pi being the master which allows it to run the bus at 3.3v), however as nano #3 is using I2C to communicate (as the master) with the 9DOF device it will communicate with the pi via I2C

project restart

Well after a bit of a break it’s time to get back to it, I’ve decided to ditch the arduino mini’s and go for nano’s instead just to make it easier to reprogram them during development.
All the materials have now been purchased although I’m still waiting for the motor controllers to be delivered.
Time to start building…

battery management

in the years that i’ve had the RL2000 i’ve been through a couple of sets of batteries mainly due to issues with docking causing the batteries to completely discharge which isn’t good for them. so my first priority with the project is to ensure that I can monitor and control the battery usage/charging function.
the advantage of having a mostly functional existing system is that I can piggy back on the existing sensors and read what is currently going on.
 
 

bill of materials

my first consideration was the sensors/controllers that i would require

  • voltage/current sensors to detect battery status (charging controller etc)
  • sensors to detect the perimeter wire
  • 9 degrees of freedom sensor (9DOF) to track the motion
  • drive motor controller
  • blades motor controller
  • bumper sensors

my first thought was to use an Arduino Mega to control all of these, however the trouble with all Arduinos is that they are single core/single threaded devices, okay you can do pseudo threading but’s not really the same thing.
so i’ve decided to go with a pi as an I2C master and have a few Arduino Pro Mini (5v) devices each performing an individual task with overall control being performed by the pi. the obvious advantages to this is the processing power of the pi is a lot greater, persistent storage is easier, remote debugging is easier and i can use a high level language to perform the overall master control (probably java or C++ haven’t decided yet)