Proceso de comunicación con los 5 sensores MPU6050 - Gloveland/esp32_glove GitHub Wiki
Problemática
La comunicación entre el Esp32 y los sensores MPU6050 se efectúa mediante el bus I2C, el cual nos permite obtener mediciones con una gran frecuencia. El funcionamiento del bus i2c funciona de la siguiente manera: cada sensor escribe en una dirección del bus i2c asignada de fábrica, especificada por el fabricante; en nuestro caso el MPU6050 tiene por defecto la dirección 0x68 para transmitir datos a través del bus i2c y si se le activa el pin de ad0 el sensor escribe en la dirección 0x69 del bus. Dado que necesitamos comunicarnos con 5 idénticos sensores en simultáneo y que disponemos únicamente de dos direcciones posibles para escribir en el bus i2c, nos encontramos limitados.
Solución
Mecanismo de obtención de mediciones
Leemos de a un sensor por vez de la siguiente manera:
- Configuramos el sensor objetivo para que escriba en la dirección 0x68 del bus i2c, desactivando el pin AD0.
- Configuramos los sensores restantes para que escriban en la dirección 0x69 del bus i2c, activando el pin AD0.
- Ordenamos una operación de escritura a los sensores.
Con esta modalidad, logramos disponer de una medición válida en la posición 0x68, mientras que descartamos lo que sea que se haya escrito en la dirección 0x69, dado el hecho de que los 4 sensores restantes escribieron en simultáneo generando basura.

Frecuencia de reloj de los sensores y del bus I2C
Además de establecer el anterior mecanismo, a fin de incrementar la frecuencia de obtención de mediciones, realizamos lo siguiente:
- incrementar la frecuencia de comunicación del bus I2C a 400KHz (en lugar de los 100KHz por defecto)
- incrementar la frecuencia de toma de mediciones en los sensores MPU6050 a 400KHz.
De este modo, aprovechando el hecho de que el bus i2c tiene una frecuencia de comunicación muy elevada, podemos obtener mediciones con una frecuencia de 60Hz que es lo suficientemente buena para nuestro proyecto.