-
Project Goal & Requirements
The main aim is to replace the control electronics of a Friendly Robotics RL850/RL1000 lawnmower.
- The software and control electronics will be open-source, and modularised so that it will be easy to port to other platforms
- The bot must use power efficiently. It should mow the lawn intelligently, avoiding areas that are already mown. It should use the minimum amount of power necessary to mow the lawn (throttling back blade speed when areas only need to be lightly mown, shutting down the mowing motors when over unmowable areas)
- The bot must support scheduled mowing
- The bot must not mow the lawn if it is currently raining, or has rained recently
- The bot must be able to communicate with computers/phones to set parameters, check status, etc
Current Status
Planning
Hardware
- Friendly Robotics RL850 Chassis
- Dual-Core Atom mini-ITX motherboard, 2 GB RAM, USB flash drive for booting (acquired)
- 24V tolerant ATX power supply from Ebay
- USB GPS from Ebay
- USB WiFi dongle from Ebay
IO Board Requirements
The IO board will allow the PC to interface with the bot motors and sensors. Where possible, the components will be salvaged from the original motherboard. It can be powered from a standard molex connector from the ATX PSU.
The following components can be salvaged:
- 7 x FZ44NS/LZ44NS MOSFETs pairs, used as 2 h-bridges (drive motors) and 3 switches (mowing motors)
- Autonnic Floating Core Magnetometer - Application notes on how to read the sensor.
Usage | Digital Out | Digital In | PWM | Analog In |
Drive Motor Left | 4 | 1 | ||
Drive Motor Right | 4 | 1 | ||
Cutting Motor 1 | 1 | 1 | ||
Cutting Motor 2 | 1 | 1 | ||
Cutting Motor 3 | 1 | 1 | ||
Warning Light | 1 | |||
Battery Current Monitor | 1 | |||
Battery Voltage Monitor | 1 | |||
Front Bump Sensor | 1 | |||
Rear Bump Sensor | 1 | |||
Front Wheel Sensor | 1 | |||
Wire Sensors | 4 | |||
Accelerometer | 3 | |||
Digital Compass ??? | 5 |
1 | ||
Alarm | 1 | |||
Speaker | 1 |
|||
Totals | 7 | 3 |
12 |
15 |
So from the table above, it all fits (just) within the capabilities of the Arduino Mega, which has 14 PWM lines and 15 analog inputs.
IO Board Power
The IO board will take in the mains (+24V) from the battery, and pass it on to the ATX PSU for regulation. The PSU will feed power back to the IO board via a standard Molex PC connector.
As the chargers open circuit voltage is +40V, and the maximum input voltage of the ATX PSU is 28V, we will need to clamp the power supply input voltage to 24V.
Todo
- Complete features & requirements
- Design IO board
- Write hardware abstraction layer
- Test hardware abstraction layer
- Write basic functionality (implement original algorithms for scanning yard without positioning information)
- Test basic functionality
- Write advanced functionality
Links
- Differential GPS for Linux
- Linux Robotics Framework
- Honeywell HMC6532 digital compass sensor