Stap 13: Versnellingsmeter + XBox 360 Controller trillingen
Versnellingsmeters worden gebruikt als eenheid van versnelling in een of meer assen, dus ik dacht dat het zou leuk om te zetten in de auto. Ik voegde een Adafruit ADXL335 3-axis accelerometer voor het meten van de versnelling op de auto, dus dat botsingen zal worden gedetecteerd en de XBox-controller te trillen/rumble veroorzaken. Deze versnellingsmeter biedt de afmetingen als 3 aparte analoge ingangen aan de Arduino. Het aantal metingen is- / + 3 g, die wordt toegewezen aan de 0 - 3, 3V. Aangezien de max spanning slechts 3,3 v, de 3,3 v is referentie pin op het bord van de versnellingsmeter was aangesloten op de Arduino van externe verwijzing pin.
De Arduino leest de versnellingsmeter-waarden, op elke iteratie van de hoofdlus, en worden de waarden opgeslagen. De Arduino schets vergelijkt de huidige waarden van de versnelling met de eerder opgeslagen waarden. Als het verschil groter is dan een drempel, wordt het karakter "R" geschreven naar de Arduino de uitgang voor seriële string, om aan te geven dat de controller moet rumble. Wanneer het verschil te klein is, wordt het teken "O" geschreven naar uitgang voor seriële van de Arduino.
De C#-programma ontvangt de seriële string van de Arduino. Indien zij vaststelt dat het teken "R", is een vlag van de "countdown" (rumblecount) ingesteld, om aan te geven dat de controller moet rumble. In elke XBox controller "frame", wordt de status van deze vlag gecontroleerd. Als het hoger dan nul is, de controller rumble is geactiveerd, en "rumblecount" wordt verlaagd. Op elke opeenvolgende frame, de controller zal rumble totdat de countdown vlag hits nul. De reden voor deze countdown-vlag is om de controller te rumble voor een minimum van meerdere frames, aangezien één frame ook snel is te merken (circa 20 MS).
Met de huidige drempels in de Arduino schets, zal de controller mompel wanneer de auto tegen iets crasht, rolt over, over grote obstakels gaat of trappen af rijdt. Het zal ook rumble periodiek bij het rijden over het gras, maar niet op glad beton, dus op een manier, je kunt krijgen een gevoel voor het terrein via de controller. Het dendert ook wanneer zij volgas of volledige omgekeerde toepassen.
Opmerking over XBox 360 controller trillingen: er zijn twee vibration-motoren - een lage frequentie is en de andere is een hogere frequentie. De intensiteit van trillingen kan ook juist worden gecontroleerd (het gebruikt een float voor intensiteit), dus kan je een zeer breed scala van rumble effecten (zoals iedereen die een XBox heeft gebruikt / Playstation al weet). Mijn programma niet gebruik maken van deze geavanceerde functies, want het duurt te lang om te programmeren en vergt teveel inspanning...:-P