Spotter Scope (4 / 9 steg)
Steg 4: Programvara kalibrering
Varning: Min PCB använder en Atmega328 programmerade med Pro MINI 8 MHZ 3.3V bootloader. Om du bygger detta PCB, du måste programmera det med Pro MINI 8 MHZ 3.3V bootload och måste välja det när du använder Arduino-miljö. PCB är designad för att använda en USB-BUB adapter eller, jag använder, som motsvarar en PL2303.
För LSM303dlhc använde jag detta Pololu bibliotek:
https://github.com/Pololu/lsm303-Arduino
Detta omfattar ett förfarande för att kalibrera magnetometer. Jag ändrade det att fungera med min Arduino och LCD5110. Det fästas: Calibrate.zip
Kalibrera: Detta program liknar det seriella exemplet, men istället för att skriva ut den senaste behandlingen, den skriver en löpande minsta och största av avläsningarna från varje magnetometer axel. Dessa värden kan användas för att kalibrera heading() funktioner och i rubriken exempel efter att ha flyttat LSM303 genom varje möjligt orientering.
Jag ändrade det så att min och Maxs visas på LCD5110. Kör skiss, långsamt, vrida och vända modulen på alla ledder. Spela in minuter och Maxs på displayen, sedan koppla in dem i SpotterLevel skiss, ersätta värdena i följande rader:
Compass.m_min = (LSM303::vector) {-433,-600,-546};
Compass.m_max = (LSM303::vector) {570, 488, 579};
Detta bör förbättra den kompass behandlingen.
För det här programmet används accelerometer portion för att avgöra när församlingen är nivå.
Teori: Accelerometer mäter acceleration. Gravitation är en form av acceleration. Modulen LSM303dlhc mäter acceleration i tre riktningar x, y och z (se bild). Z är verkligen upp och ner. I denna ansökan, eftersom LSM303 är mest stillastående, är accelerationen uppmätt gravitation. Så om LSM303 nivå, då x och y accelerationer vore skulle 0 och z vara 1g (standard allvar). Nu är LSM303 inställd för +/-2g så 1g är ungefär 16384 räknas. (Geeken i mig säger detta bör 32768!!!)
Nu om LSM303 var upp och ner, skulle z värdet vara-1 g, om-16384.
Även om nog inte nödvändigt, skrev jag också ett kalibreringsprogram för accelerometern, AccelCal.zip
Meddelande: Kalibrering bilderna är tagna med min första version av spotter scope. För den senaste versionen, jag monterade den kompletta spotter scope församlingen men koppla inte den till ett stativ. Använda samma metod som på bilderna.
För att kalibrera, jag monterade min spotter scope och lastade varje program.
För varje program ta hela församlingen utanför, driva upp Arduino. Långsamt, flytta runt i alla riktningar, nivå, upp och ner, räckvidd omfattning ner, räckvidd på höger sida, räckvidd på vänster sida och sakta snurra runt.
Spela in min och max värden för kalibrera och AccelCal skisser. De kommer att användas i nästa steg.