Grove 3 axlig Digital kompass (4 / 4 steg)

Steg 4: kod



Koden är ganska enkel och allt den gör är läser kompass avläsningarna och skriver ut det på en seriell monitor. Kompassen kalibrerar ett par sekunder när du kör kod gör visst inte att rotera eller störa kompassen medan detta händer och när den är klar bör du få en fin ström av data från sensorn.

< p > / / referens I2C biblioteket < br > #include < wire.h >
Referens HMC5883L kompass biblioteket
#include < hmc5883l.h >< /hmc5883l.h >< /wire.h >< /p >< p > / / Store vår kompass som en variabel.
HMC5883L kompass;
Spela in eventuella fel som kan uppstå i kompassen.
int fel = 0; < /p >< p > / / ut setup rutin, här kommer vi konfigurera microcontroller och kompass.
void setup()
{
Initiera serieporten.
Serial.BEGIN(9600); < /p >< p > Serial.println ("Start I2C gränssnittet.");
Wire.BEGIN(); Starta den I2C gränssnitt. < /p >< p > Serial.println ("konstruera nya HMC5883L");

Serial.println ("Ange skala till +/-1.3 Ga");
fel = compass.setScale(1.3); Ange omfattningen av kompassen.
om (fel! = 0) / / om det finns ett fel, skriva ut den.
Serial.println(Compass.getErrorText(Error));

Serial.println ("inställningen mätning läge till kontinuerlig.");
fel = compass.setMeasurementMode(MEASUREMENT_CONTINUOUS); Inställd kontinuerlig mätning läge
om (fel! = 0) / / om det finns ett fel, skriva ut den.
Serial.println(Compass.getErrorText(Error));
} < /p >< p > / / vår huvudsakliga program loop.
void loop()
{
Retrive raw värdena från kompassen (inte skalas).
MagnetometerRaw rå = compass.readRawAxis();
Hämta skalad värdena från kompassen (skalas till den konfigurerade skalan).
MagnetometerScaled skalas = compass.readScaledAxis();

Värdena används som så:
int MilliGauss_OnThe_XAxis = skalas. XAxis; / / (eller YAxis eller ZAxis) < /p >< p > / / Beräkna rubrik när magnetometer är nivå, sedan korrekt för tecken på axeln.
float rubrik = ARCTAN2 (skalas. YAxis, skalas. XAxis);

När du har din riktning, måste du sedan lägga till din "deklination vinkel", som är "Fel" av det magnetiskt sätter in i din plats.
Hitta din här: http://www.magnetic-declination.com/
Min är:-2 37' som är-2.617 grader eller (som vi behöver)-0.0456752665 radianer, jag kommer att använda-0.0457
Om du inte hittar din deklination, kommenterar ut dessa två linjer, blir din kompass lite.
flyta declinationAngle =-0.0457;
rubriken += declinationAngle;

Korrigera för när tecken är omvända.
IF(heading < 0)
rubrik + = 2 * PI;

Kontrollera om sjal på grund av tillägg av deklination.
om (rubrik > 2 * PI)
rubrik-= 2 * PI;

Konvertera radianer till grader för läsbarhet.
flyta headingDegrees = rubrik * 180/M_PI; < /P >< p > / / Output data via den seriella porten.
Utgång (rå, skalad, rubrik, headingDegrees); < /p >< p > / / normalt vi skulle fördröja tillämpningen av 66ms så att slingan
att köra på 15Hz (standard bandbredd för HMC5883L).
Men eftersom vi har en lång följetong ut (104ms på 9600) vi kommer att låta
Det arbetar med dess naturliga hastighet.
fördröjning (66); //of kurs det kan fördröjas längre.
} < /p >< p > / / Output data ner den seriella porten.
void utgång (MagnetometerRaw raw, MagnetometerScaled skalas, rubrik, float float headingDegrees)
{
Serial.Print("RAW:\t");
Serial.Print (rå. XAxis);
Serial.Print("");
Serial.Print (rå. YAxis);
Serial.Print("");
Serial.Print (rå. ZAxis);
Serial.Print ("\tScaled:\t");

Serial.Print (skalas. XAxis);
Serial.Print("");
Serial.Print (skalas. YAxis);
Serial.Print("");
Serial.Print (skalas. ZAxis); < /p >< p > Serial.print ("\tHeading:\t");
Serial.Print(Heading);
Serial.Print ("radianer \t");
Serial.Print(headingDegrees);
Serial.println ("grader \t");
} < /p >

Se Steg
Relaterade Ämnen

Bilen Digital kompass & termometer

jag är inte riktigt bra på att hitta platser och riktning men åtminstone jag kan läsa kartor och kompass. Dessa dagar, blir GPS-system mer populärt, så förmodligen vissa människor skulle säga varför jag behöver en kompass. Först och främst, gillar ja...

DIY Digital kompass (för bilen)

Jag är förbluffad över att vissa bilar inte har en digital kompass alltid synlig. Du måste antingen starta navigering app varje gång som även kan försvinna när du justerar radion. I detta projekt, ska du skapa en digital kompass som kan drivas med ci...

Gränsyta för Digital kompass (HMC5883L) med Raspberry Pi 2 med Python3

