Panel sterujący ze starego smartfonu, czyli sterownik androidowy z FT311D

Panel sterujący ze starego smartfonu, czyli sterownik androidowy z FT311D
Pobierz PDF Download icon
Telefon z systemem Android może być użyty w roli sterownika z wygodnym graficznym ekranem dotykowym. Wystarczy do niego podłączyć interfejs FT311D i uruchomić w telefonie aplikację sterującą. Dodatkowo, za pomocą drugiego telefonu mogącego odbierać wiadomości SMS, otrzymujemy zdalnie sterowany włącznik z niezależną kontrolą wyjść i wejść. Rekomendacje: dla urządzeń z portem USB niepracującym w trybie OTG, z systemem Android 3.1 lub nowszym, mającym możliwość obsługi trybu Open Accessory Mode.

Układ FT311D pełni funkcję hosta USB dla urządzeń takich jak telefony czy tablety. W praktyce oznacza to możliwość użycia interfejsu USB tych urządzeń do wymiany danych pomiędzy nimi a dołączonym sterownikiem. W prosty sposób, z poziomu uruchomionej w telefonie aplikacji, uzyskuje się dostęp do 7 uniwersalnych portów wejścia/wyjścia, w które wyposażono układ FT311D. Po dołączeniu do portów układów wykonawczych, takich jak przekaźniki i transoptory, otrzymujemy nieskomplikowany sterownik.

Budowa sterownika

Na rysunku 1 pokazano schemat ideowy sterownika. Do gniazda G1 typu USB-A dołącza się kabel służący do komunikacji poprzez interfejs USB ze smartfonem lub tabletem. Z gniazda sygnał jest podawany na wejścia USBDP i USBDM interfejsu IC1. Do portów IOBUS0-1 poprzez transoptory OK1A i OK1B można dołączyć wyjścia urządzeń, których stan ma być odczytywany za pomocą sterownika. Transoptory służą do zabezpieczenia portów IOBUS przed uszkodzeniami elektrostatycznymi. Poszerzają także zakres napięciowy dopuszczalnych poziomów sygnałów wejściowych od ok. 3 do kilkunastu woltów. Poziom napięcia wejściowego podawanego na gniazda J1 i J2 może być odczytywany za pomocą aplikacji sterującej jako logiczne „0” (jest napięcie) lub logiczna „1” (brak napięcia). Ze względu na diodę transoptora, do poprawnej detekcji poziomu napięcia wejściowego jest konieczne, aby napięcie wejściowe miało odpowiednią polaryzację.

Wyjścia IOBUS4 i IOBUS5 służą do sterowania pracą dwóch przekaźników (K1 i K2) ze stykami przełącznymi. Oczywiście, także tu załączeniem lub wyłączeniem przekaźnika steruje aplikacja.

Do gniazda micro-USB doprowadza się zasilanie. Najlepiej w tym celu wykorzystać zasilacz do ładowania akumulatora telefonu. Będzie on służył jako zasilacz interfejsu oraz, gdy zajdzie potrzeba, będzie ładował akumulator smartfonu dołączonego do gniazda G1. Pobór prądu przez płytkę sterownika jest rzędu dziesiątek miliamperów, co nie powinno nadmiernie obciążać zasilacza.

Styki przekaźników wyprowadzone są na złącza J5 i J6. W pozycji neutralnej, gdy przekaźnik nie jest załączony, zwierane są wyprowadzenia oznaczone „CN-NC”. Po załączeniu zwierane są wyprowadzenia „CN-NO”.

Przycisk S1, kondensator C15 i rezystor R4 tworzą obwód zerowania sterownika. Po naciśnięciu przycisku można spowodować restart sterownika bez konieczności odłączania jego zasilania.

Konfiguracja wyprowadzeń IOBUSx układu FT311D

