Archiv verlassen und diese Seite im Standarddesign anzeigen : Sensor zur Erkennung von Magnetfeldern
Wir haben vor für unsere Diplomarbeit einen Roboter zu bauen der sich anhand von Magnetfeldern orientiert. Dieser Roboter soll die Richtung des Magnetfeldes Anzeigen dort hin fahren und es ausschalten. Gibt es fertige Sensoren um ein Magnetfeld zu messen ?
ja gibt es
um der folgenden Frage vorweg zu greifen ... nein ich habe keinen Link, allerdings hast du auch keinerlei Infos zu den Umgebungsbedingungen geliefert damit man auch nur annähernd eine Sinnvolle Antwort liefern könnte, selbst wenn man es möchte :)
Werd mal spezifischer, denn Google hätte deine Frage ähnlich nützlich beantwortet wenn du es so gefragt hättest
Das Endgültige Ziel wäre es, mehrer Magnetfelder aufzustellen, einzeln anzuschalten und den Roboter so immer an einen anderen Ort zu dirigieren. Dafür haben wir uns überlegt zwei Spulen zu nehmen die normal zueinander waagrecht am Roboter montiert werden. Eventuell erhöht, um den Magnetfeldern der Motoren auszuweichen.
Unser größtes Problem derzeit ist es ein halbwegs starkes Magnetfeld zu erzeugen, da unser Lehrer bisher auf eine Gleichspannungsquelle besteht und wir uns diese auch selber bauen müssen. Auf unserer Versuchplatte (ca. 2x2m) wird der magnetische Fluss, den wir mit dem Roboter registrieren bald ziemlich klein : /
Kompass-Module haben wir uns schon angesehen, aber funktionieren die auch mit einem Magnetfeld, das sich auf der selben Ebene befindet wie der Roboter?
zzum bessern Verständnis:
32858
Hier gibt es Beispiele zur Detektion schwacher statischer Magnetfelder.
https://www.youtube.com/watch?v=qgtkZRuTpxM
Danke für den Link. Wir werden jetzt mal alle unterschiedlichen Methoden testen und dann einen Vergleich in unsere Arbeit aufnehmen. Ihr habt uns wirklich sehr geholfen : )
Wir sind uns immer noch nicht so ganz sicher bei der Auswahl des Magnetfeld-Sensors. Habt ihr vielleicht irgendwelche Vorschläge ? Sensoren mit denen ihr schon mal gearbeitet habt? Wichtig ist, dass sie mit I²C kommunizieren, damit wir auch verschiedene Sensoren anschließen können.
Unsere Berechnungen haben ein Magnetfeld von 0,4mT ergeben, da kann man dann aber im Notfall auch noch ein bisschen dran herum schrauben.
Hallo,
Sensoren mit denen ihr schon mal gearbeitet habt?
Gearbeitet ist jetzt übertrieben, eher "besitzen und schon mal mit rumgespielt", wäre bei mir dieser
https://www.nxp.com/docs/en/data-sheet/FXOS8700CQ.pdf
Und das auch nur, weil er schon auf dem Controllerboard ist
https://os.mbed.com/platforms/FRDM-K64F/
(Ist kein Arduino sondern ein ARM mbed. Prozessor ist fast identisch mit dem auf dem Teensy 3.5 in der Arduino Welt.)
Es gibt den Sensor auch auf einem Breakoutboard von Adafruit, das spricht für eine gewisse Verbreitung.
http://www.exp-tech.de/adafruit-precision-nxp-9-dof-breakout-board-fxos8700-fxas21002?___SID=U
Wichtig ist, dass sie mit I²C kommunizieren, damit wir auch verschiedene Sensoren anschließen können.
Tut er.
Messbereich ist +/- 1200 Mikrotesla, würde also im Prinzip passen.
Mehr als die Beispielprogramme ausprobiert habe ich aber nie.
Auf dem "BBC Microbit" ist ein Magnetfeldsensor drauf.
Der besondere Vorteil bei dieser Varante ist I2C Anschluss, mit Controller, in Block Code programmierbar alles komplett für ca. 17€ fertig zum ausprobieren.
https://www.youtube.com/watch?v=LmbzXoVN9I0
Auf dem "BBC Microbit" ist ein Magnetfeldsensor drauf.
Wäre auch eine Möglichkeit, je nach Programmierkenntnissen.
Technisch ist es nicht so weit weg von meinem Vorschlag, auch das BBC Microbit ist unter der Haube ein mbed Board (wenn in C++ programmiert). Der Sensor ist auch von NXP, allerdings vom ehemaligen "Philips" Teil der Firma, der FXOS8700 stammt vom ehemaligen "Motorola".
Den FXOS8700 gibt es in der Arduino Welt auch noch auf dem Teensy Prop Shield
http://www.exp-tech.de/teensy-prop-shield-with-motion-sensors
da schein es auch diverse Software zu geben
https://www.pjrc.com/store/prop_shield.html
Vielen Dank für eure schnellen Antworten, damit können wir jetzt wirklich was anfangen.
Eine Frage hätte ich aber noch:
Was passiert eigentlich, wenn wir den Messbereich überschreiten? Wird er dann nicht-linear oder wird er kaputt?
Also kaputt gehen die Sensoren sicher nur bei sehr starken Magnetfeldern. Also nicht unbedingt den Magneten direkt dran halten. Bei normaler Messbereichsüberschreitung kommt irgendein Wert der "Fehler" signalisiert, ähnlich wie bei einem Multimeter.
Das alles kann man sich im Datenblatt suchen. Da wird man sowieso einige Zeit mit verbringen müssen, weil die fertige Software wahrscheinlich noch für diesen Anwendungsfall optimiert werden muss.
Ich habe gerade noch einmal im Datenblatt des Sensors auf dem Microbit nachgesehen. Auf Seite 23 steht max Messwert 1000µT, ohne Schaden bis 0,1T steht weiter oben.
Man kann ihn also schon mit entsprechend starken Feldern schädigen.
https://www.nxp.com/docs/en/data-sheet/MAG3110.pdf
Das steht bei dem anderen auch so ähnlich
Maximum exposed magnetic field without perming 3000 μT
Maximum exposed field without permanent damage 0.1 T
Hallo, da sind wir wieder.
Das mit den Sensoren hat echt seht gut funktioniert, ich bekomme von beiden Werte, nur leider nicht die die ich mir erwartet habe. Kann das sein, das ich mich bei der Berechnung des Magnetfeldes vertan hab?
Gerechnet hab ich:
I * N = H * l
also 1,13 A * 710 = H * 2,4m
dann auf H umgeformt und mit μ0 multipliziert. Damit müsste ich dann eigentlich B mit 0,4mT heraus bekommen.
Leider haben die ersten Messungen dieses Magnetfeld statt in 1,2m in etwa 10cm Entfernung ergeben.
Wisst ihr wo das Problem liegen könnte?
Thomas$_
18.01.2018, 12:24
Das Feld außerhalb der Spule berechnet sich besser mit dem Biot-Sarvat-Gesetzt, das wird auch ganz einfach wenn man es auf den Spezialfall einer Kreisförmigen Spule ankommen lässt.
https://de.wikipedia.org/wiki/Biot-Savart-Gesetz#Kreisf%C3%B6rmige_Leiterschleife
Ps.:
Ich hoffe ich kann auch als Gast einen Link setzten, aber ich übertrage meine Passwörter nur ungern über ungesicherte Verbindungen .....
Ok, das hilft uns schon sehr. Wenn ich jetzt eine Rahmenspule habe und sie näherungsweise als kreisförmige Spule ansetzte, ist der Fehler dann sehr groß?
Eigentlich wollen wir es ja nur ungefähr abschätzen können, damit wir wissen ob uns unsere Sensoren etwas sinnvolles liefern oder ob wir noch ein bisschen was an der Spule ändern müssen.
Dieses Gesetz dann auch für Spulen wo l<10*d ist? (dass das andere es nicht tut hab ich inzwischen heraus gefunden :oops:)
Thomas$_
18.01.2018, 14:17
also der Ansatz ist zu sagen das sich das gesamt Feld aus der Summe aller kurzen Leiterstücken zusammensetzt.
Ohne jetzt den Fehler auszurechnen würde ich behaupten das er euch erstmal egal sein kann ... Hauptsache die Größenordnung stimmt dann mal.
Ich gehe davon aus das Eure Spule im "Durchmesser" deutlich größer ist als die die spule lang oder dick ist.
oder einfach wiki weiter nach unten ... https://de.wikipedia.org/wiki/Biot-Savart-Gesetz#Rahmenspule
Werte einsetzten und Messen
Ich hab mir nur die ersten zwei Formeln angesehen und ein bisschen Panik geschoben, mein Fehler. Aber dann werden wir bei Gelegenheit das Mal durchrechnen und uns wieder melden. Danke :)
White_Fox
19.01.2018, 20:17
Es könnte sein daß ihr euch mit Feldverzerrungen auch grobe Fehler reinholt. Die meisten Formeln dazu sind Näherungen und stimmen eigentlich nie so richtig.
Vielleicht könnt ihr mit einer Helmholtzspule ein räumlich einigermaßen homogenes Magnetfeld erzeugen, mit einem Labornetzteil könnt ihr die Feldstärke und den magnetischen Fluß gut einstellen, und damit euren Sensor kallibrieren. HH-Spulen sind relativ einfach zu bauen und man bekommt, etwas Sorgfalt im mechanischen Aufbau vorausgesetzt, ein recht gut definiertes Magnetfeld hin. Hilfreich, wenn man kein Gerät hat mit dem man die Ergebnisse seines Sensors vergleichen kann. Es reicht den Strom genau genug messen zu können.
Hab ihr euch eure Aufgabe selber ausgesucht? Vom Konzept her ist das nicht trivial, ihr habt ja selber gemerkt daß ab relativ geringer Entfernung schon recht geringe Feldstärken ausgewertet werden müssen. Und dann seid ihr schnell in einem Bereich, wo euch die anfahrende Straßenbahn vor dem Haus, irgendwelche Elektrogeräte oder sonst was in die Suppe spuckt.
Das euer Lehrer auf Gleichstrom besteht halte ich für...ungeschickt. Ein Technologiewechsel (später auf Wechselstrom) wird kaum möglich ohne quasi mit dem Aufbau von vorne zu beginnen, da praktisch alles nach dem Sensor neu gemacht werden muß.
Auch der Ansatz an sich ist schon Mist, da ihr praktisch keine Chance habt, euch an Gleichfeldern zu orientieren (und das ist doch euer Hauptziel).
Kleines Beispiel: In der Realität gibt es bereits ein Magnetfeld, daß auch zur Orientierung zur Hilfe genommen werden kann: das Erdmagnetfeld. Was kann man damit feststellen: die Richtung. Und das allein reicht nicht. Man kann mit einem Kompaß durch ganz Deutschland rennen, mehr als die Richtung ist nicht sinnvoll auswertbar. Damit kann man allenfalls die Richtung einer Linie bestimmen, aber wo du dich auf der Linie befindest nicht mehr (beim Erdmagnetfeld könnte man über die Feldstärke theoretisch noch die Höhe bestimmen, in der man sich befindet).
Was ihr theoretisch machen könntet: Es gibt magnetische Winkelsensoren, die-wie der Namen schon sagt-den Winkel der Feldlinien messen. Wenn ihr zwei davon in bekanntem Winkel zueinander positioniert und die Feldstärke meßt wäre es theoretisch möglich eine Position zu bestimmen-unter der Voraussetzung, daß das Feld an keiner Stelle homogen oder kreisförmig ist, dafür der exakte Feldverlauf aber bekannt ist.
Praktisch sehe ich dieses Konzept aber an mehreren Punkten scheitern, wobei die hinreichend exakte Feldwinkel- und -stärkebestimmung sowie die Erzeugung und Vermessung des Magnetfeldes nur einige Punkte und eher die geringeren Probleme sind.
Eure Möglichkeiten wären, wenn ihr mit Wechselstrom arbeiten könntet, deutlich besser. Das würde mit zwei Spulen 90° zueinander schon gehen. Ihr könntet einfach zwei Wechselfelder mit unterschiedlicher Frequenz messen, z.B. 1kHz und 5,5kHz. Damit baut ihr noch keinen Funksender, könnt die Felder aber gut auseinanderhalten. Die Entfernungsbestimmung zu jeder Feldquelle könntet ihr mit einem Verstärker und einem schmalen Bandpaß machen, das geht in diesem Frequenzbereich auch analog noch gut, Störungen werden auch gleich ausgefiltert. Das eigentliche Berechnen der Position ist dann triviale Trigonometrie, ganz im Gegensatz zu der Lösung mit dem Gleichfeld.
Was ist da eigentlich der Grund für die Restriktion mit dem Gleichfeld...ich hab ja so einen Verdacht, aber will eurem Lehrer nicht voreilig Unrecht tun. Mal eine Frage...ihr schreibt eine Diplomarbeit, andererseits von einem Lehrer mit anscheinend engen Restriktionen. Wie würde man das, was ihr schreibt, denn in De nennen?
Hallo,
danke für diese umfangreiche Antwort. Ich muss zugeben ich bin ein bisschen entmutigt.
Wir gehen derzeit in die 5. Klasse für Elektrotechnik in die HTL. Das ist eine Schule nach der 8. Schulstufe, die sowohl mit einer Matura als auch mit einer fertigen Berufsausbildung beendet wird. Dazu müssen wir am Ende der 5 Jahre eine Arbeit abgeben, die in ihrem Umfang etwa 180 bis 240 Stunden Arbeit pro Person betragen soll.
Das mit dem Gleichstrom versteh ich auch nicht so wirklich. Ich hab ihn schon gefragt ob wir nicht einfach mal unsere Spule mit Wechselstrom verwenden wollen und schauen was der Hallsensor dann misst, aber das wollte er dann auch nicht. Er hat gemeint er will jetzt nicht auch noch einen Stelltrafo holen.
Ein großes Problem das ich hab ist auch, das mein Teamkollege nicht besonders motiviert und sorgfältig ist. Leider haben wir auch keine Wickelmaschinen die jünger als 30 Jahre und genau sind. Selbst mit einem Draht der einen Durchmesser von 0.79 mm hat mussten wir sehr sehr langsam wickeln, das es halbwegs ordentlich ausgesehen hat. Worauf würde ich diese Spulen denn am besten Wickeln?
Als ich die Idee dazu hatte hat das ganze noch ganz anders ausgesehen. Ich wollte sozusagen ein Followme-car basteln, das einer Spule (mit Wechselstrom:/ natürlich) nachfährt. Der Lehrer hat dann gemeint, das ist alles viel zu kompliziert und wir machen das jetzt so und Wechselstrom ist viel unpraktischer. Also eigentlich haben wir die Aufgabe mehr oder weniger zugeteilt bekommen. Er hat dann auch noch einen Artikel über ein Projekt einer Uni gefunden, die sich mit einem Magnetfeld in einem ganzen Haus orientiert hat. Dabei ist ihm aber nicht aufgefallen, das die Spule riesig, der Strom sehr groß und der Sensor etwa 300€ teuer ist. Er kommt halt doch aus der reinen Informatik.
Prinzipiell war die Idee mit zwei normal zueinander stehenden Hallsensoren die Richtung festzustellen und uns dann sozusagen quer dazu zu bewegen. Das müsste doch auch gehen oder?
Und wenn ich die schnell genug abfrage sollte ich die vom Gleichstromfeld eigentlich auch nutzen können oder? Schafft das der Arduino Mega?
Liebe Grüße und nochmal vielen Dank
Julia
021aet04
20.01.2018, 15:33
Sollte funktionieren, Mikrocontroller sind schnell genug.
Wenn der Professor keinen Trafo holen will kannst du das Wechselfeld auch selbst erzeugen. Dann wird nur die Schaltung etwas aufwändiger.
MfG Hannes
White_Fox
20.01.2018, 22:14
Wenn ihr mit Wechselfeldern arbeiten wollt kommt ihr mit einem einfachen Stelltrafo auch nicht viel weiter. Stets nur 50Hz, ihr werdet zwei Felder nicht auseinanderhalten können. Ein AVR (die Controller die auch auf dem Arduino verbaut sind), eine H-Brücke und ein ordentlich ausgelegtes LC-Filter, und ihr habt eure Wechselspannungsquelle.
Für die angegebenen Voraussetzungen und Kenntnisstand halte ich eurer Projekt für sehr...ambitioniert. Dann noch ein Lehrer der (weil faul? keine Ahnung hat?) dir da Knüppel zwischen die Beine wirft. Selbst wenn es einfach zu realisieren wäre-Zeit braucht der reine Aufbau ja trotzdem. Ich wünsche dir jedenfalls viel Glück.
Ja, das das ambitioniert war hab ich mir schon gedacht, aber das es so schlimm wird habe ich nicht geahnt. Unser Lehrer meint zwischendurch immer wieder, das kein Ergebnis gut genug dokumentiert ja auch ein Ergebnis ist. Nämlich, das wir mit unseren Mitteln nicht in der Lage sind das Problem zu lösen. Ich hoffe einfach, das sich das nicht zu sehr auf die Note auswirkt...
Das mit der Schaltung erwischt uns leider ziemlich auf dem falschen Fuß, von (Leistungs-)Elektronik haben wir nicht so viel Ahnung. Und der Lehrer glaub ich auch nicht. Wir haben zwar Lehrer die sich damit auskennen, aber leider manchmal ein bisschen kompliziert in der Kommunikation sind.
Wir könnten die Spulen ja auch abwechselnd einschalten oder? Den Arduino auf längere Pausen zwischen dem Magnetfeld warten lassen und so die Spulen unterscheiden? Nicht sehr elegant, ich weiß, aber wahrscheinlich das am einfachsten zu realisierende.
Das Glück können wir brauchen, in nicht ganz einem Monat sollten wir mit den Messungen fertig sein :/
021aet04
21.01.2018, 22:20
Eine Oszillatorschaltung hat mit Leistungselektronil nichts zu tun. Du könntest versuchen einen Oszillator zu bauen und anschließend mit einem Oszi messen. Du kannst das Signal zwar zwischenzeitlich abschalten, aber ein Dauersignal kannst du besser auswerten.
PS: An welche HTL gehst du?
MfG Hannes
Ich weiß leider nicht genau ab wo man zwischen Elektronik und Leistungselektronik unterscheidet, aber muss ich nicht um das Magnetfeld messen zu können trotzdem Ströme mit 1 bis 2A ein und ausschalten?
Aber so eine Schaltung sollten wir hin bekommen. Ist ja eigentlich nur eine Blinkschaltung oder?
In Mödling
White_Fox
22.01.2018, 11:03
Die Unterschiede sind fließend...für manche gilt ein Strom von 1A bereits als Hochstrom, für andere fällt das noch unter Rauschen. Kommt halt immer auf die Anwendung an. Für mich sind das alles nur Zahlen, man muß halt nur wissen wann man welche Effekte vernachlässigen kann und wann man sie beachten muß. Im Zweifelsfall einfach ausprobieren.
Vergiß nicht-dein Magnetfeld hängt nicht nur vom Strom ab den du treibst. ;)
Nachtrag:
Ach ja, noch was:
Eine H-Brücke ist schon etwas mehr als eine Blinkschaltung. So was gibt es fertig als IC, selber bauen wirklich nur dann wenn es nicht anders geht. So trivial das Prinzip auch ist, auch da stecken mehrere Teufel in mehreren Details. Solche ICs lassen sich prima mit einem Arduino ansteuern.
Noch etwas zur eurer Ambition:
In Kreisen die sich mit Projekt- und Zeitmanagement auseinandersetzen (es gibt tatsächlich Menschen, die sich mit sowas durchaus wissenschaftlich auseinandersetzen und nicht nur schwafeln) sagt man daß ein Projekt normalerweise doppelt so lange dauert wie ursprünglich geplant. Das ist ganz normal.
Das Problem ist nur, daß man mit Kunden/Geschäftspartnern Zeitüberschreitungen besprechen kann. Mit eurem Prüfungsamt wahrscheinlich nicht.
021aet04
22.01.2018, 21:58
Leistungselektronik ist eher Antriebstechnik (Frequenzumrichter, Stromrichter,...), Schaltnetzteile,...
Ich würde klein anfangen und ein Testsystem bauen, also eine kleine Testspule und versuchen diese auszuwerten. Dann kannst du auch versuchen mit AC und DC zu arbeiten.
Wenn es funktioniert kannst du auf einer größeren Fläche testen.
Der Aufbau könnte ähnlich wie bei Resolvern sein, allerdings nicht mit 2 Wicklungen sondern mit 4. Ob das funktioniert muss man aber testen.
Habt ihr Zugang zu Signalgeneratoren, Oszilloskopen,... ?
MfG Hannes
Hm, das mit den Wicklungen hatte ich schon am Schirm, das Problem hier sind halt wieder die Wickelmaschinen. Das wird halt echt nicht ordentlich und dann messen wir halt auch nicht so gut oder?
So eine H Brücke kannte ich bisher nur von Motoren...
Langsam mach ich mir ein bisschen Sorgen um unsere Zykluszeit. Mit unserem LCD Display und einem Kompassmodul, das über I²C geht ist er eh schon ziemlich langsam. Die Brücke würde ich dann mit PWM ansteuern oder? Das braucht ja auch wieder einiges an Zykluszeit, oder nicht?
Nein, zu diskutieren gibts da garnichts. Wir können zwar um ein paar Tage überziehen und uns dann mit dem reinen schreiben mehr beeilen, aber viel ist da nicht mehr zu machen.
Das mit dem Resolver hab ich jetzt das erste Mal gelesen, sieht aber so aus als wäre das nicht viel was anderes, als das was wir ursprünglich mit den zwei Hallsensoren vor hatten. Warum würde ich da vier brauchen?
Ja, die können wir uns einfach ausborgen.
wegen Zykluszeit:
nehmt kein i2c Display sondern ein SPI-Display, z.B. ILI9341, und steuert es über Hardware SPI an (nicht Henning Karlson). Die sind bis zu 100000 mal schneller als I2C Displays.
http://www.mindstormsforum.de/viewtopic.php?f=78&t=8491&start=15#p66091
Auch kannst du meist den i2c Bus speed auf 400kHz setzen statt 100kHz.
Und dann geht es mit einem Arduino M0/Zero oder Due ntl von vornherein viel schneller als mit einem AVR.
Unser LCD geht eh schon über die digitalen Ausgänge.
Das Problem ist eher das Kompass Modul. Ich habe es zwar nicht durchgängig aktiviert, aber wenn es aktiviert ist merke ich sogar in der Menüführung wie lange der Arduino braucht um auf einen Tastendruck zu reagieren.
Wir verwenden einen Arduino Mega, weil wir relativ viele Ein und Ausgänge brauchen.
021aet04
23.01.2018, 15:32
PWM benötigt keine Zykluszeit, wenn du die Timerhardware verwendest. Du benötigst nur Zykluszeit wenn du den Tastgrad änderst.
Wenn du Probleme mit der Zeit hast kannst du es auf mehrere Controller aufteilen, allerdings sollte es mit einem funktionieren. Die Position sollte sich nicht so schnell ändern.
Ein Resolver erkennt eine Position auf einer Achse. Du benötigst pro Achse 2 Spulen oder Hallsensoren, weil du auf einer Fläche die Position benötigst. Du musst jetzt auf beiden Seiten die Höhe des Magnetfeldes messen. Stehst du genau in der Mitte sind beide Felder gleich stark. Stehst du jetzt näher an einer Spule ist dort das Feld höher als beidie der anderen.
Zum Testen wird es vermutlich einfacher sein wenn du Signalgenerator und Oszilloskop verwendest, nicht das du einen Fehler im Programm suchst und dabei der Aufbau nicht funktioniert.
MfG Hannes
Ok, morgen werden wir das alles mal Testen, da haben wir die Zeit dazu. Nachdem ich beim Lehrer anklingen hab lassen, das nicht ich die einzige bin, die Wechselstrom bevorzugt hat er sich erweichen lassen, das zumindest morgen mit mir im Detail zu besprechen :D
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.