Ejemplo de ESP32 WebJoystick - Tutorial de Control del Joystick Virtual
Visión general
El ejemplo WebJoystick crea una interfaz de joystick virtual accesible desde cualquier navegador web. Diseñado para ESP32 plataforma educativa con capacidades robóticas mejoradas, características de control de motor integradas y una integración perfecta con módulos educativos de robótica. Perfecto para controlar robots, vehículos o cualquier sistema que requiera entrada de posición en 2D.

Características
- Joystick virtual: Control interactivo del joystick a través de la interfaz web
- Coordenadas en tiempo real: Valores X/Y de -100 a +100 para un control preciso
- Soporte táctil y de ratón: Funciona en computadoras de escritorio, tabletas y dispositivos móviles
- Retorno automático configurable: Opción para que el joystick vuelva al centro al soltarse
- Control de sensibilidad: Sensibilidad ajustable para evitar actualizaciones excesivas
- Retroalimentación visual: Visualización de la posición en tiempo real y valores de las coordenadas
- Comunicación WebSocket: Respuesta instantánea sin actualizar la página
- Posición central: Indicador claro de la posición central para un control neutro
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Instrucciones de configuración
Pasos rápidos
Siga estas instrucciones paso a paso:
- Si es la primera vez que usas el ESP32, consulta el tutorial sobre configuración del entorno para ESP32 en el IDE de Arduino.
- Conecta la placa ESP32 a tu ordenador usando un cable USB.
- Inicia el IDE de Arduino en tu ordenador.
- Selecciona la placa ESP32 adecuada (p. ej. ESP32 Dev Module) y el puerto COM.
- Navega hasta el icono Bibliotecas en la barra izquierda del IDE de Arduino.
- Busca "DIYables ESP32 WebApps", luego localiza la biblioteca DIYables ESP32 WebApps de DIYables
- Haz clic en el botón Instalar para instalar la biblioteca.

- Se le pedirá instalar otras dependencias de bibliotecas.
- Haga clic en el botón Instalar Todo para instalar todas las dependencias de la biblioteca.

- En Arduino IDE, ve a Archivo Ejemplos DIYables ESP32 WebApps WebJoystick ejemplo, o copia el código anterior y pégalo en el editor de Arduino IDE
- Configura las credenciales de WiFi en el código actualizando estas líneas:
- Haz clic en el botón Subir en el IDE de Arduino para subir el código al ESP32
- Abre el Monitor Serial
- Echa un vistazo al resultado en el Monitor Serial. Se ve como lo siguiente
- Si no ves nada, reinicia la placa ESP32.
- Toma nota de la dirección IP que se muestre y escribe esa dirección en la barra de direcciones de un navegador web en tu teléfono inteligente o PC.
- Ejemplo: http://192.168.0.2
- Verás la página de inicio como en la imagen de abajo:

- Haz clic en el enlace de Web Joystick; verás la interfaz de usuario de la aplicación Web Joystick como se muestra a continuación:

- O también puedes acceder a la página directamente mediante la dirección IP seguida de /web-joystick. Por ejemplo: http://192.168.0.2/web-joystick
- Prueba controlar el joystick virtual haciendo clic y arrastrando en el área del joystick y observa los valores de las coordenadas X/Y (-100 a +100) en el Monitor Serie.
Personalización creativa - Adapta el código a tu proyecto
2. Configurar los ajustes del joystick
El joystick se puede configurar con diferentes parámetros:
Configuración básica
Configuración avanzada
Cómo usar el joystick
Controles de la interfaz web
La interfaz del joystick proporciona:
- Pad del Joystick: Área de control circular para entrada táctil/ratón
- Indicador de posición: Muestra la posición actual del joystick
- Pantalla de coordenadas: Valores X/Y en tiempo real (-100 a +100)
- Punto Central: Referencia visual para la posición neutra
Operación del joystick
Escritorio (Control del ratón)
- Haz clic y arrastra: Haz clic en el joystick y arrastra para mover
- Soltar: El joystick regresa al centro (si autoReturn=true)
- Posición de clic: Haz clic directamente para establecer la posición del joystick
Móvil/Tableta (control táctil)
- Toque y arrastre: Toque el joystick y arrastre el dedo para moverse
- Multitoque: Un solo dedo para un control preciso
- Soltar: Regreso automático al centro (si está activado)
Sistema de Coordenadas
El joystick proporciona coordenadas en un sistema cartesiano estándar:
- Eje X: -100 (extremo izquierdo) a +100 (extremo derecho)
- Eje Y: -100 (extremo inferior) a +100 (extremo superior)
- Centro: X=0, Y=0 (posición neutral)
- Esquinas: Las posiciones diagonales proporcionan valores combinados de X e Y
Ejemplos de Programación
Manejador básico de joystick
Ejemplo de control de motor
Ejemplo de control de servomotor
Indicador de posición LED
Configuración avanzada
Cambios de configuración en tiempo de ejecución
Implementación de la Zona Muerta
Rampa de velocidad
Ejemplos de integración de hardware
Control de vehículo robótico
Control del gimbal de la cámara
Control de color de LED RGB
Solución de problemas
Problemas comunes
1. El joystick no responde
- Verificar el estado de la conexión WebSocket en la consola del navegador
- Verificar la conectividad de la red
- Actualizar la página del navegador
- Verificar errores en el Monitor de serie
2. Movimiento brusco o irregular
- Aumentar el valor de la sensibilidad para reducir la frecuencia de actualización
- Implementar filtrado de zona muerta
- Añadir una rampa de velocidad para transiciones suaves
- Verificar problemas de latencia de la red
3. Regreso automático no funciona
- Verificar la configuración de autoReturn: webJoystickPage.setAutoReturn(true)
- Verificar la compatibilidad del navegador (algunos dispositivos táctiles varían)
- Probar con diferentes métodos de entrada (ratón vs táctil)
4. Valores que no alcanzan el rango completo
- Verificar la calibración del joystick en la interfaz web
- Verificar los cálculos de coordenadas en la devolución de llamada
- Probar con diferentes combinaciones de navegadores y dispositivos
Consejos de depuración
Añadir depuración exhaustiva:
Ideas de Proyectos
Proyectos de robótica
- Coche robótico controlado a distancia
- Control de brazo robótico
- Control de vuelo de drón (movimientos básicos)
- Navegación de robot para mascotas
Automatización del hogar
- Control de cortinas inteligentes (abrir/cerrar/posición)
- Control de paneo e inclinación de la cámara
- Control de brillo y color de la luz
- Control de velocidad y dirección del ventilador
Proyectos educativos
- Herramienta didáctica de sistemas de coordenadas
- Demostraciones de control de motores
- Experimentos de posicionamiento con servomotores
- Interfaces de mando para videojuegos
Arte y Proyectos Creativos
- Control de patrones de matriz LED
- Control de visualización musical
- Control del robot de dibujo
- Instalaciones de arte interactivo
Integración con otros ejemplos
Combinar con WebSlider
Usa el joystick para la dirección y los deslizadores para la velocidad/intensidad:
Combinar con WebDigitalPins
Utiliza las posiciones del joystick para activar los estados de los pines digitales:
Próximos pasos
Después de dominar el ejemplo de WebJoystick, prueba:
- WebSlider - Para control analógico adicional
- WebDigitalPins - Para control discreto de encendido/apagado
- WebMonitor - Para depurar los valores del joystick
- MultipleWebApps - Combinando el joystick con otros controles
Soporte
Para obtener ayuda adicional:
- Consulta la documentación de la API
- Visita los tutoriales de DIYables: https://esp32io.com/tutorials/diyables-esp32-webapps
- Foros de la comunidad ESP32