Pilot Komputerowy
Transcript of Pilot Komputerowy
7/26/2019 Pilot Komputerowy
http://slidepdf.com/reader/full/pilot-komputerowy 1/3
Czy ktokolwiek z Was,użytkowników komputera, nieodczuwał nigdy potrzeby sterowaniaswoim PC’tem z pewnej odległości,
np z łóżka czy biurka! Czy nigdynie musieliście podc"odzi# dokomputera tylko po to, żeby
przeł$czy# słuc"an$ %empetrójk&'czy zmieni# kanał ()! Przykładówzastosowania pilota komputerowegomożna wymienia# wiele, ale czytakie urz$dzenie da si& zrobi#małym nakładem sił i kosztów!*czywiście+ pomoc$, jak zwyklew takic" przypadkac", przyc"odz$ mikroprocesory i dobrze znany nam
pakiet -./C*0
Opis układu
*mawiane urz$dzenie jest doś#nietypowe, mianowicie udaje klawiatur&
po otrzymaniu odpowiednic" instrukcji od pilota 1ak zwykle w przypadkustosowania tec"niki mikroprocesorowej,układ pod wzgl&dem budowy jest bardzo
prosty 1ego sc"emat ideowy przedstawiony został na rysunku 1 Całainteligencja mieści si& w głównymukładzie scalonym, którym jestmikrokontroler .(23C4567 8kład
zasilany jest z linii klawiatury, dzi&kiczemu nie potrzeba zewn&trznegozasilania /erce układu 9U1) komunikujesi& z pami&ci$ szeregow$ 9U2) po szynie
:4C, odbiera sygnały od scalonegoodbiornika podczerwieni 9U3) oraz sterujeczterema tranzystorami 9T1-T4;
potrzebnymi przy transmisji i dwomadiodami 9D1, D2; sygnalizuj$cymi, czysygnał z pilota został zinterpretowany czyodrzucony
<asz układ to jednak niewszystko czego potrzebowa# b&dziemydo sterowania komputerem <iezb&dny
b&dzie jeszcze pilot <o właśnie, pilot, ale jaki! <ajlepszym wydaje si& by#%0inipilot =C6', kit .)(4>4? opisany w
@dW 3A4555 na stronie ?? 0a onwystarczaj$c$ liczb& przycisków 97B; i
jest stosunkowo tani Poza tym dokładniewiemy, jaki kod odpowiada danemu
przyciskowi 9komendy podane zostały narysunku 2, adres dla wszystkic"
przycisków równy jest 5;, w przeciwiestwie do Dabrycznyc" pilotówuniwersalnyc", które potraDi$ zac"owywa# si& różnie
Po zaznajomieniu si& zesc"ematem, zajmijmy si& prac$ układu%od kuc"ni' Eomenda odebrana od pilotaza pośrednictwem układu U3 wpisywana
jest do pami&ci szeregowej jako adres, z
którego odczytywany jest bajt -ajt tennie jest niczym innym jak kodemodpowiadaj$cym danemu przyciskowiklawiatury, którego wciśni&cie
symulowa# miała obsługa pilotaWłaściwie wiemy już sk$d układ zna kodklawisza, ale przecież niektóre przyciski9np %strzałki'; s$ klawiszami specjalnymii aby je wywoła#, trzeba przed ic" kodemwysła# komputerowi poprzednik klawiszaspecjalnym 9szesnastkowo @5; Problem
ten można rozwi$za# całkiem prostoPonieważ pilot może przesyła# komendy
Pilot komputerowy 7
Rys. 2
Rys. 1
7/26/2019 Pilot Komputerowy
http://slidepdf.com/reader/full/pilot-komputerowy 2/3
od 5FBG, połowa pami&ci U2 leżyodłogiem <ic nie stoi na przeszkodzie,aby wykorzysta# t& cz&ś# pami&ci narzecz klawiszy specjalnyc" W tym celu,w nieużywanej dot$d przestrzeniadresowej od BG do 74?, zapisujemy kodyodpowiadaj$ce klawiszom specjalnym
pod adresami b&d$cymi komend$ powi&kszon$ o B> =ozpatrzmy terazzac"owanie układu, gdy otrzyma onkomend& dotycz$c$ klawisza specjalnego
<ajpierw mikrokontroler sprawdza, czy pod adresem odpowiadaj$cym komendzieznajduje si& jakiś kod Eiedy upewni si&,że kodu nie ma 9odczytał znak pusty H szesnastkowo II;, to sprawdza, czy podadresem o B> wyższym coś jest 1eśli jest,to już wie, ze ma to by# klawisz specjalnyi najpierw przesyła komputerowi
poprzednik klawisza specjalnego, adopiero potem kod klawisza odczytany zdanego adresu Rysunek 3 przedstawiakody wszystkic" klawiszy klawiatury, zktóryc" możemy wybra# potrzebne i
wpisa# do pami&ci U2 według szablonu zrysunku 4 pod adresy odpowiadaj$cewybranym przyciskom pilota 1eśli jakiś
przycisk ma by# nieużywany, to wmiejsce kodu klawisza musimy wpisa#szesnastkowo II
0aj$c pewne poj&cie na tematidentyDikacji klawisza, możemy przyjrze#si& bliżej transmisji 1ak już wcześniej
wspomniałem, mikrokontroler sterujekilkoma tranzystorami (o one właśniezarz$dzaj$ szyn$ danyc" 9DTA; i zegara9CLK ; komputera, którymi zwykle%zajmuje si&' klawiatura 0ożna
powiedzie#, że nasze urz$dzenie wtr$casi& pomi&dzy klawiatur& i komputer(akie brutalne działanie jest nieuniknione,
ponieważ linia klawiatury przystosowana jest tylko do jednego odbiornika i jednegonadajnika 1ak w takim razie
przystosowa# transmisj& do naszyc" potrzeb! Całkiem prosto+ /zeregowo w
linie musimy wł$czy# rezystory oniedużej oporności 9R1 i R2; (erazwystarczy już tylko po stronie klawiatury
%podci$gn$#' lini& do napi&cia zasilania9T1, T2;, a po stronie komputera, w takttransmisji, zwiera# kocówk& rezystorado masy 9T3, T4; .le czy aby na pewnotaki zabieg jest konieczny! Przecież telinie sterowane s$ za pomoc$ bramek typuotwarty kolektor, wiec czy nie można po
prostu zwiera# danej linii do masy!*dpowiedz na to pytanie i troc"& wi&cejszczegółów dotycz$cyc" transmisji9potrzebnyc" do napisania programu;znaleJ# można w Ed 1!2""1 na s#r$nie
2% Keby si& zbytnio nie powtarza#, przypomn& jedynie, że linia klawiatury jest lini$ dwukierunkow$ Wynika z tego,że również komputer może przesyła#rozkazy klawiaturze 9np zał$cz A wył$czkontrolk& Caps Lock; i dlatego, jeślistrona klawiatury nie zostałaby
podci$gni&ta do zasilania, opróczkomputera, również klawiatura mogłabyodczyta# transmisj& jako rozkaz dla niejW takim przypadku nasz rozkaz zostałbyzakłócony przez klawiatur& i z transmisji
byłyby nici(eoretycznie wiemy już jak
układ powinien działa# -rakuje jeszczetylko programu obsługuj$cegomikroprocesor W dalszej cz&ści artykułuznajdziecie jego listing w j&zyku-./C*0 Program ten z powodzeniemobsługiwał mój model, wi&c
prawdopodobnie b&dzie działa# i Wame wzgl&du na ograniczenia dotycz$ceartykułu, obci&te zostały komentarzePodobnie jak w przypadku %0aszyny do
pisania', zac"&cam jednak do napisania programu samemu i traktowanie mojegolistingu jedynie jako działaj$cy punkt
odniesienia 1eśli jednak ktoś nie maoc"oty traci# czasu nawet na
przepisywanie, z pomoc$ przyc"odzi
:nternet Ci, którzy maj$ do niego dost&p,mog$ zassa# program oraz zawartości
pami&ci szeregowyc" do sterowaniaróżnymi programami spod adresu"ttpMAAwwwbloknetplANruDusA pilotzip, aci, którzy dobrodziejstwa :nternetu niezaznali, zadowoli# si& musz$ napisaniem
programu samemu lub jego bezmyślnym9!; przepisaniem, ale w kocu pisanie w-./C*0’ie to przyjemnoś#+
&$n#a' i uru($*ienie
8kład jest bardzo prosty, wi&cmontaż nie wymaga dużej uwagi <ależyzwróci# uwag& jedynie na to, aby kableł$cz$ce urz$dzenie z klawiatur$ ikomputerem nie były zbyt długie Ooobudowania urz$dzenia nadaje si&, pomałej obróbce, obudowa B Przedni$
ściank& zast$pi# można prostok$tem zciemnego, półprzezroczystego pleksiPonieważ nasz
układ udaje klawiatur&,nie b&d$ potrzebneżadne sterowniki abygo uruc"omi# 1est togłówna różnica
pomi&dzy tymurz$dzeniem a jegoDabrycznymi
odpowiednikami, które komunikuj$ si& zkomputerem przez port szeregowy Ozi&ki
temu nie b&dziemy musieli walczy# zniekompatybilnym systemem, który nigdynie c"ce współpracowa# 1edyne co trzebazrobi# to poł$czy# układ z komputerem iklawiatur$ -&dzie działa# pod każdymsystemem i zawsze (o si& dopieronazywa %Plug and Play'+
Ra+ał aran$ski
eFmailM =aDal-aranowskibloknetpl
Pilot komputerowy 4
Rys. 3
Rys. 4
/łpr0e$dniki
87.(23C456784.(4>C578G(I0/6GB5(7, (4, (G, (> -C66?O7L@O zielonaO4L@O czerwona
$0$s#ałe
Q7rezonatorceramiczny77,56340Rz
W7gniazdo 6 pin O:<lub P/A4
W4wtyk 6 pin O:<lub P/A4
yka0 ee*en#/
Re0ys#$ry
=7, =4 6B5Ω
=G, =>, =6, =B 44k Ω=?, =2 7k Ω
=3, =75 G,Gk Ω=77 445Ω
K$ndensa#$ry
C7 755nIC4, CB 755µICG 75µIC>, C6 GGpI
7/26/2019 Pilot Komputerowy
http://slidepdf.com/reader/full/pilot-komputerowy 3/3
Pilot komputerowy G
Scrystal T 77563455
Oim <owy .s -it M Oim @ .s -it M Oim P .s -itOim Com .s -yte M Oim .dr .s -yteOim E .s -yte M Oim Q .s -yte M Oim . .s -yte
iel .lias P75 M Czerw .lias P77 M Ota .lias P74Clk .lias P7G M -lk .lias PG6
ConDig /da T PG5 M ConDig /cl T PG7ConDig :4cdelay T 7
=eset (con5 M *n :nt5 =c6@nable :nt5 M @nable :nterrupts
Oo -itwait <owy , /et Oisable :nt5 M =eset <owy :4cstart M :4cwbyte 7B5 M :4cwbyte Com :4cstart M :4cwbyte 7B7 M :4crbyte E , <ack M :4cstop :D E T URII ("en
Com T Com V B>:4cstart M :4cwbyte 7B5 M :4cwbyte Com :4cstart M :4cwbyte 7B7 M :4crbyte E , <ack M :4cstop :D E X URII ("en M /et @ @lse M =eset Czerw M Waitms 4>5 M /et Czerw @nd :D @nd :D :D E X URII ("en W"ile Clk T 5 M Waitms 4 M Wend M =eset -lk :D @ T 7 ("en =eset @ Q T UR@5 M Yosub Przeslij Q T E M Yosub Przeslij
Q T UR@5 M Yosub Przeslij Q T URI5 M Yosub Przeslij Q T E M Yosub Przeslij @lse Q T E M Yosub Przeslij Q T URI5 M Yosub Przeslij
Q T E M Yosub Przeslij @nd :D /et -lk M =eset iel M Waitms 4>5 M /et iel @nd :D @nable :nt5Loop
PrzeslijM
. T 5 :D Q5 T 7 ("en M . T . V 7 M @nd :D:D Q7 T 7 ("en M . T . V 7 M @nd :D
:D Q4 T 7 ("en M . T . V 7 M @nd :D:D QG T 7 ("en M . T . V 7 M @nd :D:D Q> T 7 ("en M . T . V 7 M @nd :D
:D Q6 T 7 ("en M . T . V 7 M @nd :D :D QB T 7 ("en M . T . V 7 M @nd :D :D Q? T 7 ("en M . T . V 7 M @nd :D . T . 0od 4 :D . T 5 ("en M /et P M @lse M =eset P M @nd :D Ota T 5 M Oelay M Clk T 5 M Oelay Ota T Q5 M Clk T 7 M Oelay M Clk T 5 M Oelay
Ota T Q7 M Clk T 7 M Oelay M Clk T 5 M Oelay Ota T Q4 M Clk T 7 M Oelay M Clk T 5 M Oelay Ota T QG M Clk T 7 M Oelay M Clk T 5 M Oelay Ota T Q> M Clk T 7 M Oelay M Clk T 5 M Oelay Ota T Q6 M Clk T 7 M Oelay M Clk T 5 M Oelay Ota T QB M Clk T 7 M Oelay M Clk T 5 M Oelay Ota T Q? M Clk T 7 M Oelay M Clk T 5 M Oelay Ota T P M Clk T 7 M Oelay M Clk T 5 M Oelay Ota T 7 M Clk T 7 M Oelay M Clk T 5 M Oelay M Clk T 7=eturn
=c6M Yetrc69adr , Com;
:D .dr T 5 ("en M /et <owy @lse =eset <owy =eset Czerw M Waitms 4>5 M /et Czerw @nd :D =eturn
r$ra* *ikr$pr$(es$r$y