
Control PCB
Mario-dango/Proyecto-RV
Dispositivos de Entrada: Joystick analógico (2 GDL) para tracción, pulsadores de acción y MPU6050 (Acelerómetro/Giroscopio) para seguimiento de gestos de inclinación.

Dispositivos de Entrada: Joystick analógico (2 GDL) para tracción, pulsadores de acción y MPU6050 (Acelerómetro/Giroscopio) para seguimiento de gestos de inclinación.
Robot PCB is an open-source printed circuit board by Mario-dango, from the Mario-dango/Proyecto-RV repository on GitHub. It is a 2-layer board with 38 parts on 66 nets.
It is built around the DFR0299, ESP32-S2-DEVKITC-1 and BC548. Its parts include 9 capacitors, 7 connectors, 4 resistors, 3 ICs and 3 diodes. It belongs with the robots and motor control boards and the ESP32 boards of this library.
Asignatura: Realidad Virtual Carrera: Ingeniería en Mecatrónica Alumno: Mario Papetti - 11807
El presente proyecto propone el diseño y desarrollo de un Sistema de Realidad Mixta basado en el concepto de "Gemelo Digital". El sistema consta de una Interfaz Hombre-Máquina (IHM) inmersiva desarrollada en hardware, que permite a un usuario teleoperar una plataforma robótica móvil (tanque) en el mundo físico. Simultáneamente, el estado, posición y entorno del robot se replican y extienden en un entorno tridimensional virtual interactivo.
El desarrollo aborda de manera integral los requisitos estipulados en la rúbrica del Trabajo Práctico Integrador:
Desarrollo de Hardware IHM: Se diseña y adapta un mando de control físico específico (no ofimático), incorporando sensores inerciales de seguimiento (tracking) y actuadores hápticos.
Desarrollo de Software: Se implementa un motor gráfico (Godot Engine) manejando primitivas gráficas 3D, iluminación y físicas de colisión.
Interacción Bidireccional: El hardware IHM controla el entorno virtual y el robot físico; a su vez, los eventos del entorno virtual y físico generan respuestas en la IHM (vibración, indicadores visuales).
Múltiples Escenarios: Se proponen dos escenarios lógicos de interacción diferenciados dentro del entorno virtual.
El proyecto se divide en tres nodos principales comunicados en tiempo real mediante protocolo UDP sobre una red Wi-Fi local:
Controlador: Microcontrolador ESP32-C3.
Dispositivos de Entrada: Joystick analógico (2 GDL) para tracción, pulsadores de acción y MPU6050 (Acelerómetro/Giroscopio) para seguimiento de gestos de inclinación.
Dispositivos de Salida (Feedback): Motor de vibración (realimentación háptica) e indicadores visuales de estado (conexión/batería).
Alimentación: Batería de litio gestionada por módulo TP4056 con protección integrada.
Controlador: Microcontrolador ESP32-S3.
Tracción: Chasis tipo tanque con control diferencial de motores de CC.
Percepción del Entorno: Array de 3 sensores ultrasónicos fijos (frontal, izquierdo, derecho) para detección de obstáculos.
Actuadores de Inmersión: Micro servo con emisor láser (simulación de herramienta/cañón), Buzzer pasivo (sonido espacial primario) y Display OLED I2C para telemetría local.
Motor: Godot Engine 4.x (GDScript).
Lógica: Renderizado del modelo 3D del robot, cálculo de físicas, interpretación de telemetría UDP y gestión de la interfaz gráfica de usuario (GUI).
El software presentará dos niveles o escenarios de uso que modifican la forma en la que el usuario interactúa con la realidad mixta:
El usuario maneja el tanque físico observando únicamente el entorno 3D en la pantalla (Teleoperación). Las lecturas de los 3 sensores ultrasónicos físicos se renderizan como campos de fuerza o escudos alrededor del modelo 3D. Si el robot físico se acerca peligrosamente a un obstáculo real, el motor gráfico detecta la proximidad, cambia el color del escudo virtual a rojo, emite una alarma sonora (en el robot) y envía un comando al mando IHM para generar una advertencia háptica (vibración).
Se añade un plano con colisiones y "dianas" u objetivos virtuales en el entorno 3D. Al presionar el gatillo en el mando físico, el tanque real acciona el servo con el láser (acción física), mientras que en el motor virtual se proyecta un Raycast (acción virtual). Si el rayo virtual impacta una diana, el motor gráfico actualiza el puntaje, hace parpadear los LEDs/Display físicos del tanque y genera un pulso háptico de confirmación en el mando del usuario.
Fase 1: Ensamblaje, ruteo de PCBs y programación de bajo nivel de los nodos ESP32 (IHM y Tanque).
Fase 2: Programación de la capa de red (UDP) y diseño de l entorno 3D (primitivas y físicas) en Godot.
Fase 3: Integración de sistemas, diseño de los 2 escenarios lógicos y depuración de latencias.
Fase 4: Elaboración de la documentación técnica ("manual paso a paso") y grabación del video demostrativo de 5-7 minutos.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | 100uF | Capacitor_THT:CP_Radial_D8.0mm_P3.80mm | C1, C3, C4, C6, C8 |
| 4 | 102 | Capacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mm | C2, C5, C7, C9 |
| 4 | 10k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1, R2, R3, R4 |
| 4 | MountingHole | MountingHole:MountingHole_3.5mm | H1, H2, H3, H4 |
| 3 | 1N4007 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D2, D3, D4 |
| 1 | BC548 | Package_TO_SOT_THT:TO-92_HandSolder | Q1 |
| 1 | DFR0299 | DFR0299:MODULE_DFR0299 | U2 |
| 1 | DRV8825_der | Module:Pololu_Breakout-16_15.2x20.3mm | A2 |
| 1 | DRV8825_izq | Module:Pololu_Breakout-16_15.2x20.3mm | A1 |
| 1 | Dist_der | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J4 |
| 1 | Dist_front | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | Dist_izq | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J3 |
| 1 | ESP32-S2-DevKitC-1 | PCM_Espressif:ESP32-S2-DevKitC-1 | U1 |
| 1 | I2C | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J7 |
| 1 | Laser | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J5 |
| 1 | Motor_Servo | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | M3 |
| 1 | PaP_Der | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | M2 |
| 1 | PaP_Izq | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | M1 |
| 1 | Power | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal | J1 |
| 1 | Rst | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J6 |
| 1 | Speaker | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | LS1 |
| 1 | module_mpu6050 | usini_sensors:module_mpu6050 | U3 |
| 1 | ~ | mini360_foot:mini360 | DC2 |

Mario-dango/Proyecto-RV
Dispositivos de Entrada: Joystick analógico (2 GDL) para tracción, pulsadores de acción y MPU6050 (Acelerómetro/Giroscopio) para seguimiento de gestos de inclinación.

RaviPatel021/Air-Hockey-Bot
This repository contains all the code and hardware files for an autonomous air hockey table system. The system uses a 2-axis gantry controlled by an ESP32, with real-time vision and inference running on either a laptop…

interspecifics/wave_reflector
wave_reflector is a eeg instrument/interface for live performance and installation

Mkhalaf203/4-DOF-Robotic-Arm
This repository contains the complete engineering files for a 4-Degree-of-Freedom (4-DOF) Robotic Arm System, featuring a gesture-controlled master-slave architecture.

GGoodacre/WindChargeController-Capstone2024
Solar Charge Controller for BEng Capstone 2024




38 parts, built around the DFR0299, ESP32-S2-DEVKITC-1 and BC548. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the Mario-dango/Proyecto-RV repository on GitHub, at the commit this page was made from: the board is Robot/Robot-PCB/Robot-PCB.kicad_pcb and its schematic Control/Control-PCB/Control-PCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask Mario-dango before reusing the design.