Skip to main content
shopping_basket Warenkorb 0
Einloggen

Digital Discovery und Python zum Testen von MEMS-Beschleunigungssensoren verwenden

awong
0

Ein MEMS-Beschleunigungssensor (mikroelektromechanische Systeme) ist ein Gerät, das die Beschleunigung auf einer oder mehreren Achsen messen kann. Darüber hinaus kann er die Ausrichtung Ihres Geräts relativ zur Erdanziehung zu ermitteln. MEMS-Beschleunigungssensoren werden in industriellen und mobilen Anwendungen, in Luftfahrtinstrumenten und in taktischen Leitsystemen verwendet. Sie können einen MEMS-Beschleunigungssensor mit Digilent Digital Discovery (136-8070) testen, wenn Sie Ihre Systeme erproben.

Digilent Digital Discovery ist ein kombiniertes Logikanalysator- und Mustergenerator-Instrument, das als ultimativer eingebetteter Entwicklungsbegleiter entwickelt wurde. Die digitalen Ein- und Ausgänge können mit einfachen Drahtsonden oder Breadboard-Drähten an einen Schaltkreis angeschlossen werden. Der Hochgeschwindigkeitsadapter und die impedanzangepassten Sonden von Digital Discovery können auch zum Anschluss und zur Nutzung der Ein- und Ausgänge für fortgeschrittenere Projekte verwendet werden.

WaveForms ist eine leistungsstarke Multi-Instrument-Softwareanwendung für Digital Discovery. Sie ist mit Windows, Mac, Linux und Raspberry Pi 4 kompatibel. Benutzer können Javascript im WaveForms Script Editor benutzen, um Digital Discovery zu steuern. Das WaveForms Software Development Kit (SDK) gewährt Zugang zu einer öffentlichen Schnittstelle zur Programmierung von Anwendungen (API), die es Benutzern ermöglicht, individuelle PC-Anwendungen zu entwickeln.

Was Sie für den Test benötigen

  • Digilent Digital Discovery
  • WaveForms-Software
  • Einen Computer mit USB-Anschluss zum Ausführen der Software
  • Python-Software mit Python 2.7-Interpreter und Matplotlib
  • Einen Beschleunigungssensor mit einer I2C-Schnittstelle (in diesem Beispiel verwenden wir den LIS35DE, der auf einem KAmodMEMS2-Modul angebracht ist)

Einrichtung des Tests

1. Schließen Sie GND und Vdd des Sensors an die GND- und VIO-Pins von Digital Discovery an und stellen Sie die folgenden Verbindungen von der KAmodMEMS2 I2C-Schnittstelle zu Digital Discovery her:

  • CS-Pin an Vdd
  • SDO-Pin an GND
  • SDA- und SCL-Leitungen an DIO33 bzw. DIO32

Digital_Discovery2_29d7909bca0675be0e310d6352f60027dc1fe9a0.jpg

2. Laden Sie das WaveForms-SDK.

3. Verwenden Sie ein Python-Skript, um die 3,3V-Stromversorgung von Digital Discovery an das KAmodMEMS2-Modul zu aktivieren und die I2C-Schnittstelle zu konfigurieren. Um die Demo zu konfigurieren, muss der Benutzer die Betriebsfrequenz des Busses einstellen und auswählen, welche Pins von Digital Discovery verwendet werden sollen.

# set I2C frequency and pins
dwf.FDwfDigitalI2cRateSet(hdwf, c_double(1e5)) # 100kHz
dwf.FDwfDigitalI2cSclSet(hdwf, c_int(32-24)) # SCL = DIO-32
dwf.FDwfDigitalI2cSdaSet(hdwf, c_int(33-24)) # SDA = DIO-33

4. Verwenden Sie das Python-Skript, um die Daten zu lesen und Graphen zu aktualisieren, solange das Darstellungsfenster geöffnet ist. Jede Leseoperation des KAmodMEMS2-Moduls ist eine Lese-/Schreiboperation auf dem I2C-Bus. Für den vollständigen Betrieb wird eine Geräteadresse eingestellt. Die WaveForms-SDK behält das R/W-Bit automatisch bei. Zwei Arrays werden zum Schreiben und Lesen von Daten verwendet, und der Benutzer gibt an, wie viele Bytes geschrieben und nach wiederholtem Start auch gelesen werden sollen. Bei diesem Test wird nur ein Byte geschrieben. Die Registeradresse ist mit einer Bitmaske kombiniert, die anzeigt, dass der Sensor die Registeradresse nach jedem aus dem Bus gelesenen Byte inkrementieren soll. Anschließend werden 5 Bytes aus den nachfolgenden Registern gelesen, beginnend beim OUTX-Register. Die gelesenen Daten enthalten 3 Bytes, wobei die X-, Y- und Z-Beschleunigungsdaten im Zweierkomplement dargestellt sind, und zwei Dummy-Bytes.  

dwf.FDwfDigitalI2cWriteRead(hdwf, c_int(address << 1), (c_ubyte*1)(LIS35DEreg.REG_OUTX | LIS35DEreg.READ_INC), c_int(1), rgRX, c_int(5), byref(iNak))

5. Führen Sie das Skript aus und testen Sie das KAmodMEMS2-Modul. Der obere Teil des Fensters zeigt die Live-XYZ-Beschleunigung des Sensors als Zeitfunktion an, während der untere Teil die tatsächliche X- und Y-Beschleunigung als blaues Sternchen (*) darstellt.

dd_2_%281%29_6269f4cb22887220c91709c696a1346eff797851.jpg

Auf unserer Digilent Wiki-Seite können Sie den Test Schritt für Schritt lernen und den Quellcode herunterladen.

Love learn engineering in hands-on approach. Interested in new technology. Work in Digilent as International Sales and Distribution Manager.

Recommended Articles

DesignSpark Electrical Logolinkedin