Inledningsvis var jag arbetar på en labyrint lösa robot. Istället för att använda ultraljud och IR på Arduino Mega för vägg efter som mina vänner gjorde, försöker jag göra något annorlunda med hjälp av digital kompass och Raspberry Pi 2. Denna erfare...

Konfigurera, läsa data & kalibrera HMC5883L digital kompass med Python

Som i andra Bloggar innehåller här också information som kan hittas någon annanstans på webben. Jag strukturerade bara den så att den lätt att använda för början robot hobbyister.Det är ganska enkelt att ansluta kompassen. Vid montering av sensorn ti...

Arduino Digital kompass projekt

Hej! I detta instructable kommer du se hur du kan göra en Digital kompass med hjälp av en Arduino och bearbetning IDE. Detta är ganska enkla men intressanta och sval sett Arduino projekt.Du kan titta på demo exemplet av denna tutorial på videon ovan....

Arduino Digital magnetkompass (HMC5883L - 2 visningslägen)

Hej!!!Idag kommer jag visa dig hur man gör ditt eget arduino kompass med MHC5883L 3-axlig digital kompass styrelsen.Innan du börjar, se till att du har:Arduino unoHMC5883L givarkortNokia 5110 display (pcb version)2 x tryckknapp1 x strömbrytare(du kan...

Låt oss göra en SmartWatch

Edison är tillräckligt liten för att använda i sverigedräkten projekt, så varför inte vi göra en smart Watch-klocka med den här lilla datorn.Steg 1: innehållIntroduktion till Intel EdisonSpecifikationerProgrammering metoderPrototyper med EdisonVarför...

Smart papperskorg - för en Smart City

Överfulla soptunnor har varit en annan källa till oro för invånare i utvecklingsländer. Med ökad befolkning, är scenariot av renhet med avseende på hantering av sopor förnedrande oerhört. Med de redan rådande sjukdomarna, har öppna behållarna visat s...

Köra parametrar analyssystem

Spännande för att träffa dig tech-nördar av Instructables! "IoT av folket, av folket, för folket"Tja, det är parafraserad ramen av citat för att jag vill till att börja med skulle förklara detaljerade förfarandet som hänför sig till "Körnin...

Smart Eco-Driving System

Glada över att träffa dig tittare av Instructables + IoT aspiranter!Tja, finns det en berömd ökända talesätt som går, "Allt är väl som slutar väl".Att gå efter, från mitt perspektiv, innan jag börjar dela min projekt strävan, vill jag ge en gans...

DIY en Retro trä lampa med BBG

Du kan bygga så många vackra saker med trä och laserskärare. Och det kommer mycket mer bättre om Lägg några elektriska moduler, vi kallar det den kombination av elektronisk och konst.Här delar jag min senaste skapelse, en trä lampa som färgen kontrol...

Bil nr 05 fjärde etappen (Strawberry version)

Bil No.05 är projektet siktar på att göra en programmerad automatisk drivande bil.I första etappen, jag monterade en mindre svängradie R/C chassi och gjorde en relation tabell mellan styrning servo värde och vändradie.I andra etappen, jag gjorde en E...

Steampunk kompass

efter att ha byggt några pussel box spel nyligen, och med vissa komponenter kvar jag tänkte jag skulle bygga en fungerande Steampunk kompass.Uppbyggd kring en Arduino Duemilanove är detta en riktigt snabbt och enkelt bygga. Ta behandlingen från en di...

Hur man gör en taktil Feedback kompass bälte

har du någonsin undrat hur flyttfåglar klarar av att ha en sådan fantastisk känsla av riktning trots att vara så allmänt borta? De kan känna av jordens magnetfält med vad är i grunden en kompass inbyggt i deras kropp. Skulle inte det vara häftigt att...

Stöd för äldre! (Intel IoT)

Rädslan för att ramla ner eller förändringar av hjärtat funktion har stora konsekvenser på äldres välbefinnande. Detta kan minska deras livskvalitet och försämra förmågan att utföra dagliga aktiviteter. Projektet presenterar utvecklingen av en höst o...

Intellekten Edison och Ridemakerz RC chassi Robotics plattform

När jag var inbjuden att delta i Intel IOT tävlingen trodde jag det var en fantastisk möjlighet. Först av allt, skulle det ge mig tillgång till några riktigt awesome hårdvara och sensorer. Jag är en maker på en budget, så det var bra. Jag är också en...

Vård av äldre Monitor (Intel IoT)

ÖversiktDetta är en Instructable för en övervakning och varningar enhet för någon som en äldre person som kan vara på egen hand vid tidpunkter under dygnet och som kan löpa risk för att falla eller kan behöva lite hjälp under den tiden. Konceptet för...

Facing South House Finder

Jag kommer att presentera en inför South House Finder :)Du kan göra inför South House Finder om du följer detta innehåll.Det är väldigt lätt och enkelt sätt.Låt oss börja!Steg 1: hårdvara Vi behöver en flera meterials1. WIZwiki-W7500 styrelsen2. Seee...

RB2 rinnande rutor.

Låter inte som en "stor sak"?Tja, för att vara ärlig, för mig visade det sig vara ganska svårt arbete. -0)Liksom i tidigare Bloggar jag siktar inte på en vetenskaplig uppsats, men jag ska försöka att avslöja fakta jag var tvungen att samlas för...