Étape 13 : Accéléromètre + Vibration contrôleur XBox 360
Accéléromètres sont utilisés pour mesurer l’accélération dans un ou plusieurs axes, donc j’ai pensé qu’il serait amusant de mettre un dans la voiture. J’ai ajouté un accéléromètre 3 axes de Adafruit ADXL335 pour mesurer l’accélération sur la voiture, alors les collisions seront détectées et causent la manette XBox vibrer/rumble. Cet accéléromètre fournit ses mesures comme 3 entrées analogiques distinctes à l’Arduino. La gamme de mesures est- / + 3 g, ce qui correspond à 0 - 3, 3V. Puisque la tension maximum est seulement de 3.3V, le 3.3V goujon de référence du Conseil de l’accéléromètre a été connecté à broche de référence externe de l’Arduino.
L’Arduino lit les valeurs de l’accéléromètre, à chaque itération de la boucle principale et enregistre les valeurs. Le sketch Arduino compare les valeurs actuelles d’accélération avec les valeurs précédemment enregistrées. Si la différence dépasse un certain seuil, le personnage « R » est écrit à la chaîne de sortie séquentielle de l’Arduino, pour indiquer que le contrôleur devrait rumble. Si la différence est trop petite, le caractère « O » est écrit dans la sortie de série de l’Arduino.
Le programme c# reçoit la chaîne de série de l’Arduino. Si elle constate le caractère « R », un drapeau « countdown » (rumblecount) est défini, pour indiquer que le contrôleur devrait rumble. Dans chaque manette XBox « frame », le statut de ce drapeau est vérifié. S’il est supérieur à zéro, le grondement du contrôleur est activé, et « rumblecount » est décrémenté. Sur chaque image suivante, le contrôleur sera rumble jusqu'à ce que l’indicateur de compte à rebours atteint zéro. La raison de cet indicateur compte à rebours est de permettre au contrôleur de rumble pour un minimum de plusieurs images, car une seule image est trop prompt à remarquer (environ 20 ms).
Avec les seuils de courant dans le sketch Arduino, le contrôleur sera rumble quand la voiture s’écrase sur quelque chose, roule, va plus grands obstacles ou lecteurs dans les escaliers. Il sera également rumble périodiquement lorsque vous conduisez sur l’herbe, mais pas sur béton lisse, donc en quelque sorte, vous pouvez avoir une idée du terrain par le contrôleur. Il gronde également lors de l’application plein gaz ou entièrement arrière.
Note au sujet de vibration du contrôleur XBox 360 : il existe deux moteurs de vibration - basses fréquences et l’autre est une fréquence plus élevée. L’intensité de la vibration peut également être contrôlée avec précision (il utilise un flotteur pour intensité), alors vous pourriez obtenir un très large éventail d’effets rumble (comme quelqu'un qui a utilisé une XBox / Playstation sait déjà). Mon programme n’est pas utiliser ces fonctionnalités avancées, parce qu’il prendra trop de temps pour programmer et nécessite trop d’efforts...:-P