Paso 13: Acelerómetro + vibración del controlador de XBox 360
Acelerómetros se utilizan para medir aceleración en uno o más ejes, así que pensé que sería divertido poner uno en el coche. He añadido un acelerómetro de 3 ejes Adafruit ADXL335 para medir la aceleración en el coche, así que las colisiones se detectan y causan el mando de XBox a vibrar/rumble. Este acelerómetro ofrece sus medidas como 3 entradas analógicas separadas a Arduino. El rango de las mediciones es- / + 3 g, que se asigna a 0 - 3.3V. Puesto que el voltaje máximo es sólo 3.3V, el 3.3V pin de referencia en el tablero de acelerómetro fue conectado al pin de referencia externa de Arduino.
El Arduino Lee los valores de acelerómetro, en cada iteración del bucle principal y guarda los valores. El sketch de Arduino compara los valores de aceleración actual con los valores previamente guardados. Si la diferencia excede un umbral, el carácter "R" se escribe en la secuencia de salida serie del Arduino, para indicar que el controlador debe rumble. Si la diferencia es demasiado pequeña, el carácter "O" se escribe en la salida serie de Arduino.
El programa C# recibe la cadena serie de Arduino. Si se encuentra el carácter "R", se coloca una bandera de la "cuenta regresiva" (rumblecount), para indicar que el controlador debe rumble. En cada controlador de XBox "marco", se comprueba el estado de esta bandera. Si es superior a cero, el estruendo del controlador está activado, y "rumblecount" es disminuye. En cada fotograma posterior, el controlador se rumble hasta que la bandera de la cuenta regresiva llega a cero. La razón de este indicador de cuenta atrás es para habilitar el controlador para la pelea por un mínimo de varios fotogramas, desde un solo cuadro es demasiado rápido aviso (aprox. 20 MS).
Con los actuales umbrales en el sketch de Arduino, el controlador se rumble el coche choca contra algo,, va sobre obstáculos grandes y conduce por las escaleras. También se rumble periódicamente al conducir sobre la hierba, pero no en concreto liso, así que en cierto modo, usted puede conseguir una sensación para el terreno a través del controlador. También retumba al aplicar el acelerador o el completo retroceso.
Nota sobre la vibración del regulador de XBox 360: hay dos motores de vibración - uno es de baja frecuencia y la otra es una frecuencia más alta. La intensidad de la vibración también se puede controlar precisamente (utiliza un flotador de intensidad), así que usted podría conseguir una muy amplia gama de efectos de rumble (como cualquiera que haya utilizado una XBox / Playstation ya sabe). Mi programa no utilizar estas funciones avanzadas, porque tarda mucho tiempo para programar y requiere demasiado esfuerzo...:-P