Skip to content

femortix/WNC-ROV

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Autonomous Survey Submersible

Small submersible equipped with sensors to read local temperature, pressure, accelerations, and angular velocities.

  • Community of Practice's STEM-related project from Fall 2023 - Spring 2024.
  • There is an educational motif present throughout the code base.
  • If a current CoP group would like to change and use this code base themselves, feel free to let me know.
Version History

Version 0.1.0 (11/2023) - T. W. Herring
- Code to control motors, read temperature and pressure data, and read/write to SD card.
- Code to calculate depth based on pressure; logs sensor data to a .csv.

Version 0.1.1 (02/2024) - Damian Contreras
- Pin numbers #define'd, maximum file count raised to 9999, each component separated into their own .h file.
- Pressure calculation slightly modified based on sensor documentation voltages.

Version 0.2.0 (04/2024) - Damian Contreras
- Physical class added to hold position, velocity, acceleration, angle, and angular velocity, and update all of them.
- MPU-6050 functionality added; pitching submersible vertically toggles it on/off in a test loop.

Preface

Project Data

Issues

Future Considerations


Preface


  • Many files call this autonomous submersible a Remote Operated Vehicle. As it turns out, communicating through even a meter of water is difficult, but "ROV" stuck.
  • Programming is done with the Arduino IDE and an Arduino microcontroller. Arduino's language is most similar to C++, but not everything from C++ (notably the standard library) is native to Arduino, so keep that in mind.
  • Feel free to download the repository to test the code base or learn with it in your spare time. It is also recommended you borrow Arduino-compatible devices and look up how to get them to function; solid for general programming familiarity.

Project Info


Device Purpose Links
Arduino Uno Rev3 Microcontroller Datasheet
TB6612FNG Motor Controller Datasheet
??? 12V Waterproof Motors (x2)
MPU-6050 3.3V Accelerometer, Gyrometer Datasheet
Registers
MicroSD Breakout board+ 5V SD Card Reader Tutorial
DS18B20 5V Waterproof Temperature Probe Datasheet
MPX4250A 5V Pressure Sensor (Old) Datasheet
??? 5V Waterproof Pressure Sensor Store

Issues


  • The MPU-6050's acceleration is now exclusively returning 1 instead of something over its full range [-32768, 32767].
  • Extremely tiny changes to mass distribution cause leaning, affecting movement.
  • The wires are shockingly loose; ideally they should be soldered when you're confident in your setup.
  • The pressure-sensing code only applies to the MPX4250A (and even then it may be off), not the bulky waterproof guy. Gather some experimental data like was done with the MPU-6050.
  • Having to call a function twice to access a register (unless that's intended in the library, not sure).

Considerations


  1. Buoyancy control, or another vertical movement method? Below consideration is relevant to your chosen method.
  2. Either way, will you need to upscale to an Arduino Mega? You will if you add another motor or servo or digital pin-heavy chip.
  3. Depending on that, and any additional sensors, what do you want to use as the hull? Unsure whether hot glue for plastic holes or resin for resin holes is better.
  4. Do you have enough people to delegate into specific enough roles? Speaking from experience, try to have "task forces" (I didn't push that agenda, but maybe should have).