Interagera med en OLED och en Accelerometer (5 / 6 steg)
Steg 5: Sensor i aktion
Nu när vi har vår boll, kan vi använda sensorn att flytta.
I avsnittet loop programmet gör vi en hänvisning till föraren att vi använder igen. Då vi läser data från stift x och y, och tilldela värden till variabler x1 och y1 respektive. Tabellen ovan visar värdet av varje stift beroende på lutningen på enheten.
Genom att jämföra värden med värdena "i vila" kan vi avgöra om enheten lutas till höger, vänster, etc. Låt oss ta det första fallet i vårt program som ett exempel.
Vi vet att om enheten lutas till höger, minskar värdet "i vila". När detta händer, anropar programmet funktionen "move_right." Denna funktion rensar skärmen och lägger sedan till värdet 10 i variabeln "varx" (som i detta fall är noll). Detta motsvarar antalet pixlar som vi vill flytta bollens ursprung i x-axeln. Sedan lagrar vi det nya värdet av "varx" på första plats i matrisen. Slutligen, vi kallar den "FillCircle" och "Flush" funktionen för att visa en ny cirkel på vår skärm 10 pixlar från tidigare cirkla i x-axeln. Processen håller upprepa så länge pin X värdet mindre än 510, alltså radera tidigare cirkeln och rita en ny en 10 pixlar från varje iteration. Detta ger illusionen att bollen går till höger.
Om bollen når slutet av skärmen, kallas emellertid funktionen "stop_right". Denna funktion rensar skärmen, ställer in varx lika med 126 och lagrar detta värde i den första platsen i matrisen. Sedan anropas de "FillCircle" och "Spola" för att rita och Visa en boll med sitt ursprung på (126,xy[1]). Med andra ord kommer programmet att sluta flytta bollen 10 pixlar till höger, och istället kommer det hålla ritning i samma cirkel på kanten på höger sida av skärmen i oavsett y plats den finns.
Samma idé används när den lutas vänster, uppåt eller nedåt.