Techniki Mikroprocesorowe
dr inż. Roman Krasowski
Projekt
Zastosowanie technologii bluetooth oraz popularnych
mikrokontrolerów w sterowaniu urządzeniami życia
codziennego.
Michał Grad
Tomasz Warzecha
Technologie bezprzewodowe
W dzisiejszych czasach technologie bezprzewodowe zdobywają coraz większą
popularność, coraz częściej zakradają się do naszej codzienności. Trudno już sobie
wyobrazić świat bez telefonu komórkowego, telewizji, radio, czy rozmaitych pilotów
zdalnie sterujących różnymi urządzeniami. Czasy, w których wszystko spięte było kablami
odchodzą do lamusa, ustępując miejsca czasom mobilnym. Technologie bezprzewodowe
bez wątpienia stały się nieodłącznym elementem naszego życia, tak bardzo przenikając je,
że czasami przestajemy być świadomi ich obecności. Z pewnością bardzo ułatwiają nam
życie, lecz mają także inne rozliczne zalety w porównaniu do sieci kablowych, oto niektóre
z nich:
' Zapewniają przenośność, przez co umożliwiają użytkownikom dostęp do intratnych
informacji bez względu na lokalizację.
' Są szybkie i łatwe w instalacji nie potrzebujemy układać kabli, adaptować
otoczenia pod infrastrukturę.
' Są elastyczne w instalacji pozwalają stworzyć sieci w miejscach, w których
niemożliwe byłoby zastosowanie sieci kablowej.
' Są tańsze, co wiąże się również z szybkością i prostotą instalacji oraz z prostotą
rekonfiguracji i adaptacji sieci do nowych zadań.
' Są skalowalne, w prosty sposób można zwiększyć lub zmienić ich zasięg.
' Proste w obsłudze duża automatyzacja, oraz separacja technologii od
użytkownika. Klienci nie potrzebują posiadać zaawansowanej wiedzy na temat
użytej technologi, ponieważ sieci działają transparentnie.
' Aatwe w konfiguracji są prekonfigurowalne, bądz konfiguracja uproszczona jest
do absolutnego minimum.
Technologia bluetooth.
Bluetooth, jest jedną z technologii mobilnych, która weszła do naszego życia raptem
kilka lat temu. Nazwa wzięła się od przydomka króla duńskiego, Haralda Sinozębnego.
Zasłynął on tym, iż zjednoczył walczące ze sobą plemiona Danii, Szwecji i Norwegii.
Podobnie Bluetooth, który został zaprojektowany, aby "zjednoczyć" różne technologie jak:
komputery, telefonię komórkową, drukarki, aparaty cyfrowe. Logo Bluetooth łączy litery H
i B alfabetu runicznego. Najczęstszym jego zastosowaniem są telefony komórkowe, którym
zapewnia komunikację z komputerami, bądz między sobą, lub też pomiędzy innymi
urządzeniami. Oprócz telefonów, często z zastosowaniem bluetooth'a mamy miejsce w
słuchawkach bezprzewodowych, urządzeniach PDA, odbiornikach GPS, klawiaturach,
myszkach, czy różnego rodzaju pilotach. Technologia bluetooth pozwala na komunikację
krótkiego zasięgu, od kilkunastu, do kilkudziesięciu metrów. Operuje w paśmie 2.4GHz.
Bluetooth łączy się za pomocą sieci punkt wiele punktów. Oferuje transfery do 3Mbit/s.
Do łączności bluetooth nie jest konieczne, aby komunikujące się urządzenia się widziały,
ponieważ jest to technologia radiowa, która swobodnie przenika drobne bariery.
Wizja projektu.
W niniejszym projekcie chcielibyśmy przedstawić technologię bluetooth, jako
narzędzie wspomagające codzienne życie. Chcielibyśmy ukazać, iż Bluetooth nie tylko
może być używany w komunikacji między telefonami, lecz równie dobrze może mieć
zastosowanie w sterowaniu urządzeniami gospodarstwa domowego. Pragniemy
zaprezentować projekt, w którym za pomocą telefonu komórkowego, służącego jako
interfejs komunikacyjny sterujemy mikrokontrolerem połączonym z odbiornikiem
Bluetooth. Ów mikrokontroler używany jest natomiast do sterowania urządzeniami.
Przedstawiamy również możliwość podłączenia mikrokontrolera, lub samego modułu
Bluetooth do komputera PC, przez co możemy uzyskać dodatkową funkcjonalność.
Podstawowe elementy:
Moduł bluetooth.
Podstawowym elementem naszego projektu jest moduł Bluetooth Rayson BTM-112.
Jest to moduł klasy drugiej, który pozwala na komunikację do 10m. Jak się pózniej okazało,
po zastosowaniu anteny wzmacniającej 1.5dB, bluetooth pozwalał na komunikację na
większe odległości.
Atmega8L
Jest to popularny mikroprocesor firmy Atmel, który stanowi jakoby mózg naszego
projektu. W wersji L, czyli umożliwiający pracę pod napięciem 3.3V (zwykła wersja 5V),
ponieważ również moduł bluetooth był na takie napięcie przewidziany.
MAX3232
MAX3232 to układ skalujący napięcia. Potrzebny nam do przekształcania sygnałów
płynących z komputera do mikrokontrolera. W zależności od zastosowanych kondensatorów
skaluje do 3.3 lub 5V. Wybraliśmy 3.3V.
Oraz:
" Regulowany zasilacz prądu stałego z ograniczeniem prądowym, domowej roboty.
" Lutownica i akcesoria lutownicze.
" Telefon komórkowy Sony Ericsson K800i.
Budowa układów
Programator
Aby korzystać z naszego mikroprocesora, trzeba było go zaprogramować.
Postanowiliśmy więc zbudować programator, lecz nie w prostej wersji pod port równoległy,
lecz pod interfejs szeregowy RS232. Do tego skłoniło nas to, że taki programator nie
wymaga zewnętrznego zasilania, a programowanie za pomocą RS232 jest bardzo wygodne.
Na następnej stronie przedstawiamy schemat naszego programatora.
Od razu nasuwa się pytanie dlaczego na powyższym schemacie jest zewnętrzne
zasilanie, skoro naszą intencją budowy bardziej skomplikowanego układu było, aby właśnie
ten kłopot ominąć. Odpowiedz jest prosta niektóre komputery, najczęściej laptopy, mogą
mieć za niskie napięcia, wtedy należy wspomóc układ zewnętrznym zasilaniem.
Sami ręcznie zaprojektowaliśmy i wykonaliśmy płytkę, a następnie wlutowalismy
niezbędne elementy, których lista znajduję się poniżej.
Do programowania używaliśmy niewielkiego, lecz bardzo dobrego programu
PonyProg 2000.
Adapter / Płytka uruchomieniowa
Oprócz programatora potrzebny był nam również adapter pod mikrokontroler. W
niewiele bardziej skomplikowanej postaci adapter może również służyć jako płytka
uruchomieniowa. Zaprojektowaliśmy, wytrawiliśmy, zlutowaliśmy.
Wykaz części
Oto wykaz części potrzebnych do montażu programatora, oraz adaptera/płytki
uruchomieniowej:
" Stabilizator 78L05
" Kondensator 100nF
" 2 kondensatory 47uF
" 3 diody 1N4148
" 3 diody Zenera 5V1
" Rezystor 15k
" Rezystor 10k
" 3 rezystory 4k
" Tranzystor BC547
" Gniazdo DS-09
" Obudowa do gniazda DS-09
" Złącze WF-02S
" Listwa kołkowa pojedyncza
" 5 styków do obudowy
" Obudowa ML05
" Przewód wielożyłowy FLAT10 (cena za 1 m)
" Dwie wtyczki IDC-10
" Podstawka dedykowana
" 3 kondensatory 100nF
" Rezystor 10k
" Złącze WF-02S
Konwerter napięć.
Kolejnym układem adapterem, który stworzyliśmy była prosta płytka zawierająca
układ MAX3232, opcjonalnie służąca do podłączenia naszego modułu bluetooth, bądz
mikrokontrolera do komputera poprzez port rs232. Takie podłączenie może przebiegać
według następującego schematu:
Adapter bluetooth
Ostatnim naszym układem, który zaprojektowaliśmy i zlutowaliśmy był adapter
modułu bluetooth. Samodzielne przylutowanie modułu było dla nas jedną z najtrudniejszych
części projektu, ponieważ jest to moduł do lutowania powierzchniowego, jest bardzo mały,
oraz posiada 34 wyprowadzenia. Trudności potęgował fakt posiadania amatorskiej, niezbyt
dobrej jakości lutownicy.
Kwarc
Do naszej Atmegi8L podpięliśmy kwarc 7.3728MHz. Wybraliśmy taką wartość
częstotliwości celowo, ponieważ zapewnia bezbłędną transmisję dla wszystkich prędkości.
Alternatywą był kwarc odpowiednio dwukrotnie szybszy, lub wolniejszy, który również
idealnie współgrał z transmisją poprzez rs232. Atmega8L pozwala na zewnętrzny kwarc do
8MHz, a chcieliśmy uzyskać możliwie największą wydajność. Dlatego wybraliśmy właśnie
ten kwarc. Koniecznym było również ustawienie odpowiednich fuse bitów. Kwarc
podłączyliśmy opierając się na aplikacji atmegi:
rys. podłączenie kwarcu do Atmegi
Środowisko programistyczne
Jako kompilator C używaliśmy AVRgcc, wbudowany w środowisko WinAVR.
Natomiast jako środowisko w którym tworzyliśmy oprogramowanie mikrokontrolera
używaliśmy AVR Studio 4. Programator obsługiwaliśmy za pomocą porgramu PonyProg
2000.
Javę zapewniało nam JDK-1.6, korzystaliśmy z NetBeans'a 6.1, oraz Wireless Toolkit
wraz z emulatorami telefonów. Komunikację bluetooth za pomocą gwizdka usb
realizowaliśmy za pomocą oprogramowania BlueSoleil. Natomiast od strony telefonu
komórkowego zdani byliśmy na jego producenta, ponieważ implementacje javy są na
urządzeniach mobilnych bardzo różne.
Konfiguracja i Testowanie
Konfiguracja i testowanie układów oraz towarzyszące temu problemy.
Programator i adapter testowaliśmy za pomocą programu PonyProg, oraz prostej
aplikacji w assemblerze zapalającej diodę. Następnie przeszliśmy do języka C.
Programowanie okazało się bardzo wygodne, ponieważ nie było konieczne odpinanie
programatora od płytki uruchomieniowej.
Następnie zaczęliśmy testować komunikację poprzez rs232 z komputerem.
Napotkaliśmy tu na problem. Transmisja miała około 5% błędów (testowaliśmy przesyłając
tam i z powrotem pliki). Po zgłębieniu problemu okazało się, że problem leży w braku
zewnętrznego rezonatora. Wewnętrzny zegar Atmegi jest wyjątkowo niedokładny. Po
zastosowaniu kwarcu nasz problem zniknął transmisja w stu procentach była poprawna.
Przed zasadniczym programowaniem dokonaliśmy wstępnej konfiguracji modułu
bluetooth. Za pomocą poleceń AT nadaliśmy mu nazwę, oraz skasowaliśmy automatyczną
weryfikację kodem pin (sami opracowaliśmy własną autoryzację). Zapoznaliśmy się
również z różnymi opcjami bluetootha konfigurowalnymi przez wyżej wymienione
komendy AT.
Następnie natknęliśmy się na problem, z którym długo nie potrafiliśmy sobie
poradzić. Mianowicie nie dało się połączyć z modułem bluetooth za pomocą żadnego
urządzenia. Upatrywaliśmy błędów w układzie, lecz komendy AT działały a moduł
wydawał się pracować poprawnie. Telefony komórkowe widziały urządzenie bluetooth, lecz
nie widziały usługi Serial Port Profile, ani żadnej innej za pomocą której zamierzaliśmy się
komunikować. Po długich poszukiwaniach znalezliśmy telefon komórkowy, który
prawidłowo rozpoznawał nasz moduł. Niestety nie miał on wkompilowanych bibliotek
JSR-82, co nie pozwalało na programowe korzystanie z bluetootha. Znalezliśmy również
gwizdek USB prawidłowo rozpoznający nasz moduł, lecz oprogramowanie BlueSoleil
(testowane w różnych wersjach) nie pozwalało na połączenie komputera z naszym układem.
Gdy sytuacja wydawała się beznadziejna odkryliśmy, iż nasz moduł bluetooth potrafi
zainicjować połączenie z komputerem pracując w trybie master. Pozwoliło to nam na
przetestowanie transmisji, oraz upewniło nas o poprawności sprzętowej naszego układu. Ale
problem łączenia się z bluetoothem pracującym w trybie slave pozostał otwarty. Ideą
naszego projektu było, aby moduł pracował w tym trybie, i aby się z nim łączono, a nie on
sam nawiązywał połączenia. Problem rozwiązał się dość przypadkowo. Okazało się
bowiem, iż niektóre telefony potrafią współpracować z naszym modułem bluetooth,
rozpoznając nawet oferowaną przez niego usługę Serial Port Profile za pomocą JSR-82,
chociaż nie widzą jej z poziomu oprogramowania telefonu. Wybraliśmy telefon Sony
Ericsson K800i.
Kolejnym etapem naszego projektu było przetestowanie łączności telefon
komórkowy moduł bluetooth. Bluetooth podłączyliśmy poprzez układ max3232 do
gniazda rs232 komputera i sprawdzaliśmy odbierane znaki, które wysyłaliśmy za pomocą
prostego midletu na telefon komórkowy. Po udanej próbie sprawdziliśmy komunikację w
drugą stronę. Następnym krokiem było wpięcie pomiędzy komputer a moduł bluetooth
mikroprocesora. Gdy i ta próba komunikacji się powiodła, przetestowaliśmy łączność
telefon komórkowy bluetooth mikrokontroler. Testami pokryliśmy wszystkie możliwe
scenariusze. Układ działał poprawnie.
Aplikacja
Gdy mieliśmy pewność, że komunikacja działa, oraz nabyliśmy świadomości
ogólnych zasad dotyczących transmisji, zabraliśmy się za właściwe pisanie aplikacji.
Naszym celem, było napisanie midletu zapewniającego funkcjonalność pilota, czy też
narzędzia sterującego innymi urządzeniami. Nasza aplikacja powinna była również
zachowywać pewne standardy bezpieczeństwa. Dlatego pierwszą rzeczą, która ukazuje się
użytkownikowi po załączeniu midletu jest system logowania monitujący o hasło. Pózniej
następuje weryfikacja wprowadzonego hasła, i jeżeli została zakończona sukcesem, to
zostajemy przeniesieni do menu konfiguracji podłączonych do systemu urządzeń.
Konfiguracja, od strony sprzętowej, jest to ustawienie trybu pracy mikrokontrolera, więc
ustawienie danych portów jako wejściowe lub wyjściowe, czy danych pinów w stan wysoki,
czy niski. Na poziomie aplikacji mamy do wyboru urządzenia, które możemy włączać i
wyłączać . Podczas prezentacji pokazaliśmy działanie systemu na przykładzie zapalania
diod reprezentujących urządzenia zewnętrzne, oraz kręcenia silniczkiem w jedną, czy drugą
stronę. Należy zaznaczyć, że podłączone elementy nie są częścią docelowego systemu, są
jedynie przykładowymi reprezentantami jego elementów wybranymi na potrzeby
prezentacji. Docelowo najprawdopodobniej zamiast diod użyte będą tranzystory, lub inne
układy mocy sterujące urządzeniami codziennego życia, przykładowo takimi jak lampy,
wentylatory, czy ekspres do kawy lub mikrofalówka. Po włączeniu systemu program w
telefonie komórkowym łączy się z mikrokontrolerem za pomocą bluetootha i pobiera z
niego aktualną konfigurację, przez co możemy na bieżąco obserwować i zmieniać
ustawienia. Podczas projektowania aplikacji w głównej mierze postawiliśmy na prostotę jej
użytkowania, oraz możliwie największą elastyczność w konfiguracji. Tak, aby przeciętny
Kowalski mógł bezproblemowo korzystać z oferowanego systemu.
Podsumowanie
Projekt był dla nas nowym doświadczeniem. Już wcześniej mieliśmy do czynienia z
mikrokontrolerami, lecz nigdy nie na podobną skalę. Po raz pierwszy wykorzystaliśmy
technologię bluetooth, oraz połączyliśmy ze sobą komputer, telefon i mikroprocesor.
Napotkaliśmy na swojej drodze wiele problemów. Niektóre z nich zatrzymywały nas na
długi czas. Dwie rzeczy były dla nas szczególnie trudne przylutowanie maleńkiego
modułu bluetooth, oraz znalezienie odpowiedniego telefonu, który pozwoli na komunikację.
Niestety niewiele z nich jest do tego zdolnych. Telefon musieliśmy pożyczać, co również
było dla nas pewną niedogodnością. Śmiało można powiedzieć, że wiele się nauczyliśmy.
Poznaliśmy tajniki programowania nie tylko mikrokontrolerów, ale i również telefonów
komórkowych. Nabyliśmy także doświadczenie w budowaniu prostych układów
elektronicznych. Rozwiązywanie kolejnych problemów dawało nam satysfakcję i
motywację do dalszej pracy, a działający produkt był budującym uwieńczeniem naszej
pracy.
Wyszukiwarka
Podobne podstrony:
Podstawy projektowania systemów mikroprocesorowych, cz 3Podstawy projektowania systemów mikroprocesorowych, cz 8PROJEKT MIKROPROCPodstawy projektowania systemów mikroprocesorowych, cz 2Podstawy projektowania systemów mikroprocesorowych, cz 9Podstawy projektowania systemów mikroprocesorowych, cz 7Projekty AVT Mikroprocesorowy Miernik PojemnosciPodstawy projektowania systemów mikroprocesorowych, cz 5Projekt pracy aparat ortodontyczny ruchomywięcej podobnych podstron