Why am I excited about these boats?
I'm excited about these boats for a number of reasons! They are low-cost and open-source: so any interested person or NGO can purchase the parts, and put them together at an affordable cost! They are solar-powered and completely autonomous: so once they are launched they can be left alone! They require minimal maintenance: sensors will need to be recalibrated only yearly! They have a full complement of available sensors to monitor water-health: the only thing lacking are sensors to monitor bacteria in the water. They can provide real-time data corresponding to water-health, transmitted via cellular data networks, which can subsequently be shared on websites!
I would like to see these boats deployed by local people in their nearby lakes and reservoirs: perhaps to provide evidence that a suspicious factory really is altering the physicochemical properties of the water! The boats, for instance, could be programmed to 'hang out' near the factory outlets/runoffs! Another task I would like to see the boats undertake is a complete sampling of a river from source to sea: this might not be a task for which real-time monitoring via cellular networks is appropriate, but the boats can easily be adapted to log data and dock at assigned ports to physically off-load memory cards.
At present the robot pollution-detection boat has three systems:
- Autonomous navigation and collision-detection system
- Water-health sensor platform
- Propulsion and hull
1. - Autonomous Navigation and Collision-Detection System
HARDWARE
This employs the arduino uno microcontroller, with a motor shield, and a GPS shield. For collision-detection an ultrasonic distance sensor is installed at the front of the boat. The motor shield drives a servo to control the rudder, and a motor to power the propeller
SOFTWARE
Outline of autopilot navigation
- Parse GPS’s output NMEA sentences with GPS.parse(GPS.lastNMEA()) to obtain GPS.latitude, GPS.longitude and GPS.angle
- Set current latitude and longitude e.g. currentlat = GPS.latitude currentlon = GPS.longitude
- Set the waypoint we want to reach next e.g. destlat for destination latitude, destlon for destination longitude
- Calculate distance from currentlat and currentlon to the destlat and destlon using haversine formula
- Calculate bearing/heading from currentlon to destlon (heading)
- Compare bearing/heading that was calculated with current bearing from gps (i.e. GPS.angle = currentheadingfromgps)
- currentheadingfromgps - heading value will inform us of how to turn the rudder e.g if going straight we can do myservo.write(90)
- Keep turning the rudder until currentheadingfromgps comes within 1 degree of heading, then stop turning
- Keep propeller going until distance to waypoint is <=0.5 metres, then stop propeller
- Remain at waypoint for desired length of time (1hr?) then repeat
Next we might want to employ the PID (proportional-integral-derivative) control method to keep the boat on a more accurate path to the waypoint; although I am dubious if it's really necessary for this project!
2. -Water-health sensor platform
This sensor platform which utilizes the arduino mega will contain sensors for water health, a GSM shield to transmit the data from sensors to a PC and ultimately the internet, and a solar panel for power
DISSOLVED OXYGEN (DO) SENSOR
-Why monitor DO?
Most polluted rivers suffer from low levels of dissolved oxygen. Dissolved oxygen in a river can vary from 0 to 18mg/L. It’s generally accepted that 4-5mg/L are required to support a healthy population of fish; anything below 3mg/L will not be enough to ensure survival of fish, and levels lower than 4mg/L will negatively impact fish reproduction. All species have their own particular DO requirments: worms and fly larvae and algae can for instance tolerate low DO, whilst larger fish may require > 6mg/L
Factors which affect levels of dissolved-oxygen
- Water temperature: higher temperatures will ‘push’ out the oxygen due to increased movement of water molecules [Note: polluted rivers often have reduced water, thus increased heating]
- Excessive bacteria from e.g. sewage: the bacteria require oxygen, thus will deplete the amount of DO present
- Fertilizer run-off: this will not only encourage plant growth in farms, but when entering a river it will encourage aquatic plant growth. If the plant growth is so excessive that sufficient sunlight for photosynthesis is unable to reach the plants, they will instead take oxygen from the water! Thus depleting DO!
-The DO Sensor
Atlas Scientific DO Probe with single circuit carrier board provides DO data in ASCII; range 0-20mg/L; the DO sensor will be the most expensive sensor at around $195
pH SENSOR
Atlas scientific EZO pH single circuit carrier board and probe provides pH data in ASCII; voltage 3.3-5V; the probes have BNC output to the single circuit carrier board
TEMPERATURE SENSOR
Sparkfun waterproof temperature sensor
CONDUCTIVITY SENSING
Atlas scientific E.C. Probe K 1.0 and single circuit carrier board; the probes have BNC output to the single circuit carrier board; data in ASCII; voltage 3.3-5V; this reads conductivity
DEPTH SENSING
Unknown at present, and unsure if required
TURBIDITY SENSING
measure suspended solids in water: by measuring the amount of light transmitted through the water [could make own]
DISSOLVED ION SENSING
To investigate levels of dissolved ions: F-, Ca2+, NO3-, Cl-, Pb2+, I-, Cu2+, Br-, Ag+/S2-, BF4- [I am not sure how to make such a sensor at present!!]
3. -Propulsion and hull
- Catamaran dual-hull with two decks: one front deck for electronics, and one rear deck for aeration pump and propulsion. Length of hulls = around 2m
- Hulls and decks composed of XPS (extruded polystyrene) coated with fibreglass fabric
- Propulsion is air rather than water (avoids getting stuck in plants, floating trash, etc): propeller mounted on a tube that sits on pivot; we turn the tube (i.e. rudder) using a servo