Seite 1
Willkommen! Vielen Dank, dass Sie sich für unser GY-271 Kompassmodul von AZ-Delivery entschieden haben. In den nachfolgenden Seiten werden wir Ihnen erklären wie Sie das Gerät einrichten und nutzen können. Viel Spaß!
Seite 2
Anwendungsbereiche Bildung und Lehre: Einsatz in Schulen, Hochschulen und Ausbildungseinrichtungen zur Vermittlung von Grundlagen der Elektronik, Programmierung und eingebetteten Systemen. Forschung und Entwicklung: Verwendung in Forschungs- und Ent- wicklungsprojekten zur Erstellung von Prototypen und Experimenten in den Bereichen Elektronik und Informatik. Prototypen- entwicklung: Einsatz in der Entwicklung und Erprobung neuer elektronischer Schaltungen und Geräte.
Seite 3
Anforderungen der RoHS-Richtlinie (2011/65/EU) entspricht und keine gefährlichen Stoffe in über den Grenzwerten zulässigen Mengen enthält, können dennoch Rückstände vorhanden sein. Beachten Sie die folgenden Sicherheitshinweise, um chemische Gefährdungen zu vermeiden: Achtung: Beim Löten können Dämpfe entstehen, die gesundheitsschädlich sein können. Hin- weis: Verwenden Sie einen Lötdampfabsauger oder arbeiten Sie in einem gut belüfteten Bereich.
Inhaltsverzeichnis Einführung.....................3 Technische Daten..................5 Betriebsmodi....................7 Pinbelegung....................10 Wie man die Arduino IDE einrichtet.............11 Wie man den Raspberry Pi und Python einrichtet........15 Verbindung des Sensors mit Atmega328P Board........16 Library für Arduino IDE................17 Sketch-Beispiel..................18 Verbindung des Sensors mit dem Raspberry Pi..........23 Aktivieren der I2C-Schnittstelle..............24 Libraries und Tools für Python..............25 Python-Skript...................27 Deklination berechnen................31...
Einführung Das Herzstück des GY-271-Moduls ist der QMC5883L-Chip. Das Modul ist für hochpräzise Anwendungen wie einen Kompass, Navigation und Spiele in Drohnen, Robotern, mobilen und persönlichen Handgeräten vorgesehen. Bei dem Chip handelt es sich eigentlich um eine magnetoresistive Multichip- Sensorschaltung, die aus triaxialen Sensoren und anwendungsspezifischen integrierten Schaltungen (ASIC) zur Messung von Magnetfeldern besteht.
Seite 6
Dieses Gerät ist an eine serielle Schnittstelle angeschlossen, jedoch als Slave-Gerät unter der Steuerung eines Master-Gerätes, wie z.B. des Mikrocontrollers. Die Steuerung des Geräts erfolgt über die I2C- Schnittstelle. Es unterstützt Standard- und Hochgeschwindigkeitsmodi, 100kHz bzw. 400kHz. Um all diese Modi zu unterstützen, sind externe Pull- up-Widerstände erforderlich.
Technische Daten » Betriebsspannungsbereich: 3,3V bis 5V DC » Niedriger Stromverbrauch: 75µA » Kommunikationsschnittstelle: I2C (Standard und Schnellmodus) » Standard I2C-Adresse: 0x0D » Kompassgenauigkeit: 1° bis 2° » Betriebstemperaturbereich: -40°C bis +85°C » Magnetfeldbereich: ±8 Gauss » Analog zu Digital Auflösung: 16-bit »...
Seite 8
Wenn das Gerät eingeschaltet wird, werden alle Register durch POR zurückgesetzt. Dann geht das Gerät in den Standby-Modus über und wartet auf weitere Befehle. Der QMC5883L-Chip hat einen eingebauten Temperatursensor, der Temperaturmessungen für andere Anwendungen liefern kann. Die Temperaturkompensation der gemessenen magnetischen Daten ist ab Werk standardmäßig aktiviert.
Betriebsmodi Kontinuierlicher Messmodus Während des kontinuierlichen Messmodus führt der Magnetsensor durchgehend Messungen durch und legt die Messdaten in den Datenausgaberegistern ab. Im kontinuierlichen Messmodus werden die Daten des Magnetsensors automatisch für Offset- und Temperatureffekte kompensiert. Die Verstärkungsfaktoren werden im Werk kalibriert. Normale Lesesequenz Das Auslesen der vollständigen Magnetometerdaten der normalen Lesesequenz kann wie folgt durchgeführt werden:...
Seite 10
Während der Messung ist es möglich, das Datenregister auszulesen, in dem die zuvor gemessenen Daten gespeichert sind. Daher findet kein Interrupt (DRDY-Bit) statt, wenn das Auslesen der Daten in der Mitte der Messung erfolgt. Wenn die N-ten Daten übersprungen werden, werden die aktuellen Daten von den nächsten Daten verdrängt.
Seite 11
Standby-Modus Der Standby-Modus ist der Standardzustand des Chips nach dem Power On Reset (POR) oder Soft Reset. In diesem Modus nur wenige Funktionsblöcke aktiviert, wodurch der Stromverbrauch so gering wie möglich gehalten wird. In diesem Zustand werden die Registerwerte durch eine extrem niedrige Leistung auf ON gehalten.
Pinbelegung Das GY-271 magnetische Kompass Modul hat fünf Pins. Die Pinbelegung ist wie folgt: Die Stromversorgung und Logikpins arbeiten mit einem Spannungsbereich von 3,3V bis 5V. Der DRDY Pin wird verwendet, um die das Ende der Messung anzuzeigen. Sie können Ihn als Interrupt, oder als Signal, um mit der Messung zu beginnen, verwenden.
Wie man die Arduino IDE einrichtet Falls die Arduino-IDE nicht installiert ist, folgen Sie dem link https://www.arduino.cc/en/Main/Software und laden Sie die Installationsdatei für das Betriebssystem Ihrer Wahl herunter. Für Benutzer: Doppelklicken Sie auf die heruntergeladene .exe- Windows Datei und folgen Sie den Anweisungen im Installationsfenster. - 11 -...
Seite 14
Für Linux Benutzer, laden Sie eine Datei mit der Erweiterung .tar.xz herunter, die extrahiert werden muss. Wenn sie extrahiert ist, gehen Sie in das extrahierte Verzeichnis und öffnen Sie das Terminal in diesem Verzeichnis. Zwei .sh Skripte müssen ausgeführt werden, das erste namens arduino-linux-setup.sh und das zweite heißt install.sh.
Seite 15
Fast alle Betriebssysteme werden mit einem vorinstallierten Texteditor ausgeliefert (z.B. Windows mit Notepad, Linux Ubuntu mit Gedit, Linux Raspbian mit Leafpad usw.). Alle diese Texteditoren sind für den Zweck des eBooks vollkommen in Ordnung. Zunächst ist zu prüfen, ob Ihr PC ein Microcontroller-Board erkennen kann. Öffnen Sie die frisch installierte Arduino-IDE, und gehen Sie zu: Tools >...
Seite 16
Wenn die Arduino-IDE unter Windows verwendet wird, lauten die Portnamen wie folgt: Für Linux Benutzer, ist zum Beispiel der Portname /dev/ttyUSBx, wobei x für eine ganze Zahl zwischen 0 und 9 steht. - 14 -...
Wie man den Raspberry Pi und Python einrichtet Für den Raspberry Pi muss zuerst das Betriebssystem installiert werden, dann muss alles so eingerichtet werden, dass es im Headless-Modus verwendet werden kann. ermöglicht eine Headless-Modus Fernverbindung zum Raspberry Pi, ohne dass ein PC-Bildschirm, eine Maus oder eine Tastatur erforderlich ist.
Library für die Arduino IDE Um das Modul mit der Arduino IDE zu verwenden, wird empfohlen, eine externe Library dafür herunterzuladen. Die in diesem eBook verwendete Library heißt Um Sie herunterzuladen und zu installieren, öffnen QMC5883L. Sie die Arduino IDE und gehen Sie zu: Tools >...
Sketch-Beispiel #include <QMC5883LCompass.h> QMC5883LCompass compass; void setup() { Serial.begin(9600); compass.init(); void loop() { compass.read(); // Read compass values byte a = compass.getAzimuth(); // Return Azimuth reading Serial.print("Azimuth: "); Serial.println(a); byte d = compass.getBearing(a); // Output is a value from 0 - 15 // based on the direction of the bearing / azimuth Serial.print("Direction: ");...
Seite 21
Laden Sie den Sketch in den Serial Monitor (Tools > Serial Monitor). Die Ausgabe sollte wie folgt aussehen: Um ähnliche Werte zu erhalten, drehen Sie das Kompass-Board um eine seiner Achsen. - 19 -...
Seite 22
Der Sketch beginnt mit der Einbeziehung der Library QMC5883LCompass. Als Nächstes wird das Objekt compass erstellt, welches das Modul selber darstellt. Das Objekt wird verwendet, um es zu initialisieren und die Moduldaten auszulesen In der setup() Funktion, wird die serielle Kommunikation mit einer Baudrate von 9600bps gestartet.
Seite 23
Danach werden die Azimutwerte in Richtungszahlen umgewandelt und auf dem Serial Moniter angezeigt. Es gibt acht Richtungen auf dem Kompass: » Norden » Nord-Osten » Osten » Süd-Osten » Süden » Süd-West » Westen » Nord-West Es gibt 16 verschiedene Bereiche, wie auf dem Kompasszirkel abgebildet: - 21 -...
Die Funktion getBearing() hat ein Argument und gibt einen Wert zurück. Das Argument ist eine ganze Zahl, die den Azimut-Wert darstellt. Der Rückgabewert ist ebenfalls eine ganze Zahl im Bereich von 0 bis 15, die eine der Richtungszahlen aus dem Kompasszirkel darstellt. Danach werden die Richtungszahlen in Richtungsbuchstaben mit den folgenden Codezeilen umgewandelt: char compassLetters[3];...
Verbindung des Sensors mit dem Raspberry Pi Verbinden Sie das GY-271 Kompassmodul mit dem Raspberry Pi, wie unten abgebildet: Sensor Pin > Raspberry Pi Pin > 3V3 [pin 1] Roter Draht > GND [pin 9] Schwarzer Draht > GPIO3 [pin 5] Blauer Draht >...
Aktivieren der I2C-Schnittstelle Um den Bildschirm mit einer Raspberry Pi zu verwenden, muss zunächst die SPI-Schnittstelle in Raspbian aktiviert werden. Gehen Sie dafür zu: Application Menu > Preferences > Raspberry Pi Configuration Als nächstes öffnen Sie die Registerkarte Interfaces/Schnittstelle, stellen Sie die SPI-Radiobuttons auf Ok und aktivieren Sie es, wie auf dem folgenden Bild gezeigt: - 24 -...
Libraries und Tools für Python Um das Modul mit dem Raspberry Pi zu verwenden, wird empfohlen, eine externe Library dafür herunterzuladen. Die Library, die in diesem eBook verwendet wird, heißt gy271compass. Um die Library zu benutzen, müssen einige Libraries und Tools installiert werden. Als Erstes installieren Sie git, python-smbus und i2c-tools.
Seite 28
Sollte das I2C-interface auf dem Raspberry Pi nicht aktiviert, und der vorherige Befehl ausgeführt sein, wird Ihnen folgende Fehlermeldung angezeigt: Um die externe Library herunterzuladen, speichern Sie das Skript gy271compass.py von folgendem Link: https://github.com/Slaveche90/gy271compass Oder verwenden Sie git um das Repository zu klonen, indem Sie folgenden Befehl im Terminal ausführen: git clone https://github.com/Slaveche90/gy271compass Durch den Befehl wird das Verzeichnis gy271compass erstellt.
Python-Skript import gy271compass GY271 from time import sleep sensor GY271.compass(address=0x0d) print('[Press CTRL + C to end the script!]') try: while True: angle sensor.get_bearing() temp sensor.read_temp() print('Heading Angle = {}°'.format(angle)) print('Temperature = {:.1f}°C'.format(temp)) sleep(1) except KeyboardInterrupt: print('\nScript end!') - 27 -...
Seite 30
Speichern Sie das Skript unter dem Namen gy271.py in dem selben Verzeichnis, in dem Sie das gy271compass Skript gespeichert haben. Um das gy271.py Skript auszuführen, öffnen Sie das Terminal in dem Verzeichnis, in dem die Skripten gespeichert sind, und führen Sie den folgenden Befehl aus: python3 gy271.py Die Ausgabe sollte wie folgt aussehen: Um das Skript zu beenden, drücken Sie STRG + C auf der Tastatur.
Seite 31
Das Skript beginnt mit dem Import der externen Class Library gy271compass und der time Library. Als Nächstes wird das Objekt compass erstellt, mit der folgenden Codezeile: sensor = GY271.compass(address=0x0d) wobei 0x0d die I2C-Addresse des Moduls ist. Dann wird ein try-except Codeblock erstellt. Im try block wird ein indefinite loop block...
Seite 32
Das Modul hat mehrere Optionen, die bei der Erstellung des sensor Objekts eingestellt werden können. Sie können folgende Argumente an den compass() Konstruktor weiteregeben: - die I2C-Adresse des Moduls address=0x0d - Kontinuierlicher oder Standy-Modus mode=MODE_CONT MODE_CONT or MODE_STBY - Ausgangs-Datenrate, mit den Werten: odr=ODR_10Hz ODR_10Hz, ODR_50Hz,...
Deklination berechnen Um den magnetischen Deklinationswert zu berechnen, gehen Sie zu: https://www.magnetic-declination.com/YUGOSLAVIA/NEOPLANTA/2970848.html und finden Sie ihren Standort. Klicken Sie als Nächstes mit der PC-Maus auf den Standort, und es wird ein Pop-up-Fenster angezeigt. Kopieren Sie die folgenden Daten: Und verwenden Sie z.B. den Winkelminuten-zu-Dezimal-Umrechner: https://www.rapidtables.com/convert/number/degrees-minutes-seconds-to-degrees.html um den Floating-point-Wert des Winkels zu erhalten.
Seite 34
Internet unzählige Möglichkeiten, sich Sachen Mikroelektronik weiterzubilden. Falls Sie nach weiteren Hochwertige Mikroelektronik und Zubehör, sind Sie bei AZ-Delivery Vertriebs GmbH goldrichtig. Wir bieten Ihnen zahlreiche Anwendungsbeispiele, ausführliche Installationsanleitungen, E-Books, Bibliotheken und natürlich die Unterstützung unserer technischen Experten. https://az-delivery.de Viel Spaß! Impressum https://az-delivery.de/pages/about-us...