Flight Simulator med Arduino och Python (5 / 9 steg)
Steg 5: Full Arduino kod
/ * Känsla vippning handlingen av en ADXL335 Accelerometer ochmatar ut data på den seriella porten (USB).
(c) Anthony Kelly, 2013 * /
/* void setup() { void loop() {
A0: x-axeln
A1: y-axeln
A2: z-axel
*/
int xpin = A0, ypin = A1, zpin = A2;
int swpin = 0;
int swState = 0;
int s, yAve, zAve;
int xTilt, yTilt, zTilt;
Serial.BEGIN(9600);
pinMode (swpin, ingång);
digitalWrite (swpin, hög); / / Aktivera Pullup på Switch stift
Kalibrera sensorn för nivå position genom att ta medelvärdet av 8 avläsningar
s = average(xpin);
yAve = average(ypin);
zAve = average(zpin);
}
xTilt = analogRead (xpin)-Nick;
yTilt = analogRead (ypin)-yAve;
zTilt = analogRead (zpin)-zAve;
swState = digitalRead(swpin);
Skicka Data som en seriell sträng enligt följande:
"xTilt, yTilt, zTilt, swState \n"
Strängen kommer att läsas av Python med linjer separerade med "\n"
Serial.print (xTilt, DEC);
Serial.Print(",");
Serial.Print (yTilt, DEC);
Serial.Print(",");
Serial.Print (zTilt, DEC);
Serial.Print(",");
Serial.Print (swState, DEC);
Serial.println();
}
Få ett genomsnitt av 8 avläsningar från "pin"
int genomsnittet (int pin) {
int Ave = 0;
för (int jag = 0; jag < 8; i ++) {
Ave = Ave + analogRead(pin);
}
returnera Ave/8.
}