โ† Back to workBROSLUNAS

[ Selected work ] / 2024

EDURov Submarino

>>> Summary

Control system for a robotic submarine built on Arduino, supporting multiple input methods (joysticks, PS4/PS5 controllers).

[ Source code โ†— ]

FIG. 01EDURov Submarino
Stack
Arduino, C++, Python, Robotics, Electronics
Year
2024

>>> Details

EDURov-Subma is an educational project developed at IES Las Veredillas that implements an advanced control system for a robotic submarine (ROV) using Arduino. The system stands out for its versatility, offering multiple control options and real-time feedback.

Main Features

๐ŸŽฎ Multiple Control Options The system lets you operate the submarine in three different ways:

  • +Analog joysticks: Direct control through two physical joysticks (horizontal and vertical movement).
  • +PS4/PS5 controller: Connected via USB Host Shield through an intermediate Python script.
  • +Software control: Commands sent directly from a Python script.

โš™๏ธ Propulsion System Precise control of three DC motors:

  • +Motors A and B: Handle horizontal movement (forward, backward, turns).
  • +Motor C: Dedicated exclusively to depth control (up/down).

๐Ÿ–ฅ๏ธ Visual Feedback Integration of a 16x2 I2C LCD screen to show system status and telemetry data in real time.

Technologies and Hardware

Hardware

  • +Microcontroller: Arduino UNO (or compatible).
  • +Motor drivers: L298N or L9110 for power management.
  • +Communication: USB Host Shield for peripherals and Serial communication.
  • +Interface: LCD screen with I2C module.

Software

  • +Arduino (C++): Main firmware with dead-zone handling to avoid noise in the controls.
  • +Python: Scripts for the controller interface (using pygame) and serial communication (pyserial).
  • +Libraries: LiquidCrystal_I2C, USB Host Shield Library 2.0.

Project Structure

The code is organized modularly to ease maintenance and scalability:

  • +/codigo: Contains the main sketches for each control mode.
  • +/tests: Unit-test scripts for motors, LCD, joysticks and the USB shield.