MonkeyDogTracker (3 / 4 steg)

Steg 3: Arduino skisser



GPS: TinyGPS ++-bibliotek som används av både moduler:

http://arduiniana.org/libraries/tinygpsplus/

Jag använder maniacBugs nrf24L01 bibliotek:

https://github.com/maniacbug/RF24

https://github.com/maniacbug/RF24Network

Detta är ganska komplex skisser.

Krage skiss: ArduinoTransmitter.zip

Kom ihåg: Detta är en Pro Mini 8 MHz 3.3V styrelse och Processor. Pro Mini har också en annan USB-BUB typ pinut. Jag gjorde en USB-adapter i detta Instructable:

Display skiss: ArduinoDisplayStation.zip

Kom ihåg: Här en Pro Mini 8MHz 3.3V styrelse och Processor. Men jag använder det "standard" USB-BUB pinout.

LSM303DLHC: Tyvärr, jag minns inte var jag fick detta Arduino bibliotek. Jag tror det var från Pololu. Hur som helst, jag har bifogat biblioteket.

Så Pololu biblioteket har en kalibrera skiss till "kalibrera LSM303DLHC. Här är beskrivningen:

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 denna skiss på modulen Display. 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 DisplayStation 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.

Varning: När jag uppdaterade till Arduino till 1.6.1, jag var tvungen att uppdatera Adafruit_GFX och Adafruit_PCD8544 bibliotek:

https://learn.adafruit.com/adafruit-gfx-Graphics-Library

https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-Library

Visa skiss Sammanfattning:

Förutom setup() och loop() skrev jag sex funktioner:

getRadioData() använder nrf24L01 + att ta emot data som skickas av modulen krage

getGPS() får GPS-data från den interna GPS

calculate() beräknar avstånd och riktning mellan två

getHeading() få rubrik från LSM303 magnetometer

getPosition() få position med hjälp av rubriken och kompass

displayDirection() Visa information på LCD5110

Setup() startar GPS, kompass, nrf24L01 +, sätter upp LCD5110

loop() hämtar data från krage, blir GPS, beräknar avstånd och riktning och visar

Se Steg
Relaterade Ämnen

CarTracker

Har du kommit ut ur en butik och sa till dig själv, där jag parkera min bil? Tja, har jag. Nu finns det en hel del smartphone program som kan hjälpa dig att hitta din bil men smartphones är dyra.Så beslutat här lata gamla Geek (S.T.O.C.K.:S) att göra...