forked from Akcelerometry_drgania_WMT/PI_mikrokontroler
Wgranie zmian do repozytorium
This commit is contained in:
115
README.md
Normal file
115
README.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# 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.
|
||||
|
||||
|  |
|
||||
|:--:|
|
||||
| **Rysunek 1.** Zawartość katalogów na karcie SD |
|
||||
|
||||
|
||||
|  |
|
||||
|:--:|
|
||||
| **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.
|
||||
|
||||
|  |
|
||||
|:--:|
|
||||
| **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
|
||||
|
||||
|
||||
|  |
|
||||
|:--:|
|
||||
| **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](docs/abbreviations.md)
|
||||
3. [Pinout](docs/pinout.md)
|
||||
4. [Wyświetlacz LCD](docs/lcd.md)
|
||||
5. [Akcelerometr](docs/gy291.md)
|
||||
6. [Zegar RTC](docs/ds3231.md)
|
||||
7. [Wymiary elementów](docs/sizes.md)
|
||||
8. [Budowa](docs/building1.md)
|
||||
9. [Wtyczka i czujnik](docs/plug.md)
|
||||
|
||||
[Wersje systemu, poprawki, etc.](docs/versions.md)
|
||||
Reference in New Issue
Block a user