Inhaltsverzeichnis:

LED-Kompass und Höhenmesser - Gunook
LED-Kompass und Höhenmesser - Gunook

Video: LED-Kompass und Höhenmesser - Gunook

Video: LED-Kompass und Höhenmesser - Gunook
Video: Skmei 1358 Compass, Altimeter, Barometer, Thermometer etc unboxing 2024, Juli
Anonim
Image
Image
Schaltplan und PCB
Schaltplan und PCB

Objekte mit LEDs faszinieren mich immer wieder. Daher dieses Projekt, den beliebten digitalen Kompasssensor HMC5883L mit 48 LEDs zu kombinieren. Wenn Sie die LEDs in einem Kreis platzieren, ist die leuchtende LED die Richtung, in die Sie gehen. Alle 7,5 Grad wird eine neue LED angesteuert, die detaillierte Ergebnisse liefert.

Das GY-86 Board bietet auch einen MS5611 barometrischen Drucksensor. Mit Hilfe dieses Sensors ist es möglich die Höhe zu berechnen. Aufgrund der hohen Auflösung ist es perfekt für Höhenmesser geeignet.

Der MPU6050-Sensor auf der GY-86-Platine verfügt sowohl über einen 3-Achsen-Beschleunigungsmesser als auch über ein 3-Achsen-Gyroskop. Das Gyroskop kann die Geschwindigkeit der Winkelposition über die Zeit messen. Der Beschleunigungsmesser kann die Gravitationsbeschleunigung messen und mit Hilfe der Trigonometrie-Mathematik ist es möglich, den Winkel zu berechnen, in dem der Sensor positioniert ist. Durch die Kombination der Beschleunigungsmesser- und Gyroskopdaten ist es möglich, Informationen über die Sensorausrichtung zu erhalten. Dies kann für die Neigungskompensation für den HMC5883L-Kompass verwendet werden (to do).

Die kurzen Anleitungsvideos in diesem anweisbaren erklären im Detail, wie es funktioniert. Kalibrierverfahren sind automatisiert, so dass der Erfolg garantiert ist. Die Temperatur ist in Celsius (Standard) oder Fahrenheit verfügbar.

Spaß haben !!

Schritt 1: Höhenmesser

Image
Image

Der Höhenmesser verwendet den barometrischen Drucksensor MS5611. Die Höhe kann anhand der Messung des atmosphärischen Drucks bestimmt werden. Je größer die Höhe, desto geringer der Druck. Beim Start verwendet der Höhenmesser den standardmäßigen Meeresspiegeldruck von 1013,25 mbar. Durch Drücken der Taste an Pin 21 wird der Druck an Ihrem Standort als Referenz verwendet. Auf diese Weise ist es möglich, ungefähr zu messen, welche Höhe etwas hat (z. B. beim Bergauffahren mit dem Auto).

In diesem Projekt wird die sogenannte "Hypsometrische Formel" verwendet. Diese Formel verwendet die Temperatur, um die Messung zu kompensieren.

float alt=((powf(source / ((float) P / 100,0), 0,19022256) - 1,0) * ((float) TEMP / 100 + 273.15)) / 0,0065;

Weitere Informationen zur hypsometrischen Formel finden Sie hier:

Hypsometrische Formel

Die Werkskalibrierungsdaten und die Sensortemperatur werden vom MS5611-Sensor gelesen und auf den Code angewendet, um die genauesten Messungen zu erhalten. Während des Tests habe ich festgestellt, dass der MS5611-Sensor empfindlich auf Luftströmungen und Unterschiede in der Lichtintensität reagiert. Es muss möglich sein, bessere Ergebnisse als in diesem Anleitungsvideo zu erzielen.

Schritt 2: Teile

1 x Microchip 18f26k22 Mikrocontroller 28-PIN PDIP

3 x MCP23017 16-Bit I/O Expander 28-pin SPDIP

48 x LEDs 3mm

1 x GY-86-Modul mit MS5611-, HMC5883L- und MPU6050-Sensoren

1 x SH1106 OLED 128x64 I2C

1 x Keramikkondensator 100nF

1 x 100 Ohm Widerstand

Schritt 3: Schaltplan und PCB

Schaltplan und PCB
Schaltplan und PCB

Alles passt auf eine einseitige Leiterplatte. Finden Sie hier die Eagle- und Gerber-Dateien, damit Sie sie selbst herstellen können oder fragen Sie einen PCB-Hersteller.

Ich verwende den LED-Kompass und den Höhenmesser in meinem Auto und nutze die OBD2-Schnittstelle als Stromversorgung. Der Mikrocontroller passt perfekt in den Stecker.

Schritt 4: So richten Sie LEDs mit der Eagle PCB Design Software in Sekundenschnelle perfekt in einem Kreis aus

Sie müssen diese wirklich nette Funktion in der Eagle PCB Design Software sehen, die Ihnen stundenlange Arbeit erspart. Mit dieser Eagle-Funktion können Sie LEDs in Sekundenschnelle perfekt im Kreis ausrichten.

