Stap 4: Arduino Tilt-controle
1. het kantelen van de Arduino versnellingsmeter verzendt gegevens naar Python op de PC
2. Python beweegt van de PC muis
3. Google Earth loopt de Flight Simulator volgens de muispositie
We beginnen met het krijgen van de Arduino te voelen van de schuine stand van de versnellingsmeter en de gegevens te verzenden via de seriële poort (via USB) aan op de PC.
De volledige code wordt weergegeven in de Volgende stap. Voor nu laten we eens kijken naar de belangrijkste ideeën waardoor de code werken.
1.
Aan het begin van de code moeten we vaststellen welke lezingen van de versnellingsmeter komen overeen met niveau. We moeten dit doen, dus we weten wanneer het apparaat uit de buurt van niveau heeft geweest bewogen.
We schrijven een functie genaamd average() met behulp van een for -lus te meten van de relevante gegevens van de pin en gemiddelde het als volgt:
Krijgen van het gemiddelde van 8 lezingen van 'pin'
int gemiddelde (int pin) {}
int Ave = 0;
for (int i = 0; ik < 8; i ++) {}
Ave Ave + analogRead(pin); =
}
retourneren van Ave/8;
}
Wij average() voor de x-, y- en z as metingen tijdens het Setup -gedeelte dat één keer, aan het begin van het programma wordt uitgevoerd.
2.
Wij stellen dat het apparaat wordt bewogen door een eenvoudige aftrekking als volgt:
xTilt = analogRead (xpin)-xAve;
3.
We willen communiceren van de stand van de drukknop schakelaar aan Python zodat het overname muiscontrole wanneer gedrukt en afstand doen van het toen weer ingedrukt.
Om dit te doen moeten we om een Pullup op swpin in het Setup -gedeelte:
digitalWrite (swpin, hoge); Pullup op Switch Pin inschakelen
en lees de pin in de sectie van de loop:
swState = digitalRead(swpin); swState = 0 wanneer gedrukt
4.
We communiceren met Python op de PC via de USB-seriële verbinding door het schrijven van een vooraf bepaalde indeling van de tekenreeks:
"Data, xTilt, yTilt, zTilt, swState\n"
die een tekenreeks begint met "Data", de tilt waarden gescheiden door komma's, de schakelaar staat en een nieuwe-regelteken.
Dus als de xTilt, yTilt, zTilt en swState waar 2, 5 -1 en 0 respectievelijk de tekenreeks die wordt verzonden zou worden:
"Gegevens, 2, 5, -1, 0\n"
Als alle gegevens gaat uit via de seriële poort kunt u de seriële Monitor < Ctrl + Shift + M > om het te bekijken.
5.
Ga naar de Volgende stap, kopieer de code naar een lege schets en Upload aan de Arduino.