Underwater Monitoring and Sampling Robot

by Electric boy in Circuits > Arduino

1931 Views, 8 Favorites, 0 Comments

Underwater Monitoring and Sampling Robot

maxresdefault.jpg

I have designed and built a prototype of an underwater robot with ARM technology AI. For the monitoring, cartography and data collection.

About This Project

The exploration of the marine depths are investigations of the physical, chemical and biological conditions of the seabed, for scientific or commercial reasons. Deep ocean exploration is a relatively recent human activity, so the deep sea remains unexplored in a large part of planet Earth.

That is why we have proposed to build an underwater robot for exploration, mapping and data collection and biological samples. This is possible thanks to the power of the AM335x 1GHz ARM® Cortex-A8 processor of the BeagleBone Green.

Design and Sketches

1.jpg
2.jpg

During different rains of ideas and consultations on the web, we decided to make our own design for the first prototype.

As well as finding a design of the objective that we want to build. So, I decided to opt for a heterogeneous and cubic structure.

​Structure

3.jpg
4.jpg
5.jpg

the structure as in the previous images is appreciated, it is constructed of PVC pipes and unions easy to get in hardware stores. We also decided to give it a little color with a spray.

Taking and Recording IoT Data

6.jpg
7.jpg

It is essential that we have access to the information obtained in the depths that is why for our first prototype we have decided to implement the Helium System Kit due to its wide coverage and effectiveness.

We proceed to configure: in the Helium website we will find a brief tutorial to connect our Arduino to IoT: https://legacy.helium.com/dev

Programming and Arduino Code

/*Accept command from BBB via Serial

*Turns on/off on-board LED

*by OP from teachmemicro.com */

#include SoftwareSerial mySerial(8, 7); // RX, TX

char inChar;

void setup()

{

// Open serial communications and wait for port to open:
Serial.begin(9600);

Serial.println("Awaiting command from the Almighty BBB...");

// set the data rate for the SoftwareSerial port

mySerial.begin(9600);

pinMode(13, OUTPUT);

}

void loop() // run over and over
{

if (mySerial.available()){

inChar = (char)mySerial.read();

if(inChar=='1'){

Serial.print("The Almighty BBB said Let There Be Light! ");

Serial.println("Then there was light!");

digitalWrite(13, HIGH);

}else if(inChar =='0'){

Serial.print("The Almighty BBB said Let There Be Darkness! ");
Serial.println("Then darkness commenced!");

digitalWrite(13, LOW);

}else{

Serial.print("The Almighty BBB said Something! ");

Serial.println("We fear that something!");

}

}

}

Engines and BeagleBone Green

44972119_498044177381211_1151786709822734336_n_VVEbI4iExA.jpg

It is necessary that we have the Cape Bridge Motor to connect and control the engines through the BeagleBone.

We Proceed to Connect the Motors

44971877_2268144923431542_1768941078959882240_n_5F8QVUkTBV.jpg
45030923_1919482041476939_422733805376241664_n_b2BNSrqMMe.jpg

​Code BeagleBone Green

We load the respective code left below the project.

​Connect Arduino to BeagleBone Green

beaglebone-black-to-arduino-2-723x1024_78xhbzFVtB.jpg

Since the Helium device does not have direct connectivity to BeagleBone, we proceed to make a connection between the two devices in order to share data and information during its operation.

Sensors and Meters

44996224_573828949736963_7862119037566713856_n_YupKaVB9gv.jpg
45017837_269114380407434_453024951289511936_n_rsDEs2aXns.jpg
45041851_502508736893462_2096447689787965440_n_oxo65FzeOp.jpg

We will use the following sensors:

  • Water level
  • Temperature
  • Air quality
  • Sunlight
  • UV
  • Multichannel gas

All these sensors will be in a homemade storage chamber made with a bottle. A moderate amount of water enters the bottle and is studied by the sensors.

​Waterproofing

1.jpg
2.jpg

Proceed to seal or waterproof all devices and sensors to prevent water seepage.

BeagleBone Code