Mit relativ wenig Aufwand entsteht ein hinreichend genauer Kompass mit 2 Sensoren vom Typ KMZ10. Einfach die Kalibrierungstaste betätigen, einen Moment warten bis das blinken aufhört, dann langsam die Senoren um 360° drehen und nochmals die Kalibrierungstaste drücken. Die Sensoren müssen um 90° versetzt angeordnet sein, der Sensor (ADC0 und ADC1) ist der Hauptsensor, der Hilfssensor (ADC2 und ADC3) bestimmt, ob der Hauptsensor nach OSTEN oder nach WESTEN gerichtet ist. Auf das im Schaltplan eingezeichnete LCD-Modul kann verzichtet werden, es zeigte nur die Pegel der Sensoren an. Bitte aufpassen, die Sensoren KMZ10A und KMZ10B lassen sich sehr schnell (schon durch einen in der Nähe befindlichen magnetischen Schraubenzieher) ungewünscht magntisieren bzw. ummagnetisiern. Versuche haben gezeigt, dass ein definiertes vormagnetisieren doch garnicht so verkehrt ist. Die Sensoren in der Schaltung müssen nur so geschaltet sein, wenn sie nach Norden zeigen, muss am ADC0 für den Hauptsensor bzw. ADC2 für den Hilfssensor der höchste Spannungswert anliegen. Bernhard
Uih! Hätte nicht gedacht, dass man mit diesen Sensoren einen Kompass bauen kann. Habe bisher nur darüber gelesen, aber noch nix getestet. Aber man liest von den wildesten Konzepten... > Versuche haben gezeigt, dass ein definiertes vormagnetisieren doch > garnicht so verkehrt ist. Genau deswegen. Magentoresistive Sensoren sollen unterhalb der Sättigung nur zu gebrauchen sein, wenn man sie in die richtige Richtung vormagnetosiert. KMZ51 / KMZ52 haben dafür schon Spulen integriert. Aber mit der Kalibrie kriegt man das wohl wenigstens temporär in den Griff. virtuPIC /ggadgets for tools & toys
Wie lange hält den diese kalibrierung? Weiß der Kompaß dan wo Norden ist oder muß man den zum kalibrieren einmal ausrichten? Hätte noch nen paar Fragen: - wozu ist der LDR da? - warum nuzt du für die 32x32 nicht den Hardware multiplizierer? Hat das nen Grund?
@Thomas mit dem KMZ51 würde ich auch gern mal experimentieren, do wo bekommt man ein soches Bauteil her? @Läubi > Wie lange hält den diese kalibrierung? Solange, bis sich die Vormagnetisierung des KMZ aus irgendwelchen Gründen ändert. (z.B. Starkes Magnetfeld, Temperaturenschwankungen, Erschütterungen usw.) Momentan arbeit die Schaltung seit ca. 14 Tagen ohne erneutes kalibrieren. Die Kalibrierungsdaten werden im EEOROM des µC abgelegt. > Weiß der Kompaß dan wo Norden ist oder muß man den zum kalibrieren > einmal ausrichten? Wärend des Kalibriervorgangs muss der Kompass um 360° gedreht werden. Dabei werden die minimalen und maximalen Spannungswerte der Sensoren ermittelt. Der maximale Spannungswert am Hauptsensor ist dann Norden, der minimale der Süden. Experimente ergaben: der größte Spannungswert am Hauptsensor liegt an, wenn die Oberseite des KMZ nach Norden zeigt. >wozu ist der LDR da? kann zur Helligkeitsregelung verwendet werden. >warum nuzt du für die 32x32 nicht den Hardware multiplizierer? Künstlerische Freiheit ;) Bernhard
> mit dem KMZ51 würde ich auch gern mal experimentieren, do wo bekommt man > ein soches Bauteil her? http://search.digikey.com/scripts/DkSearch/dksus.dll?Cat=1966657;keywords=kmz Micht schreckt daran ab, dass ich die kleinen Pins mit meinen zwei linken Händen verlöten müsste... >> Wie lange hält den diese kalibrierung? ... > Momentan arbeit die Schaltung seit ca. 14 Tagen ohne erneutes > kalibrieren. Wie genau ist er denn? Ich gebe zu, den Code habe ich mir noch nicht angeguckt. Himmelsrichtung auf einen Oktanten genau anzugeben hilft beim Wandern oder Geocaching, aber zur Navigation auf dem Boot oder im Flugzeug sieht's anders aus. virtuPIC /ggadgets for tools & toys
> Wie genau ist er denn?
Ich schätze seine Genauigkeit auf +- 1/16 Oktogon (+- 20°) ein, die
höchste Genauigkeit lässt sich erreichen, wenn der Sensor genau
waagerecht gehalten wird.
Hallo Bernhard, da ich schon länger mit der Magnetgeschichte experimentiere ist es sehr interessant wie Du die Schaltung verdahtet hast. Könntest Du mir dies freundlicher Weise mitteilen???? Ich habe eine Magnetnadel in einer Drehspule gebaut und messe den Magnetstand über Fotozellen.
Hallo Horst, den Schaltplan findest Du ganz oben in der *.zip Datei Bernhard
Nachdem ich http://www.tavrasm.org/ runter geladen und compiliert habe, die Ansteuerung von LCD-Display auskommentiert habe und eine Unstimmigkeit mit der Kalibrier-Taste gefixt habe (Laut Schaltplan liegt die an PB6, im Code stand tw. PC4... :-?) funktioniert das sogar schon auf meinem Steckbrett prima! :-) Hier ein paar Bilder: https://blog.koeln.ccc.de/2009/02/15/mikrocontroller-bastelnachmittag/ Thx an Bernhard für den Code!
Hallo Bernhard, dieser Thread hat mich motiviert, mit dem "analogen" Teil deines Versuches zu experimentieren, die Auswertung erfolgte mit einem Multimeter. Mit der Ergebnis, dass mit dem KMZ10a auch eine Auflösung von 1 Grad erreichbar sein sollte. Zunächst habe ich durch geänderte Widerstandswerte die Verstärkung der Differenzspannung soweit erhöht (2x 20k + 50 Ohm -> 800-fache Verstärkung), dass der verfügbare Mess-/Spannungsbereich bis 5 Volt besser ausgenutzt wird. Die Differenzspannung liegt nun (vereinfachte Werte) zwischen 4,500 Volt (Drahtanschlüsse des Sensors zeigen nach Süden) und 1,700 Volt (Drahtanschlüsse zeigen nach Norden). Wichtig: Der KMZ10a wird horizontal ausgerichtet, die Drehachse steht senkrecht auf der Grundebene. Auffällig ist, dass sich die Nordrichtung nicht wirklich eindeutig einstellen lässt. Dafür die Ost-West-Richtung umso besser. Aber das wird schnell verständlich, wenn man sich den Zusammenhang zwischen der Ausrichtung des Sensors und der Differenzspannung einmal als Tabelle darstellt: Winkel Sinus U_diff delta U_diff gegen (90° - Winkel) (je 5 Grad) Nord 0 1,000 4,500 0,005 5 0,996 4,495 0,016 10 0,985 4,479 0,026 15 0,966 4,452 0,037 20 0,940 4,416 0,047 25 0,906 4,369 0,056 30 0,866 4,312 0,066 35 0,819 4,247 0,074 40 0,766 4,172 0,083 45 0,707 4,090 0,090 50 0,643 4,000 0,097 55 0,574 3,903 0,103 60 0,500 3,800 0,108 65 0,423 3,692 0,113 70 0,342 3,579 0,116 75 0,259 3,462 0,119 80 0,174 3,343 0,121 85 0,087 3,222 0,122 90 0,000 3,100 0,122 -> Mittelwert !! 95 -0,087 2,978 0,121 100 -0,174 2,857 0,119 105 -0,259 2,738 0,116 110 -0,342 2,621 0,113 115 -0,423 2,508 0,108 120 -0,500 2,400 0,103 125 -0,574 2,297 0,097 130 -0,643 2,200 0,090 135 -0,707 2,110 0,083 140 -0,766 2,028 0,074 145 -0,819 1,953 0,066 150 -0,866 1,888 0,056 155 -0,906 1,831 0,047 160 -0,940 1,784 0,037 165 -0,966 1,748 0,026 170 -0,985 1,721 0,016 175 -0,996 1,705 0,005 180 -1,000 1,700 In Nord-Südausrichtung werden je Grad nur 0,001 V Differenz gemessen, in Ost-Westausrichtung dagegen ca. 0,024 Volt je Grad (0,122 Volt je 5 Grad). Am ADC eines ATtiny26 würden das schon fast 5 Digits (5 * 5mV = 0,025 Volt) je Grad ausmachen. Was bedeutet, dass Winkel von 1 Grad differenzierbar sein sollten (ich rede von Auflösung, nicht von Genauigkeit !!). Im Messbereich von 45 / 135 Grad gegen Nord stehen immerhin noch fast 4 Digits je Grad zur Verfügung. Lediglich der Messbereich Nord/Süd +- 45 Grad taugt nicht gut zur Auswertung. Nun würde ich (wenn ich denn einen weiteren KMZ10a in meiner Bastelkiste hätte) einen zweiten Sensor um 90 Grad verdreht anordnen (so wie bei deiner Messanordnung auch). Allerdings würden ein Sensoren jeweils nur dann der Hauptsensor sein, wenn er den oben angeführten Bereich (Ost-West +- 45 Grad) abdecken. Der zweite Sensor liefert in diesem Fall als Nebensensor nur die Nordrichtung. Ist der optimale Messbereich verlassen, dann tauschen Haupt- und Nebensensor ihre Funktion. Damit sollte über den gesamten Vollkreis eine Auflösung von 1 Grad erreichbar sein. PS. Ist der KMZ10b wirklich alternativ zum KMZ10a einsetzbar ? Laut Manual hat er nur 1/4 der Empfindlicheit des KMZ10a - und Navigation wird als Einsatzbereich beim KMZ10b nicht ausdrücklich erwähnt. Dummerweise scheint niemand mehr den KMZ10a anzubieten. mfg Michael S.
Hi! Ich habe gerade interessiert mehrere Beiträge hier im Forum gelesen. Und komme ebenfalls zu der Frage: Lässt sich der KMZ10a durch den KMZ10b ersetzen? Und wenn ja mit welchem Verlust der Genauigkeit? Ich brauche eigentlich nur eine Auflösung in ca. 8 Bereiche (N/S/W/O/NW/NO/SW/SO) da ich nur die grobe Ausrichtung eines GPS-Kompass (per Pfeil wird die Strecke zum nächsten Wegpunkt angezeigt) realisieren will. Dazu will ich eigentlich nur wissen wie herum das Handgerät gerade gehalten wird, da ich das ja leider nicht aus der GPS-Bewegung ablesen kann. Denkt ihr da reicht eine anordnung von 2 KMZ10b? Gruß & Dank
Hallo, ich bin noch relativ neu und habe vorallem von Assembler noch keine Ahnung. Ich habe gelesen, dass im code die Taste für die Kalibrierung auf dem falschen Port liegt. Nun meine Frage: was muss ich im Code ändern damit die Taste auch codeseitig an der richtigen stelle liegt. an dem "falschen port geht die taste ja... Gruß und Dank im Voraus, Florian
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.