Grove 3-as digitale kompas (4 / 4 stap)

Stap 4: Code


De code is heel eenvoudig en alles wat het doet is leest het kompas lezingen en drukt het uit op een seriële monitor. Het kompas kalibreert voor een paar seconden bij het uitvoeren van de code maken zeker niet te draaien of verstoren van het kompas, terwijl dit gebeurt, en nadat het is voltooid zou je een mooie stroom van gegevens van de sensor.

 <p>// Reference the I2C Library<br>#include <wire.h> // Reference the HMC5883L Compass Library #include <hmc5883l.h></hmc5883l.h></wire.h></p><p>// Store our compass as a variable. HMC5883L compass; // Record any errors that may occur in the compass. int error = 0;</p><p>// Out setup routine, here we will configure the microcontroller and compass. void setup() { // Initialize the serial port. Serial.begin(9600);</p><p> Serial.println("Starting the I2C interface."); Wire.begin(); // Start the I2C interface.</p><p> Serial.println("Constructing new HMC5883L"); Serial.println("Setting scale to +/- 1.3 Ga"); error = compass.setScale(1.3); // Set the scale of the compass. if(error != 0) // If there is an error, print it out. Serial.println(compass.getErrorText(error)); Serial.println("Setting measurement mode to continous."); error = compass.setMeasurementMode(MEASUREMENT_CONTINUOUS); // Set the measurement mode to Continuous if(error != 0) // If there is an error, print it out. Serial.println(compass.getErrorText(error)); }</p><p>// Our main program loop. void loop() { // Retrive the raw values from the compass (not scaled). MagnetometerRaw raw = compass.readRawAxis(); // Retrived the scaled values from the compass (scaled to the configured scale). MagnetometerScaled scaled = compass.readScaledAxis(); // Values are accessed like so: int MilliGauss_OnThe_XAxis = scaled.XAxis;// (or YAxis, or ZAxis)</p><p> // Calculate heading when the magnetometer is level, then correct for signs of axis. float heading = atan2(scaled.YAxis, scaled.XAxis); // Once you have your heading, you must then add your 'Declination Angle', which is the 'Error' of the magnetic field in your location. // Find yours here: http://www.magnetic-declination.com/ // Mine is: -2��37' which is -2.617 Degrees, or (which we need) -0.0456752665 radians, I will use -0.0457 // If you cannot find your Declination, comment out these two lines, your compass will be slightly off. float declinationAngle = -0.0457; heading += declinationAngle; // Correct for when signs are reversed. if(heading < 0) heading += 2*PI; // Check for wrap due to addition of declination. if(heading > 2*PI) heading -= 2*PI; // Convert radians to degrees for readability. float headingDegrees = heading * 180/M_PI; </p><p> // Output the data via the serial port. Output(raw, scaled, heading, headingDegrees);</p><p> // Normally we would delay the application by 66ms to allow the loop // to run at 15Hz (default bandwidth for the HMC5883L). // However since we have a long serial out (104ms at 9600) we will let // it run at its natural speed. delay(66);//of course it can be delayed longer. }</p><p>// Output the data down the serial port. void Output(MagnetometerRaw raw, MagnetometerScaled scaled, float heading, float headingDegrees) { Serial.print("Raw:\t"); Serial.print(raw.XAxis); Serial.print(" "); Serial.print(raw.YAxis); Serial.print(" "); Serial.print(raw.ZAxis); Serial.print(" \tScaled:\t"); Serial.print(scaled.XAxis); Serial.print(" "); Serial.print(scaled.YAxis); Serial.print(" "); Serial.print(scaled.ZAxis);</p><p> Serial.print(" \tHeading:\t"); Serial.print(heading); Serial.print(" Radians \t"); Serial.print(headingDegrees); Serial.println(" Degrees \t"); }</p> 

Gerelateerde Artikelen

Arduino digitale kompas Project

Arduino digitale kompas Project

Hallo! In dit instructable ziet u hoe kunt u een digitaal kompas met behulp van een Arduino en de verwerking van IDE. Dit is heel simpel maar interessant en koele kijken Arduino Project.U kunt het voorbeeld van de manifestatie van deze tutorial op de
Auto digitale kompas & Thermometer

Auto digitale kompas & Thermometer

ik ben niet echt goed in het vinden van plaatsen en richting, maar ten minste ik kan lezen van kaarten en kompas. Deze dagen, worden GPS navigatiesystemen steeds populairder, dus waarschijnlijk dat sommige mensen zou zeggen waarom ik een kompas nodig
Configureren, gegevens lezen & kalibreren van het HMC5883L digitale kompas met behulp van Python

Configureren, gegevens lezen & kalibreren van het HMC5883L digitale kompas met behulp van Python

