Este proyecto implementa un simulador interactivo de dron en 2D desarrollado en Python la primera opción con Pygame y la segunda con Vpython, pensado para actividades educativas STEAM.
El dron ajusta su altitud en función del valor leído desde un potenciómetro conectado a un microcontrolador (Arduino) o, en su defecto, funciona en modo DEMO con valores simulados.
- 📡 Control en tiempo real: lectura de datos desde puerto serial (
COMx) a través de un potenciómetro (0–1023). - 🎮 Simulación visual: el dron se mueve verticalmente en pantalla, representando su altitud.
- 🧩 Modo DEMO automático: si no se detecta conexión serial, el sistema genera valores simulados con una función seno.
- 🎯 Indicador de zona estable: muestra visualmente cuándo el dron se encuentra dentro del rango de altitud objetivo.
- 💡 Diseño educativo: ideal para integrar conceptos de control, sensores, mapeo de señales y simulación física simple.
- 🐍 Python 3.8 o superior
- 📦 Librerías necesarias:
pip install pygame pyserial vpython
- 🧠 Hardware opcional:
- Arduino UNO o compatible
- Potenciómetro (10kΩ recomendado) conectado a la entrada analógica A0
- Comunicación serial a 9600 baudios
void setup() {
Serial.begin(9600);
}
void loop() {
int pot = analogRead(A0);
Serial.println(pot);
delay(50);
}- Conecta tu placa Arduino y verifica el puerto COM correspondiente (por ejemplo
COM3oCOM4). - Modifica la línea del puerto serial en el script:
ser = serial.Serial('COM3', 9600, timeout=1)
- Ejecuta el programa desde la terminal o IDE:
python simulador_dron.py
- Si no se detecta Arduino, el simulador entra automáticamente en modo DEMO y genera valores oscilantes con una función seno.
- El valor leído del potenciómetro se mapea de un rango de 0–1023 a una altura en píxeles dentro de la ventana.
- El dron se mueve verticalmente para representar su altitud.
- Se muestra una zona objetivo (rango de tolerancia) donde la altitud se considera estable.
- En la interfaz aparecen indicadores de:
- Altitud actual
- Valor leído del potenciómetro
- Estado del control ("Altitud estable" o "Ajusta altitud")
- 🔢 Sensores analógicos y digitalización de señales.
- 🔄 Comunicación serial entre microcontrolador y PC.
- 📊 Mapeo de valores entre rangos físicos y gráficos.
- 🤖 Simulación de sistemas ciberfísicos.
- 💻 Visualización de datos en tiempo real.
Este proyecto es ideal para introducir a los estudiantes en el control básico de sistemas físicos simulados, combinando electrónica, programación y visualización.
Desarrollado como parte de las actividades STEAM educativas del proyecto
KALÚ STEAM — orientado al aprendizaje accesible de robótica y tecnología creativa.
Promueve la integración de ciencia, tecnología, ingeniería, arte y matemáticas en entornos inclusivos de aprendizaje.
Este proyecto se distribuye bajo la licencia MIT.
Eres libre de usar, modificar y compartir el código con fines educativos citando la fuente.
Desarrollado por:
👩🏫 Patricia Constante
Proyecto: KALÚ STEAM – Educación tecnológica accesible

