˝ ´ S G AZDAS AGTUDOM ´ ´ B UDAPESTI M USZAKI E ANYI E GYETEM ´ ´ ORI ¨ KONFERENCIA T UDOM ANYOS D I AKK ´ O´ D OKUMENT ACI
Mobiltelefon szenzorainak m´er´estechnikai alkalmaz´asa
K´esz´ıtette:
Konzulens:
Nagy M´arton Tam´as
Dr. Samu Kriszti´an
O0HK4S
BME MOGI
[email protected]
[email protected]
2015. november 5.
Kivonat Kivonat A mobiltelefonok technol´ogiai fejl˝od´es´evel e´ s glob´alis elterjed´es´evel lehet˝os´eg ny´ılt arra, hogy azok szenzorait egyszer˝u m´er´estechnikai feladatok elv´egz´es´ere b´arki alkalmazza. A dolgozat ezen szenzorokat e´ s alkalmaz´asi lehet˝os´egeit elemzi, konkr´et m´er´esek tapasztalatai alapj´an. A dolgozat alapvet˝o filoz´ofi´aja az, hogy a telefont szenzork´ent kezelj¨uk, a m´ert adatokat pedig egy kommunik´aci´os csatorn´an, val´os id˝oben k¨ozvet´ıtj¨uk egy feldolgoz´o sz´am´ıt´og´epnek. A piaci r´eszesed´ese alapj´an legn´epszer˝ubb Android platform´u telefonokat alkalmaztam a m´er´esek sor´an, a feldolgoz´o szoftver pedig az ipari standard LabVIEW platformon alapszik. A dolgozat keret´eben elk´esz´ıt´esre ker¨ult sz´amos Android alkalmaz´as, melyek k¨ul¨onb¨oz˝o szenzorok jeleit tov´abb´ıtj´ak a feldolgoz´oegys´egnek. Az elk´esz´ıtett LabVIEW elemz˝oprogram pedig k´epes arra, hogy a szenzorok jeleit fogadja, e´ s val´os id˝oben feldolgozza. Ezek haszn´alat´aval v´egeztem el a m´er´eseket, melyek eredm´enyei alapj´an e´ rt´ekelni lehet a szenzorok alkalmazhat´os´ag´at a m´er´estechnika ter¨ulet´en. A dolgozatban kifejt´esre ker¨ul a szenzor e´ s a feldolgoz´oegys´eg szerepe a m´er´esek sor´an, a dolgozat filoz´ofi´aj´anak szellem´eben bemutat´asra ker¨ul az inform´aci´o u´ tja a m´erend˝o mennyis´egt˝ol a m´er´esi eredm´enyig. R´eszletes bemutat´asra ker¨ulnek a felhaszn´alt szenzorok e´ s az elv´egzett m´er´esek. Minden m´er´esr˝ol m´er´esi jegyz˝ok¨onyv is rendelkez´esre a´ ll, melyekben megtal´alhat´oak a nyers m´er´esi adatok, a m´er´esi elrendez´esek r´eszletes le´ır´asa, illetve a m´er´esi eredm´enyek e´ s az ahhoz felhaszn´alt o¨ sszef¨ugg´esek. A t´ema keret´eben elv´egzett m´er´esek a k¨ovetkez˝ok: mobiltelefon megvil´ag´ıt´asm´er˝oj´enek kalibr´al´asa, gyorsul´asm´er˝o jel´eb˝ol szem´elyaut´o motorja fordulatsz´am´anak m´er´ese val´os id˝oben, mikrofon jel´enek val´os idej˝u frekvenciaanal´ızise, mobiltelefon kamera k´ep´enek felhaszn´al´asa objektumk¨ovet´esre. Tov´abb´a, a t´ema kit´er az Android platform lehet˝os´egire a szenzorok kezel´es´evel kapcsolatban, a LabVIEW-ban t¨ort´en˝o adatfeldolgoz´as saj´atoss´agaira, a telefon e´ s a feldolgoz´o sz´am´ıt´og´ep k¨oz¨otti adatkommunik´aci´o fel´ep´ıt´es´ere. Megeml´ıt´esre ker¨ul annak a lehet˝os´ege is, hogy t¨obb, k¨ul¨onb¨oz˝o szenzor jel´et oly m´odon haszn´aljuk fel, hogy azok egym´ast pontos´ıts´ak, egy jobb szenzort kapjunk a f´uzi´ob´ol (Sensor Fusion). Demonstr´al´asra ker¨ul egy ilyen, m´ar megl´ev˝o megold´as, e´ s ennek alapj´an a m´odszer tov´abbi alkalmaz´asi lehet˝os´egei is megeml´ıt´esre ker¨ulnek.
1
Abstract Abstract Due to the rapid development and global spread of mobile phones, their sensors can be utilized by anyone to perform simple measurement tasks. The goal of this paper is to provide insight into the sensors of mobile phones, and to research their possible applications in the field of measurement technology, based on the results of various measurements. The main philosophy of the paper is the following: the phone is used as a sensor, and the raw measured data is sent in real-time to the processing computer, via data communication. The phones used in the research are running Android, the processing software uses the powerful LabVIEW platform. Several Android applications were created for this research in order to send sensor data to the processing computer. A LabVIEW analyzer program was coded, which receives the data and processes it in real-time. The measurements during the research were performed using these applications. The paper elaborates the role of the sensor and the processing unit, and presents the way data flows, in the spirit of the philosophy of the research. The sensors used in the measurements and the measurements themselves are presented in detail. The following measurements were performed during research: calibration of a mobile phone’s lux sensor, real-time measurement of the RPM of a car engine using accelerometer data, real-time frequency analysis of microphone signals, object tracking using mobile phone camera. Furthermore, the paper mentions the possibilities the Android platform gives developers regarding sensor utilization, the usage of LabVIEW to process data, and the specifications of the data communication used to link the two. The possibility of using two or more sensors to enhance each other (Sensor Fusion) is presented as well, with an example already used in practice.
2
´ TARTALOMJEGYZEK
Tartalomjegyz´ek 1. Bevezet´es
6
1.1. Ig´eny a telefonnal t¨ort´en˝o m´er´esekre . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.2. Kutat´asi el˝ozm´enyek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.3. Az Android haszn´alata a m´er´esek sor´an . . . . . . . . . . . . . . . . . . . . . . .
7
1.4. A LabVIEW haszn´alata a m´er´esek sor´an . . . . . . . . . . . . . . . . . . . . . . .
8
1.5. A m´er´esek sor´an felhaszn´alt eszk¨oz¨ok . . . . . . . . . . . . . . . . . . . . . . . .
9
2. Inform´aci´oa´ raml´as a m´er´esek sor´an
10
2.1. Telefon e´ s szerepe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.1.1. A szenzorok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.1.2. A szenzorok e´ s az Android rendszer kapcsolata . . . . . . . . . . . . . . .
12
2.1.3. A telefon kommunik´aci´oja a feldolgoz´o egys´eggel . . . . . . . . . . . . .
12
2.2. H´al´ozati kapcsolat e´ s szerepe . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.2.1. A kommunik´aci´os csatorna fizikai megval´os´ıt´asa . . . . . . . . . . . . . .
13
2.2.2. A kommunik´aci´os protokoll . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.3. Feldolgoz´oegys´eg e´ s szerepe . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.3.1. A m´er´esi adat fogad´asa a feldolgoz´oegys´egen . . . . . . . . . . . . . . . .
14
2.3.2. A m´er´esi adat feldolgoz´asa . . . . . . . . . . . . . . . . . . . . . . . . . .
14
3. Az Android m´er´estechnikai alkalmaz´asa
15
3.1. Felhaszn´al´oi fel¨ulet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
3.2. A szenzorok el´er´ese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.3. Id˝oz´ıt´es megval´os´ıt´asa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.4. Mikrofonkezel´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.5. Kamerakezel´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.6. H´al´ozatkezel´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
4. A LabVIEW haszn´alata a m´er´esek sor´an
24
4.1. Szenzoradatok fogad´asa, a TCP szerver . . . . . . . . . . . . . . . . . . . . . . .
24
4.2. Szenzoradatok feldolgoz´asa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
4.3. LabVIEW k´epfeldolgoz´as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
5. Motor fordulatsz´am´anak m´er´ese gyorsul´asm´er˝ovel 5.1. A m´er´esi elrendez´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
27 28
´ TARTALOMJEGYZEK 5.2. M´er´esi adatok felv´etele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
5.3. Az adatsor frekvencia anal´ızise . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
5.3.1. Els˝o m´er´esi sor anal´ızise . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
5.3.2. Hatodik m´er´esi sor anal´ızise . . . . . . . . . . . . . . . . . . . . . . . . .
30
5.4. A m´er´esi eredm´eny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
5.5. K¨ovetkeztet´esek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
6. Objektumk¨ovet´es mobiltelefon kamerak´epe alapj´an
32
6.1. A m´er´esi elrendez´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
6.2. A m´er´es menete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
6.2.1. A h´al´ozati k´esleltet´es m´er´ese . . . . . . . . . . . . . . . . . . . . . . . . .
34
6.2.2. 320x240 felbont´assal . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
6.3. A m´er´esi eredm´eny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
6.3.1. Az elm´eleti h´att´er . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
6.3.2. A m´er´esi eredm´enyek t´abl´azatosan . . . . . . . . . . . . . . . . . . . . . .
36
6.4. K¨ovetkeztet´esek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
7. Mobiltelefon megvil´ag´ıt´asm´er˝oj´enek kalibr´al´asa
37
7.1. A m´er´esi elrendez´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
7.2. A m´er´es menete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
7.3. Szenzorok kalibr´al´asa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
7.4. Kalibr´alt szenzorral val´o m´er´esek . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
7.5. K¨ovetkeztet´esek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
8. Mobiltelefon mikrofon jel´enek frekvencia anal´ızise
42
8.1. A m´er´esi elrendez´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
8.2. A m´er´es menete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
8.3. Az adatsor frekvencia anal´ızise . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
8.4. K¨ovetkeztet´esek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
9. Sensor Fusion
45
9.1. Bevezet˝o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
9.2. Orient´aci´o meghat´aroz´asa Sensor Fusion seg´ıts´eg´evel [6] . . . . . . . . . . . . . .
45
9.2.1. Orient´aci´o meghat´aroz´as´anak m´odjai . . . . . . . . . . . . . . . . . . . .
45
9.2.2. A Sensor Fusion alkalmaz´asa . . . . . . . . . . . . . . . . . . . . . . . .
46
9.3. Poz´ıci´omeghat´aroz´as Sensor Fusion seg´ıts´eg´evel . . . . . . . . . . . . . . . . . .
48
4
´ TARTALOMJEGYZEK 9.3.1. Poz´ıci´o meghat´aroz´asa gyorsul´asm´er˝o jel´eb˝ol e´ s orient´aci´ob´ol . . . . . . .
48
9.3.2. Poz´ıci´om´er´es kamera k´epe alapj´an . . . . . . . . . . . . . . . . . . . . . .
50
9.3.3. A Sensor Fusion alkalmaz´asa . . . . . . . . . . . . . . . . . . . . . . . . ¨ 9.4. Osszegz´ es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51 52
´ o 10. Konkluzi´
52
11. V´egsz´o
54
11.1. A t´ema folytat´asa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
11.2. K¨osz¨onetnyilv´an´ıt´as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
12. Mell´ekletek
55
5
´ 1. BEVEZETES
1. Bevezet´es 1.1. Ig´eny a telefonnal t¨ort´en˝o m´er´esekre A mobiltelefonok technol´ogiai fejl˝od˝os´evel a benn¨uk tal´alhat´o szenzorok is egyre fejlettebbek lettek. A manaps´ag forgalomba ker¨ul˝o telefonokon sz´eriafelszerelts´eg a gyorsul´asm´er˝o, a mikrofon, a kamera, e´ s sz´amos egy´eb szenzor. Alapvet˝o m´er´estechnikai feladatokat egy telefon m˝uk¨od´ese sor´an folyamatosan v´egez: a gyorsul´asm´er˝o jel´enek folyamatos vizsg´alat´aval v´altoztatja a k´ep orient´aci´oj´at, a megvil´ag´ıt´asm´er˝ovel a k´eperny˝o f´enyerej´et, a k¨ozels´egm´er˝o seg´ıts´eg´evel pedig telefon´al´as k¨ozben s¨ot´et´ıti el a k´epet a k´esz¨ul´ek. A rendszeren k´ıv¨ul az alkalmaz´asok is haszn´alj´ak a k´esz¨ul´ek teljes szenzorpalett´aj´at. El´eg csak az ezernyi j´at´ekra gondolni, amelyek ir´any´ıt´as´ara a gyorsul´asm´er˝o vagy a giroszk´op haszn´alatos. Ezen alkalmaz´asok m¨og¨ott m´er´estechnikai feladatok a´ llnak: val´os id˝oben kell a telefon a´ llapot´at m´erni, a m´er´esi adatokat r¨ogz´ıteni kell, azokb´ol pedig k¨ovetkeztet´eseket kell levonni, e´ s az alapj´an cselekedni. A felhaszn´al´o tudatosan a kamer´at e´ s a mikrofont haszn´alja leggyakrabban. L´eteznek alkalmaz´asok, melyek a kamera k´ep´et torz´ıtj´ak, vagy e´ ppen a mikrofon seg´ıts´eg´evel k´esz´ıtenek hang a´ llom´anyt. A dolgozat c´elkit˝uz´ese az, hogy bemutassa a telefonnak, mint szenzornak az alkalmaz´as´at egyszer˝u m´er´estechnikai feladatok elv´egz´es´ere. A telefonnak ´ıgy csup´an a szenzorai lesznek haszn´alva, a feldolgoz´as´ert egy k¨ul¨on feldolgoz´oegys´eg felel, amelyhez a telefon h´al´ozati kommunik´aci´o seg´ıts´eg´evel juttatja el a nyers m´er´esi adatokat. A dolgozat ezen szenzorokat e´ s alkalmaz´asi lehet˝os´egeit elemzi, konkr´et m´er´esek tapasztalatai alapj´an.
1.2. Kutat´asi el˝ozm´enyek Mint az el˝obbiekben ismertet´esre ker¨ult, a mobiltelefonok szenzorait els˝osorban a k´esz¨ul´ek a´ llapot´anak m´er´es´ere haszn´aljuk, hogy ez alapj´an v´altoztassuk meg a telefon m˝uk¨od´es´et, ami lehet a k´ep orient´aci´oj´anak megv´altoztat´asa, vagy esetleg egy j´at´ek karakter´enek ir´any´ıt´asa. Ennek tudat´aban nyilv´anval´ov´a v´alik, hogy a szenzorok ismerete n´elk¨ul¨ozhetetlen a mobiltelefonra t¨ort´en˝o fejleszt´es sor´an. Okostelefonok eset´eben rendelkez´esre a´ llnak rendszerh´ıv´asok ahhoz, hogy a szenzorok adatait el´erj¨uk. 6
´ 1. BEVEZETES Sz´amottev˝o kutat´asi el˝ozm´enyek: Getting High Precision Timing on Android [4] A mintav´etelez´eshez pontos id˝oz´ıt´es sz¨uks´eges, a tanulm´any ennek le´ır´as´aval foglalkozik. Motion recognition with Android devices [5] Mozg´as felismer´es´enek m´odjait le´ır´o tanulm´any, sz´amos gesztus e´ rz´ekel´ese gyorsul´asm´er˝ovel. Sensor Fusion [6] Orient´aci´o pontos´ıtott meghat´aroz´as´ara szolg´al´o m´odszer. Object Recognition With OpenCV and Android [7] Objektum felismer´ese Androidon, kamerak´ep alapj´an. A dolgozat mer´ıt a fenti tanulm´anyokb´ol, illetve a Sensor Fusion bemutat´as´ara k¨ul¨on fejezet szolg´al: bemutat´asra ker¨ul az alapkoncepci´o e´ s megval´os´ıt´asa orient´aci´o m´er´es´ere, illetve ismertet´esre ker¨ul egy tov´abbi alkalmaz´asi m´od is.
1.3. Az Android haszn´alata a m´er´esek sor´an Manaps´ag az Android a legelterjedtebb mobiltelefon platform, egyre n¨ovekv˝o n´epszer˝us´eggel [8]. Az Android egy Linux kernelen alapul´o, ny´ılt forr´ask´od´u oper´aci´os rendszer, legelterjedtebben mobiltelefonokban haszn´alatos. A dolgozatban haszn´alt mobiltelefonok ezt az oper´aci´os rendszert futtatj´ak. Ennek okai a k¨ovetkez˝oek: • Ingyenes fejleszt˝ok¨ornyezet (Android Studio) • Ingyenes szoftverfejleszt´es a platformra • Kiterjedt Sensor framework a szenzorok adatainak kezel´es´ere • A rendszer a leggyakrabban el˝ofordul´o szenzorokat t´amogatja, a legt¨obb telefonban pedig ezek megtal´alhat´oak Az Android platformra magas szinten Java nyelven programozhatunk, ´ıgy szinte a teljes Java paletta is rendelkez´es¨unkre a´ ll. Ennek ok´an a h´al´ozati kommunik´aci´o is akad´alytalanul megval´os´ıthat´o a platformon. Ehhez kliensoldali TCP Socket a´ ll rendelkez´es¨unkre a telefonon, amivel a feldolgoz´oegys´egnek tudjuk tov´abbk¨uldeni az adatokat.
7
´ 1. BEVEZETES
1.4. A LabVIEW haszn´alata a m´er´esek sor´an A m´er´esi adatokat teh´at egy TCP Socket kapcsolaton kereszt¨ul juttatjuk el a feldolgoz´o egys´egnek. Ez a feldolgoz´o egys´eg egy sz´am´ıt´og´ep, mely egy LabVIEW programmal elemzi a be´erkez˝o adatokat, val´os id˝oben. A LabVIEW (Laboratory Virtual Instrument Engineering Workbench) egy rendszer tervez˝o platform e´ s fejleszt˝o k¨ornyezet a National Instruments vizu´alis programoz´asi nyelv´ehez (G nyelv). A G nyelv egy adatfolyam programoz´ason alapul´o nyelv. Az utas´ıt´asokat a blokk diagram strukt´ur´aja hat´arozza meg, melyen a fejleszt˝o f¨uggv´enycsom´opontokat ”vezet´ekez” egym´ashoz, kijel¨olve az adatfolyam ir´any´at. Egy utas´ıt´as akkor hajt´odik v´egre, hogyha az o¨ sszes kell˝o adat ”meg´erkezik” csom´opontjaihoz. Ez a programoz´asi m´odszer jelent˝osen gyors´ıtja e´ s k¨onny´ıti a fejleszt´est a platformra. Egy LabVIEW programot (ez lehet p´eld´aul egy f¨uggv´eny megfelel˝oje) egy VI (Virtual Instrument) jelk´epez. A VI-nak vannak be- e´ s kimenetei, ahova a megfelel˝o vezet´ekeket bek¨otve adhatjuk meg a param´etereket e´ s nyerhetj¨uk ki a visszat´er´esi e´ rt´eket.
1. a´ bra. Egyszer˝u matematikai m˝uvelet k´odja LabVIEW-ban A LabVIEW platformot sz´amos, jelfeldolgoz´as´ert felel˝os k¨onyvt´ar er˝os´ıti, ezekb˝ol a dolgozatban felhaszn´altak: • Signal Processing Toolkit • Advanced Signal Processing Toolkit • Vision and Motion Ezen k¨onyvt´arak seg´ıts´eg´evel v´egeztem el a szenzorok jeleinek Fast Fourier Transzform´aci´oj´at, illetve a k´epelemz´est. Egy´eb fontosabb k¨onyvt´arak: • Data Communication 8
´ 1. BEVEZETES • Mathematics Ezen k¨onyvt´arak a telefon-sz´am´ıt´og´ep h´al´ozati kapcsolat e´ s az alapvet˝o matematikai m˝uveletek elv´egz´es´et szolg´alj´ak.
1.5. A m´er´esek sor´an felhaszn´alt eszk¨oz¨ok A dolgozat sor´an k´et telefont e´ s egy sz´am´ıt´og´epet haszn´altam fel: Nokia X Android alap´u okostelefon Sony Xperia SP Android alap´u okostelefon Dell Latitude E6530 Sz´am´ıt´og´ep ¨ ek K´eszul´
Oper´aci´os rendszer
Verzi´o
Nokia X
Android
4.1.2 (CyanogenMod)
Sony Xperia SP
Android
4.3 (Hivatalos Sony ROM)
Dell Latitude E6530
Windows
7 Professional, SP1
Egy´eb felhaszn´alt eszk¨oz¨ok: • MS-1500 Digit´alis megvil´ag´ıt´asm´er˝o (VOLTCRAFT) • Opel Astra 1.2 16V Club szem´elyaut´o • HP 1740 17” TFT MONITOR Felhaszn´alt szoftverek: • Saj´at fejleszt´es˝u feldolgoz´oszoftver (LabVIEW 2014) • Saj´at fejleszt´es˝u Android szoftverek a szenzorok kezel´es´ere e´ s adattov´abb´ıt´asra (Android Studio) • OriginPro 8.5 a kalibr´aci´os g¨orb´ek meghat´aroz´as´ahoz • Adobe Photoshop CS6, TexMaker (LATEX) a dokument´aci´o elk´esz´ıt´es´ehez
9
´ O´ ARAML ´ ´ A MER ´ ESEK ´ ´ 2. INFORMACI AS SORAN
2. Inform´aci´oa´ raml´as a m´er´esek sor´an L´enyeges tiszt´aban lenni azzal, hogy az inform´aci´o hogyan a´ ramlik a m´er´esek sor´an, mivel ´ıgy felv´azolhatjuk, hogy a m´er´esek sor´an milyen ”csom´opontokon” halad a´ t inform´aci´o, illetve ezen csom´opontoknak mi a szerepe az inform´aci´o feldolgoz´as´aban e´ s tov´abb´ıt´as´aban.
2. a´ bra. Az inform´aci´oa´ raml´as szeml´eltet´ese Az 2. a´ br´an szeml´eltet´esre ker¨ul az inform´aci´oa´ raml´as folyamata a dolgozatban elv´egzett m´er´esek sor´an. Az a´ bra alapj´an az inform´aci´o a´ raml´asa a k¨ovetkez˝ok´eppen ´ırhat´o le: • A m´erend˝o fizikai rendszer jelei k¨oz¨ul kiv´alasztott m´ert mennyis´eget m´erj¨uk • A m´ert mennyis´eg a telefon egy szenzor´aval villamos jell´e alak´ıt´odik • A telefon a villamos jelet AD a´ talak´ıt´assal digit´alis jell´e alak´ıtja. • A telefon a digit´alis jelet sz¨uks´eg szerint kalibr´aci´os g¨orb´ere illeszti, ezzel megkapjuk a m´er´esi adatot. • A m´er´esi adat egy kommunik´aci´os csatorn´an val´os id˝oben tov´abb´ıt´asra ker¨ul a feldolgoz´o egys´eghez. • A feldolgoz´o egys´eg fogadja a m´er´esi adatokat, azokat pedig (val´os id˝oben) feldolgozza. ´Igy jutunk el a m´er´esi eredm´enyig. A m´er´esek szempontj´ab´ol h´arom fontos csoportot alkothatunk: 10
´ O´ ARAML ´ ´ A MER ´ ESEK ´ ´ 2. INFORMACI AS SORAN • A telefon • A kommunik´aci´os csatorna • A feldolgoz´oegys´eg A fejezet tov´abbi r´eszei a fenti h´arom csoporttal foglalkoznak. Ismertet´esre ker¨ul a csoportok fel´ep´ıt´ese, szerepe az inform´aci´oa´ raml´asban.
2.1. Telefon e´ s szerepe Mint az m´ar eml´ıt´esre ker¨ult, a telefont, mint szenzort alkalmazzuk a m´er´esek sor´an. ´Igy a ”telefont” h´arom r´eszre kell osztanunk: • A be´ep´ıtett szenzorokra • Az Android rendszer e´ s a szenzorok kapcsolatrendszer´ere • A telefon h´al´ozati kommunik´aci´oja a feldolgoz´o egys´eggel
2.1.1. A szenzorok Az Android rendszer a k¨ovetkez˝o szenzorokat t´amogatja (Android 4.0-t´ol): • Gyorsul´asm´er˝o, ambiens h˝om´ers´eklet m´er˝o, gravit´aci´o szenzor, giroszk´op, megvil´ag´ıt´asm´er˝o, ˝ orient´aci´om´er˝o, nyom´asm´er˝o, k¨ozels´egszenzor, p´aratartalom line´aris gyorsul´as, ir´anytu, m´er˝o, rot´aci´os vektor m´er˝o, h˝om´ers´ekletm´er˝o Ezeken k´ıv¨ul el´erhet˝o a kamera e´ s mikrofon jele is. A f´elk¨ov´errel szedett szenzorok a dolgozat kidolgoz´asa sor´an felhaszn´al´asra ker¨ultek. A szenzorokat h´arom csoportba sorolhatjuk [9]: Mozg´as szenzorok: Ezen szenzorok gyorsul´asi e´ s rot´aci´os er˝ot m´ernek, h´arom tengely ment´en. Ide tartoznak a gyorsul´asm´er˝ok, gravit´aci´o szenzorok, giroszk´opok e´ s rot´aci´o vektor szenzorok. K¨ornyezeti szenzorok: K¨ornyezeti param´eterek m´er´es´ere haszn´alatos szenzorok, p´eld´aul: k¨uls˝o h˝om´ers´eklet e´ s nyom´as, megvil´ag´ıt´as, p´aratartalom. Poz´ıci´o szenzorok: Ezen szenzorok a k´esz¨ul´ek fizikai poz´ıci´oj´at m´erik. Ebbe a kateg´ori´aba tartoznak az orient´aci´om´er˝ok e´ s a m´agnese ir´anyt˝u.
11
´ O´ ARAML ´ ´ A MER ´ ESEK ´ ´ 2. INFORMACI AS SORAN Ezen szenzorok szerepe az, hogy a m´erend˝o rendszer valamely val´os fizikai jel´et (a m´ert mennyis´eget) valamilyen m´odszerrel elektromos jell´e alak´ıtsa, hogy azt a telefon oper´aci´os rendszere anal´og digit´alis a´ talak´ıt´assal digit´alis jell´e alak´ıtsa. A digit´alis jel ezut´an egy kalibr´aci´os g¨orb´evel kalibr´aci´ora ker¨ul. Ezzel kialakul a m´er´esi adat. A szenzorok hardver szint˝u fel´ep´ıt´es´evel e´ s az alacsony szint˝u folyamatokkal, mint az AD a´ talak´ıt´as vagy a telefonba be´ep´ıtett kalibr´aci´o a dolgozat nem foglalkozik.
2.1.2. A szenzorok e´ s az Android rendszer kapcsolata Android rendszer eset´en a m´er´esi adatok el´er´es´ere egy kiterjedt Sensor Framework a´ ll rendelkez´esre. A kamera e´ s a mikrofon el´er´es´et˝ol eltekintve a SensorManager oszt´aly haszn´alatos a szenzorok kezel´es´ere. Ezzel az oszt´allyal a k´esz¨ul´eken megtal´alhat´o szenzorokra iratkozhatunk fel, hogy jeleiket el´erj¨uk. A szenzorokat kezel˝o Java oszt´alyokkal e´ s azok haszn´alat´aval egy k´es˝obbi fejezet foglalkozik r´eszletesen.
2.1.3. A telefon kommunik´aci´oja a feldolgoz´o egys´eggel Rendelkez´es¨unkre a´ llnak teh´at a m´er´esi adatok, melyeket val´os id˝oben el kell juttatni a feldolgoz´oegys´eghez, hogy az adatfeldolgoz´as megt¨ort´enhessen. Az Android platformra magas szinten Java nyelven programozhatunk, ´ıgy szinte a teljes Java paletta is rendelkez´es¨unkre a´ ll. Ennek ok´an a h´al´ozati kommunik´aci´o is akad´alytalanul megval´os´ıthat´o a platformon. Ehhez kliensoldali TCP Socket a´ ll rendelkez´es¨unkre a telefonon, amivel a feldolgoz´oegys´egen fut´o szerverhez tudjuk tov´abbk¨uldeni az adatot. Ennek konkr´et megval´os´ıt´as´aval a k¨ovetkez˝o fejezet foglalkozik.
2.2. H´al´ozati kapcsolat e´ s szerepe A m´er´esi adatokat k¨ozvet´ıteni kell a telefon e´ s a feldolgoz´o sz´am´ıt´og´ep k¨oz¨ott. K´et l´enyeges dolgot kell eld¨onteni: • A kommunik´aci´os csatorna fizikai megval´os´ıt´as´at • A kommunik´aci´os protokollt
12
´ O´ ARAML ´ ´ A MER ´ ESEK ´ ´ 2. INFORMACI AS SORAN 2.2.1. A kommunik´aci´os csatorna fizikai megval´os´ıt´asa A m´er´es sor´an a felhaszn´alt feldolgoz´o sz´am´ıt´og´ep (Dell Latitude E6530) be´ep´ıtett Wifi jelad´oj´at haszn´altam fel arra, hogy egy ad hoc vezet´ek n´elk¨uli kapcsolatot hozzak l´etre, amire a telefonnal fel lehet csatlakozni. Windows rendszer alatt a megval´os´ıt´as parancssorral t¨ort´enik: netsh wlan set hostednetwork mode=allow ssid=name key=pwrd netsh wlan start hostednetwork netsh wlan stop hostednetwork
Ezzel rendelkez´esre a´ ll egy kommunik´aci´os csatorna, amelyen kereszt¨ul vezet´ek n´elk¨ul, a sz´am´ıt´og´ep k¨or¨ulbel¨ul 5 m´eteres k¨ornyezet´eben l´etes´ıthet¨unk kapcsolatot a k´et eszk¨oz k¨oz¨ott. Az a´ tlagos v´alaszid˝o ≈ 60 [ms]. Ezzel a kommunik´aci´os csatorn´aval megval´os´ıthat´oak olyan m´er´esek, melyekn´el elengedhetetlen a telefon szabad mozg´asa (pl. rezg´esek m´er´es´en´el, kamer´as m´er´esekn´el), a feldolgoz´oegys´egnek nem kell a szenzor k¨ozvetlen k¨ozel´eben lennie, e´ s az adatkommunik´aci´o illetve a feldolgoz´as val´os id˝oben kell t¨ort´ennie. Ezen tulajdons´agok alapj´an a csatorna teljes k¨or˝uen megfelel a dolgozat sor´an elv´egzett m´er´esek adatkommunik´aci´oval kapcsolatos elv´ar´asainak.
2.2.2. A kommunik´aci´os protokoll A v´alasztott kommunik´aci´os protokoll a TCP (Transmission Control Protocol). A TCP protokollnak sz´amos el˝onye van a m´er´esi adatok k¨ozvet´ıt´es´en´el: • A m´er´esi adatok biztosan meg´erkeznek a feldolgoz´o egys´eghez • A m´er´esi adatok helyes sorrendben e´ rkeznek meg (helyes sorrendis´eg garant´alt) • A m´er´esi adatok helyesen e´ rkeznek meg (hibakeres´es) • A megval´os´ıt´asa egyszer˝u b´armely platformon Egy alternat´ıv protokoll lehet az UDP (User Datagram Protocol), azonban ott nem garant´alt minden m´er´esi adat meg´erkez´ese a feldolgoz´o sz´am´ıt´og´epnek, illetve lehetnek hib´as m´er´esi adatok, mivel hibakeres´es nincsen. Ezzel szemben lecs¨okkent k´esleltet´esi id˝o jellemzi ezt a protokollt. Alternat´ıv´at ez csup´an a kamerak´ep k¨ozvet´ıt´es´en´el jelentene, a dolgozatban viszont azt is a TCP protokollal val´os´ıtottam meg. A h´al´ozati kommunik´aci´o l´etrej¨ott´evel m´ar csup´an a feldolgoz´o sz´am´ıt´og´ep alapvet˝o elvi v´azlat´at kell lefektetni ahhoz, hogy a szoftverek konkr´et megval´os´ıt´as´ar´ol tudjunk besz´elni mind a telefon, 13
´ O´ ARAML ´ ´ A MER ´ ESEK ´ ´ 2. INFORMACI AS SORAN mind a feldolgoz´o oldalon.
2.3. Feldolgoz´oegys´eg e´ s szerepe A feldolgoz´o egys´eg egy szem´elyi sz´am´ıt´og´ep, melyen egy LabVIEW adatfeldolgoz´o program fut. A feldolgoz´o egys´eg szerep´et k´et alapvet˝o r´eszre kell bontanunk: • Az adat fogad´asa • Az adat feldolgoz´asa
2.3.1. A m´er´esi adat fogad´asa a feldolgoz´oegys´egen A telefon e´ s a feldolgoz´o sz´am´ıt´og´ep k¨oz¨ott fenn´all´o vezet´ek n´elk¨uli (WiFi) csatorn´an a kommunik´aci´o protokollja a TCP. A LabVIEW platformon minden eszk¨oz rendelkez´esre a´ ll, hogy ezt a kapcsolatot szoftver szinten megval´os´ıtsuk. Ezen az oldalon m˝uk¨odik a TCP szerver, amelyhez kapcsol´odik a telefon oldali TCP Socket. A LabVIEW platformon a TCP kommunik´aci´ora a Data Communication csomag haszn´alatos, mely tartalmazza a TCP Server VI-t is. A szoftvert fel kell k´esz´ıteni k¨ul¨onb¨oz˝o adatt´ıpusok fogad´as´ara, mivel a m´er´esek sor´an nem csup´an egyszer˝u val´os sz´amokat haszn´alunk, hanem esetenk´ent t¨omb¨oket illetve k´ep a´ llom´anyokat is.
2.3.2. A m´er´esi adat feldolgoz´asa A m´er´esi adatokat fogad´asuk ut´an fel kell dolgozni. A feldolgoz´as alapvet˝oen a m´er´esi adatok megjelen´ıt´ese, r¨ogz´ıt´ese, azokkal val´o m˝uveletek elv´egz´ese, illetve az ´ıgy kapott m´er´esi eredm´eny megjelen´ıt´ese e´ s r¨ogz´ıt´ese. A m´er´esi adatok megjelen´ıt´es´ere rendelkez´esre a´ llnak a m´ern¨oki munka sor´an el˝oszeretettel alkalmazott grafikonok, ezen fel¨ul pedig egyszer˝u numerikus indik´atorokat is alkalmazhatunk. Az adatok r¨ogz´ıt´es´ere az o¨ sszes hagyom´anyos m´odszer rendelkez´esre a´ ll a platformon: menthet¨unk sz¨oveges e´ s bin´aris f´ajlba is, tov´abb´a sz´amos szabv´anyos form´atum is v´alaszthat´o, p´eld´aul a comma separated values (.csv). A grafikonok adatait is export´alhatjuk. A ”sz´amszer˝u” adatok elemz´es´ere sz´amos m˝uveletre van sz¨uks´eg. Az alapvet˝o matematikai m˝uveletekre a LabVIEW Mathematics k¨onyvt´ara a´ ll rendelkez´esre, a frekvencia tartom´anybeli 14
´ ESTECHNIKAI ´ ´ 3. AZ ANDROID MER ALKALMAZASA elemz´esre e´ s egy´eb transzform´aci´okra a Signal Processing Toolkit e´ s az Advanced Signal Processing Toolkit haszn´alhat´o. A frekvencia tartom´any a´ br´azol´as´ara e´ s cs´ucskeres´esre term´eszetesen rendelkez´esre a´ llnak eszk¨oz¨ok a platformon. A val´os idej˝u k´epfeldolgoz´asra a Vision and Motion toolkitet alkalmaztam a m´er´esek sor´an. Ez a csomag igen hat´ekony k´epfeldolgoz´o algoritmusokat tartalmaz, melyeket a k´epek szegment´al´as´ara haszn´altam, sz´ın alap´u objektumfelismer´es megval´os´ıt´as´ara. Ezzel rendelkez´esre a´ ll a m´er´esi eredm´eny, teh´at el´erkezt¨unk az inform´aci´o a´ raml´as´anak v´eg´ere. A fent eml´ıtett funkci´ok konkr´et megval´os´ıt´as´anak egy k¨ul¨on fejezetet szentel a dolgozat.
3. Az Android m´er´estechnikai alkalmaz´asa A fejezet betekint´est ad abba, milyen eszk¨ozeink vannak a szenzorok felhaszn´al´as´ara Android platform alatt. Tov´abb´a, a h´al´ozati kommunik´aci´o megval´os´ıt´asa is bemutat´asra ker¨ul. Sz´amos k´odr´eszlet ad programoz´astechnikai p´eld´akat, a teljes forr´ask´od pedig egy m˝uk¨od˝o p´eld´at demonstr´al, a t´ema keret´en bel¨ul ezeket a szoftvereket alkalmaztam a m´er´esek elv´egz´esekor. A dolgozat keret´eben k´esz´ıtett programok e´ s forr´ask´odjaik (MIT Licence alatt) a mell´ekletek k¨oz¨ott megtal´alhat´oak, e´ s szabadon felhaszn´alhat´oak (a licencben foglaltak betart´asa mellett).
¨ 3.1. Felhaszn´al´oi felulet Az okostelefonokra k´esz´ıtett alkalmaz´asok egyik igen fontos eleme a felhaszn´al´oi fel¨ulet. Android platformon lehet˝os´eg van egy fel¨uletet .xml form´atumban le´ırni, e´ s a fel¨ulet elemeit Java k´odban el´erni. Ez jelent˝osen megk¨onny´ıti a felhaszn´al´oi fel¨uletek megval´os´ıt´as´at a platformon. Mivel ez nem a t´ema szerves r´esze, ez´ert a megval´os´ıt´as bemutat´as´at´ol eltekintek. A felhaszn´al´oi fel¨ulet fel´ep´ıt´es´en´el figyelembe kell venni azt, hogy ezek az alkalmaz´asok m´er´estechnikai c´elra k´esz¨ulnek. Sz´amos Android applik´aci´o k´esz¨ult, de mindegyik fel¨ulete rendelkezik az al´abbi, m´er´esekhez sz¨uks´eges eszk¨oz¨okkel e´ s funkcionalit´assal: • A k´eperny˝o forgat´asa le van tiltva (az alkalmaz´as objektumai e´ s fel¨ulete ilyenkor ”´ujj´ae´ p´ıt´esre” ker¨ulnek, ami sz¨uneteltetheti a m´er´est) • A k´eperny˝o els¨ot´eted´ese le van tiltva (hasonl´o okokb´ol, mint a forgat´asn´al)
15
´ ESTECHNIKAI ´ ´ 3. AZ ANDROID MER ALKALMAZASA • Szerepelnek olyan adatbeviteli mez˝ok, melyekkel specifik´alhatjuk a feldolgoz´o sz´am´ıt´og´ep IP c´ım´et e´ s a kommunik´aci´os portot a h´al´ozaton • Connect gombbal csatlakozhatunk a feldolgoz´o egys´eghez • Valamilyen form´aban megjelen´ıt´esre ker¨ul a m´er´esi adat • Specifik´alni lehet a m´er´esi adat k¨uld´es´enek frekvenci´aj´at • Send Sensor Data gombbal elkezdhetj¨uk a k¨uld´es´et az adatnak • Lehet˝os´eg van sz¨oveges adatokkal val´o kommunik´aci´ora a feldolgoz´oegys´eggel Tov´abb´a, a fel¨ulet egyes elemei nem el´erhet˝oek bizonyos esetekben: • A Send Sensor Data gomb nem aktiv´alhat´o, ha nincs fel´all´ıtva a h´al´ozati kapcsolat • Az adatk¨uld´es frekvenci´aja nem m´odos´ıthat´o az adat k¨uld´ese k¨ozben • Az IP e´ s Port beviteli mez˝ok nem m´odos´ıthat´oak a h´al´ozati kapcsolat fenn´all´asa k¨ozben
3.2. A szenzorok el´er´ese Ezen alfejezet a k¨ovetkez˝o szenzorok el´er´es´evel foglalkozik:
3. a´ bra. A felhaszn´al´oi fel¨ulet
• Gyorsul´asm´er˝o, ambiens h˝om´ers´eklet m´er˝o, gravit´aci´o szenzor, giroszk´op, megvil´ag´ıt´asm´er˝o, line´aris gyorsul´as, ˝ orient´aci´om´er˝o, nyom´asm´er˝o, k¨ozels´egszenzor, ir´anytu, p´aratartalom m´er˝o, rot´aci´os vektor m´er˝o, h˝om´ers´ekletm´er˝o A f´elk¨ov´eren szedett szenzorokat haszn´al´o applik´aci´ok elk´esz´ıt´esre ker¨ultek a dolgozat keretein bel¨ul. Az al´abbiakban a szenzorok kezel´es´et a gyorsul´asm´er˝o p´eld´aj´an fogom bemutatni, mivel az o¨ sszes t¨obbi (fent felsorolt) szenzor el´er´ese e´ s adatainak kezel´ese azzal anal´og m´odon t¨ort´enik. Az Android platformon a SensorManager oszt´allyal e´ rhetj¨uk el a szenzorokat. El´er´ese: private SensorManager sensorManager; sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
16
´ ESTECHNIKAI ´ ´ 3. AZ ANDROID MER ALKALMAZASA Ennek az objektumnak a seg´ıts´eg´evel e´ rhetj¨uk el a telefon szenzorait, az al´abbi m´odon: private Sensor sensorAcc; sensorAcc = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0);
Ezzel kapunk egy p´eld´anyos´ıtott, gyorsul´asm´er˝ot reprezent´al´o objektumot. Ahhoz, hogy a szenzor a´ ltal m´ert adatokat el´erj¨uk, regisztr´alni kell azt: sensorManager.registerListener(sensorHandler, sensorAcc, SensorManager.SENSOR_DELAY_FASTEST);
A f¨uggv´eny m´asodik argumentuma a regisztr´alni k´ıv´ant szenzor objektum, a harmadik pedig defini´alja a szenzorfriss´ıt´esi frekvenci´at. A v´alaszthat´o labelek e´ s a hozz´ajuk tartoz´o jellemz˝o (m´ert) mintav´etelez´esi frekvenci´ak a 4. a´ br´an tal´alhat´oak. Megjegyz´es¨ul: a frekvenci´ak k´esz¨ul´ek specifikusak, az Xperia SP k´esz¨ul´ekkel 200Hz-es mintav´etelez´esi frekvencia is megval´os´ıthat´o a tapasztalataim szerint.
4. a´ bra. A szenzork´esleltet´esi id˝ok, X10 mini [5] Az els˝o argumentuma a registerListener f¨uggv´enynek egy SensorEventListener listener, mely interf´eszt egy SensorHandler oszt´allyal val´os´ıtottam meg: public class SensorHandler implements SensorEventListener { // accelerometer vector private float[] accel = new float[3]; // listener that we send the data to private SensorDataListener mStatusListener = null;
17
´ ESTECHNIKAI ´ ´ 3. AZ ANDROID MER ALKALMAZASA public SensorHandler(SensorDataListener listener){ mStatusListener=listener; } public float[] getRawAccData(){ return accel; } @Override public void onSensorChanged(SensorEvent event) { Sensor sensor = event.sensor; if (sensor.getType() == Sensor.TYPE_ACCELEROMETER) { System.arraycopy(event.values, 0, accel, 0, 3); } mStatusListener.getData(); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } public interface SensorDataListener{ public void getData(); } }
A SensorEventListener interf´esz onSensorChanged e´ s onAccuracyChanged f¨uggv´enyeit meg kell val´os´ıtani. Az ut´obbi sz´amunkra nem relev´ans, az el˝obbib˝ol viszont kinyerhet˝oek a szenzor adatok, az argumentumban kapott event p´eld´anyb´ol. A k´odr´eszletben bemutat´asra ker¨ul az adatok kinyer´es´enek m´odja. Az onSensorChanged akkor h´ıv´odik meg, amikor u´ j szenzor mintav´etelez´esi adat e´ rhet˝o el. A SensorDataListener interf´esz megval´os´ıt´as´aval egy oszt´aly e´ rtes¨ul arr´ol, hogy u´ j szenzor e´ rt´ek e´ rhet˝o el. A t´ema keretein bel¨ul k´esz´ıtett programokban ezt az interf´eszt a MainActivity implement´alja. Hogyha nem k´ıv´anjuk tov´abbra is el´erni a szenzorok adatait, akkor le kell iratkoznunk r´oluk. Ez az al´abbi m´odon zajlik: sensorManager.unregisterListener(sensorHandler);
Ezt energia e´ s er˝oforr´as takar´ekoss´agi szempontb´ol kell megtenn¨unk.
18
´ ESTECHNIKAI ´ ´ 3. AZ ANDROID MER ALKALMAZASA
3.3. Id˝oz´ıt´es megval´os´ıt´asa Mivel a pontos, meghat´arozott frekvenci´aj´u mintav´etelez´es nem megoldott az el˝obbiekben bemutatott szenzorkezel´essel, megold´ast kell tal´alni arra, hogy meghat´arozott id˝ol´ep´esenk´ent k¨uldj¨uk a m´er´esi adatokat a feldolgoz´o egys´egnek. Az Android platformon erre lehet˝os´eget k´ın´al a Timer oszt´aly. A Send Sensor Data gomb megnyom´as´ara egy ilyen id˝oz´ıt˝o l´ep m˝uk¨od´esbe, amely egy a´ ltalunk milliszekundumban meghat´arozott id˝ol´ep´essel k¨uldi a m´er´esi adatot a feldolgoz´o egys´egnek. Timer myTimer = new Timer(); myTimer.schedule(new TimerTask() { @Override public void run() { if(isConnected&&isSendingData&&mTcpClient!=null){ //send bytes try { mTcpClient.sendBytes(accVector[0]); mTcpClient.sendBytes(accVector[1]); mTcpClient.sendBytes(accVector[2]); } catch (IOException e) { e.printStackTrace(); } } if(!isSendingData||!isConnected||mTcpClient==null) this.cancel(); } }, 0, Integer.parseInt(refreshEditText.getText().toString()));
3.4. Mikrofonkezel´es A mikrofon kezel´es´ere az AudioRecord oszt´aly haszn´alatos. A mikrofon be´all´ıt´as´an´al sz´amos lehet˝os´eg¨unk van: • audioSource : a m´er´esek sor´an a be´ep´ıtett mikrofont haszn´alom • sampleRateInHz : a mintav´etelez´esi frekvencia, 44100Hz garant´altan m˝uk¨odik minden k´esz¨ul´eken, ezen fel¨ul el´erhet˝o 22050, 16000, 11025Hz egyes k´esz¨ul´ekeken • channelConfig : a CHANNEL IN MONO minden k´esz¨ul´eken t´amogatott, a CHANNEL IN STEREO is el´erhet˝o n´eh´any k´esz¨ul´eken 19
´ ESTECHNIKAI ´ ´ 3. AZ ANDROID MER ALKALMAZASA • audioFormat : ENCODING PCM 8BIT, ENCODING PCM 16BIT, e´ s ENCODING PCM FLOAT • bufferSizeInBytes : annak a t¨ombnek a m´erete, melybe az audio adatot ´ırjuk A megval´os´ıt´as: //settings public static final int SAMPPERSEC = 44100; private int audioEncoding = AudioFormat.ENCODING_PCM_16BIT; private int channelConfiguration = AudioFormat.CHANNEL_IN_MONO; int buffersizebytes=AudioRecord.getMinBufferSize(SAMPPERSEC, channelConfiguration, audioEncoding)*5; //create the recorder class private AudioRecord ar = new AudioRecord( MediaRecorder.AudioSource.MIC, SAMPPERSEC, channelConfiguration, audioEncoding, buffersizebytes);
Egy bufferbe a k¨ovetkez˝ok´eppen tudunk mintav´etelez´esi adatokat menteni: private static short[] buffer; private int mSamplesRead;//how many samples buffer = new short[buffersizebytes/2]; mSamplesRead = ar.read(buffer, 0, buffersizebytes/2);
Ezt a m˝uveletet egym´as ut´an elv´egezhetj¨uk, ´ıgy folytonos mintav´etelez´est kapunk. A buffer t¨omb¨ot elk¨uldve a feldolgoz´o egys´egnek, k¨ul¨onb¨oz˝o m˝uveleteket tudunk elv´egezni az adatsoron, a legk´ezenfekv˝obb a frekvencia tartom´anyra bont´as, ami a m´er´es sor´an is alkalmaz´asra ker¨ul.
3.5. Kamerakezel´es Ahhoz, hogy k´ep stream-et k¨uldj¨unk a feldolgoz´o egys´egnek, el˝osz¨or sz¨uks´eg¨unk van egy kamera objektumra. private Camera mCamera = getCameraInstance(); private Camera getCameraInstance() { Camera camera = null; try { camera = Camera.open(); } catch (Exception e) { // cannot get camera or does not exist }
20
´ ESTECHNIKAI ´ ´ 3. AZ ANDROID MER ALKALMAZASA return camera; }
A kamera el˝on´ezeti k´ep´eb˝ol tudjuk kinyerni az elk¨uldend˝o k´epeket. Fontos tudni a t´amogatott k´epfelbont´asokat: List
supportedPreviewRes; Camera.Parameters params = mCamera.getParameters(); supportedPreviewRes = params.getSupportedPreviewSizes(); //setting important parameters: params.setPreviewSize(supportedPreviewRes.get(0).width, supportedPreviewRes.get(0).height); params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO); mCamera.setParameters(params);
A k´epkock´ak el´er´es´ehez egy callback objektum a´ ll rendelkez´es¨unkre, ezeket a k´epkock´akat jpeg form´atumra konvert´aljuk, e´ s ´ıgy k¨uldj¨uk el a feldolgoz´o egys´egnek: Camera.PreviewCallback mPreview = new Camera.PreviewCallback() { @Override public void onPreviewFrame(byte[] data, Camera camera) { //get image data... //get image format... //convert to jpeg... //send jpeg via tcp } }
Az algoritmus komplexit´asa miatt nem ker¨ul r´eszletes bemutat´asra a dolgozat keretein bel¨ul, azonban a mell´ekletek k¨oz¨ott a teljes forr´as megtal´alhat´o.
3.6. H´al´ozatkezel´es Az el˝oz˝oekben ismertet´esre ker¨ult az, hogyan e´ rhet˝oek el Android platformon a szenzorok adatai. Ezeket az adatokat tov´abb´ıtani kell a feldolgoz´oegys´eg fel´e, jelen alfejezet ezzel foglalkozik. Mint m´ar eml´ıt´esre ker¨ult, a h´al´ozati kommunik´aci´o a TCP protokoll szerint zajlik. Ez´ert a funkci´oe´ rt a TCPClient oszt´aly felel. Ennek megval´os´ıt´as´ara el˝osz¨or egy Socket objektumra van sz¨uks´eg¨unk:
21
´ ESTECHNIKAI ´ ´ 3. AZ ANDROID MER ALKALMAZASA Socket socket = new Socket(); socket.connect(new InetSocketAddress(serverIP, serverPort), 2000);
Ezek ut´an a sz¨oveges adatok ki- e´ s bevitel´en, valamint a m´er´esi adatok b´ajtk´ent t¨ort´en˝o tov´abb´ıt´as´at kell megoldani az al´abbi m´odon: PrintWriter outString; BufferedReader in; DataOutputStream outBytes; //send the message to the server outString = new PrintWriter(new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())), true); outBytes=new DataOutputStream(socket.getOutputStream()); //receive the message which the server sends back in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
A MainActivity-nek valamilyen m´odon kommunik´alnia kell a TCPClient objektummal. Erre k´et interf´eszt haszn´altam: • OnMessageReceived : A szervert˝ol (feldolgoz´oegys´eg) kapott sz¨oveges adat k¨ozvet´ıt´ese • TCPStatusListener : A TCP kapcsolat a´ llapot´ar´ol t´aj´ekoztatja a MainActivity-t public interface OnMessageReceived { public void messageReceived(String message); } public interface TCPStatusListener { public void onConnect(int flag); public void onClose(); } //flags public static int SUCCESSFUL = 1; public static int ERROR = -1;
A szervert˝ol val´o adatok fogad´as´ar´ol az al´abbi ciklus gondoskodik: while (mRun) { serverMessage = in.readLine(); if (serverMessage != null && mMessageListener != null) { //call the method messageReceived from MyActivity class mMessageListener.messageReceived(serverMessage); } serverMessage = null; }
22
´ ESTECHNIKAI ´ ´ 3. AZ ANDROID MER ALKALMAZASA A m´er´esi adatok e´ s sz¨oveges u¨ zenetek k¨uld´es´er˝ol az al´abbi f¨uggv´enyek gondoskodnak: //send text messages public void sendMessage(String message){ if (outString != null && !outString.checkError()) { outString.println(message); outString.flush(); } } //send the measurement data in bytes public void sendBytes(byte[] b) throws IOException { //send the size of the byte array first outBytes.writeInt(b.length); outBytes.flush(); outBytes.write(b); outBytes.flush(); }
A TCPClient objektumot a k¨ovetkez˝ok´eppen inicializ´aljuk a MainActivity-b˝ol, k¨ul¨on sz´alban: public class connectTask extends AsyncTask<String,String,TCPClient> { @Override protected TCPClient doInBackground(String... message) { String ip=ipEditText.getText().toString(); String portstring= portEditText.getText().toString(); int port = Integer.parseInt(portstring); //we create a TCPClient object and mTcpClient = new TCPClient(new TCPClient.OnMessageReceived() { @Override //here the messageReceived method is implemented public void messageReceived(String message) { //this method calls the onProgressUpdate publishProgress(message); } },MainActivity.this, ip, port); mTcpClient.run(); return null; } @Override protected void onProgressUpdate(String... values) { super.onProgressUpdate(values); //in the textview we add the messaged received from server lineTextView.setText(values[0]);
23
´ ´ ESEK ´ ´ 4. A LABVIEW HASZNALATA A MER SORAN } }
A k¨ul¨on sz´alb´ol val´o m˝uk¨od´es az´ert indokolt, mert ellenkez˝o esetben az objektum m˝uk¨od´ese a felhaszn´al´oi fel¨ulet´ert felel˝os sz´alb´ol futna, ´ıgy blokkoln´a az alkalmaz´as fel¨ulet´et. El˝osz¨or l´etrehozzuk a TCPClient objektumot, majd elind´ıtjuk a mTcpClient.run(); h´ıv´assal. A szervert˝ol kapott u¨ zenetek fogad´as´ae´ rt az onProgressUpdate f¨uggv´eny felel, ezzel pedig a felhaszn´al´oi fel¨uleten megjelen´ıtj¨uk az u¨ zenetet: lineTextView.setText(values[0]).
4. A LabVIEW haszn´alata a m´er´esek sor´an Az el˝oz˝o fejezetben bemutat´asra ker¨ult az, hogyan lehet Android alap´u mobiltelefonon el´erni a szenzorokat e´ s adataikat, ez a fejezet pedig megmutatja, hogyan lehet LabVIEW oldalon fogadni, feldolgozni, r¨ogz´ıteni e´ s prezent´alni a m´er´esi adatot. A dolgozat keret´eben k´esz´ıtett programok e´ s forr´ask´odjaik (MIT Licence alatt) a mell´ekletek k¨oz¨ott megtal´alhat´oak, e´ s szabadon felhaszn´alhat´oak (a licencben foglaltak betart´asa mellett).
4.1. Szenzoradatok fogad´asa, a TCP szerver A Android oldalr´ol b´ajtonk´ent k¨uld¨ott m´er´esi adatokat fogadnunk kell LabVIEW oldalon. A TCP kapcsolat´ert felel˝os szerver ezen az oldalon fut, ennek megval´os´ıt´asa a 5. a´ br´an l´athat´o. A TCP
5. a´ bra. TCP szerver megval´os´ıt´asa LabVIEW-ban szerver VI-nak a k¨ovetkez˝o bemenetei vannak: • Port: a kapcsolat portja • Timeout: Az az id˝o, amennyit a kliens kapcsol´od´as´aig v´ar a VI, ezut´an Exception-t dob • Error in: input a bemen˝o hib´anak A kimenetek:
24
´ ´ ESEK ´ ´ 4. A LABVIEW HASZNALATA A MER SORAN • Connection reference: A fel´ep´ıtett kapcsolatot megad´o e´ rt´ek, ami majd az adatot kiolvas´o VI bemenete lesz • Error out: ha a VI fut´asa sor´an hiba keletkezett, akkor a dobott hiba ezen a kimeneten lesz el´erhet˝o A kliens oldalr´ol t¨obb form´atumban e´ rkezik adat: unsigned int sz´amh´armasok, short sz´amok, single t¨omb¨ok, jpeg k´ep a´ llom´anyok. Ezek fogad´as´ara k¨ul¨on-k¨ul¨on fel kell k´esz´ıteni a feldolgoz´o programot. A k¨ul¨onb¨oz˝o adatt´ıpusok k¨oz¨ott egy Mode kapcsol´oval v´althat a felhaszn´al´o. A t¨obbf´ele adat fogad´as´anak megval´os´ıt´asa a tcp2data.vi VI-al val´osul meg. Ennek bemenete a fent eml´ıtett Connection reference, illetve a szint´en t´argyalt Mode a´ llapota. A megval´os´ıt´as a megvil´ag´ıt´asm´er˝o jel´enek fogad´as´ara a 6. a´ br´an l´athat´o.
6. a´ bra. TCP szerver megval´os´ıt´asa LabVIEW-ban
A TCP kapcsolatb´ol kiolvas´o VI bemenete a kapcsolatot jellemz˝o referencia, tov´abb´a a kiolvasand´o b´ajtok sz´ama, a timeout intervallus, illetve a bemen˝o hiba. L´athat´o, hogy az adatkimenet String form´atum´u, ezt a´ t kell konvert´alni (explicit cast) a megfelel˝o t´ıpusba, ami jelen esetben single. Ezzel megvan a feldolgoz´asra k´esz m´er´esi adat. A k¨ul¨onb¨oz˝o Mode-okhoz tartoz´o adatfogad´asi algoritmusokat a mell´ekelt forr´ask´odban lehet megtal´alni, a dolgozat keretein bel¨ul nem r´eszletezem. Teh´at rendelkez´esre a´ ll a feldolgoz´o oldalon a m´er´esi adat, amit fel kell dolgozni, hogy eljussunk a m´er´esi eredm´enyig. Az adatfeldolgoz´assal a k¨ovetkez˝o alfejezet foglalkozik.
4.2. Szenzoradatok feldolgoz´asa A dinamikusan v´altoz´o adat egyik jellegzetes feldolgoz´asi form´aja a frekvencia anal´ızis. Ezt a m´odszert alkalmazhatjuk a gyorsul´asm´er˝o, giroszk´op e´ s a mikrofon jel´ere. Az els˝o k´et esetben a frekvenciatartom´any valamilyen mozg´as frekvenci´aj´at adja vissza, teh´at m´erhet˝ov´e v´alnak rezg´esek 25
´ ´ ESEK ´ ´ 4. A LABVIEW HASZNALATA A MER SORAN frekvenci´ai, motorok fordulatsz´ama, stb. A mikrofon jel´eb˝ol megkaphatjuk a felvett hanghull´am hangmagass´ag´at. Ezt a frekvencia elemz´est a LabVIEW-ban Fast Fourier Transzform´aci´oval (FFT) val´os´ıthatjuk meg. A transzform´aci´o elvi h´atter´evel a dolgozat nem foglalkozik, a LabVIEW megval´os´ıt´as az al´abbi k´epen l´athat´o: A transzform´aci´ohoz Waveform typus´u adat kell, amely egy adatt¨ombb˝ol (Y) e´ s
7. a´ bra. TCP szerver megval´os´ıt´asa LabVIEW-ban egy id˝ol´ep´esb˝ol (dt) a´ ll. Az FFT VI kimenete a Fourier transzform´alt val´os e´ s komplex r´esze. Ezek egy (adott frekvenci´ahoz tartoz´o amplit´ud´okb´ol a´ ll´o) adatt¨ombb˝ol, frekvencial´ep´esb˝ol e´ s kezd˝o frekvenci´ab´ol a´ llnak. A k´et komponens egyes´ıt´es´enek m´odja az 7. a´ br´an l´athat´o. A m´er´esi adatok e´ s m´er´esi eredm´enyek grafikus prezent´al´as´ara sz´amos lehet˝os´eg ad´odik a LabVIEW platformon, a dolgozat ezeket nem r´eszletezi, de az elemz˝oprogram forr´ask´odj´aban ezek alkalmaz´asra ker¨ultek, ´ıgy az j´o p´eld´at szolg´altathat. A m´er´esi adatot lehet˝os´eg¨unk van f´ajlba menteni, illetve a grafikonr´ol k¨ozvetlen¨ul is export´alhatjuk tartalm´at.s
4.3. LabVIEW k´epfeldolgoz´as A LabVIEW platformon a k´epfeldolgoz´as´ert a Vision and Motion csomag felel. Ez egy igen er˝oteljes eszk¨oz a k´epfeldolgoz´asra, komplexit´asa miatt nem r´eszletezem a haszn´alat´at a dolgozatban. A dolgozatban megtal´alhat´o forr´ask´odban jelen van ez a technol´ogia. A felhaszn´al´asa a k´epfeldolgoz´asnak sz´ın alap´u szegment´al´as. Ezt azt jelenti, hogy k¨ul¨onb¨oz˝o felt´eteleknek megfelel˝o pixelek csoportj´at egy objektumnak tekintj¨uk. Ebben az esetben a felt´etelek a sz´ınre vonatkoznak: az LHS (Luminance-hue-saturation) sz´ınt´er param´etereire adott korl´atok hat´arozz´ak meg, hogy egy pont megfelel˝o-e a krit´eriumnak. Megadhat´o a ponthalmaz m´eret´ere vonatkoz´o minimum e´ s maximum e´ rt´ek is.
26
˝ ´ ANAK ´ ´ ESE ´ ´ ´ OVEL 5. MOTOR FORDULATSZAM MER GYORSULASM ER Az algoritmus v´eg´en megkapjuk az objektum m´eret´et pixelben, illetve az objektum s´ulypontj´anak x e´ s y koordin´at´ait. Ezt az algoritmust egy sz´ınes objektum kamerak´ep alapj´an val´o k¨ovet´es´ere haszn´alom fel a dolgozat sor´an.
8. a´ bra. Szegment´al´as a LabVIEW programban K¨osz¨onettel tartozom Nagy Bal´azsnak e´ s Papp M´at´enak, tov´abb´a a MOGI Ethorobotikai laborj´anak LV2-es csoportj´anak az´ert, mert rendelkez´esemre bocs´atott´ak a z¨old sz´ınre keres˝o szegment´al´o VI-t. A k´epfeldolgoz´asi folyamat e´ rdekes k¨ul¨onlegess´ege, hogy a TCP-n a´ tk¨uld¨ott jpeg k´epet el˝osz¨or a feldolgoz´o oldalon a program a f´ajlrendszerbe/RamDisc-re menti, majd innen t¨olti be az IMAQ k´epfeldolgoz´o form´atum´aba. Ezt az´ert kell megtenni, mert a Vision and Motion csak ´ıgy k´epen jpeg f´ajlt bet¨olteni a k´epfeldolgoz´o rendszerbe. Ezzel befejez˝od¨ott a m´er´esek elvi e´ s gyakorlati megalapoz´asa, ´ıgy a tov´abbiakban a t´enylegesen elv´egzett m´er´esek e´ s azok tapasztalatai ker¨ulnek bemutat´asra.
5. Motor fordulatsz´am´anak m´er´ese gyorsul´asm´er˝ovel A m´er´es teljes m´er´esi jegyz˝ok¨onyve, mely tartalmazza az o¨ sszes m´er´esi adatot, a mell´ekletek k¨oz¨ott megtal´alhat´o. A gyorsul´asm´er˝o a modern telefon egyik legalapvet˝obb szenzora, legt¨obb k´esz¨ul´ek eset´eben azonban helytelen¨ul van kalibr´alva. Ett˝ol eltekintve, a szenzor alkalmas arra, hogy jel´et frekvencia tartom´anyra bontsuk, ´ıgy pedig elv´egezhet¨unk egyszer˝u fordulatsz´amm´er´est is. A m´er´es sor´an egy szem´elyaut´o motorj´anak fordulatsz´ama ker¨ul m´er´esre, u´ gy, hogy a gyorsul´asm´er˝ob˝ol ered˝o
27
˝ ´ ANAK ´ ´ ESE ´ ´ ´ OVEL 5. MOTOR FORDULATSZAM MER GYORSULASM ER adatokat FFT felhaszn´al´as´aval frekvenciatartom´anyra bontjuk, e´ s az eredm´enyt o¨ sszevetj¨uk a fordulatsz´amm´er˝o o´ r´ar´ol leolvasott e´ rt´ekekkel. A feladat sor´an felhaszn´altam a saj´at k´esz´ıt´es˝u Android programot (AccOverTCP), mellyel a LabVIEW elemz˝o programhoz tov´abb´ıtjuk a szenzor adatokat. A szoftverek megval´os´ıt´as´aval az el˝oz˝o fejezetek foglalkoznak.
5.1. A m´er´esi elrendez´es A m´er´es c´elja egy szem´elyaut´o motorj´anak fordulatsz´am´anak m´er´ese egy telefon be´ep´ıtett gyorsul´asm´er˝oj´enek jel´eb˝ol. Tov´abbi c´el az elj´ar´as haszn´alhat´os´ag´anak elemz´ese, a m´er´es e´ rt´ekel´ese, k¨ovetkeztet´esek levon´asa. A m´er´es sor´an az al´abbi eszk¨oz¨ok ker¨ultek felhaszn´al´asra: Sz. 1. 2. 3.
Megnevez´es ST gyorsul´asm´er˝o Sony Xperia SP AccOverTCP Android program Labview elemz˝oprogram
Gy´art´o ST Microelectronic
M´er´esi tart. -20 - 20
m s2
Felbont´as 0,01
m s2
Gy´ari sz´am -
Nagy M´arton T.
-
-
-
Nagy M´arton T.
-
-
-
i h ord 2, 5 100 fperc
-
-
-
4.
Opel Astra 1.2 16V Club
Opel
5.
Opel Astra fordulatsz´amm´er˝o o´ r´aja
Opel
i h ord 0 - 70 100 fperc
6.
Dell Latitude E6530
Dell
-
-
A v´egrehajtand´o feladatok: • Az AccOverTCP Android szoftvert haszn´alva, a m´erend˝o motorr´ol a m´erend˝o adatok felv´etele. A motor fordulatsz´amm´er˝o o´ r´aj´an mutatott e´ rt´ekek felv´etele. • A LabVIEW elemz˝oprogram seg´ıts´eg´evel elv´egezz¨uk a real-time frekvencia elemz´est, melyb˝ol a motor fordulatsz´am´ara k¨ovetkeztethet¨unk. • M´er´esi adatok e´ s a m´er´es eredm´eny´enek r¨ogz´ıt´ese. • K¨ovetkeztet´esek levon´asa, a m´er´es e´ rt´ekel´ese.
28
˝ ´ ANAK ´ ´ ESE ´ ´ ´ OVEL 5. MOTOR FORDULATSZAM MER GYORSULASM ER
5.2. M´er´esi adatok felv´etele A m´er´esi adatokat az AccOverTCP Android programmal r¨ogz´ıtj¨uk, e´ s a LabVIEW elemz˝oprogrammal v´egezz¨uk a real time frekvencia anal´ızist. A m´er´es sor´an a telefont a motorhoz r¨ogz´ıtj¨uk, hogy a m´er´esi adatok pontosabbak legyenek. A m´er´est akkor v´egezz¨uk el, amikor a motor fordulatsz´am´at siker¨ult a´ lland´ora a´ ll´ıtani. A gyorsul´asm´er˝o be´all´ıt´asai a k¨ovetkez˝oek: Mintav´etelez´esi frekvencia:
5 Hz vagy 10 Hz (m´er´esn´el r´eszletezve)
Buffer m´eret:
500 minta (2, 5 [s] vagy 5 [s])
T¨obb ilyen, 500 mint´ab´ol a´ ll´o sor frekvencia anal´ızise lesz elv´egezve. A m´er´esi sorok adatai: Sorsz´am
h i ord Fordulatsz´amm´er˝o 100 fperc
Mintav´etelez´es frekvenci´aja [Hz]
1.
7,5
10
2.
15
5
3.
15
10
4.
20
5
5.
25
5
6.
30
5
5.3. Az adatsor frekvencia anal´ızise A LabVIEW elemz˝oprogram seg´ıts´eg´evel elv´egezhetj¨uk az adatsor frekvencia anal´ızis´et. Ehhez a LabVIEW be´ep´ıtett Fast Fourier Transform VI-j´at haszn´aljuk. Az elemz´es t¨ort´enhet val´os id˝oben, folyamatosan, azonban ezen m´er´es sor´an csup´an egy adatsorra v´egezz¨uk el az anal´ızist. A FFT eredm´eny´eb˝ol cs´ucskeres´essel meg kell hat´arozni a cs´ucsok frekvenci´aj´at e´ s amplit´ud´oj´at. A cs´ucskeres´est a LabVIEW be´ep´ıtett cs´ucskeres˝o VI-j´aval v´egezz¨uk el. A cs´ucsok k¨oz¨ott tal´alhat´oak olyanok, melyek nem a motor fordulatsz´am´ab´ol ad´odnak, ki kell v´alasztani azt a cs´ucsot, amely a fordulatsz´amot adja. A Fast Fourier transzform´aci´o [Hz]-ben adja meg a cs´ucsok frekvenci´aj´at, m´ıg a szem´elyaut´o ord fordulatsz´amm´er˝oje fmin dimenzi´oj´u. A kett˝o k¨oz¨otti a´ tv´alt´as: y f ord = 60 · yHz min
29
˝ ´ ANAK ´ ´ ESE ´ ´ ´ OVEL 5. MOTOR FORDULATSZAM MER GYORSULASM ER A k¨ovetkez˝okben csak az els˝o e´ s a hatodik m´er´esi sor elemz´ese ker¨ul kifejt´esre, a t¨obbi a mell´ekletek k¨oz¨ott megtal´alhat´o m´er´esi jegyz˝ok¨onyvben megtal´alhat´o.
5.3.1. Els˝o m´er´esi sor anal´ızise A fordulatsz´amm´er˝or˝ol leolvasott e´ rt´ek: f ord 7, 5 100 perc A gyorsul´asm´er˝o jel´enek FFT e´ rt´ekeire vett cs´ucskeres´es eredm´enye: Sorsz´am
Frekvencia [Hz],
h
f ord perc
i
´ o Amplitud´
1.
26,59 , 1595,4
0,26
2.
11,60 , 696,2
0,11
m s2
A legnagyobb amplit´ud´oj´u komponens a motor rezg´es´enek els˝o felharmonikus´at adja, amib˝ol a m´ert fordulatsz´am: n=
ord 1595, 4 fperc
2
= 797, 7
f ord perc
Az alapfrekvencia zajos, de a m´asodik legnagyobb cs´ucsot ott m´ert¨uk. A m´er´esi eredm´eny legyen a kett˝o a´ tlaga: nf inal =
f ord 797, 7 + 696, 2 f ord = 747 2 perc perc
h i ord 9. a´ bra. 750 fperc
5.3.2. Hatodik m´er´esi sor anal´ızise A fordulatsz´amm´er˝or˝ol leolvasott e´ rt´ek:
f ord 30 100 perc
A gyorsul´asm´er˝o jel´enek FFT e´ rt´ekeire vett cs´ucskeres´es eredm´enye: 30
˝ ´ ANAK ´ ´ ESE ´ ´ ´ OVEL 5. MOTOR FORDULATSZAM MER GYORSULASM ER Sorsz´am
Frekvencia [Hz],
1.
h
f ord perc
i
´ o Amplitud´
2,65 , 159
m s2
3,1
Ezen a fordulatsz´amon m´ar nincsen e´ rt´ekelhet˝o eredm´enye a m´er´esnek.
i h ord 10. a´ bra. 3000 fperc
5.4. A m´er´esi eredm´eny Az el˝oz˝oek o¨ sszegz´es´ere szolg´al az al´abbi t´abl´azat: Sorsz´am
Fordulatsz´amm´er˝o
h
f ord perc
i
Gyorsul´asm´er˝o FFT-b˝ol
1.
750
747,0
2.
1500
1468,0
3.
1500
1393,3
4.
2000
2020,8
5.
2500
1980,0
6.
3000
-
h
f ord perc
i
5.5. K¨ovetkeztet´esek A m´er´es alapj´an a k¨ovetkez˝o k¨ovetkeztet´esek vonhat´oak le: • A szenzor alkalmas alapvet˝o, frekvencia anal´ızisre e´ p¨ul˝o m´ern¨oki e´ s m´er´estechnikai feladatok ell´at´as´ara. • A standard kommunik´aci´os protokoll a szenzor (telefon) e´ s a feldolgoz´oegys´eg (sz´am´ıt´og´ep) k¨oz¨ott, illetve a val´os idej˝u m´er´es lehet˝os´ege sz´amos alkalmaz´asi lehet˝os´eget k´ın´al. • A buffer m´eret n¨ovel´ese n¨oveli a m´er´esi pontoss´agot, a cs¨okkent´ese viszont a val´os idej˝us´eget jav´ıtja. • A m´er´esi tartom´anya az elrendez´esnek hozz´avet˝olegesen 0 − 35 [Hz]. 31
¨ ´ MOBILTELEFON KAMERAKEPE ´ ´ 6. OBJEKTUMKOVET ES ALAPJAN • A mintav´etelez´esi frekvencia minim´alis e´ rt´eke 5 [ms], mely maxim´alisan 100 [Hz] frekvenci´aj´u rezg´es m´er´es´et teszi lehet˝ov´e.
6. Objektumk¨ovet´es mobiltelefon kamerak´epe alapj´an A m´er´es teljes m´er´esi jegyz˝ok¨onyve, mely tartalmazza az o¨ sszes m´er´esi adatot, a mell´ekletek k¨oz¨ott megtal´alhat´o. Manaps´ag igen sok helyen alkalmaznak k¨ul¨onb¨oz˝o k´epfeldolgoz´o elj´ar´asokat, ´ıgy meg kell vizsg´alnunk a telefon ezen e´ rz´ekel˝oje k´epess´egeit is. A m´er´es sor´an a telefon kamer´aj´anak k´epkock´ait jpeg stream form´aj´aban k¨uldj¨uk a feldolgoz´oegys´eghez, ahol a LabVIEW program Vision and Motion csomag felhaszn´al´as´aval azt val´os id˝oben elemzi. K´erd´eses a k´epkock´ak k´esleltet´es´enek m´ert´eke e´ s a k´epfriss´ıt´esi r´ata. Ezeket k¨ul¨onb¨oz˝o felbont´asokon vizsg´alja a m´er´es. Ezen k´ıv¨ul a m´odszer felhaszn´al´asi k¨or´enek behat´arol´asa is feladata a m´er´esnek.
6.1. A m´er´esi elrendez´es A m´er´es c´elja - egy telefon kamerak´ep´enek felhaszn´al´as´aval t¨ort´en˝o - objektumk¨ovet´es vizsg´alata. Az objektumk¨ovet´es k´esleltet´es´enek m´er´ese, a kamera k´epfriss´ıt´es´enek meghat´aroz´asa, k¨ul¨onb¨oz˝o felbont´asok eset´en. Tov´abb´a, az elj´ar´as alkalmaz´asi k¨or´enek behat´arol´asa, k¨ovetkeztet´esek levon´asa, a m´er´es e´ rt´ekel´ese. A m´er´es sor´an haszn´alt eszk¨oz¨ok az al´abbiak: Sorsz. 1. 2. 3.
Megnevez´es h´ats´o kamera Sony Xperia SP CamOverTCP Android program Labview elemz˝oprogram
Gy´art´o
M´er´esi tart.
Felbont´as
Gy´ari sz´am
Sony Mobile
-
-
-
Nagy M´arton T.
-
-
-
Nagy M´arton T.
-
-
-
4.
HP 1740 17” TFT MONITOR
HP
-
-
-
5.
Dell Latitude E6530
Dell
-
-
-
32
¨ ´ MOBILTELEFON KAMERAKEPE ´ ´ 6. OBJEKTUMKOVET ES ALAPJAN
6.2. A m´er´es menete A v´egrehajtand´o feladatok: • A h´al´ozati k´esleltet´es m´er´ese. • M´er´esi adatok felv´etele h´arom felbont´ason. • A LabVIEW feldolgoz´oprogrammal val´o real time elemz´ese a m´er´esi adatoknak. • Az eredm´enyek a´ tlagol´asa, t´abl´azatba foglal´asa. • K¨ovetkeztet´esek levon´asa, a m´er´es e´ rt´ekel´ese. A m´er´es el˝ott meg kell hat´arozni a h´al´ozat k´esleltet´es´enek a m´ert´ek´et, ahhoz, hogy el tudjuk k¨ul¨on´ıteni a k´epfeldolgoz´asb´ol ad´od´o k´esleltet´est a h´al´ozat´et´ol. A m´er´es sor´an a telefont egy ad hoc wifi h´al´ozattal o¨ sszek¨otj¨uk a LabVIEW programot futtat´o sz´am´ıt´og´eppel. A telefon kamer´aj´aval egy monitoron k¨ormozg´ast v´egz˝o pontot k¨ovet¨unk. A pontr´ol k´esz¨ult felv´etelek alapj´an a z¨old sz´ın˝u objektumot behat´aroljuk a LabVIEW programmal, e´ s kinyerj¨uk annak X e´ s Y koordin´at´ait a k´epen. Ezt az [XY] pontot e´ s a referencia k¨ort egy koordin´at´aban a´ br´azoljuk, innen pedig a f´azisk´es´esb˝ol meghat´arozzuk a m´er´es ered˝o k´esleltet´es´et. Hogyha a m´ert pontokb´ol adott sz´am´ut (10db) a´ br´azolunk, a ”cs´ov´ahoz” tartoz´o sz¨og alapj´an k´epfriss´ıt´esi id˝ot m´erj¨uk. H´arom felbont´ason v´egzend˝o el a m´er´es: 320x240, 640x480, 960x720[px]. A m´er´es param´eterei: rad s
Referencia k¨or sz¨ogsebess´ege:
5
A cs´ov´aban l´ev˝o m´er´esi pontok sz´ama:
10
Referencia k¨or sz´ıne az a´ br´akon:
k´ek
M´er´esi eredm´eny sz´ıne az a´ br´akon:
z¨old
A m´er´esr˝ol k´esz¨ult k´et vide´o felv´etel: • A LabVIEW programr´ol k´esz¨ult felv´etel, ami megmutatja a felhaszn´al´oi fel¨ulet alapvet˝o m˝uk¨od´es´et • A m´er´esi elrendez´esr˝ol k´esz¨ult ”live action” felv´etel A k´et vide´o f´ajl a mell´ekletek k¨oz¨ott megtal´alhat´o.
33
¨ ´ MOBILTELEFON KAMERAKEPE ´ ´ 6. OBJEKTUMKOVET ES ALAPJAN 6.2.1. A h´al´ozati k´esleltet´es m´er´ese A h´al´ozati k´esleltet´est a Windows ping -t parancs´aval m´erj¨uk, a m´er´esi eredm´enyt az al´abbi k´ep tartalmazza:
11. a´ bra. H´al´ozati k´esleltet´es m´er´ese Teh´at az a´ tlagos h´al´ozati k´esleltet´es 57 [ms]. A tov´abbiakban a 320x240 pixel felbont´assal elv´egzett m´er´es eredm´enyei ker¨ulnek r´eszletez´esre, a 640x480 e´ s a 960x720 pixeles felbont´asokkal k´esz´ıtett m´er´esek eredm´enye a jegyz˝ok¨onyvben megtal´alhat´o.
34
¨ ´ MOBILTELEFON KAMERAKEPE ´ ´ 6. OBJEKTUMKOVET ES ALAPJAN 6.2.2. 320x240 felbont´assal A h´arom m´er´es:
(b) M´asodik m´er´es
(a) Els˝o m´er´es
(c) Harmadik m´er´es
12. a´ bra. M´er´esi eredm´enyek 320x240[px] felbont´ason, ω = 5 rad s F´azisk´es´es φ [rad]
Cs´ov´ahoz tartoz´o sz¨og θ [rad]
1.
0,51
3,53
2.
1,03
3,00
3. ´ Atlag:
1,24
2,97
0,93
3,17
M´er´es sorsz.
6.3. A m´er´esi eredm´eny 6.3.1. Az elm´eleti h´att´er A f´azisk´es´esb˝ol az ered˝o id˝ok´esleltet´es tdelay [s]: φ = ω · tdelay 35
¨ ´ MOBILTELEFON KAMERAKEPE ´ ´ 6. OBJEKTUMKOVET ES ALAPJAN
tdelay =
φ ω
Ahol: • ω = 5 rad : a kamer´azott objektum k¨orfrekvenci´aja s • φ [rad] : f´azisk´es´es Levonva a h´al´ozat k´esleltet´es´et: tdprocessing = tdelay − tdnetwork [s] Ahol tdnetwork = 0, 057 [s] A 10 m´er´esi pontb´ol a´ ll´o cs´ov´ahoz tartoz´o sz¨og e´ s az a´ tlagos k´epfriss´ıt´es kapcsolata: θ = 10 · θavg θavg = ω · tref resh Ahol: • θ [rad] : a teljes cs´ov´ahoz tartoz´o k¨oz´epponti sz¨og • θavg [rad] : a´ tlagos k¨oz´epponti sz¨og k´et k´epfriss´ıt´es k¨oz¨ott • tref resh [s] : a k´epfriss´ıt´esi id˝o : a kamer´azott objektum k¨orfrekvenci´aja • ω = 5 rad s Teh´at: tref resh A k´epfriss´ıt´es frekvenci´aja: FPS =
θ = 10 ω 1
tref resh
[Hz]
A sz´am´ıt´asokhoz az adott felbont´ashoz tartoz´o m´er´esek a´ tlagolt e´ rt´ek´et haszn´aljuk fel.
6.3.2. A m´er´esi eredm´enyek t´abl´azatosan M´er´es
tdelay [s]
tdprocessing
FPS [Hz]
320x240
0,19
0,13
15,8
640x480
0,21
0,15
16,3
960x720
1,13
1,07
12,9
36
˝ ENEK ´ IT ´ ASM ´ ´ OJ ´ ´ ASA ´ 7. MOBILTELEFON MEGVILAG ER KALIBRAL
6.4. K¨ovetkeztet´esek A m´er´es alapj´an a k¨ovetkez˝o k¨ovetkeztet´esek vonhat´oak le: • A szenzor alkalmas alapvet˝o objektumk¨ovet´esi feladatok ell´at´as´ara • A LabVIEW k´epfeldolgoz´o real-time k´epes feldolgozni a be´erkez˝o k´epeket • A felbont´as n¨ovel´es´evel a k´epfriss´ıt´esi frekvencia nem v´altozik jelent˝osen, azonban 640x480 felbont´as felett a k´esleltet´esi id˝o jelent˝osen n˝o. • A LabVIEW k´epfeldolgoz´o rendszer´evel tetsz˝oleges sz´ın˝u e´ s alak´u objektumot tudunk k¨ovetni.
7. Mobiltelefon megvil´ag´ıt´asm´er˝oj´enek kalibr´al´asa A m´er´es teljes m´er´esi jegyz˝ok¨onyve, mely tartalmazza az o¨ sszes m´er´esi adatot, a mell´ekletek k¨oz¨ott megtal´alhat´o. A mobiltelefonok sz´amottev˝o r´esz´eben tal´alhat´o megvil´ag´ıt´asm´er˝o, melyet a rendszer a´ ltal´aban arra haszn´al, hogy - a k¨ornyezet megvil´ag´ıtotts´ag´anak f¨uggv´eny´eben - megv´altoztassa a k´eperny˝o megvil´ag´ıt´as´at. A szenzor adatait el´erhetj¨uk az Android rendszer alatt, ´ıgy megvizsg´alhatjuk a telefonok megvil´ag´ıt´asm´er˝oj´enek m´er´estechnikai falhaszn´al´as´at. A m´er´es l´enyege az, hogy o¨ sszehasonl´ıtsunk k´et k¨ul¨onb¨oz˝o t´ıpus´u k´esz¨ul´ek megvil´ag´ıt´asm´er˝oj´enek kalibr´al´as´at. Ezzel bemutat´asra ker¨ul egyr´eszt az, hogy milyen m´er´estechnikai alkalmaz´asai lehets´egesek a szenzorral, m´asr´eszt pedig megvil´ag´ıt´asra ker¨ul a telefonokban megtal´alhat´o szenzorok sokf´eles´ege.
7.1. A m´er´esi elrendez´es A m´er´es c´elja k´et mobiltelefon megvil´ag´ıt´asm´er˝o szenzor´anak kalibr´al´asa, kalibr´alt megvil´ag´ıt´asm´er˝ot haszn´alva. Tov´abb´a, a kalibr´aci´o e´ rt´ekel´ese, e´ s a kalibr´alt szenzorokkal val´o kontroll m´er´esek elv´egz´ese, ki´ert´ekel´ese. A m´er´es sor´an haszn´alt eszk¨oz¨ok:
37
˝ ENEK ´ IT ´ ASM ´ ´ OJ ´ ´ ASA ´ 7. MOBILTELEFON MEGVILAG ER KALIBRAL Sorsz. 1. 2. 3. 4. 5. 6. 7.
Megnevez´es MS-1500 Digit´alis megvil´ag´ıt´asm´er˝o Light Sensor Sony Xperia SP LTR559 Light Sens. Nokia X OriginPro 8.5 adatelemz˝o program LuxOverTCP Android program Labview elemz˝oprogram Dell Latitude E6530
Gy´art´o VOLTCRAFT Sony Mobile
M´er´esi tart.
Felbont´as
Gy´ari sz´am
0-40000[lux]
0.01[lux]
110504666
1[-]
-
1[-]
-
0-1024[-] (saj´at egys´eg) 0-65535[-]
LiteOn
(saj´at egys´eg)
OriginLab
-
-
-
Nagy M´arton T.
-
-
-
Nagy M´arton T.
-
-
-
Dell
-
-
-
7.2. A m´er´es menete A v´egrehajtand´o feladatok • M´er´esi adatok felv´etele a h´arom k´esz¨ul´ekkel. • OriginPro felhaszn´al´as´aval line´aris regresszi´o a m´er´esi adatokra, mindk´et kalibr´aland´o k´esz¨ul´ekre. • A line´aris regresszi´o adatainak implement´al´asa az Android szoftverbe. • A kalibr´alt szenzorokkal val´o kontroll m´er´esek elv´egz´ese. • K¨ovetkeztet´esek levon´asa, a kalibr´aci´o e´ rt´ekel´ese. A m´er´esi adatok felv´etele el˝ott rendelkezni kell a LuxOverTCP Android alkalmaz´assal, illetve a m´er´esi adatok egyszer˝u gy˝ujt´ese e´ rdek´eben az adatgy˝ujt˝o LabVIEW programmal. A m´er´es sor´an figyelni kell arra, hogy diff´uz fel¨uletre ir´any´ıtsuk a szenzorokat (pl. plafon). A m´er˝oeszk¨oz¨oket szorosan egym´as mell´e kell helyezni, hogy a lehet˝o leghitelesebb legyen a m´er´esi sor. A m´er´eseket term´eszetes megvil´ag´ıt´assal v´egezz¨uk (napf´eny). K¨ul¨onb¨oz˝o szob´akban, k¨ul¨onb¨oz˝o f´enyviszonyok mellett (m´as napszakban) v´egz¨unk m´er´eseket.
38
˝ ENEK ´ IT ´ ASM ´ ´ OJ ´ ´ ASA ´ 7. MOBILTELEFON MEGVILAG ER KALIBRAL Xperia SP
Nokia X
Luxmeter
[1]
[1]
[lux]
Range: 1024
Range: 65535
Range: 40000
Resolution: 1
Resolution: 1
Resolution: 0.01
Light Sensor
LTR559 Light Sensor
(Sony Mobile)
(LiteOn)
Voltcraft MS-1500
A m´er´esi adatok a jegyz˝ok¨onyvben megtal´alhat´oak.
7.3. Szenzorok kalibr´al´asa A kalibr´aci´os egyeneseket az OriginPro programmal veszem fel. El˝osz¨or keresem az o¨ sszes adatra illeszthet˝o egyenest. A (0,0) pontot r¨ogz´ıtem, csak a meredeks´eg a k´erd´es. A keresett egyenesek y =m·x alak´uak.
(a) Xperia SP
(b) Nokia X
13. a´ bra. Line´aris regresszi´o a teljes adatsorra Az OriginPro programmal az al´abbi meredeks´egek ad´odtak: mSP = 9, 33597 mX = 1, 89159 A regresszi´o tov´abbi adatai illetve az OriginPro projekt f´ajl megtal´alhat´o a mell´ekletben. 39
˝ ENEK ´ IT ´ ASM ´ ´ OJ ´ ´ ASA ´ 7. MOBILTELEFON MEGVILAG ER KALIBRAL Az 14a. a´ br´an l´athat´o, hogy az Xperia SP szenzora eset´eben az alacsony e´ rt´ekekre nagyobb meredeks´eg˝u egyenes illeszt´es´evel pontosabb kalibr´aci´ot kaphatunk. Az Xperia SP adatsor´at kett´ev´alasztva, k´et regresszi´ost egyenest kapunk. Ezekb˝ol pedig megkapjuk a kalibr´aci´os egyenest.
(a) Xperia SP alacsony e´ rt´ekeire
(b) Xperia SP magas e´ rt´ekeire
14. a´ bra. Line´aris regresszi´o az Xperia SP adatsor´ara Az alacsony e´ rt´ekekre applik´alt egyenes y = mSPlow · x alak´u, m´ıg a magas e´ rt´ekekre az egyenes alakja y = mSPhigh · x + bSPhigh A program alapj´an kapott e´ rt´ekek: mSPlow = 16, 63037 mSPhigh = 5, 1791 bSPhigh = 1590, 65929 Keress¨uk a k´et egyenes metsz´espontj´at, az al´abbi egyenletrendszerb˝ol: y0 = mSPlow · x0 y0 = mSPhigh · x0 + bSPhigh 40
˝ ENEK ´ IT ´ ASM ´ ´ OJ ´ ´ ASA ´ 7. MOBILTELEFON MEGVILAG ER KALIBRAL A megold´as: x0 ≈ 138 ´Igy fel tudjuk ´ırni a kalibr´aci´os g¨orb´eket a k´et k´esz¨ul´ekre. Xperia SP: y(x) =
16, 63037 · x,
if x ≤ 138
5, 1791 · x + 1590, 65929, if x > 138 Nokia X: y(x) = 1, 89159 · x Ahol: • y [lux] : a kalibr´alt lux e´ rt´ek • x [−] : a kalibr´alatlan e´ rt´ek, a szenzor saj´at egys´eg´eben kifejezve A kalibr´aci´os g¨orb´ek implement´al´asra ker¨ulnek a LuxOverTCP programba, hogy kontrollm´er´eseket lehessen elv´egezni.
7.4. Kalibr´alt szenzorral val´o m´er´esek A kalibr´alt eszk¨oz¨okkel h´arom m´er´est v´egeztem el, k¨ul¨onf´ele f´enyviszonyok mellett. A m´er´esi eredm´enyt a 15. a´ bra mutatja.
15. a´ bra L´athat´o, hogy a k´et kalibr´alt k´esz¨ul´ek csak nagys´agrendileg pontos, ´ıgy felhaszn´alhat´os´aga igen korl´atozott.
41
´ ´ 8. MOBILTELEFON MIKROFON JELENEK FREKVENCIA ANALIZISE
7.5. K¨ovetkeztet´esek A m´er´es alapj´an a k¨ovetkez˝o k¨ovetkeztet´esek vonhat´oak le: • A szenzorok igen k¨ul¨onb¨oz˝oek a k´et k´esz¨ul´ekben: a kalibr´alt meredeks´egek e´ s m´er´esi tartom´anyok igen elt´er˝oek • A szenzorok kalibr´altan is alkalmatlanok m´er´estechnikai feladat ell´at´as´ara • A szenzorok alkalmasak a megvil´ag´ıtotts´ag hirtelen v´altoz´as´anak m´er´es´ere • A szenzorok alkalmasak egyszer˝ubb e´ s nagy pontoss´agot nem ig´enyl˝o m´er´esek elv´egz´es´ere, mint p´eld´aul egy szoba megvil´ag´ıt´as´anak nagys´agrendileg helyes m´er´es´ere
8. Mobiltelefon mikrofon jel´enek frekvencia anal´ızise A m´er´es teljes m´er´esi jegyz˝ok¨onyve, mely tartalmazza az o¨ sszes m´er´esi adatot, a mell´ekletek k¨oz¨ott megtal´alhat´o. A telefonok mindegyik´eben tal´alhat´o be´ep´ıtett mikrofon, melynek jel´et felhaszn´alhatjuk m´er´estechnikai c´elokra. Jelen m´er´es sor´an a mikrofon jel´et val´os id˝oben bontjuk frekvenciatartom´anyra, hogy ezzel meghat´arozzuk a r¨ogz´ıtett hang (a m´er´es sor´an zenei A) magass´ag´at.
8.1. A m´er´esi elrendez´es A m´er´es c´elja egy mobiltelefon be´ep´ıtett mikrofon jel´enek val´os idej˝u frekvencia anal´ızis´enek elemz´ese, az elj´ar´as alkalmaz´asi lehet˝os´egeinek felt´ar´asa. A m´er´es sor´an haszn´alt eszk¨oz¨ok:
42
´ ´ 8. MOBILTELEFON MIKROFON JELENEK FREKVENCIA ANALIZISE Sz. 1. 2. 3. 4.
Megnevez´es Be´ep´ıtett mikrofon Sony Xperia SP MicOverTCP Android program Labview elemz˝oprogram Sony MDR-EX 15 LP hangforr´as
Gy´art´o Sony Mobile
M´er´esi tart.
Felbont´as
Gy´ari sz´am
1[-]
-
-32768 - 32767[-] (saj´at egys´eg)
Nagy M´arton T.
-
-
-
Nagy M´arton T.
-
-
-
-
-
8 - 22000 [Hz]
Sony
(n´evleges)
5.
http://onlinetonegenerator.com
-
-
-
-
6.
Dell Latitude E6530
Dell
-
-
-
A v´egrehajtand´o feladatok: • A MicOverTCP Android szoftvert haszn´alva, k¨uls˝o forr´asb´ol ered˝o hang felv´etele. • A LabVIEW elemz˝oprogram seg´ıts´eg´evel elv´egezz¨uk a real-time elemz´est. • M´er´esi adatok e´ s a m´er´es eredm´eny´enek r¨ogz´ıt´ese. • K¨ovetkeztet´esek levon´asa, a m´er´es e´ rt´ekel´ese.
8.2. A m´er´es menete A m´er´esi adatokat a MicOverTCP Android programmal r¨ogz´ıtj¨uk, e´ s a LabVIEW elemz˝oprogrammal v´egezz¨uk a real time frekvencia anal´ızist. A hangforr´as egy gumiharangos f¨ulhallgat´o. A gumiharangot haszn´aljuk arra, hogy a zajokat kisz˝urj¨uk a m´er´esb˝ol. Az http://onlinetonegenerator.com szolg´altat´ast haszn´alva egy 440 Hz-es zenei A hangot elemz¨unk. A mikrofon be´all´ıt´asai a k¨ovetkez˝oek: Mintav´etelez´esi frekvencia:
44100 Hz
Encoding:
PCM 16 bit
Csatorna konfigur´aci´o:
Channel in Mono
Buffer m´eret:
10240 minta (0, 2322 [s])
Az adatsor normaliz´al´asra ker¨ul, ´ıgy a m´ert adatok tartom´anya −1 . . . 1 [−]. Egy ilyen, 10240 mint´ab´ol a´ ll´o sor frekvencia anal´ızise lesz elv´egezve. A nyers m´er´esi adatok a mell´ekletek k¨oz¨ott megtal´alhat´oak.
43
´ ´ 8. MOBILTELEFON MIKROFON JELENEK FREKVENCIA ANALIZISE
8.3. Az adatsor frekvencia anal´ızise A LabVIEW elemz˝oprogram seg´ıts´eg´evel elv´egezhetj¨uk az adatsor frekvencia anal´ızis´et. Ehhez a LabVIEW be´ep´ıtett Fast Fourier Transform VI-j´at haszn´aljuk. Az elemz´es t¨ort´enhet val´os id˝oben, folyamatosan, azonban ezen m´er´es sor´an csup´an egy adatsorra v´egezz¨uk el az anal´ızist. Az FFT anal´ızis nyers eredm´enye a mell´ekletek k¨oz¨ott megtal´alhat´o.
(b) N´eh´any tov´abbi felharmonikus
(a) FFT eredm´enye 5000Hz-ig
16. a´ bra. Line´aris regresszi´o a teljes adatsorra A FFT eredm´eny´eb˝ol cs´ucskeres´essel meg kell hat´arozni a cs´ucsok frekvenci´aj´at e´ s amplit´ud´oj´at, mivel ezek m´er´ese a m´er´es c´elja. A cs´ucskeres´est a LabVIEW be´ep´ıtett cs´ucskeres˝o VI-j´aval v´egezz¨uk el. Cs´ucs (´es nem v¨olgy) keres´ese a c´el, tov´abb´a a zaj kisz˝ur´ese e´ rdek´eben egy 0.005-¨os amplit´ud´o treshold alkalmazand´o. Ezzel a be´all´ıt´assal az alapfrekvencia k´et tov´abbi okt´avj´at is m´erni lehet. Alacsonyabb treshold e´ rt´ekkel tov´abbi felharmonikusokat m´erhet¨unk, azonban a zaj sz˝ur´ese kev´esb´e lesz hat´ekony. Magasabb treshold-dal kiz´ar´olag az alaphang m´er´ese lehet˝ov´e v´alik. A cs´ucskeres´es e´ s a m´er´es eredm´enye: Frekvencia [Hz]
´ o [-] Amplitud´
439,35
0,19218
1320,03
0,02576
3079,34
0,00537
8.4. K¨ovetkeztet´esek A m´er´es alapj´an a k¨ovetkez˝o k¨ovetkeztet´esek vonhat´oak le: • A szenzor alkalmas alapvet˝o, frekvencia anal´ızisre e´ p¨ul˝o m´ern¨oki e´ s m´er´estechnikai feladatok ell´at´as´ara. 44
9. SENSOR FUSION • A standard kommunik´aci´os protokoll a szenzor (telefon) e´ s a feldolgoz´oegys´eg (sz´am´ıt´og´ep) k¨oz¨ott, illetve a val´os idej˝u m´er´es lehet˝os´ege sz´amos alkalmaz´asi lehet˝os´eget k´ın´al. • A buffer m´eret n¨ovel´ese n¨oveli a m´er´esi pontoss´agot, a cs¨okkent´ese viszont a val´os idej˝us´eget jav´ıtja.
9. Sensor Fusion 9.1. Bevezet˝o A sensor fusion l´enyege az, hogy k¨ul¨onb¨oz˝o szenzorok adatait kombin´alva a kapott eredm´eny pontosabb, teljesebb, vagy megb´ızhat´obb, mint ha a szenzorok adatait k¨ul¨on haszn´aln´ank fel. A k¨ovetkez˝okben egy, m´ar kidolgozott m´odszer ker¨ul ismertet´esre, amely pontosabb orient´aci´o m´er´est tesz lehet˝ov´e [6], illetve ez alapj´an egy m´asik lehets´eges alkalmaz´as´at mutatom be a sensor fusionnek, amivel a poz´ıci´ot lehet pontosabban meghat´arozni az orient´aci´o, a gyorsul´asm´er˝o e´ s egy k¨uls˝o kamera k´epe alapj´an. Az orient´aci´ot meghat´aroz´o algoritmust implement´altam Android platformon, e´ s a LabVIEW feldolgoz´oprogramot is felk´esz´ıtettem a sensor fusion orient´aci´o adatok fogad´as´ara. Egy 3D anim´aci´o seg´ıts´eg´evel lehet szeml´eltetni a telefon orient´aci´oj´at, val´os id˝oben. A poz´ıci´om´er´es nem ker¨ult megval´os´ıt´asra a dolgozat keretein bel¨ul, csak az elvi h´att´er e´ s az alapvet˝o megfontol´asok. Azonban, mivel a t´ema kidolgoz´asa sor´an minden, a megval´os´ıt´ashoz kell˝o algoritmust implement´altam mind Android, mind LabVIEW platformon, a forr´ask´od pedig a mell´ekletek k¨oz¨ott szerepel, ´ıgy nem okozhat neh´ezs´eget a poz´ıci´o meghat´aroz´as algoritmus´anak megval´os´ıt´asa. A t´ema egyik gy¨um¨olcs¨oz˝o folytat´asa lehet ez, e´ s m´as hasonl´o sensor fusion m´odszer elemz´ese, mobiltelefon szenzorait felhaszn´alva.
9.2. Orient´aci´o meghat´aroz´asa Sensor Fusion seg´ıts´eg´evel [6] 9.2.1. Orient´aci´o meghat´aroz´as´anak m´odjai A h´arom, a k´esz¨ul´ek orient´aci´oj´at jellemz˝o sz¨oget a´ ltal´aban a gyorsul´asm´er˝o e´ s a magnetom´eter (ir´anyt˝u) jel´eb˝ol a´ ll´ıtjuk el˝o. A gyorsul´asm´er˝o jel´eb˝ol meghat´arozhat´o, hogy merre mutat a gravit´aci´os vektor, a magnetom´eter pedig ir´anyt˝uk´ent funkcion´al, a telefont k¨or¨ulvev˝o m´agneses t´erb˝ol
45
9. SENSOR FUSION meghat´arozza, hogy a F¨old e´ szaki p´olusa a telefonhoz k´epest milyen sz¨ogben van. Ezzel a k´et eszk¨ozzel elm´eletileg meghat´arozhat´o a k´esz¨ul´ek orient´aci´oja. Azonban mindk´et szenzor pontatlan, r´aad´asul a magnetom´eter sok zajjal is terhelt, valamint a v´alaszideje is nagy. A k´esz¨ul´ekekben tal´alhat´o giroszk´op sokkal nagyobb pontoss´ag´u, e´ s a friss´ıt´esi ideje is nagyobb. A giroszk´op sz¨ogsebess´eg adatokat szolg´altat h´arom tengely ment´en. Hogy ebb˝ol orient´aci´ot tudjunk sz´amolni, az e´ rt´ekeket id˝o szerint integr´alni kell. Ez u´ gy t¨ort´enik, hogy a sz¨ogsebess´eg adatot megszorozzuk az el˝oz˝o adat be´erkez´ese o´ ta eltelt id˝ovel. Ezzel egy rot´aci´o inkrementumot kapunk, ezeket o¨ sszegezve pedig megkapjuk a k´esz¨ul´ek abszol´ut orient´aci´oj´at. ∆φi = ωi · ∆t φ=
n X
φi
i=1
Ahol: • ∆φi [rad] : az i-edik elemi rot´aci´o inkrementum vektor • ωi [ rad ] : az i-edik pillanatnyi sz¨ogsebess´egvektor s • ∆t [s] : az i − 1 e´ s i-edik id˝opillanat k¨oz¨ott eltelt id˝o • φ [rad] : a k´esz¨ul´ek orient´aci´oj´at jellemz˝o abszol´ut rot´aci´o vektor A folyamat sor´an az o¨ sszes iter´aci´on´al apr´o hib´ak l´epnek fel a m´er´esi adatokban (zajos a szenzor). Hogyha ezt a zajt integr´aljuk, konstans u¨ temben v´altozik az ´ıgy m´ert orient´aci´o (giroszk´op drift, 17. a´ bra), akkor is, hogyha a telefon val´os helyzete nem v´altozik.
9.2.2. A Sensor Fusion alkalmaz´asa Az el˝oz˝oekben le´ırtak alapj´an l´athat´o, hogy mindk´et, orient´aci´o m´er´es´ere alkalmazhat´o m´odszernek vannak hib´ai: a gyorsul´asm´er˝o e´ s magnetom´eter jel´eb˝ol el˝oa´ ll´ıtott orient´aci´o zajos e´ s lass´u, a giroszk´op jel´et integr´alva viszont szembes¨ul¨unk a drift jelens´eg´evel. Azonban l´athat´o, hogy a k´et m´odszer el˝onyeit egyes´ıtve egy pontosabb e´ s jobban haszn´alhat´o orient´aci´o m´er´esi m´odszert kapunk. A megold´as konkr´et szoftveres megval´os´ıt´as´ara a dolgozat nem t´er ki (az alfejezet c´ım´eben tal´alhat´o hivatkoz´as tartalmazza, illetve a mell´ekletek k¨oz¨ott megtal´alhat´o (ny´ılt forr´ask´od´u) SensorFusionOverTCP Android alkalmaz´asban implement´altam az algoritmust), viszont az alapvet˝o algoritmus bemutat´as´at´ol nem lehet eltekinteni. 1. A gyorsul´asm´er˝o e´ s a magnetom´eter jel´eb˝ol el˝o kell a´ ll´ıtani az orient´aci´ot (accMagOrientation) 46
9. SENSOR FUSION
17. a´ bra. Giroszk´op drift szeml´eltet´ese [10] 2. A giroszk´op jel´et id˝o szerint integr´alva el˝o kell a´ ll´ıtani az orient´aci´ot (gyroOrientation) 3. Az accMagOrientation-re alul a´ tereszt˝o, a gyroOrientation-re fel¨ul a´ tereszt˝o sz˝ur˝ot alkalmazva o¨ sszegezz¨uk a k´et orient´aci´o jelet, hogy megkapjuk a korrig´alt orient´aci´ot.
18. a´ bra. [6] Az alul a´ tereszt˝o sz˝ur˝ovel a magnetom´eter e´ s gyorsul´asm´er˝o jel´eb˝ol el˝oa´ ll´ıtott orient´aci´onak csak a lassan v´altoz´o vagy konstans r´esz´et kapjuk meg, a fel¨ul a´ tereszt˝o sz˝ur˝o pedig a giroszk´op integr´al´as´ab´ol ered˝o orient´aci´o dinamik´aj´at adja vissza. Ezeket o¨ sszegezve egy olyan orient´aci´o jelet kapunk, mely • j´o dinamikai k´epess´egekkel rendelkezik, j´ol reag´al, • nem jellemzi a drift • kev´esb´e zajos A 19. a´ bra szeml´eletesen mutatja be a sensor fusion ezen alkalmaz´as´at.
47
9. SENSOR FUSION
19. a´ bra. [6]
9.3. Poz´ıci´omeghat´aroz´as Sensor Fusion seg´ıts´eg´evel Az el˝oz˝oekben bemutat´asra ker¨ult orient´aci´om´er´es m´odszerrel anal´og m´odon lehet˝os´eg van a k´esz¨ul´ek poz´ıci´oj´anak m´er´es´ere is felhaszn´alni a sensor fusion-t. Jelen alfejezet taglalja a poz´ıci´om´er´es m´odszereit, azok el˝onyeit e´ s h´atr´anyait, illetve bemutatja, hogy (felhaszn´alva az el˝oz˝o alfejezetben bemutatott, jav´ıtott orient´aci´om´er´esi elj´ar´ast is felhaszn´alva) mik´ent lehet - a mobiltelefonok szinte teljes szenzorpalett´aja felhaszn´al´as´aval - jav´ıtani a poz´ıci´om´er´es pontoss´ag´at.
9.3.1. Poz´ıci´o meghat´aroz´asa gyorsul´asm´er˝o jel´eb˝ol e´ s orient´aci´ob´ol A poz´ıci´o meghat´aroz´as´anak egyik m´odja a gyorsul´asm´er˝o jel´enek k´etszeres integr´al´asa id˝o szerint. A gyorsul´asm´er˝o nyers jele azonban nem haszn´alhat´o, mivel azt a gravit´aci´o terheli: nem ad val´os k´epet a telefon gyorsul´as´ab´ol a vil´ag koordin´ata rendszerben. Ennek kik¨usz¨ob¨ol´es´ere a telefon koordin´ata rendszer´eben (ξ, η, ζ) el´erhet˝o nyers gyorsul´asm´er˝o adatokb´ol a´ ll´o aξ,η,ζ vektort a´ t kell transzform´alni a vil´ag koordin´ata rendszerbe (x, y, z). Ezt k¨ovet˝oen a z koordin´at´at terhel˝o g gravit´aci´os gyorsul´ast ki kell vonni a kapott, (x, y, z) rendszerben l´ev˝o gyorsul´asvektorb´ol, hogy megkapjuk a k´esz¨ul´ek line´aris gyorsul´as´at a vil´ag koordin´ata rendszerben: alin,x,y,z A transzform´aci´os m´atrix fel´ır´as´ahoz sz¨uks´eg¨unk van a telefon abszol´ut orient´aci´oj´ara. Az el˝oz˝o alfejezetben ismertet´esre ker¨ult egy m´odja a pontos´ıtott orient´aci´om´er´esnek a sensor fusion alkalmaz´as´aval, itt is ez ker¨ul alkalmaz´asra. 48
9. SENSOR FUSION Ha az abszol´ut orient´aci´o vektor az al´abbi alak´u: x φ= y z
[rad]
Akkor az x(pitch), y(roll), z(azimuth) tengely k¨or¨uli forgat´asi m´atrixok az al´abbiak [6]: 1 0 0 Mx = 0 cos x sin x = 0 − sin x cos x My = =
cos y 0
0 sin y
1
0
− sin y 0 cos y cos z
sin z 0
Mz = − sin z cos z 0 = 0 0 1 Az ered˝o transzform´aci´os m´atrixot, amivel megszorozva a saj´at koordin´ata rendszerbeli gyorsul´ast (aξ,η,ζ ) a vil´ag koordin´ata rendszerbe transzform´aljuk, a k¨ovetkez˝ok´eppen kapjuk meg [6]: T = My · Mx · Mz =
=
=
=
´Igy a k´esz¨ul´ek line´aris gyorsul´asa a vil´ag koordin´ata rendszerben: alin,x,y,z = T · aξ,η,ζ − g =
Ahol: • alin,x,y,z [ sm2 ] : a k´esz¨ul´ek line´aris gyorsul´asa a vil´ag koordin´ata rendszerben • T [−] : a transzform´aci´os m´atrix =
• aξ,η,ζ [ sm2 ] : a k´esz¨ul´ek nyers gyorsul´as adatainak vektora Illetve a gravit´aci´os er˝ot´er vektor, g = 9, 81 [ sm2 ]: 0 g= 0 g 49
m [ ] s2
9. SENSOR FUSION Ezt a vektort id˝o szerint k´etszer integr´alva megkapjuk a telefon elmozdul´as´at az abszol´ut koordin´ata rendszerben. Z vx,y,z = xx,y,z
alin,x,y,z dt Z = vx,y,z dt
Ezzel a m´odszerrel azonban sz´amos probl´ema jelentkezik: • A telefon gyorsul´asm´er˝oje a´ ltal´aban igen rosszul kalibr´alt, ´ıgy a gravit´aci´o hat´as´at neh´ezkes kik¨usz¨ob¨olni • A kett˝os integr´al miatt a zaj e´ s a rossz kalibr´aci´o hat´asa hatalmas hib´at visz be a sz´am´ıt´asba • Az orient´aci´o pontatlans´aga is halmozottan jelentkezik a hib´aban (n´egyzetesen) • Enn´el fogva jelent˝os drift jellemzi a m´odszert
(a) Zaj hat´asa az egyszeres e´ s k´etszeres integr´alra
(b) Egy fok sz¨oghiba hat´asa a k´etszeres integr´alra
20. a´ bra. Hib´ak hat´asa a kett˝os integr´alra [11] Megfelel˝oen kalibr´alt szenzorral viszont igen j´o dinamikai jellemz˝oi vannak a m´odszernek, mivel a gyorsul´asm´er˝o friss´ıt´esi ideje igen j´o, illetve a k´esleltet´es is alacsony.
9.3.2. Poz´ıci´om´er´es kamera k´epe alapj´an Egy m´asik m´odszer a poz´ıci´o m´er´es´ere a kamerak´ep haszn´alata. Ennek sor´an egy k¨uls˝o kamera (vagy kamer´ak) figyeli(k) meg a rendszert, mely(ek) k´ep´eb˝ol meg lehet hat´arozni a k´esz¨ul´ek pillanatnyi 50
9. SENSOR FUSION poz´ıci´oj´at. Ehhez c´elszer˝u alkalmazni valamilyen sz´ın jel¨ol´est a m´erend˝o testen, mivel a sz´ın alapj´an lehets´eges a szegment´aci´o, vagyis a sz´ın alap´u objektumfelismer´es. Mint m´ar ismertet´esre ker¨ult, a telefon kamerak´ep´et h´al´ozati kapcsolaton kereszt¨ul el lehet juttatni a LabVIEW platform´u adatfeldolgoz´o szoftvernek, ahol a szegment´aci´o t¨ort´enik. Eredm´eny¨ul megkapjuk az objektum k´ep´enek s´ulypontj´anak x e´ s y koordin´at´aj´at, a k´ep koordin´ata rendszer´eben. Egy- vagy k´etdimenzi´os mozg´as poz´ıci´oj´anak le´ır´as´ara elegend˝o egy kamera k´ep´enek adata. H´arom dimenzi´os le´ır´ashoz legal´abb k´et kamera k´epe sz¨uks´eges, megfelel˝o elrendez´esben. ´Igy a m´odszerrel biztos´ıthat´o egy test abszol´ut poz´ıci´oj´anak t´erbeli megfigyel´ese. A m´odszer el˝onyei: • Nincsen kett˝os integr´al, teh´at nincs drift sem • Elm´eletileg b´armilyen t´argynak a poz´ıci´oj´at tudjuk ´ıgy m´erni H´atr´anyok: • Lass´u k´epfriss´ıt´es (≈ 15 − 20 [Hz]) • Rossz dinamikai tulajdons´agok • Orient´aci´o m´er´ese k¨or¨ulm´enyes • Limit´alt m´er´esi ter¨ulet • Kalibr´aci´o ig´enye • Pontoss´agot a k´epfelbont´as n¨ovel´es´evel tudjuk emelni, de ez rosszabb k´epfriss´ıt´essel e´ s megn¨ovekedett k´esleltet´essel j´ar
9.3.3. A Sensor Fusion alkalmaz´asa A fenti k´et m´odszer el˝onyeit egyes´ıtve l´etrehozhat´o egy olyan poz´ıci´om´er´esi elj´ar´as, mely j´o dinamikai tulajdons´agokkal rendelkezik, illetve a drift sem jellemz˝o r´a. Ennek a megval´os´ıt´asa - a telefonok szenzorain´al maradva - ´ıgy t¨ort´enhet: • Egy (jellegzetes sz´ın˝u) telefon valamilyen mozg´ast v´egez egy s´ıkban/a t´erben. Ez a telefon a saj´at poz´ıci´oj´at m´eri az els˝o, gyorsul´asm´er˝o e´ s orient´aci´o alap´u m´odon.
51
´ O´ 10. KONKLUZI • Egy vagy t¨obb m´asik telefon kamer´azza a sz´ınes telefont, a k´epeket szegment´alva, illetve az x, y e´ rt´ekeket kalibr´alva megkapjuk a m´erend˝o telefon abszol´ut poz´ıci´oj´at. Vegy¨uk e´ szre, hogy - anal´og m´odon az orient´aci´om´er´essel - a gyorsul´asm´er˝o haszn´alat´aval kapott poz´ıci´ora fel¨ul a´ tereszt˝o, a kamera a´ ltal kapott poz´ıci´ora pedig alul a´ tereszt˝o sz˝ur˝ovel egy pontosabb, jobb dinamikai tulajdons´agokkal rendelkez˝o poz´ıci´om´er´esi elj´ar´as a´ ll rendelkez´es¨unkre. Mint m´ar eml´ıt´esre ker¨ult, ez nem lett a dolgozat keretein bel¨ul megval´os´ıtva. Az ok az, hogy komplexit´asa miatt ez ak´ar egy k¨ul¨on dolgozat t´em´aja lehet, mint a fentiekben le´ırtak folytat´asa.
¨ 9.4. Osszegz´ es A fejezetben le´ırtaknak els˝osorban szeml´eletform´al´o szerepet sz´antam, hogy megmutassa, hogy a telefonokba be´ep´ıtett szenzorokat - hi´anyoss´agaik ellen´ere is - alkalmazhatjuk megn¨ovelt pontoss´agot k´ıv´an´o m´er´esek elv´egz´es´ere is. Bemutat´asra ker¨ult az, hogy k¨ul¨onb¨oz˝o szenzorok jeleit hogyan lehet u´ gy haszn´alni, hogy azok egym´as hi´anyoss´agait p´otolj´ak, ´ıgy pontosabb, kev´esb´e zajos, illetve jobb dinamikai tulajdons´agokkal rendelkez˝o jelet kapjunk v´egeredm´eny¨ul. A bemutat´asra ker¨ult k´et sensor fusion alkalmaz´ason fel¨ul potenci´alisan lehet˝os´eg van egy´eb szenzorok kombin´aci´oj´ara is. Ennek a kutat´asa, e´ s a poz´ıci´om´er´es megval´os´ıt´asa a t´ema folytat´asak´ent t¨ort´enhet.
´ o 10. Konkluzi´ Mint a bevezet˝oben eml´ıtettem, a mobiltelefonok e´ s szenzoraik el´ertek egy olyan fejletts´egi szintre, hogy azokat m´er´estechnikai c´elra is alkalmazni lehet. A dolgozat keret´eben bemutat´asra ker¨ult egy alapvet˝o m´er´esi elrendez´es, mely k¨ul¨onv´alasztja a telefont e´ s a feldolgoz´o egys´eget, ´ıgy er˝oforr´as intenz´ıvebb, val´os idej˝u m´er´esek is lehets´egesek, amit a t´ema keret´eben elv´egzett m´er´esek sikeress´ege is tan´us´ıt. Ez az adatkommunik´aci´os e´ s adatfeldolgoz´asi filoz´ofia teh´at teljes k¨or˝uen meg´allja a hely´et a gyakorlatban. Az Android e´ s LabVIEW alap´u programoz´as m´er´estechnikai lehet˝os´egeit is taglalta a dolgozat. Ezek a fejezetek elengedhetetlenek ahhoz, hogy a befogad´o r´aj¨ojj¨on, milyen potenci´al rejlik e k´et platformban. Ezen alapvet˝o r´al´at´assal, e´ s n´emi programoz´asi tud´assal b´arki k´epes tetsz´ese
52
´ O´ 10. KONKLUZI szerint felhaszn´alni e´ s feldolgozni a telefon szenzor adatait. A mell´ekletben tov´abb´a megtal´alhat´o minden, a´ ltalam k´esz´ıtett program e´ s forr´ask´odja, melyeket b´arki felhaszn´alhat az MIT License alatt. Ez seg´ıts´eget ad egyr´eszt abban, hogy a fejetekben le´ırt programoz´asi m´odszereket gyakorlati szempontb´ol igazolja, m´asr´eszt alapot ad annak, aki a t´em´aban tov´abbi kutat´asi tev´ekenys´eget k´ıv´an folytatni. A dolgozat f˝o fejezetei az elv´egzett m´er´esekkel foglalkoznak. Mindegyik egyszer˝uen kivitelezhet˝o, l´enyeg¨uk az, hogy bemutass´ak a szenzorok alapvet˝o k´epess´egeit, behat´arolj´ak alkalmaz´asi lehet˝os´egeit. ´Igy minden m´er´es m´as e´ s m´as tanuls´agot hozott: l´athattuk, hogy - b´ar kalibr´aci´oja nem pontos - a gyorsul´asm´er˝o haszn´alhat´o alapvet˝o fordulatsz´am m´er´esi feladatokra, a megvil´ag´ıt´asm´er˝o kalibr´al´asa sor´an f´eny der¨ult a telefonok szenzorainak sokf´eles´eg´ere, a mikrofon e´ s kamera jele pedig remek¨ul alkalmazhat´o k¨ul¨onb¨oz˝o, val´os idej˝u m´er´esek elv´egz´es´ere. Az id˝o sz˝uk¨oss´eg´ere val´o tekintettel nem ker¨ult minden szenzor ter´ıt´ekre a dolgozat keretein bel¨ul, viszont u´ gy gondolom, hogy a megval´os´ıtott m´er´esek kiel´eg´ıt˝o alapot adnak tov´abbi kutat´asi tev´ekenys´egekhez a t´em´aban. Egy kifinomultabb m´er´estechnikai m´odszer is ismertet´esre ker¨ult a sensor fusion k´ep´eben. Lefektet´esre ker¨ult a m´odszer matematikai alapja, illetve nagyr´eszt implement´al´asra ker¨ult a m´odszer Android platformon. B´ar sensor fusion m´er´est nem v´egeztem el, minden eszk¨oz adott a dolgozatban ahhoz, hogy ezzel az e´ rdekl˝od˝o foglalkozzon a t´ema folytat´asak´ent. A m´odszer legnagyobb el˝onye az, hogy az o¨ sszes szenzor egy k´esz¨ul´ekben tal´alhat´o. Semmi akad´alya annak, hogy ”egyszerre” k¨uldj¨unk t¨obb szenzor adatait a feldolgoz´oegys´egnek, ´ıgy egyszerre lehet p´eld´aul a mikrofon e´ s kamera jel´et is val´os id˝oben feldolgozni. Ennek egy tipikus alkalmaz´asa lehet egy auton´om robot, amely a telefon szenzorait haszn´alva k´epes t´aj´ekoz´odni, a k¨ornyezet´et figyelni. Ennek megval´os´ıt´asa a t´ema egyik lehets´eges folytat´asa. ¨ Osszess´ eg´eben u´ gy gondolom, hogy a dolgozat sikeresen teljes´ıtette c´elj´at, hiszen az alapkoncepci´ot´ol kezdve, a szoftverfejleszt´esen kereszt¨ul a konkr´et m´er´esi eredm´enyekig taglalja azt, hogy mik a molbiltelefonok szenzorainak m´er´estechnikai alkalmaz´asai.
53
´ 11. VEGSZ O´
11. V´egsz´o 11.1. A t´ema folytat´asa Term´eszetesen a dolgozat nem k´epes teljes k¨or˝uen lefedni a Mobiltelefon szenzorainak m´er´estechnikai alkalmaz´asa t´em´at. A k¨ovetkez˝okben felsorol´asra ker¨ul n´eh´any olyan ter¨ulet, amely folytat´asa lehet a t´em´anak. • M´er´esek elv´egz´ese telefon szenzoraival u´ gy, hogy az adatfeldolgoz´ast is a telefon v´egzi • A telefonok szenzorainak r´eszletes le´ır´asa, mind hardver, mind alacsony szint˝u szoftver oldalr´ol • Az Android szenzorkezel´es´enek analitikusabb megk¨ozel´ıt´ese, a szenzor adatok pontos statisztikai le´ır´asa • A sensor fusion algoritmusok megval´os´ıt´asa, azokkal val´o m´er´esek elv´egz´ese • iOS platform haszn´alata, LabVIEW-t´ol elt´er˝o platform´u feldolgoz´o szoftver fejleszt´ese
11.2. K¨osz¨onetnyilv´an´ıt´as A munk´amat seg´ıtett´ek: • A dolgozat konzulense: Dr. Samu Kriszti´an, BME-MOGI tansz´ekvezet˝o helyettes, egyetemi docens • A dolgozat sor´an haszn´alt Nokia X k´esz¨ul´eket Dr. Ekler P´eter, BME-AIT egyetemi adjunktus bocs´atotta rendelkez´esemre
54
´ 12. MELLEKLETEK
12. Mell´ekletek Android programok Az Android programok e´ s a forr´ask´odjuk a dolgozat mell´ekletei k¨oz¨ott megtal´alhat´oak, illetve ezen a linken: https://goo.gl/rP5hY5 LabVIEW elemz˝oprogram A dolgozathoz haszn´alt LabVIEW program a dolgozat mell´ekletei k¨oz¨ott megtal´alhat´o, illetve ezen a linken: https://goo.gl/90KqRc Motor fordulatsz´am´anak m´er´ese telefon gyorsul´asm´er˝oj´enek jel´eb˝ol A teljes m´er´esi jegyz˝ok¨onyv a mell´ekletek k¨oz¨ott megtal´alhat´o Objektumk¨ovet´es mobiltelefon kamerak´epe alapj´an A teljes m´er´esi jegyz˝ok¨onyv a mell´ekletek k¨oz¨ott megtal´alhat´o Mobiltelefon megvil´ag´ıt´asm´er˝oj´enek kalibr´al´asa A teljes m´er´esi jegyz˝ok¨onyv a mell´ekletek k¨oz¨ott megtal´alhat´o Mobiltelefon mikrofon jel´enek frekvencia anal´ızise A teljes m´er´esi jegyz˝ok¨onyv a mell´ekletek k¨oz¨ott megtal´alhat´o Vide´o felv´etelek a kamer´as m´er´esr˝ol A k´et felv´etel a mell´ekletek k¨oz¨ott, a videos mapp´aban megtal´alhat´o
55
´ 12. MELLEKLETEK A mell´eklet k¨onyvt´arszerkezete: mellekletek forraskodok Android apk AccOverTCP AccSensOverTCP CamOverTCP LuxOverTCP MicOverTCP SensorFusionOverTCP SensorList dokumentumok forrasa jegyzokonyvek fordulatszam kamera lux kalibralas mikrofon frekvencia analizise paper Java tcp client test tcp server test LabVIEW jegyzokonyvek fordulatszam kamera lux kalibralas mikrofon frekvencia analizise videok
56
´ HIVATKOZASOK
Hivatkoz´asok [1] Az el˝olap LATEX sablonja, available from: http://www.latextemplates.com/ template/university-assignment-title-page [2] Az Android telefonok koncepci´ok´epei a hivatalos Google seg´edprogrammal k´esz¨ultek. Available from:https://developer.android.com/distribute/tools/promote/ device-art.html [3] Pietila, Elias, 2015, Wooden Labyrinth 3D on the App Store. App Store [online]. 2015. [Accessed 8 October 2015]. Available from: https://itunes.apple.com/en/app/ wooden-labyrinth-3d/id303881859?mt=8 [4] Giucastro, Sergio, 2012, Getting High Precision Timing on Android. Gamasutra.com [online]. 2012. [Accessed 8 October 2015]. Available from: http://gamasutra.com/view/ feature/171774/getting_high_precision_timing_on_.php [5] Paller, Gabor, 2011, Motion recognition with Android devices. Slideshare.net [online]. 2011. [Accessed 8 October 2015]. Available from: http://www.slideshare.net/paller/ motion-recognition-with-android-devices [6] Lawitzki, Paul, 2014, Android Sensor Fusion Tutorial - CodeProject. Codeproject.com [online]. 2014. [Accessed 8 October 2015]. Available from: http://www.codeproject.com/ Articles/729759/Android-Sensor-Fusion-Tutorial [7] Forster,
Aaron,
roid
The
cessed
-
8
2012, Visible
October
Tutorial: Kitteh 2015].
Object Recognition With OpenCV and AndProject. Available
Sites.google.com from:
[online].
2012.
[Ac-
https://sites.google.
com/a/forstersfreehold.com/visible-kitteh-project/home/ announcements/objectdetectionwithopencvandandroid [8] Edwards, Jim, 2014, The iPhone 6 Had Better Be Amazing And Cheap, Because Apple Is Losing The War To Android. Business Insider [online]. 2014. [Accessed 8 October 2015]. Available from:
http://www.businessinsider.com/
iphone-v-android-market-share-2014-5 [9] Developer.android.com, 2015, Sensors Overview — Android Developers. [online]. 2015. [Accessed 8 October 2015]. Available from: http://developer.android.com/guide/ topics/sensors/sensors_overview.html
57
´ HIVATKOZASOK [10] Tom.pycke.be, 2006, MAV-blog : Gyroscope to roll, pitch and yaw. [online]. 2006. [Accessed 9 October 2015]. Available from:
http://tom.pycke.be/mav/70/
gyroscope-to-roll-pitch-and-yaw [11] Google, 2010, Sensor Fusion on Android Devices: A Revolution in Motion Processing [online]. [video]. 2010. [Accessed 10 October 2015]. Available from: https://www.youtube. com/watch?v=C7JQ7Rpwn2k
58