Uruchamianie zautomatyzowanego testu akcelerometru MEMS przy wykorzystaniu analizatora Digital Discovery i języka Python
Akcelerometr MEMS to układ, który może mierzyć przyspieszenie w jednej lub kilku osiach. Można go również wykorzystać do wykrycia położenia urządzenia względem grawitacji Ziemi. Akcelerometry można znaleźć w rozwiązaniach przemysłowych i mobilnych, przyrządach lotniczych, a także systemach naprowadzania taktycznego. Podczas prototypowania systemów akcelerometry można testować za pomocą analizatora Digital Discovery od firmy Digilent.
Digilent Digital Discovery to analizator stanów logicznych, analizator protokołów i generator przebiegów podłączany do USB. Cyfrowe porty wejścia i wyjścia można podłączyć do obwodu za pomocą prostych sond przewodowych lub przewodów używanych przy płytce prototypowej. W bardziej zaawansowanych projektach do tego celu można wykorzystać szybki adapter Digital Discovery High Speed Adapter i połączenia skręcone. Przy wsparciu bezpłatnego oprogramowania WaveForms, Digital Discovery można skonfigurować jako:
- 24-kanałowy cyfrowy analizator logiczny (1,2…3,3V CMOS, do 800 MS/s (przy użyciu adaptera High-Speed)),
- 16-kanałowy generator przebiegów (1,2…3,3 V CMOS, 100 MS/s),
- 16-kanałowe wirtualne cyfrowe porty wejścia/wyjścia: przyciski, przełączniki, diody LED itp. – idealne do testowania stanów logicznych
- Programowalny zasilacz 1,2…3,3 V / 100mA. To samo napięcie zasila bufory wejścia analizatora stanów logicznych oraz bufory wejścia/wyjścia generatora przebiegów. Pozwala to utrzymać zgodność poziomu logicznego z testowanym obwodem.
- Analizator magistral cyfrowych (SPI, I2C, UART, I2S, CAN, porty równoległe).
Środowisko WaveForms
WaveForms posiada przyjazny dla użytkownika interfejs na komputer i laptopa, który przypomina tradycyjny sprzęt stacjonarny. Oprogramowanie jest kompatybilne z systemami Windows, Linux, MAC i Raspberry Pi 4. Pakiet WaveForms Software Development Kit (SDK) zapewnia biblioteki i przykłady w Pythonie, C ++ i innych językach, dzięki czemu zaawansowani użytkownicy mogą budować niestandardowe aplikacje lub automatyzować testy.
- Przystawka Digilent Digital Discovery,
- Oprogramowanie Waveforms,
- Komputer z portem USB do uruchamiania oprogramowania,
- Środowisko Python z interpreterem Python 2.7 i biblioteką matplotlib,
- Akcelerometr z interfejsem I2C – w tym przykładzie użyto układu LIS35DE wmontowanego w moduł KAmodMEMS2.
Połączenie układu testowego
-
- Połącz masę i zasilanie czujnika odpowiednio z pinami GND i VIO na Digital Discovery, a następnie połącz wyprowadzenia interfejsu I2C modułu KAmodMEMS2 z Digital Discovery:
- pin CS z Vdd,
- pin SDO do GND,
- linie SDA i SCL odpowiednio z DIO33 i DIO32.
- Wczytaj pakiet WaveForms SDK,
- Użyj skryptu w języku Python, aby włączyć zasilanie 3,3 V z Digital Discovery do modułu KAmodMEMS2, a także skonfigurować interfejs I2C. Aby skonfigurować przykład demonstracyjny, użytkownik musi ustawić częstotliwość roboczą magistrali i wybrać które piny Digital Discovery powinny zostać użyte.
- Połącz masę i zasilanie czujnika odpowiednio z pinami GND i VIO na Digital Discovery, a następnie połącz wyprowadzenia interfejsu I2C modułu KAmodMEMS2 z Digital Discovery:
# 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
-
- Aby odczytać dane i zaktualizować wykresy, należy użyć skryptu Python dopóki otwarte jest okno wydruku. Każda operacja odczytu z modułu KAmodMEMS2 jest operacją zapisu i odczytu na magistrali I2C. Adres urządzenia jest ustawiony na czas całej operacji, a WaveForms SDK automatycznie zarządza bitem R/W. Do zapisywania i odczytywania danych służą dwie tablice, a użytkownik określa, ile bajtów należy zapisać, a także odczytać. W opisywanym teście zapisywany jest tylko jeden bajt. Adres rejestru łączony jest z maską bitów sprawiającą, że czujnik zwiększa adres rejestru po odczytaniu każdego bajtu z magistrali. Następnie z kolejnych rejestrów, poczynając od rejestru OUTX, odczytywanych jest 5 bajtów. Odczytane dane zawierają 3 bajty z danymi przyspieszenia na osiach X, Y i Z reprezentowanymi w kodzie uzupełnień do dwóch (U2) i dwa bajty puste.
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))
-
- Należy uruchomić skrypt i przetestować moduł KAmodMEMS2. Górna część okna pokazuje przyspieszenie XYZ z czujnika w czasie rzeczywistym jako funkcję czasu. Natomiast dolna część prezentuje rzeczywiste przyspieszenie w osiach X i Y jako niebieską gwiazdkę (*).
Sposób wykonania projektu krok po kroku oraz kod źródłowy znajdują się na stronie Digilent Wiki.




Zanim zapytasz AI, pomyśl sam! Nie przyjmuj bezkrytycznie odpowiedzi wygenerowanych przez algorytmy
Energetyka przyszłości potrzebuje aktywnych odbiorców
Grzegorz Kamiński: Nowe pamięci nieulotne – część 1 

![https://www.youtube.com/watch?v=QSnLO-KmBMY O wybranych projektach realizowanych w Laboratorium Zakładu Układów Mikrofalowych – ISE PW opowiadają: mgr inż. Michał Kalisiak, dr hab. inż. Arkadiusz Lewandowski, mgr inż. Andžej Šerlat oraz dr hab. inż. Krzysztof Czuba. Zapraszamy na firm [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/09/WEiTI-PW-czolowka.png)
![https://www.youtube.com/watch?v=XkeyLmtLfxo O konkursie organizowanym przez firmę TRUMPF Huettinger i polskie uczelnie techniczne opowiada Alicja Peresada i prof. Jacek Rąbkowski oraz kilkoro nagrodzonych dyplomantów: mgr inż. Jakub Dobosz, inż. Maja Zielińska, dr inż. Jakub Kołodziej, dr inż Weronika Hryniewska-Guzik i dr inż. Grzegorz Bartyzel. Zapraszamy do obejrzenia filmu! [materiał redakcyjny]](https://mikrokontroler.pl/wp-content/uploads/2026/07/TRUMPF-czolowka.png)

