AVT-5197.pdf
(
1520 KB
)
Pobierz
Projekty
Pilot z WiFi
Zdalne sterowanie sprzętem
RTV przez WiFi
Dodatkowe
materiały na CD
Jak większość
niekonwencjonalnych projektów
opisywanych na łamach EP,
tak i ten powstał napędzany
przez potrzebę dnia codziennego.
Powyższe zdanie jest elokwentną
wymówką dla lenistwa autora...
Sytuacja, która doprowadziła
do powstania prototypu
prawdopodobnie zdarza się
jednak często w wielu domach,
a czy zaszkodzi niewielkie
poprawienie sobie komfortu
życia?
Rekomendacje:
pomysłowe, praktyczne
urządzenie, które przyda się
w każdym domu.
W mieszkaniu, w którym w jednym po-
koju znajduje się bliżej nieokreślony sprzęt
RTV (w przypadku autora był to zestaw au-
dio), a drugi pokój to sypialnia, wynikła po-
trzeba sterowania sprzętu. Tuż po przebudze-
niu, kiedy nie trzeba iść do pracy, miło jest
posłuchać np. ulubionej stacji radiowej bądź
nagrania. Jednak, aby móc to zrobić, należy
WSTAĆ z łóżka, włączyć sprzęt, po czym do
niego wrócić. Cały urok wolnego dnia znika!
Oczywiście powyższy opis zawiera nieco
przesady, jednak nie od dziś znane są wszel-
kiego rodzaju „przedłużacze” pilotów IR
mające za zadanie pomóc w tego typu sytu-
acjach. Kilka takich konstrukcji pojawiło się
na łamach różnych czasopism. Najczęściej,
aby ominąć przeszkodę na drodze wiązki
podczerwieni nadajnika (np. ścianę pokoju),
urządzenia te wykorzystują fale radiowe.
W niektórych konstrukcjach użytkownik np.
do sterowania tunerem radiowym używa pi-
lota służącego do jego kontroli, celując w od-
biornik „przedłużacza”, który z kolei wysy-
ła odebrany rozkaz do swojego nadajnika,
umieszczonego przy sterowanym sprzęcie
(
rys. 1
).
Po głębszym zastanowieniu urządze-
nie takie nie rozwiązuje jednak problemu
lenistwa autora, bo zawsze przed pójściem
spać można zapomnieć o pilocie i zostawić
go w innym pokoju. Kolejnym krokiem było
zatem znalezienie czegoś, co leniwy bohater
zawsze ma przy sobie np. PDA lub telefon
komórkowy z interfejsem Wi-Fi, który mógł-
by znaleźć zastosowanie jako pilot. Jeśli tak
jest, to w mieszkaniu znajduje się zapewne
Access Point sieci bezprzewodowej, który
można użyć jako tor radiowy. Brakuje nam
AVT–5197
W ofercie AVT:
AVT–5197A – płytka drukowana
PODSTAWOWE PARAMETRY
• zasilanie 6...12 VDC
• płytka o wymiarach 65×28 mm
• mikrokontroler ATmega8, moduły Tibbo EM1000 i WM1000
• połączenie pomiędzy PDA/telefonem przez sieć WiFi
• sterowanie za pomocą wbudowanego serwera Web
PROJEKTY POKREWNE
wymienione artykuły są w całości dostępne na CD
Tytuł artykułu
Nr EP/EdW
Kit
4-kanałowe radiowe zdalne sterowanie RFM1 z interfejsem MODBUS
EP 8-9/2008 AVT-5143
Bezprzewodowy regulator głośności
EdW 8/2006 AVT-2795
Radiowy przedłużacz pilotów
EP 2/2004
AVT-559
„Przedłużacz” pilota RC5
EP 12/2002 AVT-1359
Radiowy pilot do PC
EP 12/2001 AVT-5032
26
ELEKTRONIKA PRAKTYCZNA 8/2009
Pilot z WiFi
Rys. 1. Schemat działania tradycyjnego przedłużacza pilotów
Płytka pilota zawiera blok zasilania zbu-
dowany w oparciu o regulator liniowy LDO
LD1117-3V3. Zasila on kompletny system,
a więc blok pilota, moduł EM1000 oraz mo-
duł Wi-Fi WA1000.
Moduł EM1000 dostarczany jest bez obu-
dowy, z wyprowadzonymi pinami (
fot.
5
).
Koniecznie zatem było umieszczenie na płyt-
ce pilota złącz o odpowiednim rastrze.
Do programowania modułu używany
jest jego interfejs Ethernet, co wymusiło
umieszczenie na płytce pilota złącza RJ45
z wbudowanym transformatorem separują-
cym (J1). Do gniazd, w których umieszczony
ma być EM1000 doprowadzono linie UART
mikrokontrolera (J1) tak, aby możliwe było
jego połączenie z UART0 modułu oraz pod-
łączono dwie linie statusowe: SG (
Status
Green
) i SR (
Status Red
) do wbudowanych
w złącze J1 sygnalizacyjnych diod LED. Po-
nadto, do EM1000 doprowadzono zasilanie
oraz podciągnięto linie MD (
Mode Selection
Pin
) do zasilania układu. Moduł nie wymaga
zewnętrznego sygnału resetu. Pełny rozkład
wyprowadzeń modułu EM1000 pokazano na
rys.
6
, a schemat montażowy płytki bazowej
na
rys.
7
.
Rys. 2. Idea zastosowania pilota zdalnego sterowania z interfejsem Wi-Fi
tylko pilota podczerwieni, który byłby w sta-
nie podłączyć się do sieci Wi-Fi...
• programowalny moduł Tibbo EM1000.
• moduł WA1000; jest to moduł Wi-Fi z in-
terfejsem SPI współpracujący z EM1000.
Układ nadajnika podczerwieni zrealizo-
wano z zastosowaniem mikrokontrolera. Jego
schemat ideowy przedstawiono na
rys. 4
.
Głównym elementem nadajnika jest mi-
krokontroler AVR – ATmega8. Pracuje on
w podstawowej koni guracji zewnętrznym
rezonatorem kwarcowym 8 MHz. Linia zeru-
jąca mikrokontrolera podłączona jest poprzez
rezystor 10 kV do linii zasilania. Ze względu
na pozostałe elementy systemu (w szczegól-
ności moduł EM1000) wybrano napięcie za-
silające o wartości 3,3 V.
Na schemacie pokazano złą-
cze SV1, do którego jest podłą-
czony interfejs ISP umożliwiający
programowanie pamięci
Flash
mikrokontrolera. Rozkład wypro-
wadzeń odpowiada popularnemu
programatorowi STK200/300.
Za nadawanie sygnałów-roz-
kazów sterujących odpowiedzialny
jest tranzystor kluczujący diodę
podczerwieni. Baza tranzystora
sterowana jest za pośrednictwem
wyprowadzenia PC0. Interfejsem
komunikacyjnym bloku pilota jest
UART (wyprowadzenia PD0 i PD1).
Architektura sprzętowa
Koncepcję systemu wraz z pilotem opi-
sanym w niniejszym artykule przedstawiono
na
rys. 2
.
Część sprzętową pilota podzielono na
trzy bloki (
rys. 3
):
• nadajnik podczerwieni zdolny nadawać
komendy IR w standardzie zgodnym z ob-
sługiwanym urządzeniem (w tym projek-
cie jest nim jednostka sterująca zestawem
muzycznym Technics ST-CH540),
Blok Pilota Podczerwieni
Budowa pilota sprowadziła się do wyko-
nania nadajnika podczerwieni, zdolnego do
WykAZ eLeMeNtÓW
rezystory (0603)
R1: 100
V
R7, R9: 220
V
R6: 330
V
R2...R5, R8: 10 k
V
kondensatory (0603)
C2, C3: 15 pF
C1, C4: 100 nF
C5, C6: 4,7
M
F/16 V (EUC-6032/28)
Półprzewodniki
IC1: ATMega8-AI
IC2: LD1117-33CV (3,3 V)
T1: BC847
IRLED1: L-934F3C
LED3: dioda LED
Inne
Q1: kwarc 8 MHz
X1: złącze AK500/2
SV1...SV8: gniazdo goldpin 2,54 mm
J1: złącze 0569564-1
Rys. 3. Architektura sprzętowa urządzenia
27
ELEKTRONIKA PRAKTYCZNA 8/2009
Projekty
Rys. 5. Moduł EM1000
Ramka danych (
rys.
9
) składa się z pre-
ambuły, którą tworzy ciągła fala nośna nada-
wana przez czas 4 ms. Następnie nośna jest
wyłączana na 1,6 ms, po czym następuje
nadanie komendy kodowanej w sposób
przedstawiony na rys. 8.
Komenda składa się z 48 bitów, z których
32 jest tzw. kodem grupy, a kolejnych 16 bi-
tów to kod rozkazu. Na końcu ramki przesyła-
ny jest znak kończący transmisję, którym jest
fala nośna włączona na czas 400 Ms. Przed
nadaniem kolejnej ramki należy odczekać
minimum 76 ms. Ponieważ czas nadawania
symbolu reprezentującego wartość 0 różni
się o symbolu 1, to długość ramki (w sensie
czasu) zależy od nadawanej komendy.
O ile sama implementacja protokołu nie
nastręcza wielu problemów, o tyle dotar-
cie do właściwych kodów komend stanowi
już spore wyzwanie (być może jest tylko
w przypadku kodowania stosowanego przez
Technics). Można go rozwiązać w dwoja-
ki sposób: zbudować odbiornik i dekoder
komend lub przechwytywać ramki oscy-
loskopem, mozolnie odczytywać i dekodo-
wać wyświetlony przebieg. W konkretnym
przypadku zestawu audio, który miał być
kontrolowany przy pomocy pilota, zawiodły
też różnego rodzaju internetowe publikacje
kodów komend. Najszybszą metodą okazał
Rys. 4. Schemat ideowy bloku zasilania i pilota IR
nadawania komend zgodnych z formatem
transmisji stosowanym przez irmę Technics.
Zarówno generator fali nośnej sygnału
podczerwieni, jak i samo kluczowanie sygna-
łu nośnej, realizowane są przez mikrokon-
troler. Częstotliwość fali nośnej (prostokąt
o wypełnieniu 50%) wynosi 32 kHz. Modu-
lację sygnału można porównać do modulacji
OOK, czyli On-Off Keying, często stosowanej
w systemach radiowych pracujących w pa-
śmie ISM. Polega ona na reprezentacji prze-
syłanej informacji bitowej poprzez obecność
lub brak fali nośnej. Na
rys.
8
przedstawiono
sposób kodowania „zera” i „jedynki”.
28
ELEKTRONIKA PRAKTYCZNA 8/2009
Pilot z WiFi
Rys. 10. Algorytm działania programu
modułu pilota
Do nadawania właściwych komend
podczernieni zastosowano maszynę stanów
napędzaną przerwaniem Timera 1. Przerwa-
nie to występuje co najmniejszy, wymagany
przez protokół czas, a więc co 400 Ms. Maszy-
na ma dziewięc stanów, które zgrupowano
w typ wyliczeniowy:
typedef enum technicsState_tag
{
TS_IDLE = 1,
TS_INIT,
TS_SEND_PREAMBLE_ON,
TS_SEND_PREAMBLE_OFF,
TS_SEND_GROUP,
TS_SEND_CODE,
TS_SEND_ONE,
TS_SEND_ZERO,
TS_SEND_STOP
} technicsState_t;
Tuż po starcie urządzenia maszyna po-
zostaje w stanie TS_IDLE, a każdorazowa
zmiana wartości stanu na TS_INIT powoduje
rozpoczęcie sekwencji maszyny. Do sterowa-
nia pilotem zastosowano komunikację szere-
Rys. 6. Wyprowadzenia modułu EM1000
Tab. 1 Zestawienie komend zaimplementowanych w module pilota
Lp.
Funkcja
Kod grupy
Kod rozkazu
1.
On/Off
0x40040538
0xBC81
2.
Volume +
0x40040538
0x0401
3.
Volume –
0x40040538
0x8481
4.
Tuner: Stacja 1
0x40040538
0x0835
5.
Tuner: Stacja 2
0x40040538
0x88B5
6.
Tuner: Stacja 3
0x40040538
0x4875
staniem kompilatora AVRGCC. Generator
fali nośnej używa Timera 0, w przerwaniu
którego naprzemiennie zmieniany jest stan
wyprowadzenia PORTC.0 sterującego tran-
zystorem kluczującym diodę podczerwieni.
Za kluczowanie fali nośnej odpowiedzialne
są dwie funkcje:
carrierOn()
i
carrierOff()
.
Ich wywołanie powoduje odpowiednio włą-
czenie lub wyłączenie przerwania Timera 0.
Rys. 7. Schemat montażowy płytki pilota
się oscyloskopowy
reverse engineering
, ale
tylko dlatego, iż zgodnie z założeniami po-
trzebna była kontrola włączania/wyłączania
zestawu, zmiana głośności oraz przełączanie
pomiędzy trzema stacjami radiowymi – jest
to niewiele prostych komend, na których
rozpoznanie nie trzeba poświęcić zbyt wie-
le czasu. Zestawienie kodów tych komend
umieszczono w
tab.
1
.
Firmware mikrokontrolera napisano zo-
stał w środowisku AVR Studio z wykorzy-
Rys. 8. Kodowanie zera i jedynki w standardzie Technics
Rys. 9. Ramka danych przyjęta w standardzie Technics
29
ELEKTRONIKA PRAKTYCZNA 8/2009
Projekty
na typy znakowe, konwersji czasu czy kalku-
lacji sum typu
md5
i
sha1
. Moduł wspiera
też największą liczbę obiektów w środowi-
sku TIDE. Z ciekawszych można wymienić
obiekt
fd.
(fl ash disk) dostarczający bardzo
wygodnego API do dostępu do wewnętrznej
pamięci Flash. Obiekt
lcd.
(Display) – API
do obsługi grai cznych wyświetlaczy ciekło-
krystalicznych. Obiekt
kp.
(Keypad) zdolny
obsługiwać klawiaturę macierzową. Jednak
najbardziej nas interesującym obiektem jest
wln.
(Wi-Fi) dostarczający podobnej funk-
cjonalności jak znany obiekt
net.
Jednak
operującej na interfejsie bezprzewodowym.
Aby można było go użyć należy do porty SPI
modułu EM1000 dołączyć moduł WA1000
(
rys. 11
).
Moduł ten dostarcza funkcjonalności
interfejsu bezprzewodowego 802.11b. Jest
List. 1. Główna pętla programu modułu pilota
while(1)
{
switch(IRdata)
{
case ‘1’:
sendIRcommand(GROUP_TUNER, CH1);
break;
case ‘2’:
sendIRcommand(GROUP_TUNER, CH2);
break;
case ‘3’:
sendIRcommand(GROUP_TUNER, CH3);
break;
case ‘+’:
sendIRcommand(GROUP_AMP, CODE_VOL_UP);
break;
case ‘-’:
sendIRcommand(GROUP_AMP, CODE_VOL_DOWN);
break;
case ‘o’:
sendIRcommand(GROUP_CTRL, ON_OFF);
break;
default:
break;
}
IRdata = 0;
_delay_ms(TRANSMISSION_DELAY);
}
List. 2. Linie odpowiedzialne za nadanie adresów MAC, IP, Gateway oraz maski podsieci
wln.mac=”0.0.102.103.104.2”
‘<--------- replace with random MAC (see „Setting MAC Address”)
wln.ip=”192.168.1.93”
‘<--------- select an IP address which is compatible with your network
wln.gatewayip=”192.168.1.1”
‘<--------- this too
wln.netmask=”255.255.255.0”
‘<--------- and this
nej dostrzeżemy ponadto kontroler warstwy
sprzętowej (PHY) i rmy Davicom (DM9000A-
EP), zewnętrzny oscylator kwarcowy oraz
zewnętrzną pamięć nielotną typu EEPROM
(2 kB). Sercem modułu jest mikrokontro-
ler (prawdopodobnie jest on oparty o rdzeń
’51 lub ’51 chodź producent nie podaje
wprost tej informacji) taktowany zegarem
aż 88 MHz. Posiada jeden port Ethernetowy
z funkcją Auto-MDIX (rozpoznawanie typu
podłączonego kabla: prosty czy skrosowa-
ny), 4 szybkie porty szeregowe, 512 kB Flash,
z której pierwsze 64 kB są zarezerwowane na
obraz systemu operacyjnego natomiast reszta
przeznaczona jest na aplikacje użytkownika
(z której również mamy programowy do-
stęp do pamięci fl ash). Moduł wyposażony
jest też w zegar czasu rzeczywistego (RTC)
oraz 54 linie GPIO. Część z nich posiada kil-
ka funkcji w zależności od bloku, z jakim są
połączone. Moduł posiada też specjalne linie
szybkiego interfejsu SPI służącego do komu-
nikacji z układami peryferyjnymi (jak np.
moduł Wi-Fi). Pośród linii znajdziemy też
wejścia przerwań zewnętrznych, oraz kilka
linii sygnalizacyjnych (część z nich opisana
jest wcześniej). Do programowania modułu
i debugowania kodu nie są wymagane żadne
dodatkowe narzędzia (np. JTAG) ponieważ
cała komunikacja ze środowiskiem develo-
perskim TIDE odbywa się poprzez połącze-
nie Ethernetowe.
Od strony programowej moduł wspie-
ra wszystkie typy danych: typy całkowite
o rozmiarach od jednego do czterech bajtów,
typ Real (4 bajty), typ łańcucha znakowego
(string), tablice oraz struktury/typy dei nio-
wane przez użytkownika. System operacyjny
(TiOS) dostarcza wiele procedur systemo-
wych min konwersji typów numerycznych
montowany na stosie na module EM1000 któ-
ry dodatkowo dostarcza dla niego zasilanie.
WA1000 wyposażony jest w antenę typu
chip
,
jak również posiada złącze typu
I-PEX MHF
służące do podłączenia zewnętrznej anteny.
List. 3. Uruchomienie modułu WA1000
romfi le.open(“wln_fwar.bin”)
x=wln.boot(romfi le.offset)
gową z użyciem UARTa, który w przerwaniu
oczekuje na nadchodzące znaki i przepisuje
je do zmiennej globalnej:
unsigned char IR-
data = 0;
Na
rys. 10
przedstawiono algorytm progra-
mu, a na
list.
1
kod głównej pętli programu.
Pętla, co czas zdei niowany przez stałą
TRANSMISSION_DELAY (80 ms), spraw-
dza zawartość zmiennej globalnej IRdata.
W przypadku, gdy UART odebrał znak roz-
poznawany przez instrukcję
switch
, nastę-
puje wywołanie funkcji
sendIRcommand()
z właściwymi kodami grupy i rozkazu. Funk-
cja ta tworzy kopię argumentów i zmienia
stan maszyny na TS_INIT, co rozpoczyna
proces generowania komendy przez diodę
poczerwieni.
Na tym etapie możliwe było przetesto-
wanie układu pilota z dowolnym kompute-
rem wyposażonym z port szeregowy. Kolej-
nym krokiem było wyposażenie urządzenia
w interfejs WLAN.
Oprogramowanie modułu EM1000
– TIBBO BASIC
Dysponując już wszystkimi elementami
sprzętowymi systemu można było przystąpić
do ostatniej części projektu: stworzenia i rm-
ware’u dla modułu EM1000.
Podstawowy kod źródłowy zawarto
w jednym pliku TIBBO Basic oraz w kilku
prostych plikach .html implementujących
interfejs użytkownika. Działanie programu
sprowadza się do przypisaniu odpowiednich
adresów MAC, IP, Gateway oraz maski pod-
sieci (
list. 2
).
Kolejnym krokiem jest uruchomienie
samego modułu bezprzewodowego. Kod
źródłowy programu odpowiedzialnego za
współpracę z modułem Wi-Fi pokazano na
list. 3
. Przy pomocy metody romi le.open
uzyskujemy wskaźnik na obszar pamięci
typu ROM. W tym przypadku był to plik
binarny dołączony do projektu. Plik ten za-
wiera obraz i rmware dla modułu WA1000.
Następna metoda (
wln.boot
) rozpoczyna
właściwy proces transmisji kodu do modułu
WA1000. Dopiero po tych czynnościach mo-
duł uaktywnia swój interfejs radiowy.
Jeśli poprzednie operacje przebiegły pra-
widłowo możemy przystąpić do próby po-
EM1000+WA1000
Jako baza do implementacji interfejsu
bezprzewodowego posłużył programowalny
moduł EM1000. Jest to najsilniejsza plat-
forma programowalna i rmy Tibbo. Moduł
z założenia jest przeznaczony do zaawan-
sowanych aplikacji sieciowych i nie jest do-
starczany z jakąkolwiek preprogramowaną
aplikacją (jak ma to miejsce w przypadku
prostszych modułów). Aplikację musimy
stworzyć sami.
Właściwie cały moduł zamyka się w jed-
nym chipie (ASIC). Na jego płytce drukowa-
Rys. 11. Wygląd modułu WA1000
30
ELEKTRONIKA PRAKTYCZNA 8/2009
Plik z chomika:
balart
Inne pliki z tego folderu:
AVT434.pdf
(354 KB)
AVT5375.pdf
(10227 KB)
AVT-1633.pdf
(5967 KB)
AVT-5118_cz1.pdf
(4814 KB)
AVT1525.pdf
(3791 KB)
Inne foldery tego chomika:
Katalog tranzystorów biopolarnych
Projekty
Zgłoś jeśli
naruszono regulamin