Interfejs FT311D wyposażono w 7 uniwersalnych linii GPIO oznaczonych IOBUS0…IOBUS6. Mogą one pracować w różnych trybach: wyprowadzenia UART, do transmisji w formacie I2C, SPI, wyjścia PWM. W opisywanym sterowniku użyto podstawowego trybu pracy jako porty do przesyłania i odbierania sygnałów cyfrowych. Za wybór trybu pracy wyprowadzeń IOBUS odpowiada poziom napięcia występujący na 3 wejściach CNFG0…CNFG2 interfejsu IC1. W tym urządzeniu są one zwarte do masy.

Linie IOBUS0 i IOBUS1 są połączone z transoptorami i powinny odczytywać poziom napięcia z ich wyjść. Linie IOBUS4 i IOBUS5 sterują tranzystorami i powinny ustawiać na swoich wyjściach odpowiednie poziomy napięcia podawane potem na bazy tranzystorów. Mówiąc w skrócie – część linii GPIO powinna pracować jako wejścia, a część jako wyjścia.

Linie IOBUS nie mają możliwości pracy jako uniwersalne wejścia/wyjścia i każdy z portów musi być indywidualnie skonfigurowany. Można to zrobić, ustawiając lub zerując odpowiednie bity w rejestrach konfiguracyjnych interfejsu FT311D z poziomu aplikacji sterującej.

Sposoby doprowadzenia sygnałów do wejść IN1 i IN2

Wejść IN można użyć do detekcji obecności napięcia lub stanu przycisku. Na rysunku 2A pokazano konfigurację, w której napięcie V+ jest podawane na wejście J1-1. To wejście przez rezystor jest połączone z anodą diody w transoptorze. Katoda diody może być zwierana do masy za pomocą zewnętrznego przycisku. W momencie naciśnięcia, przez diodę transoptora popłynie prąd, a poziom napięcia na odpowiednim porcie IOBUS połączonym z wyjściem transoptora zmieni się z wysokiego na niski. W konfiguracji pokazanej na rysunku 2B katoda diody w transoptorze jest na stałe zwarta do masy. Napięcie z zewnętrznego źródła (np. czujki, detektora położenia rygla itp.) jest podawany na wejście J1-1 połączone z anodą diody. Przy odpowiednio wysokim poziomie napięcia (ok. 2,5…3 V) dojdzie do załączenia fototranzystora w transoptorze i wyzerowania poziomu na IOBUS.

Jeżeli nie zależy nam na separacji galwanicznej pomiędzy sterownikiem a sygnałami wejściowymi, można skorzystać z napięć podanych na styki złącza SV2. Właśnie w tym celu wyprowadzono napięcia 0 V i 3,3 V na to złącze.

Montaż

Schemat montażowy sterownika pokazano na rysunku 3. Do zasilania interfejsu USB1 zastosowano gniazdo typu micro-USB. Ze względu na drobny raster wyprowadzeń gniazda najlepiej przylutować je na początku, kiedy inne elementy nie utrudniają lutowania. Jak zwykle w takich przypadkach polecana jest odrobina topnika w płynie i mała kropla cyny na końcu grota lutownicy.

Raster wyprowadzeń obudowy układu FT311D wynosi 0,8 mm i jego wlutowanie nie powinno sprawiać kłopotu, chociaż i tu przyda się topnik. W prototypie złącze SV2 to grzebień czterech goldpinów. Jeżeli złącze nie miałoby być używane, można je pominąć.

Ze względu na wygodę montażu, na końcu należy wlutować przekaźniki K1, K2, gniazda śrubowe J1, J2, J5, J6 a następnie złącze typu USB-A oznaczone symbolem G1 do połączenia kablowego pomiędzy sterownikiem a urządzeniem, na którym będzie uruchamiana aplikacja sterująca.

Przykładowa aplikacja sterująca firmy FTDI

Do inicjacji układu interfejsu FT311D oraz wpływania na działania sterownika potrzebna jest aplikacja pracująca pod kontrolą systemu Android. Najłatwiejszym rozwiązaniem jest użycie aplikacji udostępnianej na stronie producenta interfejsu, czyli firmy FTDI. Źródła oraz wygenerowana „apka” są do pobrania pod adresem https://goo.gl/YVUFjf. Należy przejść do sekcji „Collection of FT31xD Demo Applications” i kliknąć na „Android.zip”. Po rozpakowaniu pobranego pliku otrzymujemy kolekcję przykładowych źródeł i aplikacji, przydatnych podczas testowania interfejsu FT311D pracującego w różnych trybach. Nas interesuje podkatalog „GPIODemo” z aplikacją pozwalającą na testowanie sterownika, gdy wyprowadzenia pracują w trybie GPIO.

