Możliwość zapisu danych podczas różnych eksperymentów z elektroniką, była dla mnie zawsze bardzo pociągająca. Kiedy w 2012 roku zainteresowałem się platformą Arduino, okazało się, że istnieje miniaturowy logger danych, opracowany przez firmę SparkFun. Mimo, że był on wtedy dość drogi (mało popularna nowość), zdecydowałem się na zakup. Obecnie dostępne są chińskie kopie w cenie ok. 3$, więc zakup nie nadszarpnie kieszeni, a może się przydać do różnych projektów elektroniczno-modelarskich. Wzrost popularności wiąże się z tym, że stał się on standardowym dodatkiem do popularnych kontrolerów lotu wielowirnikowców. Miniaturowe rozmiary (niewiele większy od karty MicroSD) powodują, że zmieści się nawet do małych aparatów latających.
OpenLog to po prostu miniaturowy rejestrator danych z portu szeregowego, zbudowany na bazie Arduino (procesor Atmel328 3,3V), zintegrowany z czytnikiem karty. W zasadzie można byłoby go zrobić samemu przy wykorzystaniu standardowych komponentów (firmware dostępny jest na Github), ale nie ma to sensu. W warunkach amatorskich trudno byłoby uzyskać tak kompaktowy moduł za cenę gotowego chińskiego. Domyślna prędkość transmisji, to 9600, ale można ją zmieniać (również inne parametry portu szeregowego), edytując plik konfiguracyjny, znajdujący się na karcie. Moduł nie dokonuje żadnej analizy danych, zapisuje po prostu do pliku tekstowego to co pojawia się wejściu na Rx portu szeregowego. Po stronie urządzenia wysyłającego należy zadbać o odpowiedni format danych, tak aby dało się z nich potem skorzystać. W praktyce wygląda to w programie podobnie jak przygotowanie wydruku na terminal.
Procesor OpenLog jest zasilany napięciem 3,3V, ale na płytce znajduje się stabilizator napięcia, więc jeśli chodzi o zasilanie, to dopuszczalny zakres wynosi 3,3-5V. Logika jednak pracuje w standardzie 3,3V, więc jeśli podłączamy logger do urządzenia z logiką 3,3V, robimy to bezpośrednio. Jeśli zaś logika pracuje w standardzie 5V, połączenie zgodnie ze sztuką powinno być zrobione za pomocą translatora poziomów. Jeśli tylko odbieramy dane (a to najczęstszy przypadek), to wystarczy dzielnik rezystorowy (10k/20k). Niektórzy stosują tylko jeden szeregowy rezystor ograniczający prąd, ale ja osobiście wolę dzielnik (1 czy 2 rezystory nie stanowi różnicy). Warto pamiętać, że standard transmisji to TTL, jeśli chcemy podłączyć logger (robiłem takie próby) do PC, to potrzebny jest jeszcze konwerter TTL-RS232.
Na zdjęciach widać złącza przylutowane do płytki. W moim starszym module jest ich więcej, bo eksperymentowałem z podłączaniem go do interfejsu FTDI. Natomiast do zwykłej rejestracji danych wystarczy (jak na fioletowej płytce) tylko 3 piny – GND, Vcc, Rx (na niektórych płytkach Vcc jest opisane jako RAW). Jeśli urządzenie do którego dołączam logger ma swoje zasilanie, kabel połączeniowy ma 3 przewody. Drugi wariant to kabel z rozgałęziaczem (2 dodatkowe przewody), pozwalający zasilić oba moduły. W wersji do logiki 5V dzielnik mam zamontowany w kablu.
Do testu można użyć dowolnego modułu Arduino, na fotce pokazany jest UNO z podłączeniem loggera przy użyciu dzielnika. Program testowy jest bardzo prosty (pobierz), wysyła on co 1 sek. na port szeregowy kolejną próbkę danych - jeden wiersz, zakończony znakiem końca linii, co powoduje, że kolejna próbka znajdzie się w kolejnym wierszu pliku, jak widać na zrzucie z programu terminalowego.
Po podłączeniu loggera do zasilania w głównym folderze karty MicroSD tworzy się plik tekstowy z kolejną nazwą LOG00xxx.TXT. Przy pierwszej rejestracji na czystej karcie również tworzy się plik konfiguracyjny z parametrami, które można edytować. Jeśli nie zmieniamy domyślnej prędkości 9600, można do niego nie zaglądać. Jak widać zawartość pliku LOG00010.TXT wygląda tak samo, jak dane odbierane w programie terminalowym.
Moim zdaniem OpenLog to bardzo atrakcyjne, proste w użyciu i tanie urządzenie. Można oczywiście się zastanawiać, po co stosować takie rozwiązanie, kiedy w wielu nowoczesnych nadajnikach RC jest możliwość logowania na kartę danych z odbiornika. To prawda, jednak w takich przypadkach istnieje konieczność użycia fabrycznych czujników. To kosztuje i chociaż efekt jest gwarantowany, to jednocześnie mocno ogranicza możliwości samodzielnego eksperymentowania. Za jakiś czas pokażę w kolejnym artykule przykładowe zastosowanie w praktyce modelarskiej.
Szczegółowe informacje na temat loggera można znaleźć na stronie producenta.