The base branch Akcelerometry_drgania_WMT/PI_mikrokontroler:main has new changes

Urzędzenie do pomiaru drgań (akcelerometry)

autorzy: A. Chmielowiec, L. Klich

Firmware do urządzenia ESP32S3 PSRAM.

Przyciski

  • UP: przełączanie trybu
  • START: start pomiaru
  • DOWN: konfiguracja pomiaru

Przy starcie:

  • UP + DOWN: reset do ustawień domyślnych
  • OK: ustawienie daty i godziny

Zapraszamy studentów do rozwijania projektu.

IDE: PlatformIO

Jak student może się zaangażować w projekt?

  • Zaprojektowanie obudowy w 3D dla urządzenia i czujników.
  • Budowanie urządzeń prototypowych wg dokumentacji.
  • Testowanie działania i zgłaszanie błędów.
  • Rozwijanie dokumentacji.
  • Rozwijanie firmware urządzenia.
  • Stworzenie oprogramowania WEB i REST API do akwizycji danych, filtrowania, wyświetlania i analizy danych z urządzenia.

Założenia do projektu

  • Pomiar drgań przy pomocy akcelerometrów (moduły ADXL345) podłączone przez SPI.
  • Automatyczne wykrywanie podłączonych akcelerometrów (maksymalnie 4 ze wzlędu na brak GPIO, docelowo więcej).
  • Jednoczesny pomiar próbki z każdego podłączonego akcelerometru i zapis do bufora PSRAM, po zakończeniu akwizycji na kartę SD.
  • Każda partia pomiaru składa się z wielu próbek (szybkość zależna od ilości podłączonych).
  • Pomiar o konfigurowalnym czasie próbkowania (domyśłnie 5 sekund).
  • Pomiar zapisywany do pliku binarnego na karcie SD. Karta musi być sformatowana w systemie FAT. Foldery są automatycznie tworzone i nazywane numerami (1, 2, 3, etc). W każdym folderze zapisywane są binarne pliki odczytów nazwie xxxxxxx.wmt, na przykład 00000001.wmt, gdzie numer oznacza numer kolejnego pomiaru. W każdym pliku zapisany jest pełen pomiar, tzn x sekund (czas pomiaru) ze wszystkich podłączonych akcelerometrów. Jeśli ilość plików w folderze przekroczy 400, tworzony jest koleny folder o wyższym numerze i urządzenie zapisuje w nim pliki zaczynająć od 00000001.wmt. Po restarcie urządzenia karta SD jest skanowana i urządzenie kontynuuje zapis wg ciągłości numeracji. Zawartość karty SD na rysunku poniżej.
Opis
Rysunek 1. Zawartość katalogów na karcie SD
Opis
Rysunek 1. Zawartość plików w katalogu na karcie SD

Hardware

ESP32-S3-DEV-KIT-N8R8 - płytka rozwojowa WiFi + Bluetooth - Waveshare 24243 Indeks: WSR-23341

cena brutto: 49,90 zł. (Botland)

Kompaktowa płytka rozwojowa, z modułem ESP32-S3-WROOM-1-N8R8 od firmy Waveshare. Posiada dwurdzeniowy procesor Xtensa 32-bit LX7 (240 MHz), 512 KB SRAM, 8 MB Flash oraz 8 MB PSRAM. Zintegrowane układy CH343 i CH334 umożliwiają programowanie przez USB-C. To narzędzie zapewnia efektywność i wygodę w procesie rozwoju aplikacji dla ESP32-S3.

Opis
Rysunek 1. Moduł deweloperski ESP32S3

Specyfikacja techniczna

  • Wbudowany układ: ESP32-S3-WROOM-1-N8R8 Procesor: dwurdzeniowy procesor Xtensa LX7 o częstotliwości 240 MHz
  • PSRAM 8 MB (zewnętrzna pamięć pseudo-RAM do buforowania)
  • SRAM (internal) 512 KB
  • Flash 8 MB
  • GPIO ~44 GPIO (przy PSRAM nie wszystkie dostępne fizycznie)
  • Interfejsy: SPI (dostępne 2), I2C (2), UART (3), I2S
  • USB-CDC (native USB) USB typu C
  • WiFi 802.11 b/g/n (2.4 GHz)
  • Bluetooth LE v5.0
  • Kompatybilność: ESP-IDF, Arduino, MicroPython
  • Wymiary: 63,3 x 25,4 mm
Opis
Rysunek 1. Pinout modułu ESP32S3

Uzasadnienie wyboru hardware

Testowałem: Raspberry PI 4 (za duży jitter), Raspberry PICO 2 W, STM32F429

  1. PSRAM 8MB - buforowanie dużych ilości danych z 8xADXL345 w blokach, zanim zapiszę karcie SD. Dzięki temu główna pamięć RAM jest nieprzeciążana.
  2. Dwa interfejsy SPI. VSPI dla ADXL345 (8x czujników, przełączanych CS). HSPI dla karty SD — separacja magistrali dla stabilnej pracy obu urządzeń.
  3. Procesor Xtensa LX7 Dual Core umożliwia obsługę intensywnych zadań SPI i SD w czasie rzeczywistym.
  4. ESP32-S3 nie ma wbudowanego RTC, zastosowałem precyzyjny kompensowany temperaturowo RTC DS3231 przez I2C.
  5. OLED Display 128x64 podłączony przez I2C.

Wady i ograniczenia ESP32

  • Niekorzystne GPIO: część portów GPIO jest współdzielona z FLASH i PSRAM. Np. GPIO19/20 (USB), GPIO35-37 (PSRAM) są zajęte. Trzeba uważać przy pinout (SD/ADXL/OLED).
  • Brak RTC z podtrzymaniem.
  • SPI throughput SD: moliwe ograniczenie prędkości SD na SPI poniewa brak jest SDIO jak w STM32. Ale dla dużych bloków buforowanych w PSRAM jest ok.
  • Potencjalne problemy z przerwaniami SPI: nie można mieszać przerwań w czasie zapisu SD i odczytu ADXL — trzeba dobrze zsynchronizować próbki.
  • Średnia energooszczędność: przy rejestratorach zasilanych bateryjnie lepszy byłby ESP32-C3 lub STM32L4, ale one nie mają PSRAM.

Linki do dokumentacji:

  1. Objaśnienia
  2. Pinout
  3. Wyświetlacz LCD
  4. Akcelerometr
  5. Zegar RTC
  6. Wymiary elementów
  7. Budowa
  8. Wtyczka i czujnik

Wersje systemu, poprawki, etc.

Description
Projekt informatyczny - mikrokontrolery
Readme 210 MiB
Languages
C++ 98.6%
C 0.7%
Python 0.4%
CMake 0.3%