Klicken Sie einfach auf die Registerkarte "Datei" und dann auf "ULP ausführen". Klicken Sie hier auf "cmd-draw.ulp". Wählen Sie „Verschieben“, „Gradschritt“und „Kreis“. Tragen Sie den Namen der ersten LED in das Feld "Name" ein. Stellen Sie die Koordinaten des Kreismittelpunkts auf dem Raster in den Feldern "X-Mittelpunktskoordinate" und "Y-Mittelpunktskoordinate" ein. In diesem Projekt sind 48 LEDs, also 360 geteilt durch 48 ergibt 7,5 für das Feld "Winkelschritt". Der Radius dieses Kreises beträgt 1,4 Zoll. Drücken Sie die Eingabetaste und Sie haben einen perfekten Kreis von LEDs.

Schritt 5: Kompasskalibrierungsprozess

Image
Image

Der HMC5883L enthält einen 12-Bit-ADC, der eine Kompasskursgenauigkeit von 1 bis 2 Grad Celsius ermöglicht. Aber bevor es brauchbare Daten liefert, muss es kalibriert werden. Damit dieses Projekt reibungslos läuft, gibt es diese Kalibrierungsmethode, die x- und y-Offset bereitstellt. Es ist nicht die ausgereifteste Methode, aber für dieses Projekt ausreichend. Dieses Verfahren kostet Sie nur wenige Minuten und liefert Ihnen schöne Ergebnisse.

Durch das Laden und Ausführen dieser Software werden Sie durch diesen Kalibrierungsprozess geführt. Das OLED-Display zeigt Ihnen an, wann der Vorgang beginnt und wann er endet. Bei dieser Kalibrierung werden Sie aufgefordert, den Sensor um 360 Grad zu drehen, während Sie ihn absolut flach (horizontal zum Boden) halten. Montieren Sie es auf einem Stativ oder ähnlichem. Dies zu tun, indem Sie es in der Hand halten, funktioniert nicht. Am Ende werden die Offsets auf der OLED dargestellt. Wenn Sie dieses Verfahren mehrmals ausführen, müssen Sie fast gleiche Ergebnisse erzielen.

Optional stehen die gesammelten Daten auch über RS232 über Pin 27 (9600 Baud) zur Verfügung. Verwenden Sie einfach ein Terminalprogramm wie Putty und sammeln Sie alle Daten in der Protokolldatei. Diese Daten können einfach in Excel importiert werden. Von hier aus können Sie besser sehen, wie der Offset Ihres HMC5883L aussieht.

Die Offsets werden im EEPROM des Mikrocontrollers abgelegt. Diese werden beim Start der Kompass- und Höhenmesser-Software geladen, die Sie in Schritt 7 finden.

Schritt 6: Kompensieren Sie die magnetische Deklination Ihres Standorts

Image
Image
Sensorik-Wettbewerb
Sensorik-Wettbewerb

Es gibt einen magnetischen Norden und einen geografischen Norden (Nordpol). Ihr Kompass folgt den Magnetfeldlinien der Erde, zeigt also nach dem magnetischen Norden. Der Unterschied zwischen dem magnetischen Norden und dem geografischen Norden wird als magnetische Deklination bezeichnet. An meinem Standort beträgt die Deklination nur 1 Grad und 22 Minuten, daher lohnt es sich nicht, dies zu kompensieren. An anderen Standorten kann diese Deklination bis zu 30 Grad betragen.

Finden Sie die magnetische Deklination an Ihrem Standort

Wenn Sie dies kompensieren möchten (ist optional), können Sie die Deklination (Grad und Minuten) im EEPROM des Mikrocontrollers hinzufügen. An der Stelle 0x20 können Sie die Grade in vorzeichenbehafteter hexadezimaler Form hinzufügen. Es ist signiert, weil es auch eine negative Deklination sein kann. An der Stelle 0x21 können Sie die Minuten auch in hexadezimaler Form hinzufügen.

Schritt 7: Kompilieren Sie den Code

Image
Image

Kompilieren Sie diesen Quellcode und programmieren Sie Ihren Mikrocontroller. Dieser Code wird mit MPLABX IDE v5.20 und XC8-Compiler v2.05 im C99-Modus korrekt kompiliert (beziehen Sie also die C99-Verzeichnisse mit ein). Auch die Hex-Datei ist verfügbar, damit Sie den Kompilierungsvorgang überspringen können. Stellen Sie sicher, dass Sie das Kontrollkästchen "EEPROM-Daten aktiviert" deaktivieren, um zu verhindern, dass Kalibrierdaten (siehe Schritt 5) überschrieben werden. Stellen Sie Ihren Programmierer auf 3,3 Volt ein!

Wenn Sie Pin 27 mit Masse verbinden, erhalten Sie die Temperatur in Fahrenheit.

Danke an Achim Döbler für seine µGUI-Grafikbibliothek

Sensorik-Wettbewerb
Sensorik-Wettbewerb

Zweiter im Sensors Contest

Empfohlen: