Spisu treści:

Komputerowe zdalne sterowanie na podczerwień: 4 kroki
Komputerowe zdalne sterowanie na podczerwień: 4 kroki

Wideo: Komputerowe zdalne sterowanie na podczerwień: 4 kroki

Wideo: Komputerowe zdalne sterowanie na podczerwień: 4 kroki
Wideo: Zdalne sterowanie na podczerwień politem RC5 - www.mikrokontrolery.org 2024, Czerwiec
Anonim
Komputerowe zdalne sterowanie na podczerwień
Komputerowe zdalne sterowanie na podczerwień

Oprócz wielu innych celów używam swojego komputera jako centrum multimedialnego. Czasami odpoczywam na kanapie słuchając muzyki lub oglądając film lub telewizor i nie mam ochoty wstawać, aby regulować głośność lub zmieniać kanał telewizyjny za każdym razem, gdy pojawiają się głupie reklamy lub zasypiam i życzę sobie cisza. Zdecydowałem się więc na zdalne sterowanie moim komputerem za pomocą standardowego pilota na podczerwień, abym mógł po prostu natychmiast nacisnąć przycisk, zamiast wściekle chwytać mysz lub klawisz wyciszenia na klawiaturze.

Projekt składa się z kilku części:

  1. Zdalne sterowanie
  2. Oprogramowanie komputerowe
  3. Moduł odbiornika podczerwieni

Krok 1: Pilot zdalnego sterowania

Pilot
Pilot

Pierwszy element - pilot - jest banalny do załatwienia. Po prostu użyj dowolnego sterowania na podczerwień. Użyłem tego, który jest na sprzedaż jako komplet wraz z odbiornikiem IR - patrz zdjęcie. Jedynym powodem, dla którego zdecydowałem się na ten typ, jest to, że miałem go już w domu.

Krok 2: Oprogramowanie

Stworzyłem program dla systemu operacyjnego GNU/Linux, który działa w terminalu. Kod źródłowy można pobrać/używać/udostępniać/modyfikować. Aby skompilować kod, po prostu wydaj w terminalu polecenie gcc -o remotePC remotePC.c. Aby uruchomić program, wpisz./remotePC.

Poniższe informacje w tym kroku są skierowane do tych, którzy są zainteresowani, jak to działa.

Opis programu

Program najpierw sprawdza, czy istnieje plik /dev/ttyACM0 lub ttyACM1. Jeśli tak, identyfikator grupy pliku jest sprawdzany, aby był różny od zera. Oznacza to, że port szeregowy może być odczytywany i zapisywany przez zwykłego użytkownika. Dwa bajty o wartościach 0xAA 0x55 są następnie zapisywane do portu, aby zasygnalizować, że program jest gotowy do odbioru danych. Przychodzące dane są porównywane z przechowywanymi wartościami. Jeśli dopasowanie zostanie znalezione, zostanie wykonana predefiniowana akcja.

Regulacja głośności

Program potrafi włączyć/wyłączyć dźwięk, zwiększyć/zmniejszyć głośność na poziomie systemu. Osiąga się to za pomocą programu paktl. Polecenia wyglądają wtedy tak:

pactl set-sink-mute 0 toggle

pakiet-zlewozmywak-objętość 0 +10%

paktl zestaw-zlewozmywak-objętość 0 -10%

W razie potrzeby zainstaluj żądane pakiety.

Sterowanie odtwarzaczem multimedialnym VLC

Program może również uruchomić/wstrzymać audio/wideo i zmienić ścieżkę na poprzednią/następną na liście odtwarzania VLC Media Player. W tym przypadku używana jest magistrala pulpitu. Polecenia:

dbus-send --type=metoda_call --dest=org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. PlayPause

dbus-send --type=metoda_call --dest=org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Dalej

dbus-send --type=metoda_call --dest=org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Poprzedni

Krok 3: moduł odbiornika podczerwieni

Moduł odbiornika podczerwieni
Moduł odbiornika podczerwieni
Moduł odbiornika podczerwieni
Moduł odbiornika podczerwieni
Moduł odbiornika podczerwieni
Moduł odbiornika podczerwieni

Trzecia część projektu jest najbardziej złożona, a mimo to dość prosta. Pomysł polega na tym, że odbiornik podczerwieni wyśle sygnał do MCU, który przekształci go na unikalny numer. Numer ten zostanie następnie przesłany do komputera przez USB.

Moduł przeznaczony jest do montażu wewnątrz obudowy PC i podłączenia kabla do gniazda USB na płycie głównej. Jeśli wolisz zewnętrzne połączenie z USB, będziesz musiał dokonać drobnych korekt.

MCU

Moduł zbudowałem na mikrokontrolerze PIC16F1829. Wybór MCU nie jest krytyczny, możesz użyć dowolnego innego MCU, jeśli jesteś w stanie dostosować kod źródłowy. Wybrałem ten PIC z dwóch powodów. Po pierwsze miałem go pod ręką, a po drugie jego piny zostały częściowo uszkodzone przez intensywne użytkowanie w różnych projektach testowych. Chciałem więc użyć go w stałym projekcie, zanim stanie się całkowicie bezużyteczny.:-)

Odbiornik podczerwieni

