Prosty sejsmograf na bazie Arduino

Prosty sejsmograf na bazie Arduino

Sejsmograf to urządzenie używane do pomiaru i rejestracji drgań i wstrząsów ziemi (trzęsień ziemi). Mierzy fale sejsmiczne generowane przez ruchy tektoniczne w skorupie ziemi lub przez inny rodzaj aktywności sejsmicznej i tworzy wykres w czasie w postaci sejsmogramu. W artykule zaprezentowano, jak zbudować sejsmograf z prostych i dostępnych dla każdego materiałów.

Sejsmografy są używane do monitorowania aktywności sejsmicznej na całym świecie, co pozwala na wykrywanie i analizowanie trzęsień ziemi oraz innych zjawisk geologicznych. Urządzenia te stosuje się, oprócz do wykrywania trzęsień ziemi, także do badania ruchów tektonicznych – to pozwala na lepsze zrozumienie geologii i geofizyki Ziemi. Za pomocą takich urządzeń monitoruje się również wulkany oraz lodowce, ale także stworzone przez człowieka instalacje i budowle, takie jak systemy do wydobycia ropy naftowej czy gazu, a także kopalnie itp.

Dodatkowo, sejsmografy często są istotnym elementem systemów pomiarowych w geologii, gdzie są używane do badania struktur geologicznych pod powierzchnią ziemi, rejestrując odbicia sztucznych fal sejsmicznych (wywołanych przez człowieka, np. uderzając specjalnymi młotami o podłoże czy z pomocą materiałów wybuchowych) od różnych warstw skał, co pozwala na tworzenie obrazów geologicznych.

Sejsmografy mają zastosowanie w różnych dziedzinach nauki i przemysłu, które wymagają monitorowania i analizy ruchów sejsmicznych oraz zjawisk związanych z aktywnością sejsmiczną. Dzięki tym urządzeniom naukowcy mogą lepiej zrozumieć i przewidywać trzęsienia ziemi oraz inne aktywności tektoniczne, co ma kluczowe znaczenie dla bezpieczeństwa i ochrony ludzi i infrastruktury.

Pokazana w artykule konstrukcja jest oczywiście tylko uproszczonym sejsmografem, który najpewniej nie nadaje się do większości z opisanych zastosowań, jednak jest to ciekawa konstrukcja, która może być dobrym punktem wyjścia do dalszych doświadczeń.

Sejsmograf składa się z czujników wstrząsów, które rejestrują ruchy podłoża w różnych kierunkach, a także z mechanizmu rejestracji tych ruchów. Rejestracja jest zazwyczaj prowadzona na specjalnym papierze w postaci wykresu lub, coraz częściej, cyfrowo w pamięci komputera itp.

Potrzebne elementy

Konstrukcja wymaga zaledwie kilku elementów do zbudowania w pełni działającego, prostego sejsmografu. Są to:

  • moduł Arduino NANO,
  • moduł z akcelerometrem MPU 6050,
  • moduł z układem ULN2003 do sterowania silnikiem,
  • silnik krokowy 28BYJ-48,
  • serwo modelarskie SG90,
  • opornik 470 Ω,
  • dioda LED.

Ponadto potrzebne będzie oprogramowanie. Do zaprogramowania modułu wymagane jest Arduino IDE i odpowiednie sterowniki, jeśli nasz komputer ich wymaga. Oprogramowanie dla tego urządzenia zostało opracowane w środowisku Visuino, które pozwala na graficzne projektowanie i zapisywanie algorytmu, który jest następnie automatycznie tłumaczony do kodu Arduino.

Budowa układu

Konstrukcja układu jest bardzo prosta. Kluczowe elementy to elektroniczne sterowanie z płytką Arduino oraz mechaniczny układ do kreślenia sejsmogramu na papierze.

Elektronika

Schemat elektryczny układu pokazano na rysunku 1. Układ jest, jak można się domyślić, bardzo prosty. Sam system składa się tylko z kilku elementów, które połączyć można za pomocą przewodów lub płytki stykowej – nie ma potrzeby projektowania dla tego systemu płytki drukowanej.

Rysunek 1. Schemat opisywanego sejsmografu

Akcelerometr MPU6050 podłączony jest do wejść SDA i SCL płytki Arduino, czyli do pinów A4 (SDA) i A5 (SCL). Wejście sterowania serwomotoru znajduje się na wyprowadzeniu D7, natomiast wyprowadzenia D2, D3, D4, D5 łączą się ze sterownikiem silnika ULN2003. Dioda LED podłączona jest poprzez opornik 470 Ω do wyprowadzenia D8 płytki Arduino. Podłączenie diody LED, która wskazuje, kiedy silnik krokowy jest włączony, jest opcjonalne.

Budowa mechaniczna

Konstrukcja mechaniczna układu jest maksymalnie uproszczona. Zawiera drewnianą podstawę, fragment gumowego węża i kilka plastikowych rurek. Na fotografii 1 i 2 pokazano zdjęcia z prac w czasie montażu urządzenia.

Fotografia 1. Zdjęcie z montażu urządzenia – silnik przesuwający taśmę papierową
Fotografia 2. Serwo sterujące pisakiem

Podstawą urządzenia jest fragment płyty meblowej. Przymocowane są do niej dwie osie wykonane z plastikowych rurek, na które nałożono fragmenty gumowego węża (fotografia 1). Wąż ma zapewnić większe tarcie pomiędzy osią i papierową taśmą, dzięki czemu jest ona przesuwana i nie ślizga się. Jedna z osi jest napędzana silnikiem krokowym. Zastosowano tutaj silnik krokowy z uwagi na fakt, że łatwiej jest zapewnić jego stałe, wolne obroty niż zwykłego silnika prądu stałego – układ nie ma enkodera obrotowego itp., więc nie ma innej możliwości stabilizowania obrotów, od których zależy prędkość przesuwu taśmy. Musi ona być cały czas stała, gdyż w tej osi sejsmogramu reprezentowany jest czas.

Drugi silnik – widoczny na fotografii 2, odpowiedzialny jest za przemieszczanie pisaka. Do serwomotoru przymocowany jest pisak, za pomocą prostego drewnianego patyczka do lodów. Ruch serwomotoru powoduje przemieszczanie się pisaka w poprzek taśmy – ta oś to natężenie drgań ziemi.

Montaż mechaniczny jest najważniejszą częścią tego projektu. Ważne jest, aby prowadnica mechaniczna przesuwała papier, na którym marker rysuje wykres. Gdy urządzenie jest już zmontowane, możemy przejść do oprogramowania.

Oprogramowanie

System oprogramowano w środowisku Visuoino, ponieważ pozwala ono na opracowanie prostego i intuicyjnego w obsłudze projektu. Na rysunku 2 zaprezentowano diagram programu. Nie jest to typowy kod – jest to algorytm w postaci schematu blokowego, raczej przypomina moduły elektroniczne połączone ze sobą sygnałami. Jest to rozwiązanie podobne do stosowanego w przypadku innych popularnych języków graficznych (na przykład G stosowany w środowisku LabVIEW). Na rysunku 2 naniesiono (w kolorze różowym) informację, dotyczącą tego, który blok koresponduje, z którym fizycznym urządzeniem w systemie.

Rysunek 2. Graficznie zapisany kod programu

Kod jest bardzo prosty: sygnał wyjściowy żyroskopu w postaci trzech zmiennych – X, Y i Z, z modułu MPU6050 (AccelerometerGyroscope1) jest podawany na analogowy mnożnik, gdzie zmienne są przez siebie mnożone (Multiply1) i podawane do funkcji mapującej (MapRange1). Jest to funkcja, która mapuje liniowo pewien zakres wartości na inny zakres. Pozwala to ograniczyć ruchy serwomotoru w granicach jego konstrukcji mechanicznej.

Wyjście funkcji mapującej steruje serwomotorem (Servo1) i podawane jest na komparator (CompareRange1), który wprawia w ruch silnik krokowy tylko wtedy, gdy wykryje sygnał z żyroskopu. Po 5 sekundach od ustania ruchu element opóźniający Delay1 resetuje Timer1, który odpowiedzialny jest za ruch silnika krokowego, podając impulsy z PulseGenerator1 na moduł sterujący Stepper1. W momencie, gdy Timer1 zostaje zresetowany, generator impulsów przestaje je generować w związku z czym silnik krokowy przestaje obracać się i przesuwać papier.

Diagram Visuino jest automatycznie tłumaczony na język C do szkicu Arduino. Wynikowy plik *.ino autor zamieścił na stronie z projektem. Kod ten jest w pełni czytelny dla człowieka, chociaż z uwagi na brak komentarzy czy zrozumiale opisanych zmiennych nie jest to najprzyjemniejsza lektura. Szkic ten można następnie otworzyć w Arduino IDE, skompilować i załadować do mikrokontrolera na płytce Arduino Nano.

Uruchomienie urządzenia

Po złożeniu i zaprogramowaniu układu system jest gotowy do działania. Należy wyciąć kawałek papieru o szerokości zespołu mechanicznego (dopasowany do szerokości rolek przesuwających papierową taśmę) i długości około 50...60 cm. Długość ta powinna zapewnić minimum 3 minuty ruchu papieru w układzie. Zainstalowanie rolki wydłużyłoby czas drukowania do wielu godzin. Na fotografii 3 pokazano gotową konstrukcję. Po 5 sekundach od zakończenia rejestrowanych wydarzeń, silnik krokowy zatrzymuje się, zatrzymując ruch papieru na podkładce.

Fotografia 3. Gotowy sejsmometr w czasie kreślenia

Aby przetestować układ wystarczy przyłożyć końcówkę markera do papieru i delikatnie przesuń czujnik MPU6050. System zarejestruje drgania, silnik krokowy rozpocznie ruch, a serwomotor przesunie pisak, rysując na papierze wykres – sejsmogram.

Akcelerometr MPU6050 powinien być stabilnie zamocowany na wsporniku, dobrze przymocowany do gruntu, jeśli to jego ruchy chcemy wykrywać. Układ ten jednak można zastosować do wielu innych czynności – monitorowanie ruchu urządzeń itp., a jeśli zmienimy sensor z akcelerometru na inny, możemy stworzyć np. higrometr. Ogranicza nas tylko wyobraźnia i długość papierowej taśmy.

Nikodem Czechowski, EP

Źródła:
https://shorturl.at/fnBNT
https://www.visuino.com/downloads/

Artykuł ukazał się w
Elektronika Praktyczna
październik 2023

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik maj 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio maj - czerwiec 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje maj 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna maj 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich czerwiec 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów