Hjälp med kod till arduino och hm55b kompassmodul
Re: Hjälp med kod till arduino och hm55b kompassmodul
Getting Started with Arduino verkar vara en ypperlig plats att börja utforska. Sen tror jag nog det är en bra idé att börja kolla på lite enklare labbar och exempel så du får en förståelse för vad du har framför dig. Visserligen är Arduino ofantligt mycket enklare att komma igång med än många andra mikrokontrollermiljöer men det ÄR en mikrokontroller, och det kräver att man lägger ned en del möda och energi för att förstå sig på, annars kör man fast hela tiden med de mest fundamentala saker.
Re: Hjälp med kod till arduino och hm55b kompassmodul
det är inte så svårt som det kanske verkar i början. Frågan är vad det är som känns jobbigt?radar skrev:Var nog ingen smart ide att skaffa ett arduino om det ska vara så svårtkanske lika bra att lägga ner.
Att det funkar att skriva till PC:n ger ju dig alla möjligheter att lyckas.
Om du kollar koden så förstår du att genom att skriva så här:
Kod: Markera allt
Serial.print("mitt tal = ");
Serial.print(min_variabel);
Serial.println("");
Har du funderat på hur du ska mata in den önskade kursen? Det finns många sätt, och det gäller att välja ett sätt som inte är allt för krångligt. Om du ska ha PC:n ansluten till din Arduino när du är ute med båten kan det funka med att skriva in kurs i PC:n. Annars kan man tänka sig att man har två knappar - en "styrbord" och en "barbord" och så ändrar du kurs genom att klicka eller hålla ner en knapp (som när du ställer en digital klocka)... men det kan man lösa senare. I början räcker det att du lägger in önskad kurs i programmet som en variabel:
Kod: Markera allt
int vill_ha_kurs = 45; // ska hålla 45 grader
Varför han skriver så mycket är för att förklara hur han tänker för att få fram hur mycket båtens VERKLIGA KURS skiljer sig från DEN ÖNSKADE. Men det är ju mest addition och subtration, så formeln blir väldigt enkel:Säg att du vill åka 1° och båtpekar 359°.
Då är differensen (Mål - Verklighet =) -358°... Men lugn, vi kör bara ett par steg mer!
om(Differens > 180) Differens = Differens - 360;
om(Differens < -180) Differens = Differens + 360;
Första steg gör inget i detta fall men andra steget får värdet att bli 2. Låter OK.
Men motsatsen då? 359° och 1°? Detta ger då 358° och första extrasteg får det att bli -2°, andra extrasteg gör inget.
Så det duger fint också och då har du ditt kurs-fel i storlekar om ±180°.
Denna kod lägger du inuti void loop() direkt efter Serial.println("");
Kod: Markera allt
/********** MIN EGEN KOD ***********/
/******** BERÄKNAR AVVIKELSE FRÅN ÖNSKAD KURS *****/
avvikelse = kompass - vill_ha_kurs; // nu har vi en avvikelse
if (avvikelse > 180) avvikelse = avvikelse - 360
if (avvikelse < -180) avvikelse = avvikelse + 360;
/* SKRIV UT AVVIKELSE */
Serial.print("Avvikelse = ");
Serial.print(avvikelse);
Serial.println("");
Kod: Markera allt
int vill_ha_kurs = 45; // önskad kurs i grader
int avvikelse;
Re: Hjälp med kod till arduino och hm55b kompassmodul
tack för en bra beskrivning och lite hjälp på vägen
Nu kom gnistan tillbaka, ska exprimentera när jag kommer hem. Jo jag behöver läsa på lite, är det c-programmering jag skall kika på ? Behöver lära mig vad alla kommandon har för fuktion och vilka det finns.

Re: Hjälp med kod till arduino och hm55b kompassmodul
Länken jag postade innehåller allt du behöver för att komma igång. Sidan länkar vidare till referensen för programmeringsspråket, hårdvaran... ja allt.
Re: Hjälp med kod till arduino och hm55b kompassmodul
Har du ens *kollat* på "Getting Started", eller "Learning" på http://arduino.cc/en/ ?
Har du överhuvudtaget gjort något själv än ??
Har du överhuvudtaget gjort något själv än ??
Re: Hjälp med kod till arduino och hm55b kompassmodul
Som sodjan undrar gör även jag...
Att det finns programbitar på nätet är kul, man kan hitta verkligen mycket.
Men precis som att få en bil i delar ska det en bruksanvisning till att samla allt, i fallet med mikroprocessorer ska man skriva VAD man ska använda dessa programdelar till. Att programmera betyder inte att man hittar stumpar här o där och klistrar in dom och kompilerar, man ska faktisk göra en del själv.
Att det finns programbitar på nätet är kul, man kan hitta verkligen mycket.
Men precis som att få en bil i delar ska det en bruksanvisning till att samla allt, i fallet med mikroprocessorer ska man skriva VAD man ska använda dessa programdelar till. Att programmera betyder inte att man hittar stumpar här o där och klistrar in dom och kompilerar, man ska faktisk göra en del själv.