Bartosz Wawrzynek I rok Koło Naukowe Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI Keywords: gesture control, FM tuner Słowa kluczowe: sterowanie gestami, tuner FM Streszczenie Poniższy artykuł poświęcony jest idei sterowania gestami na przykładzie tunera FM. Zawarte zostały w nim informacje dotyczące procesu budowy oraz programowania układu. Umieszczone zostały również praktyczne przykłady zastosowania takiego sterowania. Abstract This article discusses the idea of gesture control as exemplified by an FM tuner. The author describes a tuner control system and related tuner software. Practical applications of such a control system are presented as well. The control system uses reflective optical sensors and the Arduino system. 1. Wstęp 1. Podstawowe informacje Sterowanie gestami zaczyna odgrywać obecnie coraz większe znaczenie w wielu gałęziach przemysłu, dzięki zastosowaniu takiego sterowania nie wymaga się fizycznej interakcji użytkownika z urządzeniem. Sterowanie to może odbywać się na wiele różnych sposobów w zależności od zastosowanych czujników oraz potrzeb. Podzespoły użyte w projekcie. Ze względu na łatwość i prostotę obsługi w projekcie do sterowania głośnością oraz zmianą częstotliwości zostały użyte czujniki odbiciowe TCRT5000, informacje o bieżącej stacji i poziomie głośności wyświetlane są na wyświetlaczu LCD 16x2, tuner FM to płytka ewaluacyjna oparta o układ Si4703, a całość sterowana jest za pomocą mikrokontrolera Atmega 328p zamontowanego na płytce Arduino Mini Pro. Schemat połączeń znajduje się na rys. 1.
Rys. 1. Schemat blokowy układu 2. Opis podzespołów układu Układ Si4703 to jeden z popularniejszych układów, które można spotkać wielu urządzeniach pełniących funkcję odbiornika FM, odbiera on fale o częstotliwości z zakresu 76MHz 108MHz oraz ma funkcję odbierania powiadomień RDS. Poniżej na rys. 2 znajduje się blokowy schemat wewnętrzny. Rys. 2. Wewnętrzny schemat blokowy układu Si4703
Układ ten komunikuje się z mikrokontrolerem za pomocą szeregowego protokołu I C, jest to dwukierunkowa magistrala, która do transmisji danych wykorzystuje dwie linie danych SCL (Serial Clock Line) i SDA (Serial Data Line). Magistralę tą stosuje się tam gdzie nie wymaga się dużej szybkości transmisji danych, lecz potrzebna jest prostota i niezawodność oraz możliwość podłączenia wielu urządzeń do linii transmisyjnych, ponieważ dzięki istnieniu mechanizmowi detekcji kolizji możliwa jest praca w trybie multi-master. Do sterowania głośnością oraz zmiany stacji zostały użyte czujniki TCRT5000, są to optyczne czujniki składające się z diody emitującej światło podczerwone o długości fali 950nm oraz fototranzystora. Zasada działania takiego czujnika jest bardzo prosta, dioda oświetla złącze kolektor-baza fototranzystora, co powoduje przepływ prądu bazy, który wymusza prąd kolektora. Czujnik ten wykrywa obiekty w odległości około 2cm. Rysunek poglądowy oraz schemat wewnętrzny przedstawia rys. 3. Rys. 3. Schemat wewnętrzny czujnika odbiciowego Prąd diody czujnika nie może być większy niż 60mA przy zasilaniu 5V, dlatego został użyty rezystor R1=100Ω. Odczyt stanu czujnika odbywa się z kolektora tranzystora, do którego zostało podciągnięte poprzez rezystor R2=4.7kΩ napięcie 5V, poprzez zmianę tego rezystora możemy sterować czułością naszego czujnika. Na rys. 4 przedstawiony jest sposób połączenia, wyjście OUT podłączone jest do mikrokontrolera.
Rys. 4. Schemat podłączenia czujnika odbiciowego 3. Oprogramowanie układu Całość sterowana jest za pomocą 8-bitowego mikrokontrolera AVR Atmega 328p, zamontowanego na płytce Arduino Mini Pro. Mikrokontroler ten może pracować z częstotliwością do 20MHz oraz zakresie napięcia od 1.8 do 5.5V. Dzięki dostępnej bibliotece obsługującej tuner FM, obsługa jest bardzo prosta. Poniżej przedstawiony jest cały kod programu oraz jego funkcje w kolejnych krokach. Początek programu przedstawia rys. 5, ustawiana jest tam początkowa głośność i częstotliwość oraz załączane biblioteki. Rys. 5. Deklaracja bibliotek i inicjalizacja początkowej głośności oraz częstotliwości
W funkcji setup wypisywane są na wyświetlaczu początkowa stacja i głośność oraz ustawiane są piny do odczytu stanów czujników odbiciowych, cała funkcja setup ukazana jest na rys. 6. Rys. 6. Wypisanie na wyświetlaczu początkowej stacji i głośności oraz ustawienie pinów wejściowych W pętli głównej odczytywane są stany czujników i w zależności od tego z którego czujnika zostanie odczytany sygnał niski wykonywana jest regulacja głośności, bądź też częstotliwości oraz wywoływana jest funkcja wypisująca to na wyświetlaczu, pętla główna pokazana jest na rys. 7. Rys.7. Pętla główna, odczyt stanu poszczególnych czujników oraz wykonanie poszczególnych czynności, zmiany częstotliwości lub głośności i wywołanie funkcji wypisującej to na wyświetlacz
Funkcja mająca za zadanie wypisywać na ekranie głośność oraz częstotliwość po każdorazowej ich zmianie, funkcja ta przedstawiona jest na rys. 8. Rys. 8. Funkcja wypisująca na wyświetlaczu obecny poziom głośności i częstotliwość 4. Podsumowanie Wykonany przeze mnie projekt może znaleźć szerokie zastosowanie w szczególności tam, gdzie wymagana jest kontrola danego urządzenia bez fizycznego kontaktu z nim, dodatkowo jeden taki czujnik może zastąpić funkcję kilku innych elementów. Projekt ten ma możliwość rozszerzania go o inne funkcje, dzięki czemu może on znaleźć zastosowanie m.in. w automatyce domowej, motoryzacji, w miejscach gdzie użytkownik nie ma możliwości sterowania np. z poziomu panelu operatorskiego. Literatura [1] Atmel Atmega 328p_datasheet [2] Silicon Laboratories Si4703_datasheet [3] TCRT5000_datasheet [4] Kardiaś M., Mikrokontrolery AVR. Język C podstawy programowania, Wydawnictwo ATNEL, 2011