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.
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.
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.
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.
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/