🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Ayuda con latencia Bluetooth en proyecto de control para Game Android

    M5Stick V
    2
    2
    63
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • samantha_martinS
      samantha_martin
      last edited by

      ¡Hola a todos!

      Soy bastante nuevo en el ecosistema de M5Stack pero estoy totalmente fascinado. Estoy trabajando en mi primer proyecto "serio": un pequeño control personalizado usando un M5StickC Plus para jugar un game android en mi teléfono.

      La idea es usar los botones del M5StickC para controlar acciones simples en el juego a través de Bluetooth (usando el perfil HID).

      El Problema:

      He conseguido conectar el M5StickC a mi teléfono Android y el sistema lo reconoce como un dispositivo de entrada. ¡Funciona! Pero tengo una latencia (retraso) enorme, de casi medio segundo. Cuando presiono un botón en el Stick, la acción en el juego tarda demasiado en ocurrir, lo que lo hace injugable.

      Lo que he intentado:

      Optimizar el loop() en mi código de Arduino para que sea lo más rápido posible.
      Aumentar la velocidad del Serial.begin() (aunque no creo que esto influya).
      He probado con la librería ESP32-BLE-Keyboard y también con BleGamepad. Ambas presentan el mismo retraso.
      ¿Alguien ha tenido una experiencia similar al crear un control Bluetooth para un game android o cualquier otra aplicación? ¿Hay alguna configuración especial en el lado de Android o alguna técnica en el código del ESP32 para minimizar esta latencia?

      ¡Cualquier consejo sería de gran ayuda! ¡Muchas gracias de antemano!

      Y 1 Reply Last reply Reply Quote 0
      • Y
        yuyun2000 @samantha_martin
        last edited by

        @samantha_martin Hola Samantha. El M5StickC Plus (SKU:K016-P) utiliza el chip ESP32-PICO-D4, que integra Bluetooth LE. Para reducir la latencia en la transmisión HID, puedes probar las siguientes acciones:

        Optimizar la frecuencia de envío de datos: En las librerías ESP32-BLE-Keyboard o BleGamepad, ajusta el intervalo de notificación BLE a un valor más bajo (por ejemplo, 10-20 ms). Algunas librerías permiten configurar esto al inicializar el dispositivo HID.

        Minimizar el código en el loop(): Asegúrate de que no haya delays innecesarios ni tareas bloqueantes (como impresiones Serial) que ralenticen la detección de botones y el envío de comandos.

        Configurar el modo BLE de bajo consumo: Aunque el ESP32-PICO-D4 es eficiente, verifica que no se encuentre en modos de suspensión prolongada. Asegúrate de que el dispositivo BLE esté configurado para enviar notificaciones inmediatamente al detectar una pulsación.

        Actualizar el firmware del ESP32: Usa la última versión del core ESP32 en Arduino IDE, ya que a menudo incluyen optimizaciones en el stack BLE.

        Verificar la configuración de Android: En el menú de configuración de Bluetooth de tu teléfono, desactiva opciones como "Ahorro de batería" para el dispositivo M5StickC Plus, ya que pueden restringir la frecuencia de actualizaciones HID.

        https://chat.m5stack.com/

        1 Reply Last reply Reply Quote 0
        • First post
          Last post