Drugą częścią modułu jest odbiornik podczerwieni VS1838B - wspomniany w pierwszym kroku.

Konwerter UART/USB

Trzecia część to MCP2221 czyli konwerter UART/I2C/USB.

Zadanie polega na połączeniu tych 3 części, aby zbudować moduł, który będzie w stanie odbierać sygnały z pilota IR i przekazywać je do komputera.

Okablowanie

Na pierwszym zdjęciu na płytce stykowej znajduje się obwód testujący. W drugim znajduje się schemat okablowania.

Lista części

1 szt. PIC16F1829 (lub dowolny inny MCU)

1 szt. VS1838B (lub dowolny inny odbiornik podczerwieni)

1 szt. MCP2221 (lub dowolny inny konwerter UART/USB)

2 szt. Nagłówek 4-pinowy

1 szt. 6-pinowy nagłówek

1 szt rezystor 100R

2 szt. Rezystor 10K

2 szt rezystor 330R

1 szt. kondensator 470 nF

2 szt. Kondensator elektrolityczny 4,7 uF

1 szt. przełącznik (opcjonalnie)

Montaż PCB

Złóż moduł korzystając ze schematu. Możesz użyć uniwersalnej płytki lub stworzyć niestandardową płytkę drukowaną. W tym drugim przypadku udostępniłem pliki KiCad w poniższym archiwum.

Oprogramowanie układowe

Kod źródłowy dla PIC napisanego przy użyciu MPLAB X IDE i kompilatora XC8 jest dostępny do pobrania poniżej.

Uwagi do kodu źródłowego

Dla tych, którzy chcieliby wiedzieć, co dokładnie robi program, są następujące wiersze.

Po wykonaniu wszystkich ustawień czerwona dioda LED świeci, a MCU czeka na dane 0x55AA. Następnie dioda zmieni kolor na zielony, a MCU zacznie wykrywać sygnał z odbiornika IR za pomocą przerwań. Mierzy i rejestruje odstępy czasu, w których sygnał znajduje się na poziomie wysokim i niskim. Te czasy są następnie przekształcane na 32-bitową liczbę, która jest wysyłana do komputera.

Stosunek czasów do liczby końcowej określa protokół NEC.

Krok 4: Jak korzystać z urządzenia

Jak korzystać z urządzenia
Jak korzystać z urządzenia
Jak korzystać z urządzenia
Jak korzystać z urządzenia
Jak korzystać z urządzenia
Jak korzystać z urządzenia

Oprogramowanie układowe

Prześlij oprogramowanie układowe do PIC. Używam programatora PICkit 3.

Sprzęt komputerowy

Zainstaluj moduł odbiornika IR tak, jak pokazano na zdjęciach:

  1. Podłącz nagłówek USB do wewnętrznego gniazda USB na płycie głównej w obudowie komputera za pomocą odpowiedniego 4-żyłowego kabla lub zewnętrznie do gniazda USB za pomocą standardowego kabla USB. W drugim przypadku musisz sobie jakoś pomóc, m.in. jak widać na trzecim zdjęciu dla inspiracji.
  2. Podłącz kabel zasilający 5 V ze źródła zasilania wewnątrz obudowy komputera do 4-pinowego złącza. Lub zasil moduł w inny sposób w przypadku zastosowania zewnętrznego.

Sprawdź opis styków gniazda USB płyty głównej. Nie jestem pewien, czy okablowanie jest zgodne z jakimś standardem, więc lepiej się upewnić. W moim przypadku są dwa rzędy pinów z 5 pinami w górnym rzędzie i 4 pinami w dolnym. Od lewej do prawej piny to + 5 V, D-, D+, Gnd. Piąty pin w pierwszym rzędzie nie jest podłączony. Podłączyłem kabel jak widać na drugim zdjęciu.

Oprogramowanie

Uruchom program w terminalu. Jeśli wszystko pójdzie dobrze, ostatni komunikat programu to „czekam na dane…”. Teraz po naciśnięciu przycisku na pilocie otrzymany kod pojawi się w terminalu. W ten sposób będziesz wiedział, który przycisk emituje jaki kod.

Teraz czeka na Ciebie trochę programowania, ale nie martw się. Wystarczy zmienić kilka rzeczy w kodzie źródłowym programu, aby program reagował na pilota. Otwórz plik remotePC.c w edytorze tekstu lub w jakimś IDE jeśli chcesz i zamień moje kody na swoje. Po prostu naciskaj przyciski, których zamierzasz użyć dla każdej akcji, jeden po drugim. Po prostu skopiuj kody, które pojawiają się w terminalu i wklej je do kodu źródłowego w miejscu z odpowiednią akcją.

Po zakończeniu zamknij program i ponownie skompiluj kod poleceniem gcc -o remotePC remotePC.c. Uruchom program ponownie, a od teraz będzie reagował na pilota.

Korzystam w ten sposób z akcji zakodowanych na sztywno w programie, ponieważ uważam, że nie ma sensu tracić czasu na dalszy rozwój projektu do stanu, w którym możliwe jest np. dodawanie/zmiana kodów/akcji w przyjaznym dla użytkownika środowisku graficznym. Ale jeśli chcesz to zrobić, a nawet więcej, możesz.

Zalecana: