Hola amigos, los saludo y presento mi idea la cual consiste en hacer un Mouse tipo guante, tome un mouse inalambrico al que le quisiera hacer ingenieria inversa, desarme uno y encontre dos chips, el optico que detecta el movimiento y el segundo es un microcontrolador que se comunica con el chip que detecta movimiento mediante dos lineas: Clock y data, siendo una comunicacion half duplex, el micro puede leer y escribir en registros internos del chip que detecta el movimiento. Usa dos bytes, el primer bit del primer byte indica si quiere leer o escribir y los otros 7 son para indicar la direccion de registro, luego el segundo byte es el valor que tiene el registro. Considerando esto pense en conectar mi arduino nano en lugar del chip sensor de movimiento (MX8630) y emularlo, para que mediante un acelerometro mover el cursor en pantalla, traté de capturar la comunicacion del micro con el arduino y aunque lei, yo solo encontre la instrucción:
byte incoming = shiftIn(dataPin, clockPin, bitOrder)
pense capturar ese byte con el arduino y mostrarlo en la computadora, pero lo unico que me devuelve es el numero: 255, o en binario 11111111 y no cambia en ningun momento. el codigo que use es:
byte registro=0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
// byte incoming = shiftIn(dataPin, clockPin, bitOrder)
//bitOrder: which order to shift in the bits; either MSBFIRST or LSBFIRST.
registro = shiftIn(12, 11,MSBFIRST);
Serial.println(registro,DEC);
Serial.println(registro,BIN);
}
La verdad no encontre mucha informacion sobre esa instrucción, hay mucha sobre la complementaria que es ShiftOut(); no se si servirá para lo que deseo hacer.
Adjunto el diagrama de tiempos de la comunicacion de los microcontroladores del mouse
Agradecido por la atencion prestada, la verdad no se si sea viable mi idea y por eso la expongo ante ustedes que se que tienen mucha experiencia..
Gracias, saludos desde Guatemala. .

