Prototyp opracowany przez EFY Lab został przedstawiony na fotografii powyżej.
Obwód i działanie
Schemat ideowy zegara z wyświetlaczem dot-matrix opartym na GPS jest pokazany na rysunku 1. Wykorzystuje on dwie płytki Arduino Nano (Board1 i Board2), moduł GPS NEO 6M oraz gotową płytkę z wyświetlaczem 8×8 typu dot-matrix.
Należy zauważyć, że system działa z dwoma różnymi płytkami Arduino, z których jedna (Board2) steruje wyświetlaczem dot-matrix, a druga (Board1) generuje szeregowe dane zegarowe z modułu GPS na pinie TX1 i podaje je na pin RX0 płytki Board2.
Projekt składa się z czterech części: Wyświetlacz 8×8 dot-matrix, sterownik wyświetlacza, interfejs płytki Arduino Nano z dot-matrix oraz moduł GPS.
Wyświetlacz z matrycą punktową
Gotowy moduł 4-w-1, wyświetlacz 8×8 (DIS1), pokazany na fotografii 2, jest dobrze zintegrowany i posiada pięć pinów (Vcc, GND, CLK, CS i Data). Cały moduł ma postać czterech katodowych matryc punktowych 8×8, z których każda jest sterowana przez układ scalony MAX7219.
Sterownik wyświetlacza
Sterownik wyświetlacza IC MAX7219 pochodzi od Maxim Integrated, a jego napięcie pracy wynosi od 4 V do maksymalnie 5,5 V. Jego pin 19 jest podłączany do zasilania, piny 4 i 9 są podłączane do masy, pin 1 służy do szeregowych danych wejściowych, pin 12 jest pinem Load, a pin 13 pinem zegara. (Szczegóły pinów nie są tu pokazane). Pin 24 jest pinem Data Out służącym do przekazywania danych do innych segmentów.
Połączenie Arduino z wyświetlaczem
Do połączenia preferowane jest Arduino Nano (Board2), które posiada interfejs USB do połączenia z komputerem PC lub laptopem. Najpierw zainstaluj Arduino IDE i podłącz Arduino Nano do portu USB komputera. Otwórz plik Arduino (EFYlabmatrixdisplay.ino), a następnie włącz biblioteki korzystając z opcji Manage Libraries. Wyszukaj biblioteki MD_Parola 2.7.4 oraz MD_MAX72XX 2.10.0 i zainstaluj je. Następnie wgraj kod Arduino (EFYlabmatrixdisplay.ino) na płytkę Board1. Jak widać na rysunku 1, pin CLK modułu wyświetlacza (DIS1) jest podłączony do pinu 13 (D13) płytki Board2, pin Data do pinu 11, pin CS do pinu 10, GND do pinu GND, a pin Vcc do pinu +5 V płytki Arduino Nano (Board2).
Połączenie Arduino z GPS
Druga płytka Arduino Nano (Board1) jest używana do obliczania i przetwarzania danych GPS otrzymywanych przez moduł GPS NEO 6M. Program (efylabGPSclock.ino) napisany w języku programowania Arduino jest kompilowany za pomocą Arduino IDE. Należy otworzyć Arduino IDE, otworzyć plik, a następnie dołączyć bibliotekę korzystając z opcji Manage Libraries.
Wyszukaj bibliotekę tinyGPS++ autorstwa Mikala Harta, która umożliwia obiektowe analizowanie danych NMEA w Arduino. Kliknij przycisk install Tiny GPS++ z okna Manage Libraries. Do tego projektu potrzebna jest również biblioteka softwareSerial. Po zainstalowaniu wszystkich bibliotek, skompiluj kod źródłowy (efylabGPSclock.ino) i załaduj kod używając odpowiedniego portu szeregowego COM oraz płytki Arduino. Wyjście szeregowe jest dostępne z prędkością 9600 bodów.
W kodzie, czas GPS jest ustawiony na czas UTC przez dodanie 05:30 IST dla indyjskiej strefy czasowej. (Czas pokaże się z interwałem, który może być opóźniony lub zmieniony poprzez kod programu).
Moduł GPS NEO 6M jest podłączony do Arduino Board1. Pin TX1 z Board1 jest podłączony do pinu RX0 z Arduino Board2. Moduł GPS użyty podczas testów jest pokazany na fotografii 3.
Na koniec, jeśli wszystko jest w porządku i programy są załadowane do odpowiednich płytek Arduino, należy włączyć zasilanie i poczekać na gotowość GPS do połączenia z satelitą. Po nawiązaniu połączenia na wyświetlaczu matrycy punktowej pojawi się aktualna data i czas.