edw 2003 03 s56

background image

Od zarania dziejów człowiek próbował uła-
twiać sobie życie. Już pierwsza maczuga po-
zwalała na efektywniejsze przełożenie siły
mięśni na ruch obrotowy, czyli inaczej
mówiąc mocniejsze walenie w mamuty. Taka
epoka kamienia łupanego w elektronice to la-
ta 70., gdy najuniwersalniejszym pilotem do
supertelewizora (TVC RUBIN) była podręcz-
na szczotka, ewentualnie młodsza siostra.
O ile szczotka nie wymagała zasilania, o tyle
rodzeństwo jest bardzo cukierkożerne.

Obecnie wszystkie telewizory mają pilo-

ta, ale czy w dziedzinie zdalnej obsługi kom-
putera nadal musimy uganiać się za mamuta-
mi? Na szczęście nie, bo jest jeszcze
AT89c2051 i pakiet BASCOM, w nim to bo-
wiem powstał opisany pilot.

Projekt to połączenie dostępnych w Inter-

necie pluginów z możliwościami Bascoma.

Charakterystyka kodu

RC5

Każde polecenie wysyłane przez pilota pra-
cującego w kodzie RC5 składa się z następu-
jących fragmentów:
- bitów startu 1.5bits (2*logiczna 1),
- bit kontroli,
- pięciu bitów kodujących numer rodziny
rozkazów,
- sześciu bitów określających numer rozkazu.

Ramka polecenia kodu RC5 przedstawio-

na została na rysunku 1.

Transmisja danych opiera się na kluczo-

waniu (100% modulacji) fali nośnej z czę-
stotliwością 36kHz. Najprostszy system
transmisji, opierający się wprost na wysyła-
niu serii 0,1, tak jak wskazuje składnia pole-
cenia, nie jest najlepszym rozwiązaniem.
W wielu sytuacjach powodowałoby to za-
kłócenia transmisji. Wystarczy sobie wyo-
brazić taką sytuację - gdy na chwilę pojawi
się przebieg odpowiadający bitowi startu,
a następnie zanika, powodowałoby to wyko-

nywanie nieustannie polecenia o adresie
i kodzie 0. Dlatego też przy transmisji kodu
RC5 stosowane jest kodowanie fazowe. Stan
logiczny jest interpretowany na podstawie
zmian sygnału w pojedynczych przedziałach
czasowych.

Zasady kodowania fazowe-

go przedstawia rysunek 2.

5-bitowe kodowanie nume-

ru rodziny poleceń i 6-bitowe
pole na numer polecenia umoż-
liwia, teoretycznie, wysłanie
2048 różnych rozkazów. W rze-
czywistości wykorzystywane
są tylko niektóre polecenia. Ich
zestawienie zawiera tabela 1.

W poszczególnej rodzinie

dostępne są wszystkie 64 po-
lecenia. Ich znaczenie przed-
stawia tabela 2.

Powyższa tabela zawiera zestawienie

podstawowych funkcji przypisanych na stałe
dość często poprzez graficzne oznaczenia na
klawiszach pilotów. Nie oznacza to, że nie
występują inne zastosowania poszczególnych
kodów. Przykładem jest nasz pilot w którym

Forum Czytelników

56

Elektronika dla Wszystkich

PP

PP

ii

ii

ll

ll

oo

oo

tt

tt

dd

dd

oo

oo

W

W

W

W

ii

ii

nn

nn

aa

aa

m

m

m

m

pp

pp

aa

aa

zz

zz

w

w

w

w

yy

yy

kk

kk

oo

oo

rr

rr

zz

zz

yy

yy

ss

ss

tt

tt

aa

aa

nn

nn

ii

ii

ee

ee

m

m

m

m

kk

kk

oo

oo

dd

dd

uu

uu

RR

RR

CC

CC

55

55

Numer

rodziny

Zastosowanie

0

TV

1

TV2 (descrambler tuner)

2

Teletext

3

TV1 or TV2

(commands 0-63 or 64-127)

5

Video recorder

6

Video recorder 2

7

Do celów eksperymentalnych

16

wzmacniacze

17

receiver/tuner

18

tape/cassette recorder

19

Do celów eksperymentalnych

23

DAT

Numer

Znaczenie

0-9

Kanały 0 - 9

12

standby

13

mute

14

presents

16

Głośność +

17

Głośność -

18

brightness +

19

brightness -

20

Nasycenie kolorów +

21

Nasycenie kolorów -

22

bass +

23

bass -

24

treble +

25

treble -

26

balance prawo

27

balance lewo

48

pauza

50

Szybkie przewijanie w tył

52

Szybkie przewijanie w tył

53

Play

54

stop

54

record

63

System select

Rys. 1

Rys. 2

Tabela 1

Tabela 2

background image

można dynamicznie zdefiniować funkcje re-
alizowane poprzez poszczególne kody.

Schemat ideowy analizatora przedstawio-

ny został na rysunku 3, a płytka drukowana
na rysunku 4.

Opis programu

Program można ściągnąć ze strony interneto-
wej EdW www.edw.com.pl z działu FTP.

Jedną z najważniejszych części składo-

wych urządzeń mikroprocesorowych jest sam
program zawarty w pamięci kontrolera. Układ
89C2051 posiada 2kB pamięci programu typu
EEPROM. Dostępny obszar wystarczył do za

implementowania wszystkich przewidzianych
funkcji dla pilota tj.:
- analizy kodu RC5,
- obsługi wyświetlacza alfanumerycznego,

- transmisji szeregowej z komputerem
według standardu złącza RS232,
- analizy i przetwarzania danych otrzymywa-
nych z programu „Winamp”.

57

Elektronika dla Wszystkich

Forum Czytelników

Listing 1

———————————————————————————————————————-

pilot winampa przez RS 232

kość: 89C2051

‘———————————————————————————————————————-

Config Lcd = 16 * 2

‘definicja typu wyświetlacza

Dim Kod As Byte

Dim Numer As Byte

‘deklaracja wymaganych zmiennych

Dim Flaga As Bit

Dim Wart As Byte

Dim Pom1 As Byte

Dim Liczba As Byte

On Int0 Odbierz

Dim Tekst As String * 1

Cls

Reset Tcon.0

Enable Interrupts

‘zezwolenie na przerwanie

Enable Int0

Reset Flaga

P3 = 255

‘wpisanie wartości początkowych

Cursor Off

‘do zmiennych

Cls

‘początek głównej pętli programu

Do

If Flaga = 1 Then

Reset Flaga

If Kod = 0 Then

Restore Tablica

For Pom1 = 0 To Numer

‘wyszukiwanie kodu w tablicy

Read Liczba

Next Pom1

Print Liczba

‘wysłanie polecenia

End If

End If

‘pętla analizy danych

Tekst = Inkey()

‘przychodzących z portu RS

Wart = Asc(tekst)

If Wart > 0 Then

If Wart = 64 Then

‘po znaku: @ przejdź do nowej linii

Lowerline

Elseif Wart = 35 Then

‘po znaku: # wyczyść wyświetlacz

Cls

Else

Lcd Tekst

‘jeśli zwykły tekst to wyświetl

End If

End If

Loop

‘koniec głównej pętli

End

‘podprogram analizy kodu

Odbierz:

Cls

Getrc5(kod , Numer)

Flaga = 1

‘tablica wrtości kodowych

Return

Tablica:

Data 0 , 1 , 2 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 4 , 0 , 9 , 0 , 5 , 6

Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 7 , 8 , 0 , 0

Data 0 , 0 , 0 , 0 , 0 , 0 , , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0

Rys. 3 Schemat ideowy

Rys. 4 Schemat montażowy

Rys. 5

Rys. 6

background image

Program został napisany i skompilowany

w środowisku BASCOM.

Konfiguracja „plugina”

do programu „Winamp”

Plik o nazwie gen_serialcontrol.dll należy
umieścić w folderze plugins, w katalogu
głównym Winampa (rysunek 5).

Następnie należy skonfigurować podpro-

gram (rysunek 6). Dostęp do konfiguracji
jest możliwy z okna preferences uaktywnia-
nego lewym klawiszem myszy na aktywnym
Winampie. Nasz plugin nazywa się
SerialControl Plug-In v1.14 i powinien

pojawić się w oknie, jeżeli wszystko przebie-
gało do tej pory pomyślnie. Następnie zaz-
naczamy nazwę plugina i przechodzimy do
konfiguracji. Dostępne są 4 zakładki, konfi-
guracja pierwszej z nich przedstawiona jest
na rysunku 7.

Następna zakładka (rysunek 8) pozwala

na naukę podstawowych poleceń. Przebiega
to następująco:
- zaznaczamy funkcję której chcemy nauczyć
program np. play,
- naciskamy przycisk, który ma wywoływać
funkcję play,
- układ potwierdza poprawność nauki
poprzez umieszczenie „parafki” przy uczonej
funkcji,
- przechodzimy do kolejnego polecenia.

Następna zakładka (rysunek 9) jest istot-

na, jeżeli przewidujemy komunikację dwu-
kierunkową. Nasz pilot zapewnia taki trans-

fer, a więc należy tę zakładkę także skonfigu-
rować. Znaczenie poszczególnych pól:
- output on – zezwolenie na wysyłanie
danych,
- output interval – odstępy czasu wysyłania
danych (powinno być 1...2),
- output format – co właściwie ma być
wysyłane (do wyboru z poniższej tabeli),
- initialization – tekst wysyłany przy pier-
wszym uruchomieniu.

W tekście polecenia pojawiły się dwa

znaczki:
- „#” – jest to dodatkowe polecenie
czyszczenia wyświetlacza,
- „@” – polecenie przejścia do nowej linii.

Polecenia te stanowią swoisty język

rozpoznawany przez naszego pilota.

Całe urządzenie posiada jednak pewne

ograniczenia. Pierwsze z nich wynika z faktu
akceptowania przez plugina pojedynczego zna-
ku jako polecenia, a kod RC5 zakłada istnienie
poleceń dwucyfrowych (czytaj dwuznako-
wych). Aktualny plugin zinterpretuje taki kod
jako dwa polecenia. I tak np. Vol+ to kod 16, dla
plugina będzie to polecenie 1, a zaraz potem 6.

Dlatego potrzebna była umieszczona

w programie tablica do zamiany kodów.

Proponowane ustawienia przedstawia fo-

tografia zamieszczona (wraz z programem)
na naszej stronie internetowej.

Zasilanie można „wyciągnąć” z RS-a.

Zastosowałem jednak dodatkowy zasilacz,
ponieważ wyświetlacz jest podświetlany,
co zresztą widać na fotografii 1 i 2.

Michał Stach

58

Elektronika dla Wszystkich

Forum Czytelników

Wykaz elementów

R1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100Ω
P1 . . . . . . . . . . . . .10kΩ potencjometr montażowy
C1-C4 . . . . . . . . . . . . . . . . . . . . . . . . . .10µF/9V
C5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1µF
C6 . . . . . . . . . . . . . . . . . . . . . . . . . . . .100µF/9V
C7,C8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33pF
U1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89C2051
U2 . . . . . . . . . . . . . . . . . . . . . . . . . . . .TFMS5360
U3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .MAX232
X1 . . . . . . . . . . . . . . . . . . . .rezonator 11.059MHz
Z1 . . . . . . . . . . . . . . .złącze DB9 męskie do druku
Z2 . . . . . . . . . . . . . . . . . . . . . . . . . . .mikroswitch
DISP . . . . . . . . . . . . . .wyświetlacz alfanumeryczny

16*2 znaków

Fot. 1

Fot. 2

Rys. 9

Rys. 7

Rys. 8


Wyszukiwarka

Podobne podstrony:
edw 2003 07 s56
edw 2003 02 s56
edw 2003 03 s60
edw 2003 03 s13
edw 2003 03 s16
edw 2003 03 s59
edw 2003 03 s28
edw 2003 03 s52
edw 2003 11 s56
edw 2003 03 s10
edw 2003 03 s30
edw 2003 03 s37
edw 2003 03 s24
edw 2003 03 s22
edw 2003 07 s56
edw 2003 03 s51

więcej podobnych podstron