Net als in andere blogs bevat deze ook informatie die elders kan worden gevonden op het web. Ik net gestructureerd het zodat het makkelijk te gebruiken voor beginnende robot hobbyisten.Aansluiten van het kompas is heel simpel. Bij het monteren van de
Hoe maak je een tactiele Feedback kompas riem

Hoe maak je een tactiele Feedback kompas riem

heb je ooit vroeg zich af hoe trekvogels lukt om dergelijke een geweldig gevoel voor richting ondanks dat dus het algemeen clueless? Ze kunnen het gevoel van het aardmagnetisch veld met wat eigenlijk een kompas ingebouwd in hun lichaam is. Zou het ni
Digitaal kompas (HMC5883L) met de Raspberry Pi 2 met behulp van Python3 interfacing

Digitaal kompas (HMC5883L) met de Raspberry Pi 2 met behulp van Python3 interfacing

Aanvankelijk was ik bezig met een doolhof robot op te lossen. In plaats van met behulp van ultrasone en infrarood op Arduino Mega voor muur na, zoals mijn vrienden deed, probeer ik te doen iets anders met behulp van het kompas en de Raspberry Pi 2. D
Steampunk kompas

Steampunk kompas

te zijn opgetrokken weer een paar puzzel doos games onlangs, en met sommige onderdelen overgebleven ik dacht dat ik zou het opbouwen van een functionele Steampunk kompas.Gebaseerd op een Arduino Duemilanove is dit een echt snel en eenvoudig te bouwen
Arduino magnetische kompas (HMC5883L - 2 weergavemodi)

Arduino magnetische kompas (HMC5883L - 2 weergavemodi)

Hallo!!!Vandaag zal ik u tonen hoe te maken van uw eigen kompas arduino met behulp van de MHC5883L 3-as digitale kompas van bestuur.Voordat u begint, zorg ervoor dat u hebt:Arduino unoHMC5883L sensor bestuurDisplay van de Nokia 5110 (pcb versie)2 x d
Intel Edison en Ridemakerz RC Chassis Robotics Platform

Intel Edison en Ridemakerz RC Chassis Robotics Platform

Toen ik werd uitgenodigd om deel te nemen aan de wedstrijd van Intel IOT ik dacht dat het was een geweldige gelegenheid. Ten eerste, het zou geeft me toegang tot sommige echt geweldig hardware en sensoren. Ik ben een maker op een begroting, dus dat g
Laten we een SmartWatch

Laten we een SmartWatch

Edison is genoeg klein is om te gebruiken in wearble projecten, zo waarom niet wij een slimme horloge met deze kleine computer maken.Stap 1: inhoudInleiding tot Intel EdisonSpecificatiesProgrammering methodenPrototyping met EdisonWaarom kiezen van Ed
Slimme vuilnisbak - voor een Smart City

Slimme vuilnisbak - voor een Smart City

Overvolle vuilnisbakken zijn een andere bron van zorg voor bewoners in ontwikkelingslanden. Met de toename van de bevolking, is het scenario hygiëne in acht nemen met betrekking tot afval beheer enorm vernederend. Met de al heersende ziekten, de open
Eenvoudige lichtgewicht Hexacopter (A2212 motoren, 30AMP ESC, AIOP FC, 3000mAh 11.1v Lipo)

Eenvoudige lichtgewicht Hexacopter (A2212 motoren, 30AMP ESC, AIOP FC, 3000mAh 11.1v Lipo)

Hier hebben we instructie voor een zeer eenvoudige en relatief goedkope Hexacopter. Dit is een zeer eenvoudige methode van het gebruik van de bouw alleen elementaire hulpmiddelen voor markering een ijzerzaag en een boor.De onderdelen zijn als volgt:-
Blauw door Team Dropz

Blauw door Team Dropz

Dit is een project dat is gemaakt door Chris Miller, Mayo Tobita en Sarah Wever op de Intel® IoT Roadshow Silicon Valley Hackathon 2015.Blauw is een apparaat dat helpt monitoren uw dagelijkse douche gebruiken en is ontworpen specifiek met inwoners va
De Pathfinder-Zybot

De Pathfinder-Zybot

Dit project is gemaakt voor de Digilent Hardware ontwerp wedstrijd Europa regio 2016 en het is een versie van de begginging aan ons project.Dit instructable is ontworpen voor degenen die weinig hebben ervaring en wilt bouwen van een robot met de Raad
Ouderenzorg Monitor (Intel IoT)

Ouderenzorg Monitor (Intel IoT)

OverzichtDit is een Instructable voor een controle en het attenderen van apparaat voor iemand zoals een bejaarde die zich op hun eigen tijde tijdens de dag of de nacht en die mogelijk een risico voor het vallen of wellicht wat hulp gedurende die tijd