Moduł Bluetooth WT12 w praktyce, BascomAVR
[ Pobierz całość w formacie PDF ]
KURS
Moduł Bluetooth WT12
w praktyce, część 2
Przykład – bezprzewodowy
wyświetlacz LCD Bluetooth
W przykładowym pro-
jekcie bezprzewodowego
wyświetlacza LCD, zna-
ki do wyświetlenia mogą
być wysyłane za pośredni-
ctwem komputerowego ter-
minala. W tym przypadku
komputer musi być wypo-
sażony w tani moduł Blu-
etooth USB (na przykład
taki jak na
fot. 5
). Na
rys. 6
został przedstawiony
schemat ideowy bezprzewo-
dowego wyświetlacza, któ-
rym steruje mikrokontroler
ATmega88. Mikrokontroler
jest taktowany zewnętrz-
nym rezonatorem, które-
go częstotliwość umożli-
wia uzyskanie szybkości
115200 bodów przez inter-
fejs UART mikrokontrolera.
Z taką prędkością odbywa
się domyślnie komunikacja
z modułem WT12. Oczy-
wiście szybkość transmi-
sji modułu WT12 można
zmienić odpowiednimi ko-
mendami. W przykładzie
zastosowano moduł WT12
zainstalowany na adapterze
opublikowanym w minipro-
jektach w EP8/2007.
Elementy C1, R1 służą
do wytworzenia impulsu
zerującego moduł WT12
podczas włączenia napięcia
zasilającego. Mikrokontroler
z modułem WT12 jest za-
silany napięciem +3,3
V,
natomiast wyświetlacz LCD
wymaga zasilania +5
V.
Mikrokontroler z modułem
WT12 komunikuje się bez
sprzętowej kontroli prze-
pływu danych, dlatego li-
nie NRTS i NCTS zostały
ze sobą zwarte.
W ostatnich latach dał się zauważyć szybki rozwój różnych systemów do
bezprzewodowego przesyłania danych na odległość od kilku metrów do
kilkudziesięciu kilometrów. Prym wiodą standardy WiFi oraz Bluetooth,
w który wyposażony jest prawie każdy telefon komórkowy.
Dzięki łatwodostępnym modułom, bez większych problemów można stosować
we własnych aplikacjach interfejs Bluetooth, umożliwiający bezprzewodowe
przesyłanie danych na odległość do kilkudziesięciu metrów.
Na
list. 1
przedstawiono
program realizujący bezprze-
wodowy wyświetlacz LCD,
który został przygotowa-
ny w języku Bascom AVR.
W programie w pierwszej
kolejności są konfigurowane
parametry transmisji RS232,
typ mikrokontrolera oraz ro-
dzaj wyświetlacza LCD. Do
poprawnej konfiguracji mo-
dułu WT12, który będzie
Fot. 5.
70
Elektronika Praktyczna 10/2007
KURS
List. 1.
$regfile = „m88def.dat” ‚informuje kompilator o pliku dyrektyw
wykorzystywanego mikrontrolera
$crystal = 7372800 ‚informuje kompilator o częstotliwości rezonatora
kwarcowego
$baud = 115200 ‚informuje kompilator o prędkości transmisji
Config Lcd = 16 * 2 ‚konfiguracja organizacji znaków wyświetlacza LCD
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
‚konfiguracja pinów mikrokontrolera do których
dołączone zostały linie wyświetlacza
Dim Znaki As String * 17
‚zmienna znakowa
Cls
‚czyść LCD
Cursor Off
‚wyłączenie kursora
Wait 2
‚opóźnienie 2 sekundy
Print
Print „SET BT NAME BT–LCD”
‚nadanie nazwy modułowi WT12
Waitms 100
‚opóźnienie 100ms
Print „SET PROFILE SPP ON”
‚konfiguracja profili
Waitms 100
‚opóźnienie 100ms
Print „SET BT CLASS 001F00”
‚nadanie klasy modułowi WT12
Waitms 100
‚opóźnienie 100ms
Print „SET BT AUTH * 1234”
‚nadanie kodu PIN
Waitms 100
‚opóźnienie 100ms
Print „SET BT PAGEMODE 4 2000 1”
‚konfiguracja parametrów strony modułu WT12
Waitms 100
‚opóźnienie 100ms
Print „SET BT ROLE 0 F 7D00”
‚konfiguracja parametru ROLE
Waitms 100
‚opóźnienie 100ms
Print „SET CONTROL CD 00 0”
‚konfiguracja kontroli sygnału CD (carriel detect)
Waitms 100
‚opóźnienie 100ms
Print „SET CONTROL ECHO 0”
‚wyłączenie Echo modułu WT12
Waitms 100
‚opóźnienie 100ms
Print „SET CONTROL ESCAPE 43 00 1”
‚konfiguracja znaku ESCAPE
Waitms 100
‚opóźnienie 100ms
Print „RESET”
‚zerowanie modułu WT12
Lowerline
‚kursor do drugiej linii LCD
Lcd „Config BT OK”
‚wyświetlenie w drugiej linii LCD komunikatu
Wait 2
‚opóźnienie 2 sekundy
Home
‚kursor na początek LCD
Do
‚nieskończona pętla do–loop
Input „>” , Znaki Noecho
‚oczekiwanie na dane przez RS232 (bez echo)
Print
‚wysłanie znaku CR
If Asc(znaki) = 27 Then
‚jeśli odebrano znak ESC (ASCII 027) to
Home
‚kursor na początek LCD
Lcd „ „
‚czyści pierwszą linie LCD
Home
‚kursor na początek LCD
Print „OK CLS”
‚wysłanie przez RS232 komunikatu
Else
‚w przeciwnym razie
Lcd Znaki
‚wyświetlenie na LCD zawartości zmiennej Znaki
Print „OK”
‚wysłanie przez RS232 komunikatu
End If
Loop
End
‚koniec nieskończonej pętli
pracował jako układ
Sla-
ve
, wystarczy kilka, wyda-
nych jednorazowo komend.
W pierwszej kolejności wy-
syłana jest komenda
SET
BT NAME BT–LCD
. Komen-
da ta umożliwia nadanie
nazwy modułowi WT12.
W tym przypadku modułowi
BT zostaje nadana nazwa
BT–LCD
. Kolejna komen-
da
SET PROFILE SPP ON
uruchamia usługę profilu
SPP, związanego z emulacją
szeregowego portu RS232.
Komenda
SET BT CLASS
001F00
nadaje modułowi
BT klasę urządzenia. Kla-
sa urządzenia jest parame-
trem, który jest otrzymywa-
ny podczas wyszukiwania
urządzenia, wskazując na
jego typ i związane z nim
usługi. Klasy urządzeń moż-
na znaleźć w dokumentacji
protokołu Bluetooth. Komen-
da
SET BT AUTH * 1234
ustawia kod PIN modułu
wykorzystywanego podczas
autoryzacji połączenia. Brak
nadanego kodu PIN modu-
łowi WT12 będzie powo-
dował, że autoryzacja pod-
czas połączenia nie będzie
wymagana. Nadanie kodu
PIN umożliwia szyfrowane
Rys. 6.
72
Elektronika Praktyczna 10/2007
‚koniec programu
KURS
R
E
K
L
A
M
A
przesyłanie danych. Po spa-
rowaniu układów Bluetooth
poprzez wymianę kluczy
haseł, nie będą one już wy-
magane do dalszej komuni-
kacji pomiędzy urządzenia-
mi Bluetooth. W przykładzie
został ustawiony domyślny
PIN: 1234.
Komenda
SET BT PAGE-
MODE 4 2000 1
konfiguruje
sposób zachowania się mo-
dułu WT12 (jego tryb pra-
cy). To znaczy można skon-
figurować czy moduł WT12
będzie widoczny dla innych
urządzeń Bluetooth i czy
mogą się one z nim łączyć.
Są dostępne 4 tryby pracy
modułu WT12. W przykła-
dzie, moduł WT12 pracuje
w trybie 4, w którym moduł
WT12 jest widoczny dla
innych urządzeń i można
z nim nawiązywać połącze-
nia. Drugi parametr o warto-
ści 2000 określa jak długo
będzie trwała próba ustano-
wienia połączenia zanim zo-
stanie zasygnalizowany błąd.
Trzeci parametr o wartości
1 definiuje tryb skanowania
(dostępności w eterze) modu-
łu WT12. Wartość 1 okre-
śla kwant czasu wynoszący
1,28 sekundy, co który inne
urządzenie Bluetooth może
nawiązać połączenie z mo-
dułem. W przypadku zasila-
nia modułu z akumulatorów,
czas ten można wydłużyć,
co zmniejsza pobór prądu.
R E K L A M A
Rys. 7.
Rys. 8.
Elektronika Praktyczna 10/2007
73
KURS
Rys. 9.
Rys. 10.
Kolejna komenda –
SET
BT ROLE 0 F 7D00
– usta-
la rolę urządzenia BT, tzn.
czy moduł WT12 ma być
układem
Master
czy
Slave
oraz parametry połączenia.
Pierwszy parametr komen-
dy
ROLE
określa politykę
pracy
Master–Slave
modułu
WT12. W przykładzie war-
tość 0 oznacza, że moduł
pracuje jako
Slave
i urzą-
dzenia
Master
mogą z nim
nawiązywać połączenia.
Drugi parametr o wartości F
związany jest z udostępnie-
niem wszystkich możliwych
trybów oszczędzania ener-
gii specyfikowanych przez
standard Bluetooth. Ostatni
parametr jest wartością ti-
meout łącza Bluetooth. Ko-
menda
SET CONTROL CD
00 0
umożliwia włączenie
lub wyłączenie sygnalizacji
aktywnego połączenia przez
jedną z uniwersalnych linii
I/O. Pierwszy parametr jest
maską określającą, która li-
nia I/O będzie sygnalizowała
stan połączenia, natomiast
drugi parametr określa spo-
sób sygnalizacji połączenia.
Zerowe wartości parametrów
jak w przykładzie, powodują,
że ta funkcja detekcji połą-
czenia nie jest włączona.
Komenda
SET CONTROL
ECHO 0
jest związana
z funkcją echa przesyłanych
danych. Od wartości jednego
parametru zależy, jakie dane
będą zwracane przez opro-
gramowanie IWrap do ukła-
du hosta dołączonego przez
UART. Włączenie parametru
wysyłania echa umożliwia
monitorowanie stanu opro-
gramowania IWrap. W przy-
kładzie parametr związa-
ny z echem wynosi 0, co
powoduje wyłączenie jego
74
Elektronika Praktyczna 10/2007
KURS
Rys. 11.
przesyłania, gdyż nie jest to
w tym przypadku potrzebne.
Komenda
SET CONTROL
ESCAPE 43 00 1
posiada
trzy parametry i jest używa-
na do zmiany unikatowe-
go znaku umożliwiającego
przełączenie modułu z trybu
danych do trybu komend.
Komenda ta umożliwia rów-
nież konfigurację linii DTR,
za pośrednictwem której
można przełączać moduł
pomiedzy trybem danych
i komend, a nawet zakończyć
aktywne połączenie radiowe.
Pierwszy parametr określa
unikatowy znak, dzięki któ-
remu można zmienić tryb
pracy modułu. Wartość 43
(ASCII) oznacza, że za po-
mocą znaku „
+
” można
zmienić tryb pracy modu-
łu. Pozostałe dwa parametry
określają funkcję linii DTR,
która w przykładzie nie jest
wykorzystywana. Po wysła-
niu opisanych komend, mo-
duł WT12 jest już prawie
gotowy do pracy, gdyż nale-
ży jeszcze wysłać do niego
komendę zerowania
RESET
.
Elektronika Praktyczna 10/2007
75
[ Pobierz całość w formacie PDF ]