Witam wszystkich! Chciałbym zaprezentować swoją pierwszą konstrukcję w dziale DIY, a mianowicie projekt czytnika tagów RFID zbudowany z wykorzystaniem komputera jednopłytkowego MINI2440, wyposażonego w system operacyjny Linux. Prezentowany projekt to "wstęp" do realizacji większego, podobnego projektu (terminal dostępowy z rejestratorem czasu pracy), jednak jest on i również na tym etapie w pełni funkcjonalnym urządzeniem.
Pomysł projektu
Mając nareszcie dwa dni wolnego, popracowałem nad wstępnym projektem czytnika tagów RFID. Dlaczego wstępnym? Od dłuższego czasu planuję zrealizowanie bardziej rozbudowanego rejestratora czasu pracy (wyposażonego m.in. w większy panel LCD - minimum 7'', wbudowaną kamerę oraz webowy interfejs), jednak na obecną chwilę, ze względu na małą ilość wolnego czasu, to wszystko plany...
Film pokazowy
Wybór platformy sprzętowej
Do realizacji niniejszego projektu wybrałem zestaw FriendlyArm MINI2440. Przy wyborze platformy kierowałem się przede wszystkim przystępną ceną oraz bogactwem układów peryferyjnych. W przypadku płytki MINI2440 za niewielkie pieniądze otrzymujemy wydajny komputer wraz z dotykowym ekranem LCD oraz wyprowadzonymi wszystkimi najważniejszymi interfejsami komunikacyjnymi. Co więcej, przy budowie własnych urządzeń możemy wykorzystać tzw. wersję TINY - czyli zestaw złożony z procesora oraz niezbędnych pamięci umieszczonych na płytce, który można w prosty sposób dostosować do własnych zapotrzebowań projektowych.
Oprogramowanie
Aplikacja czytnika RFID została zrealizowana w koncepcji: aplikacja konsolowa - nakładka graficzna. Oddzielenie graficznego interfejsu użytkownika od funkcji realizowanych przez program umożliwi zrealizowanie przynajmniej części projektu wszystkim osobom posiadającym inne platformy sprzętowe bazujące na Linuksie, niewyposażone w wyświetlacz LCD. Do zbudowania aplikacji graficznych wykorzystałem multiplatformowe środowisko Qt dostępne m.in. dla: X11 (GNU/Linux, *BSD, Solaris), Windows, Mac OS X, urządzeń wbudowanych opartych na Linuksie (QtE), Windows CE i Symbiana.
Kompilacja kodów źródłowych - uruchomienie projektu
W niniejszym opisie dołączyłem zarówno pliki wykonywalne jak i kody źródłowe aplikacji, stąd wszyscy zainteresowani tematem będą mogli przetestować/dostosować kod do własnych analogicznych projektów.
W procesie kompilacji kodu źródłowego aplikacji konsolowej utworzony zostaje plik rfid-mini2440, który należy umieścić w katalogu /home/plg (lub w dowolnej lokalizacji po wprowadzeniu zmian w kodzie źródłowym aplikacji) na płytce MINI2440 (np. za pomocą połączenia FTP lub pamięci USB). Jeżeli nie posiadamy płytki z Linuksem, równie dobrze możemy wykonać kompilację przykładu na platformę hosta. Wówczas wystarczy jedynie wyczyścić zawartość zmiennej CROSS w pliku Makefile oraz dokonać niewielkiej edycji kodu źródłowego (zastąpić port /dev/ttyUSB0 odpowiednim portem do którego dołączony zostanie moduł czytnika RFID, np. /dev/USB0).
W załącznikach umieściłem również kod źródłowy aplikacji realizującej GUI (graficzny interfejs użytkownika). Po otwarciu pliku *.pro, za pomocą QTCreatora, możemy dokonać edycji interfejsu i kodu źródłowego (np. zmienić domyślne położenie aplikacji konsolowej). Plik wynikowy kompilacji znów należy umieścić w katalogu /home/plg.
Dodawanie uprawnionych użytkowników/tagów
Zaprezentowany czytnik RFID umożliwia bardzo proste dodwanie nowych uprawnionych użytkowników/kart/tagów. Aby dodać nowych użytkowników wystarczy jedynie utworzyć plik user (w katalogu /home/plg), w którym umieszczamy numery ID kart uprawnionych do dostępu. Np.:
036-000-207-123-090
027-000-042-140-089
078-000-167-025-026
Aby powiązać określone numery karty z wyświetlanymi obrazami tworzymy katalog /home/plg/images w którym umieszczamy obrazy nadając im nazwę w formie id_karty.jpg, np.:
078-000-167-025-026.jpg
I już
Galeria
Plany rozbudowy projektu
Jak wspomniałem, prezentowany przykład jest tylko wstępnym rozeznaniem przed realizacją kolejnego projektu w którym planowane jest:
* udostępnienie zaawansowanego interfejsu WWW do zarządzania użytkownikami terminala dostępowego (podgląd logowań, statystyk, itp.),
* dodanie kamery CMOS oraz bibliotek OpenCV, wykonującej zdjęcia użytkownikom czytnika (uniemożliwi to wymianę kart pomiędzy użytkownikami),
* przeniesienie projektu na procesory serii OMAP3 i rozbudowę interfejsu graficznego (wykorzystanie bibliotek OpenGLES ze sprzętowym wsparciem SGX530).
Pozdrawiam,
Łukasz Skalski
www.lukasz-skalski.com