Plik aplikacji znajdziemy w podkatalogu Android/GPIODemo/bin. Po zainstalowaniu w „zwykły” sposób na tablecie lub telefonie, będziemy mieli do dyspozycji użyteczną aplikację pozwalającą na przetestowanie wszystkich funkcji sterownika. Po zasileniu interfejsu i połączeniu z telefonem automatycznie wyświetla się zapytanie, czy użytkownik zezwala aplikacji na dostęp do urządzenia USB. Po wyrażeniu zgody powinien pojawić się ekran, jak pokazano na rysunku 4.

Dostosowując się do rozwiązania sprzętowego sterownika, należy linie IOBUS4 i IOBUS5 skonfigurować jako wyjściowe, zaznaczając pola w górnym rzędzie nazwanym „Out Map”. Po naciśnięciu przycisku „Config” do wewnętrznych rejestrów układu FT311D zostaną przesłane nowe ustawienia.

Testowanie linii wyjściowych sterownika polega na wpisaniu „1” zamiast „0” na wybranej pozycji w rzędzie Out Data IO4 lub IO5. Po naciśnięciu „Write” przekaźnik podłączony do linii, którą ustawiono (wpisano „1”), zostanie załączony. Z kolei test linii wejściowych przeprowadza się, podając na wybrane wejścia IN sterownika napięcie z przedziału 3…12 V, w sposób taki, jak opisano wcześniej. Ze schematu sterownika wynika, że wejścia są dołączone do linii IOBUS0 i IOBUS1. Po naciśnięciu „Read” zostanie odczytany poziom tych linii i wyświetlony na pozycjach „In Data” IO0, IO1. Przypominam, że podanie napięcia na wejście IN spowoduje wyzerowanie odpowiedniej linii IOBUS i wyświetlenie szarego znacznika. Stan, gdy wejście IN pozostaje nieaktywne, sygnalizuje intensywny, zielony kolor znacznika.

Własna aplikacja

Na podstawie udostępnionego przykładu i dokumentacji układu FT311D można napisać własną aplikację do obsługi sterownika. Jako przykład takiego interfejsu powstała napisana przeze mnie aplikacja o nazwie TUK_FT311_2Rel_V3. Ułatwia ona pracę ze sterownikiem, a ponadto wzbogacono ją o dodatkowe możliwości – w tym opcję sterowania za pomocą wiadomości SMS. Wygląd ekranu startowego aplikacji TUK_FT311 pokazano na rysunku 5.

Jak w aplikacji firmowej FTDI, system pyta, czy umożliwić aplikacji TUK_FT311 dostęp do urządzenia USB. Po zezwoleniu i wyświetleniu ekranu głównego, w pierwszej kolejności użytkownik powinien nacisnąć „Włącz”. Pełni on funkcję podobną do „Config”. Przycisk „Zakończ” kończy działanie aplikacji, co powoduje przełączenie sterownika w stan początkowy. Kolejne elementy poniżej wiążą się ze sterowaniem za pomocą SMS i zostaną omówione dalej.

Kolejna sekcja steruje przekaźnikami K1 i K2. Ustawienie przycisków z etykietami „Włącz” lub „Wyłącz” sygnalizuje zamiar przełączenia przekaźników w wybrany stan. Po naciśnięciu „Ustaw wyjścia” nastawy zostają przesłane do sterownika. Elementy sygnalizacyjne pokazują stan przekaźników: ikona szarej diody z krzyżykiem symbolizuje przekaźnik w pozycji spoczynkowej, natomiast zapalona zielona dioda przekaźnik załączony. Ostatnia sekcja służy do odczytu stanu wejść IN1 i IN2. Następuje on po naciśnięciu przycisku „Odczyt”. Jeżeli w momencie jego naciśnięcia na wejście jest podawane napięcie, to wyświetlony zostanie symbol czerwonej strzałki skierowanej w dół. W przeciwnym wypadku będzie wyświetlona zielona strzałka skierowana w górę.

