diplomska naloga - core · vmesnik, ki uporablja philips-ov saj1000 krmilnik. colibri evalution...
TRANSCRIPT
Fakulteta za elektrotehniko,
računalništvo in informatiko
Smetanova ulica 17
2000 Maribor, Slovenija
MARKO KARLOVČEC
KOMUNIKACIJSKE POVEZAVE
SENZORIKE NA INVALIDSKEM VOZIČKU
DIPLOMSKA NALOGA
MARIBOR, JANUAR 2014
I
Diplomsko delo visokošolskega študijskega programa
KOMUNIKACIJSKE POVEZAVE SENZORIKE NA
INVALIDSKEM VOZIČKU
Študent: Marko Karlovčec
Študijski program: visokošolski strokovni, Elektrotehnika
Smer: Avtomatika
Mentor: red. prof. dr. Riko ŠAFARIČ
Somentor: doc. dr. Suzana URAN
Maribor, Januar 2014
II
Fakulteta za elektrotehniko, računalništvo in informatiko
Smetanova ulica 17 2000 Maribor, Slovenija
III
ZAHVALA
Za pomoč pri opravljanju diplomske naloge se
zahvaljujem mentorju, prof. Riku Šafariču in somentorici
Suzani Uran. Hvala za usmerjanje in nasvete pri izdelavi
diplomske naloge. Zahvala je namenjena tudi staršem, ki
so mi omogočili izvajanje tega študija in mi stali ob
strani.
IV
KOMUNIKACIJSKE POVEZAVE SENZORIKE NA
INVALIDSKEM VOZIČKU
Ključne besede: Ultrazvočni senzorji, Bluetooth WT12, CAN vodilo, colibri
evolution board, mobilna robotika
UDK: 681.521:007.5(043.2)
Povzetek
V diplomskem delu so opisane povezave senzorjev in ostalih modulov na invalidskem
vozičku. V začetku diplomskega dela sem opisal in predstavil strojno in programsko
opremo. Opisal sem tudi že obstoječe module ter njihovo povezovanje med seboj in
povezavo z računalnikom. Opisal sem CAN vodilo, saj preko njega so povezani in
komunicirajo vsi moduli. V nadaljevanju je opisan razvoj Bluetooth modula za brezžično
komunikacijo z osebnim računalnikom.
V
SENSOR COMMUNICATION OF WHEELCHAIR
Keywords: Ultrasonic sensors, Bluetooth, WT 12, CAN BUS, colibri evolution board,
mobile robotics
UDK: 681.521:007.5(043.2)
Abstract
This diploma work presents a connection of sensors and other modules in a wheelchair. I
presented the hardware and software in the first part of the thesis. I described the existing
modules and their integration with each other and connection to a PC. I have described
the CAN bus, because all modules are connected and communicate through it. The
following of the thesys describes the development of a Bluetooth module for wireless
communication with a PC.
VI
Kazalo
UPORABLJENE KRATICE ......................................................................................... VIII
1. UVOD ........................................................................................................................... 1
2. PREDSTAVITEV STROJNE IN PROGRAMSKE OPREME .............................. 3
2.1 OPIS INVALIDSKEGA VOZIČKA STORM3 EURO ....................................... 3
2.2 STROJNA OPREMA ............................................................................................. 4
2.2.1 Opis osnovne plošče COLIBRI EVALUTION BOARD Rev.2.1 .................... 4
2.2.1 Opis Colibri PXA320 modula ........................................................................... 6
2.3 PROGRAMSKA OPREMA ................................................................................... 8
2.3.1 Opis programske opreme Microsoft Visual Studio 2008 ................................ 8
2.3.2 Operacijski sistem Microsoft Windows CE 5.0 ................................................ 9
3. POVEZAVA ULTRAZVOČNIH SENZORJEV PREKO CAN VODILA .......... 14
3.1 CAN VODILO ....................................................................................................... 14
3.2 POVEZAVA MODULOV PREKO CAN VODILA .......................................... 17
3.2.1 Senzorski modul .............................................................................................. 20
3.2.2 Komunikacijski modul za sistem senzorjev .................................................... 23
3.2.3 Krmilni modul ................................................................................................. 27
3.3 PROGRAM ............................................................................................................ 28
3.3.1 Opis programa ................................................................................................ 28
3.3.2 Del programske kode ...................................................................................... 31
4. RAZVOJ BLUETOOTH MODULA ....................................................................... 34
4.1 OPIS BLUETOOTH KOMUNIKACIJE ............................................................ 34
4.1.1 Bluetooth varnost ............................................................................................ 35
4.1.2 Bluetooth verzije ............................................................................................. 36
4.2 BLUETOOTH WT12 ............................................................................................ 39
4.2.1 Programska podpora iWRAP ......................................................................... 41
4.2.2 Nastavitev iWRAP-a ....................................................................................... 43
4.3 NAČRT IN OPIS BLUETOOTH MODULA ..................................................... 44
5. TESTI ......................................................................................................................... 47
5.1 Testi Bluetooth povezave in senzorjev ................................................................. 47
5.2 Testi vožnje in rotiranja invalidskega vozička ................................................... 49
VII
6. SKLEP ........................................................................................................................ 52
VIRI .................................................................................................................................... 53
PRILOGE ........................................................................................................................... 54
SEZNAM SLIK ................................................................................................................. 54
SEZNAM TABEL ............................................................................................................. 55
NASLOV ŠTUDENTA ...................................................................................................... 56
KRATEK ŽIVLJENJEPIS ............................................................................................... 56
VIII
UPORABLJENE KRATICE
CAN Control Area Network, asinhrono področno serijsko vodilo,
ISO International Standardization Organization, Mednarodna organizacija za
standardizacijo,
OSI Open System Interconnection, odprt sistem notranjih povezav,
EDR Enhanced Data Rate, okrepljena podatkovna stopnja
GFSK Gaussian Frequency Shift Keying, Gaussov frekvenčni ključ
SPP Serial port profile, serijska profilna vrata
USB Universal Serial Bus, univerzalno serijsko vodilo
LCD Liquid Cristal Display, zaslon s tekočimi kristali
PIC Programmable Interface Controller, programirljiv mikrokrmilnik
SDRAM Synchronous dynamic random access memory, Sihroni dinamični bralno
pisalni pomnilnik
SODIMM Small Outline Dual In-line Memory Module, Majhen zunanji dvojni
spominski modul
EEPROM Electrically Erasable Programmable Read-Only Memory, električno
zbrisljiv in programirljiv bralni pomnilnik,
SD Secure Digital, digitalni izvor,
I/O Input/Output, vhod/izhod,
FTP Foiled twisted pair, parica,
VGA Video Graphics Array, analogni video računalniški standard,
UART Universal Asychronic Receiver/Transmitter, univerzalni asihroni serijski
sprejemnik in oddajnik,
ID Identification, identifikacija,
POS Point of Sale, blagajna.
1
1. UVOD
V življenju se vse več srečujemo z ljudmi z omejenimi motoričnimi sposobnosti, ki so
zaradi različnih vzrokov postali vezani na invalidski voziček. Takrat se človeku življenje
dobesedno obrne na glavo. Poleg vseh zdravstvenih težav, ki jih ima motorično omejen
človek, se pojavijo še težave z dostopnostjo oziroma mobilnostjo. Življenje v invalidskem
vozičku prinaša torej številne ovire. Za boljše in kakovostno življenje teh ljudi, smo
prispevali tudi mi s tem projektom.
Projekt Dinamik se je začel razvijati leta 2003 in sicer na pobudo študentov. S tem
projektom smo poskušali, paraplegikom in tetraplegikom omogočiti, da bodo lahko
invalidski voziček opravljali z glasovnimi ukazi, ker za krmiljenje ne morejo uporabljati
svojih rok. Motivacija za razvoj dodatnih senzorskih modulov, njihove povezave ter
brezžične komunikacije je nastala iz želje po večji varnosti in izboljšavi trenutnega
sistema.
Za varno vožnjo invalidskega vozička skrbi celoten sistem vgrajen na invalidski
voziček. Sistem sestavljajo senzorji razporejeni po invalidskem vozičku, ki zaznavajo ovire
ter njihovo razdaljo. Vrednosti razdalj senzorji pošiljajo sistemu, ki skrbi za varnost in
vožnjo samega invalidskega vozička. Varnostni sistem poskrbi tudi za takojšno zaustavitev
vozička, če uporabnik spregleda oviro pred sabo oziroma v smeri vožnje in se oviri preveč
približa, se voziček nemudoma zaustavi in tako prepreči trčenje in poškodbe.
Diplomska naloga podaja celotni pregled sistema vgrajenega na invalidski voziček, ter se
nato opredeli na podrobnejšo razlago povezav modulov, na dodatno narejenih senzorskih
modulov preko CAN vodila in izdelave brezžične Bluetooth povezave.
Pri našem projektu invalidskega vozička bomo uporabili osnovno ploščo Colibri
Evaluation Board z PXA320 procesorskim modulom in programsko orodje Visual
Studio.NET 2008 v katerem bo napisan program za simulacijo govornih ukazov in prikaz
vrednosti senzorjev.
2
Kratek pregled posameznih poglavij
V 1 poglavju uvoda je opisan problem tetraplegikov in namen projekta, kako
izboljšati kakovost njihovega življenja. Opisan je tudi način povezave senzorskih enot in
Bluetooth komunikacije.
V 2 poglavju opisujem predstavitev invalidskega vozička, ter uporabljeno strojno
in programsko opremo. Opisana je osnovna plošča Colibri Evaluation Board in njene
osnovne značilnosti ter modul Colibri XScale® PXA320. Opisano je tudi programsko
orodje Visual Studio.NET 2008 in programska oprema WinCE 5.0.
V 3 poglavju je opisana povezava ultrazvočnih senzorjev preko CAN vodila. Na
splošno je opisano CAN vodilo, ter sedem nivojev, ki so potrebni za uspešno
komunikacijo. V nadaljevanju je opisana CAN povezava in povezava med vsemi
vgrajenimi moduli na invalidskem vozičku. Opisan je tudi program za komunikacijo
sistema senzorjev in program na računalniku.
V 4 poglavju sem dal poudarek na Bluetooth komunikacijo, ter razvoj Bluetooth
modula za brezžično povezavo.
V 5 poglavju predstavljam test sistema senzorjev in Bluetooth komunikacije, na
kratko so opisani in prikazani rezultati. Testirali smo odzivnost invalidnega vozička pri
vožnji in rotiranju.
3
2. PREDSTAVITEV STROJNE IN PROGRAMSKE OPREME
2.1 OPIS INVALIDSKEGA VOZIČKA STORM3 EURO
INVACARE je danes vodilni proizvajalec izdelkov za domačo zdravstveno nego, ki
pomagajo živeti življenje ljudem s posebnimi potrebami. Invalidski voziček Storm3 Euro
je eden od mnogih produktov podjetja Invacare, uporabili pa smo ga tudi v našem projektu.
Invalidski voziček Storm3 Euro je električni voziček, katerega poganjata dva motorja moči
220 W, ki se napajata iz dveh 12 V 70 Ah svinčenih akumulatorjev, vezanih zaporedno.
Invalidski voziček ima indikatorsko krmilno ročico s katero krmilimo voziček.
Slika 2.1 : INVACARE invalidski voziček Storm3 Euro
4
2.2 STROJNA OPREMA
2.2.1 Opis osnovne plošče COLIBRI EVALUTION BOARD Rev.2.1
Colibri Evalution Board je proizvod Švicarskega podjetja Toradex, ki podpira celotno
kolekcijo SODIMM Colibri modulov. V našem projektu smo uporabili Colibri Evalution
Board Rev.2.1, ki za svoje delovanje potrebuje minimalno 7 V, oziroma maksimalno 24 V
enosmerne napetosti, omejene na minimalno 1A toka. Vgrajeno pa ima tudi zaščito
kratkega stika in zaščito za priključitev napačne polaritete vhode napetosti. Preko
standardnih priključkov lahko na Colibri Evalution Board priključimo različne uporabniške
vmesnike. Preko VGA priključka lahko priključimo standardni monitor ali pa preko
Touch-Screen priključka ekran na dotik. Tu sta tudi dva PS/2 priključka za priključitev
miške in tipkovnice, preko treh 3.5 mm priključkov pa lahko priključimo aktivne zvočnike,
slušalke ali mikrofon.
Slika 2.2 : Colibri Evalution Board blok diagram
5
Za komunikacijo imajo uporabniki na voljo USB Host in Client, Ethernet 10/100Mb s
standardnim RJ45 priključkom, dva kanala RS232, IrDA serijski vmesnik in pa CAN
vmesnik, ki uporablja Philips-ov SAJ1000 krmilnik. Colibri Evalution Board ima
razširitvena vrata za SD/MMS kartice, ki se lahko uporabljajo za shranjevanje dodatnih
naprav ali za dodatne funkcije v sistemu.
Slika 2.3 : Colibri Evalution Board Rev.2.1
6
2.2.1 Opis Colibri PXA320 modula
Colibri PXA320 modul je SODIMM 200 nožni računalniški modul, ki temelji na Intelovi
Marvell XScale tehnologiji. PXA320 deluje na frekvenci 806 MHz z zelo malo porabo
električne energije. Poleg vgrajenega notranjega 1 Gbajta (8 bit) FLASH spomina in 128
Mbajt-ov SDRAM-a (32bit), lahko uporabimo številne formate pomnilniških kartic kot so,
kompaktne spominske PCMCIA kartice in SD kartice (SDIO, MMC) za shranjevanje
podatkov. Modul omogoča tudi povezavo z LCD monitorji do maksimalne resolucije
1024x768 pik, ter tudi povezavo 4 žičnih zaslonov na dotik.
Slika 2.4 : Colibri PXA320 blok diagram
7
Colibri PXA320 modul omogoča direktno povezavo na CMOS/CCD slikovne senzorje. Za
predvajanje in snemanje zvoka poskrbi vgrajeni 16 bitni stereo kodek. Poleg vsega modul
poveča svoje komunikacijske zmogljivosti z 100 Mbitnim Ethernet vmesnikom in svojimi
USB vrati. Na voljo je tudi 16 bitno demultipleksirano sistemsko vodilo (DFI) za
razširitvene visoko pasovne vmesnike. Modul podpira različne operacijske sisteme kot so
WINCE, Enbedded Linux in QNX, vendar modul do kupca prispe z že naloženim
operacijskim sistemom WINCE 5.0 ali WINCE 6.0.
Slika 2.5 : Colibri PXA320 modul
8
2.3 PROGRAMSKA OPREMA
2.3.1 Opis programske opreme Microsoft Visual Studio 2008
Visual Studio 2008 je Microsoftovo razvojno okolje, ki se uporablja v razvoju spletnih
aplikacij, ter aplikacij z grafičnimi vmesniki. Z integriranimi preprostimi oblikovalskimi
možnostmi, ga uporabljamo za razvoj namiznih in mobilnih okolij Windows, za platforme,
ki poganjajo Silverlight, Mono in .NET Framework, strežnike SQL serverje ter za spletno
okolje. Visual Studio omogoča integracijo s programskimi jeziki:
• Visual Basic,
• Visual C#,
• Visual C++,
• JavaScript,
• Visual F#.
Omogoča številne možnosti podpore ostalih programskih jezikov Phyton in Ruby, kot tudi
XML/XSLT, HTML/XHTML in CSS. Visual Studio 2008 ima svoje prednosti ki so:
• Rapid Application Development (hitri razvoj aplikacij) nudi možnost
razhroščevanja in kodiranja, prinaša izboljšan jezik, podatkovne funkcije, ki
pomagajo za velik preboj v produktivnosti.
• Team System 2008 (ekipni sistem 2008) je integrirana rešitev pri upravljanju
življenjskega cikla aplikacij, vključuje navodila, procese in orodja, s katerimi si
lahko vsak član ekipe izboljša svoja znanja in med seboj bolj učinkovito sodelujejo
in si s tem zmanjšajo čas za rešitev.
• Razvijalska platforma Sistema Office so orodja, ki omogočajo vizualno
oblikovanje ukaznih trakov, dodajanje in prilagajanje podoken z opravili, s tem si
lahko razvijalci razširijo obstoječe funkcionalnosti aplikacij Office. Prav tako lahko
izkoristijo oblikovanje ukaznih trakov v Microsoft Office ter dodajanje prilagojenih
podoken z opravili, s čimer razvijalci razširijo obstoječe funkcionalnosti aplikacij.
9
2.3.2 Operacijski sistem Microsoft Windows CE 5.0
Windows CE 5.0 je Microsoftov operacijski sistem za mobilne naprave. Windows CE 5.0
je odprt, prilagodljiv 32- bitni večopravilni operacijski sistem, ki združuje napredne, realne
in zanesljive tehnologije. Sistem omogoča široko izbiro za izgradnjo naprav, ki so po
navadi ločene od drugih računalnikov, namenjene so specifični uporabi, zahtevajo majhen
operacijski sistem, s točno definiranimi odzivi na prekinitve.
Primeri teh naprav so:
� POS (ang. Point of Sale) terminali,
� komunikacijska vozlišča,
� industrijski krmilniki in tako naprej.
Windows CE vsebuje funkcionalnost, ki jo potrebujemo za izgradnjo, pri iskanju in
odpravljanju napak, ter pri naložitvi operacijskega sistema na po meri narejeno napravo.
Windows CE je bil zasnovan z željo in namenom, da bi ponudili sistem, ki upošteva
značilnosti vgrajenih sistemov. [1]
Glavne lastnosti Windows CE so:
� operacijski sistem je majhen,
� realno/časovna funkcionalnost,
� poraba sistemskega pomnilnika je majhna,
� prilagodljivost posamezni strojni opremi,
� varnost,
� hiter razvoj,
� sestavljen je iz velikega števila komponent, ki jih izberemo sami in vključimo v
operacijski sistem, ki ga želimo za napravo,
� široka podpora mikroprocesorjev (ARM, NEC, Philips,Toshiba MIPS, Motorola
PowerPC),
� nezahteven do strojne opreme,
� vgrajeni standardni komunikacijski protokoli,
� razširjena podpora naprav, kot so: tipkovnice, miške, zasloni na dotik, USB
naprave, mrežne naprave, modemi, zvočne naprave, tiskalniki, naprave za
shranjevanje podatkov.
10
Windows CE definiramo kot tri različne tipe platform. Razlike so v stabilnosti in varnosti
sistema. [2]
Te platforme so:
� odprta platforma,
� zaprta platforma in
� polodprta platforma.
Odprta platforma
Najpogosteje Windows CE uporabljamo kot odprto platformo slika 2.6, kar pomeni da je
uporabniku vidna standardna lupina sistema Windows CE. Lahko izvajamo več aplikacij,
ki so pred nameščene ali pa jih uporabnik namesti sam.
Prednosti:
� maksimalna interakcija z uporabniki,
� dostop do sistemskih nastavitev,
� velika prilagodljivost.
Slabosti:
� nepravilne nastavitve konfiguracij končnega uporabnika,
� nalaganje dodatnih nekompatibilnih nezaželenih aplikacij.
Slika 2.6 : Primer Windows CE pri odprti platformi
11
Zaprta platforma
Vedno več Windows CE uporabljamo kot zaprto platformo razvidno na sliki 2.7, kar
pomeni da je končnemu uporabniku glavno ogrodje sistema skrito in ni na voljo. Vsako
nameščanje novih aplikacij ni možno. V praksi so to raznorazni instrumenti, ki jih
uporabljamo v različne namene (od industrijskih krmilnikov do merilnih instrumentov).
Prednosti:
� pregledno, nadzorovano okolje,
� hiter in direkten dostop do končne aplikacije.
Slabosti:
� v dobro zasnovanem in zavarovanem sistemu, jih ne bi smelo biti.
Slika 2.7 : Primer Windows CE pri zaprti platformi
Polodprta platforma
Na sliki 2.8 je prikazan primer polodprte platforme. Polodprta platforma se v praksi
uporablja najmanj. Glavno ogrodje uporabniškega vmesnika je skrito. Iz aplikacije
glavnega okna lahko poganjamo večje število poljubno izbranih podprogramov. V praksi
se ta platforma pokaže kot zelo učinkovita, saj končnega uporabnika omejuje, vendar pa
ima kljub temu dostop do nekaterih sistemskih nastavitev.
12
Prednosti:
� izvajamo lahko več aplikacij,
� dostop do končnih aplikacij je direkten,
� pregledno, nadzorovano okolje,
� možen dostop do sistemskih menijev.
Slabosti:
� v dobro zasnovanem in zavarovanem sistemu, jih ne bi smelo biti.
Slika 2.8 : Primer Windows CE pri polodprti platformi
Windows CE 5.0 ima na voljo 4 GB virtualnega naslovnega prostora. Njegovo največje
število procesov je 32. To je posledica ureditve pomnilnika, kjer ima jedro na voljo 2 GB
pomnilnika, uporabniški del pa je prav tako oskrbljen z 2 GB pomnilnika razvidno iz slike
2.9. Od tega je 1 GB skupnega pomnilnika, torej imajo vsi procesi skupaj 1 GB
navideznega pomnilnika. Pomnilnik je razdeljen na rezine po 32 MB pomnilnika, to
pomeni, da je vseh rezin 32. Vsakemu procesu pripada ena rezina, zato je največje možno
število procesov 32. Takšna struktura je bila zasnovana že pred nekaj leti in takrat je bilo
32 MB navideznega pomnilnika dovolj, za naprave, ki so takrat bile na tržišču. Za današnje
naprave ki so na tržišču pa bi lahko pomnilnik bil nekoliko večji, saj takšna ureditev
pomnilnika je na robu spremenljivega za današnje naprave. Windows CE 6.0 uvaja nov
13
koncept, kjer so te omejitve odstranjene in bo zadostil potrebam mobilnih naprav za
naslednje generacije. [3]
Slika 2.9 : Ureditev pomnilnika v Windows CE 5.0
14
3. POVEZAVA ULTRAZVOČNIH SENZORJEV PREKO
CAN VODILA
3.1 CAN VODILO
CAN vodilo (ang.Controller Area Network - področno omrežje krmilnikov) je patentiralo
in razvilo podjetje Robert BOSCH leta 1987 v Nemčiji. Vodilo CAN je sprejelo zelo
veliko proizvajalcev, kljub zelo veliki konkurenci. Danes pa je vodilo CAN zavzel glavni
omrežni sistem v skoraj vseh avtomobilističnih proizvodnjah. Izdelki uporabljajo CAN kot
dopolnilo z drugimi omrežnimi sistemi. Zaradi zanesljivih prenosov podatkov, integrirano
detekcijo napak in cenovno ugodne krmilnike, se dandanes uveljavlja tudi izven
avtomobilistične industrije. CAN vodilo je serijsko področno komunikacijsko omrežje, ki
je namenjeno za povezavo krmilnih modulov, aktuatorjev in senzorjev, ter ima nadzor in
diagnosticiranje procesov, ki delujejo v realnem času.
Glavne lastnosti CAN vodila:
� integrirana detekcija napak,
� zanesljiv in visok prenos podatkov (od 100 kbit/s do 1 Mbit/s),
� avtomatska sinhronizacija,
� velike dolžine komunikacijskega vodila ( do 1 km),
� kratka sporočila ( do 8 zlogov na sporočilo),
� dostopnost več nadzornih naprav na vodilo,
� naključni dostop na vodilo s postopkom izogibanja trkom (collision avoidance),
� optimizirano EMC (electromagnetic compatibility) obnašanje.
Implementacijo CAN v integrirani obliki razdelimo na osnovno CAN (Basic CAN) in
popolni CAN (Full CAN), razvidno na sliki 3.1.
15
Slika 3.1 : Integrirana oblika CAN-a
Značilnosti osnovnega CAN modula:
� en sklad za pošiljanje,
� en sklad za sprejemanje,
� jedro procesorja in CAN modul sta v neposredni bližini integrirana,
� en filter za dohodna sporočila,
� potrebuje se programski postopek za izbiro med dohodnimi sporočili.
Značilnosti popolnega CAN modula:
� filtriranje dohodnih sporočil je razširjeno,
� prostor za sporočila je odvisen od proizvajalcev,
� izveden strežnik (server) za sporočila,
� razširjena prepoznava napak,
� nastavljivi poštni nabiralniki-mailbox-i.
Vodilo CAN nudi cenovno ugodno in trpežno omrežje, ki pomaga CAN napravam pri
medsebojni komunikaciji. Procesor ima en sam vmesnik (CAN), ki omogoča komunikacijo
z ostalo periferijo ( kot so npr. senzorji, aktuatorji in drugi moduli) in ne uporablja svojih
I/O enot (analognih in digitalnih) pri komunikaciji z ostalimi napravami v sistemu. To je
tudi največja prednost CAN vodila. V avtomobilski industriji to pomeni zmanjšanje
stroškov in teže v avtomobilih.
16
Slika 3.2 : Prednosti pri CAN vodlu
CAN vodilo je ISO (International Standardization Organization) definirano serijsko vodilo
za komunikacijo in opisuje potovanje informacij med napravami in omrežjem v skladu z
OSI (Open System Interconnection), ki je 7 plastno definiran. Pri uspešni komunikaciji
zadostujejo le tri plasti. To so prva fizični plast, druga podatkovna plast in sedma
aplikacijska plast.
� Fizična plast: Razdelimo jo lahko na tri podplasti: PLS, MDI in PMA podplast.
PLS (Physical Signaling) izvaja bitno kodiranje in dekodiranje, ter izvaja bitno
časovno usklajevanje. MDI (Medium Dependent Interface) nadzoruje priključke.
PMA (Physical Medium Attachment) pa prevzema karakteristike gonilnikov.
� Podatkovni nivo: Njegova naloga je, da zagotavlja varni prenos podatkov med
napravami, ki komunicirajo v enakem fizičnem nivoju. Pri tem pa ves čas ugotavlja
napake pri procesu in jih odpravlja ter izvršuje nadzor nad sprejemanjem in
oddajanjem. Prav tako pa upravlja dostop do prenosnega medija. Podatkovni nivo
pa delimo še na krmilno logično povezavo LLC in MAC. LLC (ang. Logical Link
Control) filtrira sporočila, javlja preobremenite in upravlja Wake-up (oživetje).
MAC (ang. Media Access Control) pa poskrbi za okvirjanje podatkov, iskanje
napak, javljanje napak, potrjevanje sporočil, serijsko paralelno pretvorbo in
krmiljenje dostopa do vodil. MAC je protokol v CAN komunikacijski strukturi in
bazira na CSMA/CA (ang. Carrier Sense Multiple Access with Collision
Avoidance) mehanizmu ki poskrbi za izogibanje trkov, zaznavanje nosilcev in
večkratni dostop.
17
� Aplikacijski nivo: Tukaj se naredijo komunikacijske povezave z aplikacijskim
protokolom višjega nivoja. Aplikacijska plast vsebuje programe, ki so zadolženi za
podatkovno izmenjavo med aplikacijami in komunikacijo. Služi kot vmesnik med
lokalnimi procesi in programi ter po informacijskimi viri porazdeljenimi po
omrežju. [15]
Slika 3.3 : OSI referenčni model
3.2 POVEZAVA MODULOV PREKO CAN VODILA
Na invalidskem vozičku je celotni sistem senzorjev (senzorskih modulov) in krmilnih enot
povezanih preko CAN vodila. Za to povezavo smo se odločili zato, ker smo morali med
seboj povezati več modulov in oddajne periferije, ter zagotoviti odziv v realnem času.
CAN vodilo nam to omogoča, saj ima dostopni čas do vodila za spreminjanje podatkov
nekje okoli 100 µs. Senzorske enote, komunikacijski modul sistema senzorjev, krmilna
enota in Bluetooth modul so med seboj povezani z FTP (foiled twisted pair) kablom. Preko
FTP kabla poteka CAN komunikacija med moduli, hkrati pa se moduli preko njega
napajajo. CAN vodilo je na vsakem koncu zaključen z uporom upornosti 120 Ohm to je
razvidno na sliki 3.4. Napetostni nivojni signal je omejen na 5 V in omogoča visoko
odpornost na različne motnje.
18
Slika 3.4 : CAN vodilo
19
Slika 3.5 : Shema povezav modulov na invalidskem vozičku
20
3.2.1 Senzorski modul
V našem projektu smo uporabili 12 senzorskih modulov za zaznavanje ovir okoli
invalidnega vozička. Na začetku je bilo na vozičku vgrajenih le šest modulov z SRF04
senzorji, kar pa je bilo premalo da bi zagotovili popolno varnost okoli celotnega
invalidskega vozička. Zato smo dodatno izdelali še šest senzorskih modulov vendar tokrat
z SRF08 ultrazvočnimi ( v nadaljevanju UV) senzorji. UV senzorja sta med seboj dokaj
enaka, vendarle je SRF08 korak pred svojim predhodnikom, saj ima veliko manjšo
energijsko porabo, njegov doseg in kot žarka pa bistveno večji. Poleg vsega pa SRF08
podpira komunikacijo preko I2C vodila.
Ultrazvočni senzor SRF04:
� napajalna napetost: 5V,
� tok: 30mA Tipično 50mA maksimalno,
� frekvenca: 40 kHz,
� maksimalni doseg: 300 cm,
� minimalni doseg: 3 cm,
� občutljivost: 3cm na > 2 m,
� vzbujalni pulz: 10µS Min. TTL signal,
� dimenzije: 43 mm x 20 mm x 17 mm.
Slika 3.6 : SRF04 ultrazvočni senzor
21
Ultrazvočni senzor SRF08:
� napajalna napetost: 5V,
� tok: 15mA Tipično 3mA Stanje pripravlenosti,
� frekvenca: 40 kHz,
� maksimalni doseg: 600 cm,
� minimalni doseg: 3 cm,
� občutljivost: 3cm na > 2 m,
� vzbujalni pulz: 10µS Min. TTL signal,
� povezava: I2C standard,
� dimenzije: 43 mm x 20 mm x 17 mm.
Slika 3.7 : SRF08 ultrazvočni senzor
22
Naš senzorski modul vsebuje poleg UV senzorja še srce modula Microchip-ov
mikrokrmilnik PIC18F458 (v nadaljevanju PIC) in pretvornik MCP2551, ki služi kot
oddajno sprejemna enota za CAN vodilo. V vsakem PIC-u je definiran filter z določenimi
naslovi posamezne senzorske enote. Ti filtrirajo sporočila in sprejmejo le sporočila, ki so
namenjena tej senzorski enoti, oziroma sprejme sporočilo z enakim določenimi naslovi, kot
jo ima senzorska enota. Senzorski modul deluje tako, da PIC neprestano preverja sporočila,
ki potujejo po CAN vodilu. Ko preko filtra zazna sporočilo, ki je namenjeno njemu,
preveri vrednost UV senzorja. UV senzor v tem času ko PIC čaka na sporočilo neprestano
zaznava razdaljo do ovire in jo pretvarja v razrede, ki jih pošilja do PIC-a. Ko PIC prebere
vrednost UV senzorja oziroma razred oddaljenosti, ga preko pretvornika MCP2551 pošlje
na CAN vodilo, do glavnega komunikacijskega modula, od koder je tudi zahtevano
sporočilo prispelo.
Slika 3.8 : Senzorski modul
23
3.2.2 Komunikacijski modul za sistem senzorjev
Komunikacijski modul je glavna enota v sistemu senzorjev, ki skrbi za komunikacijo med
senzorskimi moduli in računalnikom. Komunikacijski modul vsebuje glavni PIC, ki
poskrbi za glavno komunikacijo. Vgrajeno je tudi RS232 vodilo, preko katera PIC
komunicira z računalnikom. Oddajno sprejemna enota MCP2551 pa poskrbi za
komunikacijo po CAN vodilu. PIC pošilja sporočila v neskončni zanki vsakemu
senzorskemu modulu posebej in od njega zahteva odgovor. Ko dobi zahtevani odgovor
ponovno pošlje sporočilo naslednjemu senzorskemu modulu in tako naprej. Vsako
sporočilo ki ga glavni PIC pošlje, vsebuje ustrezni naslov, tako da lahko posamezni
senzorski modul prepozna katero sporočilo je namenjeno njemu oziroma ni namenjeno. V
odgovorih ki jih sprejme od PIC-ev senzorskih modulov se nahaja ID (identifikacijsko
število) sporočila in podatki, ki so bili odčitani iz senzorja. Glavni PIC prebere ID in
podatke iz senzorja, ter jih skupaj pošlje preko RS232 vodila na računalnik. Obe vrednosti
sporočil je potrebno pošiljati skupaj, da ne pride do napačne razlage poslanih podatkov. Da
pa si PIC-i nebi sami sebi pošiljali sporočila, smo morali poslane ID-je definirati različno
od filtrov senzorskih PIC-ev. Sistem senzorjev ima tudi varnostno funkcijo za
preprečevanje trkov invalidskega vozička z oviro. Če senzorski modul pošlje vrednost
senzorja 33, kar pomeni da je ovira od vozička oddaljena manj kot 10 cm, se voziček
avtomatsko ustavi. Varnostna funkcija ima prednost pred vsemi ostalimi ukazi.
Slika 3.9 : Senzorski komunikacijski modul
24
Mikrokrmilnik PIC18F458
Na vseh modulih so vgrajeni Microchipovi mikrokrmilniki PIC18F458. Za ta PIC (ang.
Programmable Interface Controller) smo se odločili predvsem iz razloga, ker ima vgrajen
modul za CAN vodilo. PIC v svojem integriranem vezju skriva procesno enoto (CPE),
programski pomnilnik, podatkovni pomnilnik in vhodno/izhodne naprave. Njegovo
uporabnost pa določa vanj vpisani program.
OSNOVNE LASTNOSTI PIC18F458:
� vsebuje notranji 4MHz do 10MHz oscilator,
� napajalna napetost 5V,
� maksimalna frekvenca zunanjega oscilatorja je 40 MHz,
� vsebuje 32 kbajtov programskega polnilnika FLASH, 16384 bajtov podatkovnega
pomnilnika, 1536 bajtov pomnilnika SRAM, 265 bajtov električno izbrisljivega
pomnilnika (EEPROM),
� 33 vhodno izhodnih priključkov, ki jih programsko krmilimo (PORT A, B, C, D, E),
� ima 8 analognih vhodov za analogno digitalno pretvorbo,
� podpira sinhrone in asinhrone I2C, RE232, SPI vmesnike,
� CAN modul ( podpira CAN 2.0B, hitrost vodila sega do 1 Mb/s, ima 6 popolnoma
nastavljivih 29 bitnih filtrov, prioritete za sprejemne filtre, 29 bitno identifikacijsko
polje, 8 bajt-no dolgo sporočilo, vsebuje dva sprejemna pomnilnika in tri oddajne
pomnilnike s prioritetami).
Slika 3.10 : Razporeditev priključkov PIC-a v PDIP ohišju
25
Oddajno sprejemna enota MCP2551
Mikrokrmilnik PIC potrebuje za komunikacijo po CAN vodilo še vmesno enoto za
prilagoditev signala vodilu CAN. V našem primeru je to Microchipova oddajno sprejemna
enota MCP2551. MCP2551 ima prenos podatkov do hitrosti 1 Mb/s in je lahko povezan z
maksimalno 112 vozlišči. Napetostni nivo CANH in CANL pa se lahko povzpne do ±42 V.
Na vseh priključkih pa ima tudi zaščito pred visokonapetostnimi viri do 4kV, na CANH in
CANL priključkih pa kar do 6kV. MCP je priključen med PIC i CAN vodilo. Na eni strani
komunicira z PIC-em preko RXD in TXD priključkov. Na drugi strani pa z CAN vodilom
preko CANH in CANL priključkov.
Slika 3.11 : Razporeditev priključkov MCP2551 v PDIP ohišju
26
Izhodna priključka sta CANH in CANL. Vsak izhod ima med komunikacijo lahko
dominantno stanje ali recesivno stanje. Za dominantno stanje na izhodu, pripeljemo na
vhodni priključek TXD logično '0', za recesivno stanje pa na vhodni priključek RXD
pripeljemo logično '1'.
Slika 3.12 : Dominantna in recesivna stanja CAN vodila
27
3.2.3 Krmilni modul
Krmilni modul simulira krmilno palico na invalidnem vozičku in generira potrebne signale
za krmiljenje vozička. Modul je sestavljen iz PIC mikrokrmilnika, MCP2551 oddajno
sprejemne enote in štirih digitalnih potenciometrov v dveh integriranih vezjih DS1868. PIC
komunicira preko CAN vodila z komunikacijskem modulom sistema senzorjev in hkrati
pošilja podatke integriranima vezjema DS1868 in vozičku. Vsako integrirano vezje ima v
sebi dva digitalna potenciometra, s katerimi se generirajo signali napetostnih nivojev za
krmiljenje vozička. Generirane signale PIC pošilja invalidnemu vozičku, s katerimi ga
krmili. Na sliki 3.13 je viden krmilni modul, na sliki 3.14 pa diagram priključkov
integriranega vezja DS1868.
Slika 3.15 : Razporeditev priključkov DS1868 v PDIP ohišju
Slika 3.16 : Krmilni modul
28
3.3 PROGRAM
3.3.1 Opis programa
Program je napisan v programskem jeziku C# v Microsoft-ovem programskem okolju
Visual Studio 2008. Program komunicira z invalidskim vozičkom preko Bluetooth
brezžične povezave in na eni strani prikazuje vrednosti senzorjev razporejenih po vozičku,
na drugi strani simulira govorne ukaze kot so NAPREJ, NAZAJ in ostali ukazi. Program je
dokaj enostaven za uporabnika. Ko odpremo program, najprej v zgornjem levem kotu v
polju RS232 Nastavitve izberemo ustrezna COM vrata preko katerih bomo komunicirali v
okencu Vrata. V okencu Baud Rate pa vpišemo hitrost prenosa v našem primeru 57600
zlogov na sekundo in s klikom na gumb Open odpremo vrata in se povežemo z
invalidskem vozičkom. V primeru da so vse nastavitve kot morajo biti, se v spodnjem
levem polju Senzorji, začnejo izpisovati razredi vsakega senzorja posebej v svojem
okencu. Razredi senzorjev so vidni v tabeli 3.1. Če želimo prekiniti povezavo ali
spremeniti bodisi vrata ali hitrost prenosa, s klikom na gumb Close prekinemo povezavo in
zapremo vrata COM. V zgornjem desnem kotu se nahaja polje Ukazi in hitrost premika.
Tukaj lahko v prvem okencu izbiramo hitrost vozička med 1,2 in 3. V spodnjem delu pa
preko gumbov Naprej, Nazaj, Levo, Desno, Stop in ostalih, simuliramo govorne ukaze in
invalidnemu vozičku pošiljamo Hex vrednosti, ki so določene za posamezne ukaze. V
tabeli 3.2 so vidne Hex vrednosti ukazov za vodenje. Za ekipo iz Bosne in Hercegovine, ki
je sodelovala v projektu pa smo dodali v program še dve funkcije. Funkcijo za rotiranje
vozička za poljubni kot in funkcijo za vožnjo vozička naravnost, za rotiranje v levo in
desno, za nek določeni čas. Zgoraj v polju Rotiraj za [°], lahko vpišemo poljubni kot v
stopinjah in z klikom na gumb Rotiraj v levo ali Rotiraj v desno poženemo voziček v
rotiranje za vpisani kot. V spodnjem desnem kotu pa je okence Čas [ms], v katerega
vpišemo želeni čas vožnje ali rotiranja v ms.
29
Slika 3.17 : Začetno okno programa
30
Razred Razdalja od (cm)
Razdalja do (cm)
33 0 10
1 10 20
2 20 30
3 30 40
4 40 50
5 50 60
6 60 70
7 70 80
8 80 90
9 90 100
10 100 120
11 120 140
12 140 160
13 160 180
14 180 200
15 200 250
66 250 300
Tabela 3.2 : Tabela razredov senzorja
IME UKAZA HEX KODA UKAZA
NAPREJ 0x01
NAPREJ + LEVO 0x05
NAPREJ + DESNO 0x09
LEVO 0x08
DESNO 0x04
NAZAJ 0x02
NAZAJ + LEVO 0x0A
NAZAJ + DESNO 0x06
STOP 0x00
Tabela 3.3 : Ukazne komande v Hex
31
3.3.2 Del programske kode
Spodaj je prikazan del programske kode napisane v c#, kjer se nastavljajo parametri za
serijsko komunikacijo. V nadaljevanju je prikazana funkcija za branje vrednosti senzorjev
in izpis razredov v določeno okence, ter funkcija za izbiro in določitev rotacije v levo in
desno za nek želeni kot.
namespace VozicekWinHelp { public partial class Form1 : Form { //deklaracija spremenljivk SerialPort SerPort; bool zaustavljen; byte Speed; System.Timers.Timer aTimer = new System.Timers.Timer(); int WritePointer = 0; int ReadPointer = 0; byte[] RS232Data = new byte[512]; bool Free = true; public delegate void OnRxCallback(); OnRxCallback ClB; public Form1() { InitializeComponent(); } // Odpiranje in povezovanje z serijskimi vrati private void button1_Click(object sender, EventArgs e) { //izbira hitrosti prenosa int BdRate = Convert.ToInt32(textBox2.Text);
//izbira serijskih vrat string Port = textBox1.Text; //Nastavitev parametrov za serijskopovezavo SerPort = new SerialPort(Port, BdRate, System.IO.Ports.Parity.None, 8); SerPort.ReadBufferSize = 1024; SerPort.ReceivedBytesThreshold = 12; ClB = new OnRxCallback(PassingData); SerPort.DataReceived +=new SerialDataReceivedEventHandler(SerPort_DataReceived); //odpri serijska vrata SerPort.Open(); }
32
//Funkcija za branje vrednosti ki prihajajo iz senzorjev void PassingData() { Free = false; while (ReadPointer != WritePointer) { int Naslov = (int)RS232Data[ReadPointer]; //Deklarira se Naslov //If zanka za prverjanje naslovov senzorjev if (Naslov > 99)
{ switch (Naslov) { //Vpisovanje vrednosti senzorjev v okenčke z istimi naslovi case 110: //Senzor 1 textBox7.Text = Convert.ToInt16(RS232Data[((ReadPointer + 1) % RS232Data.Length)]).ToString(); break; case 120: //Senzor 2 textBox4.Text = Convert.ToInt16(RS232Data[((ReadPointer + 1) % RS232Data.Length)]).ToString(); break; case 130: //Senzor 3 textBox6.Text = Convert.ToInt16(RS232Data[((ReadPointer + 1) % RS232Data.Length)]).ToString(); break; case 140: //Senzor 4 textBox9.Text = Convert.ToInt16(RS232Data[((ReadPointer + 1) % RS232Data.Length)]).ToString(); break; case 150: //Senzor 5 textBox5.Text = Convert.ToInt16(RS232Data[((ReadPointer + 1) % RS232Data.Length)]).ToString(); break; case 160: //Senzor 6 textBox6.Text = Convert.ToInt16(RS232Data[((ReadPointer + 1) % RS232Data.Length)]).ToString(); break; case 170: //Senzor 7 textBox8.Text = Convert.ToInt16(RS232Data[((ReadPointer + 1) % RS232Data.Length)]).ToString(); break; case 0x52: //Senzor 8 textBox10.Text = Convert.ToInt16(RS232Data[((ReadPointer + 1) % RS232Data.Length)]).ToString(); break; case 0x53: //Senzor 9 textBox11.Text = Convert.ToInt16(RS232Data[((ReadPointer + 1) % RS232Data.Length)]).ToString(); break; case 0x54: //Senzor 10 textBox12.Text = Convert.ToInt16(RS232Data[((ReadPointer + 1) % RS232Data.Length)]).ToString(); break; case 0x55: //Senzor 11 textBox13.Text = Convert.ToInt16(RS232Data[((ReadPointer + 1) % RS232Data.Length)]).ToString(); break; case 0x56: //Senzor 12 textBox14.Text = Convert.ToInt16(RS232Data[((ReadPointer + 1) % RS232Data.Length)]).ToString(); break; } }
33
ReadPointer = ((ReadPointer+1)% RS232Data.Length); } Free = true; } //Zapiranje serijskih vrat private void button2_Click(object sender, EventArgs e) { if (SerPort != null) { SerPort.Close(); //zapri serijska vrata } SerPort = null; } //Funkcija za rotiranje v desno private void btnRotacija_Click(object sender, EventArgs e) { //milisekund potrebnih za rotiranje 1° double rotdesno = 97.333333;
aTimer.Elapsed+=new ElapsedEventHandler(OnTimedEvent); //Preveri za koliko ° se zarotiraj aTimer.Interval=rotdesno*System.Convert.ToDouble(txtRotacija.Text); aTimer.Enabled=true; // Začetek rotiranja byte Speed = GetSpeedFromBox(); //Preberi kakšna hitrost je nastavljena SendDataToPIC(0x04, Speed); //PIC-u pošji smer in hitrost } private void OnTimedEvent(object source, ElapsedEventArgs e) { //Zaostavitev rotiranja SendDataToPIC(0x00, 0x00); //PIC-u pošji ukaze za zaustavitev SendDataToPIC(0x00, 0x00); } //Funkcija za rotiranje v levo private void button12_Click(object sender, EventArgs e) { double rotlijevo = 85.111111; //milisekund potrebnih za rotiranje 1° aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent); //Preveri za koliko ° se zarotiraj aTimer.Interval = rotlijevo * System.Convert.ToDouble(txtRotacija.Text); aTimer.Enabled = true; // Začetek rotiranja byte Speed = GetSpeedFromBox(); //Preberi kakšna hitrost je nastavljena SendDataToPIC(0x08, Speed); //PIC-u pošji smer in hitrost }
34
4. RAZVOJ BLUETOOTH MODULA
Za izvajanje samih testov senzorjev in vozička smo uporabili program na osebnem
računalniku, preko katerega smo simulirali ukaze za vožnjo invalidskega vozička. Program
je preko RS232 povezave pošiljal komandne ukaze vozičku. Vendar tu se je pojavil
problem, saj je do sedaj povezava potekala žično. Takšen način ni bil ravno praktičen, ker
je uporabnik ves čas moral tekati za vozičkom. Zato smo naredili brezžično Bluetooth
povezavo za komunikacijo med osebnim računalnikom in vozičkom.
4.1 OPIS BLUETOOTH KOMUNIKACIJE
Bluetooth je brezžična komunikacija namenjena medsebojnemu povezovanju naprav kot
so:
� računalniki,
� dlančniki,
� mobillni telefoni,
� tiskalniki.
Tehnologija Bluetooth deluje na radijski zvezi majhne oddajne moči in deluje po principu
preskakovanja med posameznimi frekvenčnimi kanali (frequency hopping). Uporabljeno je
frekvenčno območje v območju od 2.4 do 2.48 GHz in je v ISM frekvenčnem območju.
Glavni namen za razvoj Bluetooth brezžične tehnologije je univerzalen in standardiziran
način brezžičnega povezovanja naprav pri majhnih razdaljah. Bluetooth omogoča
izgradnjo majhnih zasebnih omrežij (piconet), ki se vzpostavljajo po želji (ad-hoc
networking). Piconet-piko omrežje je enostavno omrežje sestavljeno iz več Bluetooth
naprav, ki se samodejno povežejo med seboj. Pri tem pa ena naprava vzame vlogo
gostitelja (master, nadrejena naprava), ostale naprave pa vlogo gosta (slave, podrejena
naprava). V enem piconet omrežju je lahko največ 8 naprav, to pomeni maksimalno sedem
gostov in en gostitelj, razvidno na sliki 4.1. Več piconet omrežij se lahko poveže tudi v
razpršeno omrežje (scatternet). Scatternet je razpršeno omrežje in povezava največ 80
Bluetooth naprav v eno omrežje. Pri tem je lahko povezanih največ 10 piconet omrežij.
Ena sama naprava je podrejena (slave) v več piconet omrežij, ali pa je lahko v enem
35
piconet omrežju podrejena, v drugem pa nadrejena (master). Ena naprava ne more biti
istočasno nadrejena v več piconet omrežjih. [4]
Slika 4.1 : Primer Bloutooth master/slave piconet omrežja
4.1.1 Bluetooth varnost
Bluetooth podpira več stopenj varnosti:
� bluetooth napravo je mogoče narediti nevidno,
� izmenjava ključev med napravami med samim povezovanjem,
� hitra menjava frekvenc (1600- krat na sekundo se zamenja frekvenca),
� vzpostavljena zveza je zaščitena z največ 128- bitno enkripcijo,
� doseg naprav je odvisen od razreda bluetooth naprave:
36
Tabela 4.1 : Razredni doseg Bluetooth naprave
4.1.2 Bluetooth verzije
� Bluetooth 1.0 in 1.0B:
Bluetooth verziji 1.0 in 1.0B sta bili prvi verziji in zato je bilo tudi veliko napak.
Proizvajalci so imeli kar nekaj težav pri ustvarjanju naprav, ki bi bile združljive med seboj.
� Bluetooth 1.1:
Napake pri različici 1.0B so bile odpravljene, dodana je podpora za nekriptirane kanale.
Bluetooth 1.1 je retificiran kot IEEE Standard 802.15.1-2002. In z RSSI (Received
Strength Indicator).
� Bluetooth 1.2:
Ta različica je kompatibilna s prejšno 1.1 verzijo. Njene glavne lastnosti so,da nudi hitrejše
povezovanje in iskanje, ima HCI (Host Controller Interface), ki je podpora za three-wire
UART, je ratificiran kot IEEE standard 802.15.1-2005, ima AFM (Adaptive frequency-
hopping spread spectrum), kar pomeni, da izboljša odpornost na interference radijskih
frekvenc, tako da se izogne uporabi zgostitvi frekvenc v skakajočem zaporedju, dodana je
tudi kontrola pretoka (Flow Control) in Retransmiission za L2CAP.
37
� Bluetooth 2.0:
Različica 2.0 je bila ponujena na trg 10. Novembra 2004 in je kompatibilna s prejšnjo
različico 1.2. Glavna razlika med njima je v EDR-ju (Enhanced Data Rate), ki omogoča
hitrejši prenos datotek. Hitrost EDR-ja je okrog 3 Mbit/s, v praksi pa doseže okrog 2.1
Mbit/s. Večjo prepustnost se doseže z uporabo drugačne radijske tehnologije za prenos
datotek. Ta različica za doseganje standardne hitrosti uporablja GFSK (Gaussian
Frequency Shift Keying) modulacijo radijskega signala. EDR uporablja kombinacijo PSK-
ja (Phase Shift Keying modulation) in GFSK-ja z dvema verzijama π/4-DQPSK in 8DPSK.
Prednosti EDR-ja so, da je zmanjšana kompleksnost pri več simultanih povezavah zaradi
večje prepustnosti, trikratna prenosna hitrost (možna tudi 10 kratna-2.1 Mbit/s) in ima
manjšo porabo moči.
� Bluetooth 2.1:
Verzija Blotooth-a 2.1 je bila ponujena na trg 26. julija 2007 in je združljiva s prejšnjo
različico. Glavne prednosti te različice so:
� EPR (Encryption Pause/Resume) gostitelj ni obveščen o menjavi
enkripcijskega ključa, sam Bluetooth krmilnik zagotavlja, da ni nobenih
nekriptiranih prenesenih podatkov, v času ko se ključ osvežuje,
� Sniff subrating zmanjšuje porabo električne energije, kadar je naprava
neaktivna, najbolj se to opazi pri tipkovnicah in miškah, kadar so
neaktivne, saj se zmanjša poraba energije vsaj za faktor 5 ali več,
� EIR (Extended Inquiry Response) zagotovi informacije o napravi med
samim iskanjem, omogoča filtriranje naprav, še preden se poveže z
njimi. Informacije vsebujejo ime naprave, ter podatke o proizvajalcu
naprave,
� NFC (Near Field Communication) je način za izmenjavo informacij med
napravami. Na voljo je NFC radijski vmesnik, ki se samodejno
vzpostavi varna Bluetooth povezava. Uporabi se kadar sta napravi nekaj
centimetrov blizu druga drugi.
38
Bluetooth 3.0:
Različica 3.0 je bila izdana na trg 21. aprila 2009. Glavna prednost te različice je uporaba
AMP-ja (Alternative MAC/PHY), ki za prenos podatkov uporablja protokol 802.11. Za
vzpostavljanje varne povezave in konfiguracijo profila, se tudi v tej verziji še vedno
uporablja Bluetooth Radio, ko je naprava v mirovanju. Ko pa želimo poslati večjo količino
podatkov, pa se uporabi AMP oziroma Wi-fi.
Bluetooth 4.0:
Bluetooth 4.0 je trenutno predzadnja najnovejša verzija imenovana tudi Bluetooth Smart in
je bila ponujena na trg 30 junija 2010. Najnovejša verzija Bluetoth 4.0 je dramatično boljša
različica kot pa njena predhodnica Bluetooth 3.0. Od napredkov, ki jih je podedovala od
Bluetooth 3.0 so hitrost prenosa podatkov, ki segajo vse do 24 MB/s in nekaj ostalih
značilnosti. Bluetooth 4.0 se lahko pohvali z najnovejšo noviteto BLE (Bluetooth low
energy), saj je bil izdelan z namenom zmanjšanja porabe energije. To so uspeli narediti na
način, da kadar naprave ne izmenjujejo večjo količino podatkov preskočijo v način
mirovanja, kjer porabljajo minimalno količino energije. V primeru ko naprave morajo
intenzivno izmenjevati večno količino podatkov, Bluetooth preskoči v normalni način
delovanja, kjer še zmeraj porabi veliko manj energije kot pa predhodne različice
Bluetootha. [5]
Bluetooth 4.1:
Konzorcij Bluetooth Special Interest Group, ki se ukvarja s pripravo in potrjevanjem
standardov za tehnologijo Bluetooth je uradno potrdil novo verzijo Bluetootha 4.1. Pri tej
različici gre za nadgradnjo predzadnjega Bluetootha Smarta 4.0. Glavna lastnost pri
najnovejši verziji je ultranizka poraba energije in nižja hitrost prenosa. Bluetooth 4.1 nudi
neposredno komunikacijo med napravami, ki potekajo preko IP protokola, s tem pa uvaja
namenski kanal med napravami (dedicated channel). Spremembe v tej verziji so izključno
na programski ravni, kar omogoča da se lahko naprave s podporo Bluetooth 4.0 oddaljeno
nadgradijo na nov standard 4.1. Opazi se izboljšano sodelovanje med napravami,čas
ponovnega povezovanja pa je tudi nižji. [6]
39
4.2 BLUETOOTH WT12
Za naš namen smo izbrali cenovno ugoden in zmogljiv Bluetooth modul WT12
proizvajalca BlueGiga Technologies. Govorimo o WT modelih kateri bazirajo na izbrani in
vgrajeni programski podpori (ang. firmware), katera implementira del ali pa celotni
Bluetooth protokol. Izbrali smo iWRAP verzijo vgrajene programske podpore, katera
implementira celotni Bluetooth protokol in podpira SPP (ang. Serial port profile).
Implementacija protokola je skrita od uporabnika in se lahko do nje dostopa le preko
ponujenih vmesnikov USB in UART.
OSNOVNE LASTOSTNOSTI WT12 MODULA:
� napajalna napetost 3.3V,
� Bluetooth verzija 2.1 + EDR,
� prenos podatkov sega vse do 3 Mbs),
� frekvenca delovanja od 2.402 GHz do 2.480 GHz,
� oddajna moč +3dBm,
� občutljivost -86dBm,
� razdalja dometa do 20 m, razred 2
� TX in RX izvršilni tok 70 mA,
� poraba energije pri podatkovnem prenosu pri 115200kbps je 30 mA,
� poraba energije v stanju pripravljenosti 40µA
� antena integrirana na modulu,
� avdio vmesnik PCM,
� 6 vhodno izhodnih programirljivih priključkov (GPIO),
� 8 Mbajt-ov pomnilnika FLASH,
� velikost modula 26 x 14 x 2.3 mm.
40
Slika 4.2 : Razporeditev priključkov WT12 modula
Bluetooth protokol je večnamenski in podpira več različnih načinov delovanja. Zaradi tega
so tudi definirani različni Bluetooth profili, kateri opisujejo na kakšen način bosta dve
napravi medsebojno komunicirali. Da bi dve napravi medsebojno lahko pravilno
komunicirali, morajo imeti podprt isti profil. Za naše namene smo se odločili za osnovni in
v praksi največkrat uporabljeni SPP (ang. Serial port profile) profil. Naprave v tem profilu
bodo prepoznale Bluetooth komunikacijo kot virtualna serijska vrata VCP (engl. Virtual
COM Port). V tem profilu Bluetooth povezava simulira kabelsko RS232 povezavo.
Slika 4.3 : Primer SPP povezave
41
4.2.1 Programska podpora iWRAP
Programska podpora iWRAP firmware se nahaja na samem vrhu Bluetooth protokola,
vendar je skrita za uporabnika. Do nje se lahko dostopa preko UART (ang. Universal
Asynchronous Receiver/Transmitter) vmesnika. IWRAP lahko deluje v enem od dveh
načinov dela: v podatkovnem ali komandnem načinu. V privzetem načinu se nahaja v
komandnem načinu delovanja, v katerem ga lahko upravljamo in nastavljamo tako, da mu
pošiljamo ASCII ukaze preko serijske RS232 povezave. V tem načinu ga bomo tudi mi
uporabljali in nastavili. Ukazov za nastavitve in upravljanje iWRAP-a je veliko zato bom v
nadaljevanju opisal le tiste, katere smo uporabili v našem primeru. V tabeli 4.2.1.1: so
vidne privzete nastavitve iWRAP-a.
Hitrost prenosa (zlogov na
sekundo)
115200
Podatkovni biti 8
Parnost brez
Zaključni bit 1
Nadzor pretoka omogočeno
Tabela 4.2 : Privzete nastavitve iWRAP-a
� AT : Ukaz ki preveri pravilno delovanje iWRAP-a in če deluje pravilno vrne
odgovor OK.
� SET CONTROL BAUD {baud_rate},8{parity}{stop_bits}: Ukaz za nastavitev
UART parametrov.
- {baud_rate}: označuje hitrost prenosa (zlogov na sekundo)
- {parity}: označuje parnost ( n- brez paritve, e- soda, paritev, o-liha paritev)
- {stop_bits}: označuje število stop bitov (1- en stop bit, 2-dva stop bita)
42
V podatkovnem načinu dela, se vsi podatki, poslani na UART posredujejo na Bluetooth
komunikacijo. Metode prehodov iz komandnega načina v podatkovni način in nazaj je
razviden v tabeli 4.2.
Trenutni način
dela
Način v
katerega se
prehaja
Metoda prehoda
Komandni način (brez aktivne
Bluetooth povezave)
Modul se nahaja v tem načinu
delovanja ko ga priključimo.
V tem načinu delovanja se
modulu pošiljajo ASCII ukazi.
Podatkovni
način
Modul uspešno vzpostavi
Bluetooth komunikacijo z drugo
napravo s pomočjo CALL ukaza.
Druga naprava uspešno vzpostavi
komunikacijo z modulom.
Podatkovni način
V tem načinu dela se podatki
transparentno pošiljajo iz
UART-a na Bluetooth
povezavo.
Komandni
način
Pošiljanje po posebni sekvenci
(sekunda brez pošiljanja ukazov
nato tri ASCII znake zapovrstjo in
na koncu sekunda brez pošiljanja)
Prekinitev povezave ( povezava
prekinjena na drugi napravi ali
zaradi izgubljenega signala)
Komandni način (aktivna
povezava)
V tem načinu se modelu lahko
pošiljajo ASCII ukazov.
Podatkovni
način
Pošiljanje s pomočjo zgoraj
opisane sekvence ali s pomočjo
SELECT ukaza.
Tabela 4.3 : Prikaz prehodov med podatkovnim in komandnim načinu delovanja WT12 modula
43
4.2.2 Nastavitev iWRAP-a
Kot smo že omenili programska podpora iWRAP ima na možnost številne nastavitve po
potrebi uporabnika. Za naše potrebe smo morali spremeniti le nastavitev hitrost prenosa
zlogov (Baud Rate), ker je v privzetih nastavitvah nastavljeno na 115200 zlogov na
sekundo, mi pa potrebujemo hitrost 57600 zlogov na sekundo. Preko serijske povezave
RS232 smo modul WT12 povezali z računalnikom. Nekateri prenosniki in novejši
stacionarni računalniki, nimajo več vgrajenih serijskih vrat, preko katerih bi lahko
vzpostavili povezavo. V takšnem primeru je potrebno povezavo vzpostaviti preko
pretvornika USB na RS232, katerega priklopimo preko USB vrat, na računalnik. Kot
programsko opremo smo uporabili program Hyper Terminal. Takšen program je v starejših
operacijskih sistemih že inštaliran in pripravljen za uporabo. V novejših operacijskih
sistemih kot so Windows7 ali Windows8, pa je potrebno takšen program dodatno
inštalirati. Danes se na internetu najde ogromno tovrstnih programov, ki so ne plačljivi. Po
uspešnem inštaliranju in zagonu Hyper Terminala se nam odpre okno v katerega vpišemo
poljubno ime povezave. S klikom naprej, v novem odprtem oknu izberemo preko katerih
serijskih vrat bo potekala komunikacija. V našem primeru izberemo vrata COM15, katere
je računalnik določil za naš USB na RS232 pretvornik. Če nismo prepričani katera vrata
moramo izbrati, lahko to preverimo. V operacijskem sistemu windows, v nadzorni plošči
odpremo Upravitelja naprav in pod jezičkom Vrata COM in LPT, preverimo katera COM
vrata so dodeljena našemu pretvorniku. V nadaljevanju se nam po izbiri serijskih vrat
odpre novo okno z nastavitvami vrat. Tukaj določimo hitrost prenosa 115200 zlogov na
sekundo, 8 podatkovnih bitov, brez parnosti, en zaključni bit ter brez nadzora. Tukaj naj še
omenim, da nastavitve serijskih vrat v Upravitelju naprav, Hyper Terminalu in našem
Bluetooth modulu, morajo biti enake. V nasprotnem primeru ne bomo mogli vzpostaviti
povezave. Z gumbom kliči vzpostavimo povezavo in odpre se nam začetno pozdravno
okno iWRAP-a vidno na sliki 4.4 spodaj. Sedaj lahko pričnemo z nastavitvijo. Najprej
pošljemo iWRAP-u ukaz AT. S tem ukazom preverimo pravilno delovanje iWRAP-a in
kot povratno informacijo nam vrne OK, če vse deluje pravilno. Nato lahko nadaljujemo in
mu pošljemo ukaz SET CONTROL BAUD {baud_rate},8{parity}{stop_bits}. V našem
primeru smo poslali ukaz SET CONTROL BAUD 57600,8N1, s katerim smo nastavili
hitrost prenosa 57600 zlogov na sekundo, 8 podatkovnih bitov brez paritve z enim stop
bito.
44
Slika 4.4 : Začetno pozdravno iWRAP-o okno v Hyper Terminal-u
4.3 NAČRT IN OPIS BLUETOOTH MODULA
Bluetooth WT12 že sam po sebi vsebuje skoraj vse sklope kot so oddajnik, sprejemnik,
antena, ki so potrebni za Bluetooth komunikacijo. Zato ni bilo potrebno dodajati modulu
dodatne zunanje komponente. Ker se WT12 modul napaja z 3.3 V, smo mu morali dodati
napetostni regulator 78M33. Tako smo napajalno napetost omejili na 3.3 V, potrebnih za
napajanje WT12 modula. Vezju smo dodali pretvornik TTL nivojev MAX232 za serijsko
RS232 komunikacijo. Tukaj smo morali dodati še en 78L05 napetostni regulator ,saj
MAX232 za svoje delovanje potrebuje 5 V napajalne napetosti. Dodali smo še štiri
pretvorniku potrebne kondenzatorje, ki smo jih v našem primeru izbrali velikosti 100 nF.
Napajalno napetost, ki smo jo z napetostnimi regulatorji omejili na 3.3 V in 5 V, smo
odvajali iz DC/DC pretvornika z izhodom 8V enosmerne napetosti. DC/DC pretvornik je
bil vgrajen z namenom, da zmanjša napajalno napetost invalidskega vozička , ki znaša 24V
na 8V, potrebnih za napajanje vseh modulov na invalidskem vozičku.
45
Slika 4.5 : Shema Bluetooth modula
Kot smo že omenili je WT12 modul v privzetem načinu, nastavljen v komandnem načinu
delovanja. Ko pripeljemo napajalno napetost na naš Bluetooth modul, se WT12 modul
postavi v komandni način, kjer ga je mogoče nastaviti po svoji želji in potrebi z
pošiljanjem nastavitvenih ukazov. Računalnik ali katera druga naprava ki se povezuje z
modulom in podpira SPP (ang. Serial port profile), zazna modul, se poveže z njim in ga
registrira kot VCP (ang. Virtual COM Port). Ko sta napravi povezani se lahko prične
brezžični prenos podatkov iz VCP-ja na računalnik in z UART-a na ostale module. V
našem primeru je glavni PIC pošiljal vrednosti senzorjev preko UART-a na modul, ta pa
nato pridobljene podatke pošiljal naprej na računalnik. Iz računalnika pa preko VCP-ja
pošiljamo ukaze za krmiljenje vozička na Bluetooth modul, ta pa te podatke posreduje
preko UART-a naprej do naslednjih modulov.
46
Slika 4.6 : Končni izdelek Bluetooth modul
Slika 4.7 : Postavitev Bluetooth modula na invalidskem vozičku
47
5. TESTI
5.1 Testi Bluetooth povezave in senzorjev
Ko smo naredili Bluetooth modul je prišel čas da testiramo komunikacijo. Zaradi varnosti
ter zaščite invalidskega vozička pred poškodbami smo zadnji del invalidskega vozička,
kjer se nahajajo pogonski kolesi, rahlo dvignili tako da so se kolesa lahko prosto vrtela v
zraku brez dotika tal. Teste smo izvajali s pomočjo napisanega programa opisanega zgoraj.
Ob izbiri virtualnih vrat v oknu RS232 nastavitve, ki jih je določil naš Bluetooth modul (
COM15) in izbiri BaudRate v našem primeru 57600 zlogov na sekundo, smo se brez težav
povezali z invalidskim vozičkom. Najprej smo testirali krmilne ukaze ter hitrost premika.
Vsi krmilni ukazi NAPREJ, NAZAJ, LEVO, DESNO, STOP in ostali, ter vse tri hitrosti so
pravilno delovali. Nato smo preizkusili senzorje. Pred senzorje smo postavljali razne
predmete, jih oddaljevali in približevali, ter rezultate spremljali v programskem oknu kjer
je vsak senzor imel svoje polje, kjer so se izpisovali razredi razdalj. Tukaj smo opazili da
so novejši SRF08 senzorji vgrajeni na voziček veliko bolje zaznavali ovire kot starejši
SRF04 vgrajeni senzorji. Vendar tudi SRF08 senzorji so imeli velikokrat probleme in
nekaterih ovir niso zaznali, kot na primer mize ali kakšne police. To se je dogajalo zaradi
premajhnega razpona UV žarkov senzorja. V času testiranja je bila Bluetooth komunikacija
ves čas vzpostavljena in se ni nikoli prekinila zaradi kakršnegakoli razloga. Tudi pošiljanje
ukazov in sprejemanje razredov senzorjev je bilo 100%. Zato smo zaključili, da povezava
deluje brezhibno, sistem senzorjev prav tako in krmiljenje. Naj še omenim da smo
Bluetooth povezavo testirali v krogu 10 m. Vendar je Bluetooth razreda 2 in bi njegov
domet lahko segal vse do 20 m.
48
Slika 5.1 : Program za simulacijo govornih ukazov in branje senzorjev
49
5.2 Testi vožnje in rotiranja invalidskega vozička
Ker se je projekt začel razvijati v smeri samostojne vožnje invalidskega vozička po
prostoru, tako da ga ne krmiliš samo z ukazi naprej, nazaj, levo, desno, ampak mu zadaš
ukaz pelji me v želeni prostor in voziček te odpelje tja. Zato smo morali izmeriti, kolikšno
pot invalidni voziček opravi v nekem določenem času, ter za koliko se voziček zarotira v
določenem času. Prvi del meritve smo izvajali tako, da smo postopoma povečevali čas
vožnje in po opravljeni vožnji izmerili koliko cm je voziček prevozil. Meritve smo začeli
izvajati pri času pol sekunde, nato pa smo čas vožnje povečevali za 500 ms vse do 5500 ms
oziroma 5.5 s. Vseh 11 časov vožnje smo trikrat ponovili in rezultate vpisali v tabelo 5.1.
Iz izmerjenih rezultatov je razvidno da so meritve dokaj približne in ponovljive. Vse
meritve so bile izvedene samo na izbrani hitrosti 1, saj se bo voziček po prostoru vozil v
prvi počasni hitrosti.
Čas vožnje [ms]
Hitrost premika 1
1. vožnja [cm]
2. vožnja [cm]
3. vožnja [cm]
500 9 10 10
1000 35 34 36
1500 68 72 73
2000 109 107 109
2500 144 145 144
3000 189 186 182
3500 216 223 224
4000 262 261 262
4500 304 302 299
5000 336 336 339
5500 378 378 374
Tabela 5.1 : Rezultati vožnje naravnost za določene čase
50
V drugem delu meritev smo prav tako postopoma povečevali čas premika od 500 ms in
tokrat do 6500 ms z korakom 500 ms. Za vsaki čas vožnje smo izmerili za koliko stopinj se
je invalidni voziček zarotiral. Meritve smo izvajali za rotiranje v levo, kjer so rezultati
vidni v tabeli 5.2 , ter za rotiranje v desno, kjer so rezultati vidni v tabeli 5.3. Pri obeh
smereh rotiranja, smo ponovili dve vožnji za vsak merjeni čas, zaradi primerjave
ponovljivosti rezultatov. Vse vožnje pa so se izvajale pri izbrani hitrosti 1. Iz rezultatov je
razvidno do so rotacije bile dokaj ponovljive. Opazili smo tudi, da se je pri rotaciji v desno,
pri času 2500 ms in naprej, kot zasuka dosti povečal.
Čas vožnje [ms]
Hitrost premika 1
1.vožnja [°]
2. vožnja [°]
500 2 3
1000 10 8
1500 15 15
2000 21 22
2500 31 30
3000 45 42
3500 52 50
4000 62 65
4500 70 72
5000 85 87
5500 93 95
6000 102 105
6500 117 116
Tabela 5.2 : Rezultati meritev rotiranja v levo
51
Čas vožnje [ms]
Hitrost premika 1
1.vožnja [°]
2. vožnja [°]
500 1 1
1000 10 9
1500 18 18
2000 23 27
2500 40 41
3000 52 55
500 65 67
4000 81 81
4500 92 91
5000 110 113
5500 120 120
6000 134 130
6500 146 146
Tabela 5.3 : Rezultati meritev rotiranja v desno
Pri izvajanju meritev smo opazili da velik problem predstavlja spodrsavanje pogonskih
koles. To se dogaja predvsem pri večji izbrani hitrosti in na gladki podlagi. Spodrsavanje
pogonskih koles predstavlja tudi velik problem pri zaustavljanju invalidskega vozička,
predvsem pri vklopu varnostne funkcije. Kot smo že omenili varnostna funkcija deluje
tako, da ko se voziček približa oviri na 10 cm se voziček takoj ustavi. Vendar če se voziček
vozi z neko določeno hitrostjo in ob nenadni zaustavitvi koles, kjer kolesa spodrsnejo po
podlagi, se voziček zaleti v oviro.
52
6. SKLEP
V diplomskem delu je bila predstavljena povezava ultrazvočnih senzorjev z vsemi moduli
na invalidskem vozičku. Moj prispevek pri diplomskem delu je bilo povezovanje vgrajenih
senzorjev in modulov na invalidskem vozičku, ter izdelava Bluetooth modula za brezžično
komunikacijo. Vse povezave je bilo potrebno tudi preizkusiti. Komunikacija med moduli
in senzorskimi enotami je potekalo po CAN vodilu. Ta povezava se je izkazala za zelo
učinkovito povezavo. Pri samem testiranju vožnje, oziroma merjenju kota zasuka pri
rotaciji invalidskega vozička, smo uporabili program na računalniku. S tem programom
smo preko brezžične Bluetooth povezave pošiljali vozičku ukaze, ter preverjali vrednosti
senzorjev, ki so nam podajali razrede oddaljenosti do ovire. Pri testiranju vožnje in rotacije
smo opazili majhno težavo. Namreč pri večji hitrosti (hitrost 2 ali hitrost 3) rotiranja ali
vožnje invalidskega vozička, je prišlo do spodrsavanja pogonskih koles. To lahko
predstavlja problem pri vožnji z invalidskim vozičkom. Takšen problem bi lahko rešili z
kakšnim inkrementalnim dajalnikom, ki bi ga vgradili na pogonska kolesa. Z njim bi lahko
merili kotni zasuk kolesa in tako imeli kontrolo nad spodrsavanjem pogonskih koles. Prav
tako smo opazili težavo in pomanjkljivost sistema pri varnostni funkciji. Namreč varnostna
funkcija deluje tako, da avtomatsko zaustavi invalidni voziček, če se le ta približa oviri na
manj kot 10 cm in ima prednost pred ostalimi ukazi. To pomeni, če voziček zaustavi
varnostna funkcija, potem ni možno več krmiliti vozička z ukazi, dokler ga ročno ne
odmaknemo od ovire. V varnostno funkcijo bi bilo potrebno dodati večji razred
oddaljenosti od ovire, če voziček vozimo z višjo hitrostjo. Namreč pri večji hitrosti
potrebuje voziček več poti za zaustavitev kot 10 cm, zaradi spodrsavanja pogonskih koles.
Ultrazvočni senzorski moduli, ki so razvrščeni po vozičku in skrbijo za zaznavanje ovir
niso najbolj zanesljivi. Zelo težko ali pa sploh ne zaznajo oviro kot na primer kakšno mizo
ali tanjši rob okoli sebe. Problem je v premajhnem snopu žarka in kvaliteti senzorjev.
Mogoče bi tukaj z uporabo kamere odpravili ta problem. Naj še omenim, da se nam je med
samim testiranjem iz neznanih razlogov invalidski voziček zaklenil in takrat je invalidski
voziček mrtev in ne sprejeme nobenega ukaza. Ta problem smo rešili z magnetom, tako da
smo ga prislonili za nekaj sekund na zgornjo polovico spodnje strani ročice za krmiljenje
in voziček se spet odklene.
53
VIRI
[1] G. Razoršek, Analiza možnosti digitalne realizacije aethalometra na epx-c3
platformi, Ljubljana 2007.
[2] P. Tobey, WinCE platform types, London 2007.
[3]
Microsoft, Windows embedded CE 6.0 advanced memory management,
http://msdn.microsoft.com/en-us/library/bb331824.aspx.
[4]
G.Jambrović, Distribuirani informacijski sistem ob uporabi Bluetooth kanala –
BlueMSG, Diplomska naloga, Maribor, Knjižnica TF, 2010.
[5]
Wikipedija Bluetooth,
http://en.wikipedia.org/wiki/Bluetooth
[6]
Potrjen standard Bluetooth 4.1,
http://zigadezman.blogspot.com/
[7] T. Žvar, Vgradnja ultrazvočnih senzorjev na invalidskem vozičku, Diplomska
naloga, Maribor, Knjižnica TF, 2011.
[9] G. Pačnik, Prepoznava govora z nevronskimi mrežami, Diplomska naloga, Maribor,
Knjižnica TF, 2004.
[10] K. Šumej, Izdelava sistema senzorjev pri govornem upravljanju invalidskega
vozička, Diplomska naloga, Maribor, Knjižnica TF, 2009.
[11] Toradex, Colibri Evalution Board Datasheet,
http://developer.toradex.com/product-selector/colibri-evaluation-board.
[12] Toradex, Colibri XScale® PXA320 Datasheet,
http://developer.toradex.com/product-selector/colibri-pxa320.
[13] Microchip, PIC18FXX8 Datasheet,
http://ww1.microchip.com/downloads/en/devicedoc/41159d.pdf.
[14] Microchip, MCP2551,
http://ww1.microchip.com/downloads/en/DeviceDoc/21667f.pdf.
[15]
I. Majcen, Področno vodilo CAN (Controller Area Network), Diplomska naloga,
Maribor, Knjižnica TF, 2007.
[16] Bluetooth WT12 modul
http://www.bluegiga.com/en-US/products/bluetooth-classic-modules/wt12-
bluetooth--class-2-module/
54
PRILOGE
SEZNAM SLIK
Slika 2.1 : INVACARE invalidski voziček Storm3 Euro ............................................................................. 3
Slika 2.2 : Colibri Evalution Board blok diagram (izraze v sliki posloveni) .............................................. 4
Slika 2.3 : Colibri Evalution Board Rev.2.1 .................................................................................................. 5
Slika 2.4 : Colibri PXA320 blok diagram (posloveni izraze v sliki) ........................................................... 6
Slika 2.5 : Colibri PXA320 modul .................................................................................................................. 7
Slika 2.6 : Primer Windows CE pri odprti platformi ................................................................................. 10
Slika 2.7 : Primer Windows CE pri zaprti platformi ................................................................................. 11
Slika 2.8 : Primer Windows CE pri polodprti platformi ........................................................................... 12
Slika 2.9 : Ureditev pomnilnika v Windows CE 5.0 (posloveni izraze v sliki) .......................................... 13
Slika 3.1 : Integrirana oblika CAN-a ........................................................................................................... 15
Slika 3.2 : Prednosti pri CAN vodlu ............................................................................................................ 16
Slika 3.3 : OSI referenčni model .................................................................................................................. 17
Slika 3.4 : CAN vodilo ................................................................................................................................... 18
Slika 3.5 : Shema povezav modulov na invalidskem vozičku .................................................................... 19
Slika 3.6 : SRF04 ultrazvočni senzor ........................................................................................................... 20
Slika 3.7 : SRF08 ultrazvočni senzor ........................................................................................................... 21
Slika 3.8 : Senzorski modul ........................................................................................................................... 22
Slika 3.9 : Senzorski komunikacijski modul ............................................................................................... 23
Slika 3.10 : Razporeditev priključkov PIC-a v PDIP ohišju ...................................................................... 24
Slika 3.11 : Razporeditev priključkov MCP2551 v PDIP ohišju ............................................................... 25
Slika 3.12 : Dominantna in recesivna stanja CAN vodila .......................................................................... 26
Slika 3.13 : Razporeditev priključkov DS1868 v PDIP ohišju ................................................................... 27
Slika 3.14 : Krmilni modul ........................................................................................................................... 27
Slika 3.15 : Začetno okno programa ............................................................................................................ 29
Slika 4.1 : Primer Bloutooth master/slave piconet omrežja ....................................................................... 35
Slika 4.2 : Razporeditev priključkov WT12 modula .................................................................................. 40
Slika 4.3 : Primer SPP povezave .................................................................................................................. 40
Slika 4.4 : Začetno pozdravno iWRAP-o okno v Hyper Terminal-u ........................................................ 44
Slika 4.5 : Shema Bluetooth modula ............................................................................................................ 45
Slika 4.6 : Končni izdelek Bluetooth modul ................................................................................................ 46
Slika 4.7 : Postavitev Bluetooth modula na invalidskem vozičku.............................................................. 46
Slika 5.1 : Program za simulacijo govornih ukazov in branje senzorjev .................................................. 48
55
SEZNAM TABEL
Tabela 3.1 : Tabela razredov senzorja ......................................................................................................... 30
Tabela 3.2 : Ukazne komande v Hex ............................................................................................................ 30
Tabela 4.1 : Razredni doseg Bluetooth naprave ......................................................................................... 36
Tabela 4.2 : Privzete nastavitve iWRAP-a .................................................................................................. 41
Tabela 4.3 : Prikaz prehodov med podatkovnim in komandnim načinu delovanja WT12 modula ....... 42
Tabela 5.1 : Rezultati vožnje naravnost za določene čase .......................................................................... 49
Tabela 5.2 : Rezultati meritev rotiranja v levo ........................................................................................... 50
Tabela 5.3 : Rezultati meritev rotiranja v desno ........................................................................................ 51
56
NASLOV ŠTUDENTA
Ime in priimek: Marko Karlovčec
Naslov : Tomšičeva 1
Pošta: 3310 Žalec
Telefon : 031 411 456
Email: [email protected]
KRATEK ŽIVLJENJEPIS
Sem Marko Karlovčec, rojena 05.06.1985 v Celju. Končal sem naslednje šolske ustanove:
� 1993-2001
Osnovna šola 1 Osnovna šola Žalec
� 2002-2005
Elektrotehnik elektronik Šolski center Celje,
Poklicna in tehniška elektro in kemijska šola
57
Fakulteta za elektrotehniko, računalništvo in informatiko
Smetanova ulica 17 2000 Maribor, Slovenija
I Z J A V A O A V T O R S T V U
58
Fakulteta za elektrotehniko, računalništvo in informatiko
Smetanova ulica 17 2000 Maribor, Slovenija
IZJAVA O USTREZNOSTI ZAKLJUČNEGA DELA
SENSOR COMMUNICATION OF WHEELCHAIR
59
Fakulteta za elektrotehniko,
računalništvo in informatiko
Smetanova ulica 17
2000 Maribor, Slovenija
IZJAVA O ISTOVETNOSTI TISKANE IN ELEKTRONSKE VERZIJE ZAKLJUČNEGA DELA IN OBJAVI OSEBNIH PODATKOV DIPLOMANTOV