- Erforderliche Materialien
- Was ist ein Magnetometer und wie funktioniert es?
- Funktionsweise des HMC5883L-Sensormoduls
- Schaltplan
- Herstellung der Leiterplatten für den digitalen Kompass
- Montage der Leiterplatte
- Arduino programmieren
Das menschliche Gehirn besteht aus einer komplexen Schicht von Strukturen, die uns helfen, eine dominierende Spezies auf der Erde zu sein. Zum Beispiel kann der entorhinale Kortex in Ihrem Gehirn Ihnen einen Orientierungssinn geben, der Ihnen hilft, leicht durch Orte zu navigieren, mit denen Sie nicht vertraut sind. Aber im Gegensatz zu uns brauchen Roboter und unbemannte Ariel-Fahrzeuge etwas, um diesen Orientierungssinn zu erlangen, damit sie in neuen Gebieten und Landschaften autonom manövrieren können. Verschiedene Roboter verwenden unterschiedliche Arten von Sensoren, um dies zu erreichen. Das häufig verwendete ist jedoch ein Magnetometer, das den Roboter darüber informieren kann, in welche geografische Richtung er derzeit blickt. Dies hilft dem Roboter nicht nur, die Richtung zu erfassen, sondern sich auch in einer vordefinierten Richtung und einem Engel abzuwechseln.
Da der Sensor den geografischen Norden, Süden, Osten und Westen anzeigen kann, können wir Menschen ihn bei Bedarf auch zu bestimmten Zeiten verwenden. Lassen Sie uns in diesem Artikel versuchen zu verstehen, wie der Magnetometersensor funktioniert und wie er mit einem Mikrocontroller wie Arduino verbunden wird. Hier bauen wir einen coolen digitalen Kompass, der uns hilft, die Richtungen zu finden, indem eine LED in Richtung Norden leuchtet. Dieser digitale Kompass ist ordentlich auf PCB von PCBGOGO gefertigt, damit ich ihn das nächste Mal tragen kann, wenn ich in die Wildnis gehe und mir wünsche, dass ich mich verlaufen würde, nur um dieses Ding zu benutzen, um meinen Weg nach Hause zu finden. Lass uns anfangen.
Erforderliche Materialien
- Arduino Pro mini
- HMC5883L Magnetometersensor
- LED-Leuchten - 8Nos
- 470 Ohm Widerstand - 8Nos
- Barrel Jack
- Ein zuverlässiger Leiterplattenhersteller wie PCBgogo
- FTDI-Programmierer für Mini
- PC / Laptop
Was ist ein Magnetometer und wie funktioniert es?
Bevor wir in die Schaltung eintauchen, wollen wir uns ein wenig mit dem Magnetometer und seiner Funktionsweise befassen. Wie der Name schon sagt, bezieht sich der Begriff Magneto nicht auf diesen verrückten Mutanten im Wunder, der Metalle kontrollieren könnte, indem er nur Klavier in der Luft spielt. Ohh! Aber ich mag diesen Kerl, er ist cool.
Das Magnetometer ist eigentlich ein Gerät, das die Magnetpole der Erde erfassen und die Richtung entsprechend ausrichten kann. Wir alle wissen, dass die Erde ein riesiges Stück Kugelmagnet mit Nordpol und Südpol ist. Und deshalb gibt es ein Magnetfeld. Ein Magnetometer erfasst dieses Magnetfeld und kann anhand der Richtung des Magnetfelds die Richtung erfassen, in die wir blicken.
Funktionsweise des HMC5883L-Sensormoduls
Der HMC5883L als Magnetometersensor macht dasselbe. Darauf befindet sich der HMC5883L IC von Honeywell. Dieser IC hat 3 magnetoresistive Materialien, die in den Achsen x, y und z angeordnet sind. Die durch diese Materialien fließende Strommenge ist empfindlich gegenüber dem Erdmagnetfeld. Indem wir also die Änderung des durch diese Materialien fließenden Stroms messen, können wir die Änderung des Erdmagnetfelds erfassen. Sobald die Änderung des Magnetfelds absorbiert ist, können die Werte über das I2C-Protokoll an jeden eingebetteten Controller wie einen Mikrocontroller oder Prozessor gesendet werden.
Da der Sensor das Magnetfeld erfasst, werden die Ausgangswerte stark beeinflusst, wenn ein Metall in der Nähe platziert wird. Dieses Verhalten kann genutzt werden, um diese Sensoren auch als Metalldetektoren zu verwenden. Es ist darauf zu achten, dass keine Magnete in die Nähe dieses Sensors gebracht werden, da das starke Magnetfeld eines Magneten falsche Werte am Sensor auslösen kann.
Unterschied zwischen HMC5883L und QMC5883L
Bei vielen Anfängern herrscht häufig Verwirrung um diese Sensoren. Dies liegt daran, dass einige Anbieter (eigentlich die meisten) die QMC5883L-Sensoren anstelle des originalen HMC5883L von Honeywell verkaufen. Dies liegt hauptsächlich daran, dass der QMC5883L viel billiger ist als das HMC5883L-Modul. Der traurige Teil ist, dass die Funktionsweise dieser beiden Sensoren leicht unterschiedlich ist und nicht für beide derselbe Code verwendet werden kann. Dies liegt daran, dass die I2C-Adresse beider Sensoren nicht identisch ist. Der in diesem Tutorial angegebene Code funktioniert nur für QMC5883L, das allgemein verfügbare Sensormodul.
Um zu wissen, welches Sensormodell Sie haben, müssen Sie nur den IC selbst genau betrachten, um zu lesen, was darauf geschrieben steht. Wenn es so etwas wie L883 geschrieben ist, dann ist es das HMC58836L und wenn es so etwas wie DA5883 geschrieben ist, dann ist es das QMC5883L IC. Beide Module sind in der Abbildung unten dargestellt, um das Verständnis zu erleichtern.
Schaltplan
Die Schaltung für diesen Arduino-basierten Digitalkompass ist ziemlich einfach. Wir müssen lediglich den HMC5883L-Sensor mit dem Arduino verbinden und 8 LEDs an die GPIO-Pins des Arduino Pro mini anschließen. Das vollständige Schaltbild ist unten dargestellt
Das Sensormodul verfügt über 5 Pins, von denen der DRDY (Data Ready) in unserem Projekt nicht verwendet wird, da wir den Sensor im kontinuierlichen Modus betreiben. Der Vcc- und Erdungsstift wird verwendet, um das Modul mit 5 V von der Arduino-Platine zu versorgen. SCL und SDA sind die I2C-Kommunikationsbusleitungen, die mit den A4- und A5-I2C-Pins des Arduino Pro mini verbunden sind. Da das Modul selbst einen Pull-High-Widerstand an den Leitungen hat, müssen diese nicht extern hinzugefügt werden.
Um die Richtung anzuzeigen, haben wir 8 LEDs verwendet, die alle über einen Strombegrenzungswiderstand von 470 Ohm mit den GPIO-Pins des Arduino verbunden sind. Der komplette Stromkreis wird von einer 9-V-Batterie über den Zylinderheber gespeist. Diese 9 V werden direkt an den Vin-Pin des Arduino geliefert, wo sie mithilfe des integrierten Reglers von Arduino auf 5 V geregelt werden. Diese 5 V werden dann verwendet, um den Sensor und auch den Arduino mit Strom zu versorgen.
Herstellung der Leiterplatten für den digitalen Kompass
Die Idee der Schaltung besteht darin, die 8 LEDs kreisförmig so anzuordnen, dass jede LED alle 8 Richtungen zeigt, nämlich Nord, Nordost, Ost, Südost, Süd, Südwest, West und Nordwest. Es ist also nicht einfach, sie ordentlich auf einem Steckbrett oder sogar auf einem Perf-Brett anzuordnen. Durch die Entwicklung einer Leiterplatte für diese Schaltung sieht sie ordentlicher und benutzerfreundlicher aus. Also öffnete ich meine PCB-Design-Software und platzierte die LEDs und den Widerstand in einem sauberen kreisförmigen Muster und verband die Spuren, um die Verbindungen zu bilden. Mein Design sah nach Abschluss ungefähr so aus. Sie können die Gerber-Datei auch über den unten angegebenen Link herunterladen.
- Laden Sie die Gerber-Datei für Digital Compass PCB herunter
Ich habe es als Doppelseitenplatine konzipiert, da ich möchte, dass sich das Arduino auf der Unterseite meiner Platine befindet, damit es das Aussehen auf meiner Platine nicht beeinträchtigt. Wenn Sie sich Sorgen machen, dass Sie für eine doppelseitige Leiterplatte viel bezahlen müssen, dann warten Sie, ich habe gute Neuheiten.
Jetzt, da unser Design fertig ist, ist es Zeit, sie herzustellen. Befolgen Sie einfach die nachstehenden Schritte, um die Leiterplatte fertigzustellen
Schritt 1: Gehen Sie zu www.pcbgogo.com und melden Sie sich an, wenn Sie zum ersten Mal hier sind. Geben Sie dann auf der Registerkarte PCB Prototype die Abmessungen Ihrer Leiterplatte, die Anzahl der Schichten und die Anzahl der benötigten Leiterplatten ein. Meine Platine ist 80 cm × 80 cm groß, daher sieht die Registerkarte unten so aus
Schritt 2: Klicken Sie auf die Schaltfläche Jetzt zitieren. Sie werden zu einer Seite weitergeleitet, auf der Sie bei Bedarf einige zusätzliche Parameter wie den verwendeten Spurabstand usw. einstellen können. Meistens funktionieren die Standardwerte jedoch einwandfrei. Das einzige, was wir hier berücksichtigen müssen, ist der Preis und die Zeit. Wie Sie sehen können, beträgt die Build-Zeit nur 2-3 Tage und kostet für unser PSB nur 5 US-Dollar. Sie können dann eine bevorzugte Versandart auswählen, die Ihren Anforderungen entspricht.
Schritt 3: Der letzte Schritt besteht darin, die Gerber-Datei hochzuladen und mit der Zahlung fortzufahren. Um sicherzustellen, dass der Prozess reibungslos verläuft, überprüft PCBGOGO, ob Ihre Gerber-Datei gültig ist, bevor Sie mit der Zahlung fortfahren. Auf diese Weise können Sie sicher sein, dass Ihre Leiterplatte herstellungsfreundlich ist und Sie als engagiert erreicht.
Montage der Leiterplatte
Nachdem das Board bestellt wurde, erreichte es mich nach einigen Tagen, obwohl Kurier in einer ordentlich beschrifteten, gut verpackten Box und wie immer war die Qualität der Platine fantastisch. Ich teile einige Bilder der unten stehenden Tafeln, damit Sie sie beurteilen können.
Ich schaltete meinen Lötstab ein und begann mit der Montage der Platine. Da die Footprints, Pads, Vias und Siebdruck perfekt die richtige Form und Größe haben, hatte ich kein Problem damit, das Board zusammenzubauen. Das Board war in nur 10 Minuten ab dem Zeitpunkt des Auspackens der Box fertig.
Einige Bilder der Platine nach dem Löten sind unten gezeigt.
Arduino programmieren
Nachdem unsere Hardware fertig ist, schauen wir uns das Programm an, das auf unser Arduino-Board hochgeladen werden muss. Der Code dient dazu , die Daten vom Magnetometersensor QMC5883L zu lesen und in Grad (0 bis 360) umzuwandeln. Sobald wir den Grad kennen, müssen wir eine LED einschalten, die in eine bestimmte Richtung zeigt. Die Richtung, die ich in diesem Programm verwendet habe, ist Norden. Unabhängig davon, wo Sie sich befinden, leuchtet nur eine LED auf Ihrem Board und die Richtung der LED zeigt die NORD-Richtung an. Sobald später die andere Richtung berechnet werden konnte, ist eine Richtung bekannt.
Den vollständigen Code für dieses Digital Compass-Projekt finden Sie am Ende dieser Seite. Sie können es direkt auf Ihr Board hochladen, nachdem Sie die Bibliothek aufgenommen haben, und schon können Sie loslegen. Aber wenn du es wissen willst