Dodatkowym ekranem aplikacji jest pokazany na rysunku 6 ekran ustawień. Przejście do niego jest możliwe po naciśnięciu symbolu menu, czyli trzech pionowych kropek na pasku aplikacji. Po wyborze opcji („Settings”) zostanie wyświetlony ekran z rysunku 6. Na samej górze znajduje się pole do wpisania numeru telefonu, z którym będzie się porozumiewał nasz smartfon, jeżeli zostanie włączona opcja sterowania za pośrednictwem komunikatów SMS. Poniżej umieszczono sekcję przeznaczoną do ustawiania trybu pracy przekaźników. Pozostawienie niezaznaczonych pól wyboru oznacza, że przekaźniki będą zarówno włączane, jak i wyłączane ręcznie, osobnymi rozkazami, przez użytkownika. Zaznaczenie pola uaktywni tryb czasowy. Po wykonaniu rozkazu załączenia, aplikacja samodzielnie rozłączy przekaźnik, gdy zostanie odliczony ustawiony czas. Czas można ustawić w przedziale od 1 do 60 sekund. Przyciski na dole umożliwiają powrót z trybu ustawień. Możliwy jest zapis nowych ustawień lub powrót bez zapisu.

Każdorazowo po przejściu do trybu ustawień sterownik jest zerowany, więc po jego zakończeniu konieczne jest ponowne naciśnięcie „Włącz”.

Aplikacja TUK_FT311 i sterowanie za pomocą SMS-ów

Jeżeli aplikacja TUK_FT311 zostanie uruchomiona na telefonie, może być użyta nie tylko do komunikacji ze sterownikiem lokalnie, za pośrednictwem kabla USB. Możliwe będzie także sterowanie zdalne z drugiego telefonu za pomocą wysyłanych SMS-ów.

Ze względów bezpieczeństwa telefon współpracujący ze sterownikiem będzie reagował na polecenia otrzymywane SMS-em odbierane tylko od uprawnionego telefonu, którego numer wyświetla się w polu „Kontakt”. Z kolei, z uwagi na możliwe dodatkowe koszty, sterowanie SMS będzie dostępne, jeżeli użytkownik świadomie zaznaczy opcję „SMS włącz”. Opcja jest każdorazowo kasowana po wyzerowaniu sterownika. Ta sama aplikacja jest używana przez telefon odbierający polecenia SMS oraz je wysyłający. W obydwu, za pomocą ekranu konfiguracji, należy wpisać numer telefonu „partnera”. W telefonie wysyłającym będzie to numer telefonu, do którego dołączono sterownik. W telefonie odbiorczym wpisujemy numer aparatu, na którego SMS będzie reagowała aplikacja.

W aparacie wysyłającym można zaznaczyć opcję „czekaj na potwierdzenie SMS”. Jej wybór oznacza, że będzie oczekiwany SMS potwierdzający wykonanie rozkazu. W takim wypadku na telefonie odbiorczym musi być zaznaczona opcja „wyślij potwierdzenie SMS”. To kolejne zabezpieczenie przed generowaniem dodatkowych kosztów.

Sterowanie zdalne działa niezależnie od sterowania lokalnego. Przekaźnik włączony lokalnie może być wyłączony zdalnie i na odwrót. Włączenie przekaźnika w trybie czasowym blokuje możliwość zmiany jego stanu do momentu odliczenia ustawionego czasu pauzy. Zdalny odczyt wejść jest możliwy tylko w trybie z SMS-em potwierdzającym wykonanie rozkazu, w tym przypadku rozkazu odczytu.

Ryszard Szymaniak, EP

Artykuł ukazał się w
Elektronika Praktyczna
styczeń 2017
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik styczeń 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio styczeń 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje styczeń 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna styczeń 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich styczeń 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów