Mobiltelefon szenzorainak méréstechnikai alkalmazása

Hasonló dokumentumok
Bosch Recording Station. Telepítési kézikönyv

URL-LEL ADOTT OBJEKTUM LETÖLTÉSE (1) URL-LEL ADOTT OBJEKTUM LETÖLTÉSE

Objektumorientált programozás C# nyelven

EMTP, EGY ÚJ LEVELEZÕ PROTOKOLL ÉS IMPLEMENTÁCIÓJA

eseményvezérelt megoldások Vizuális programozás 5. előadás

Using the CW-Net in a user defined IP network

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Objektumorientált programozás C# nyelven

A HV-PCI6 VIDEODIGITALIZÁLÓ KÁRTYA ÉS ALKALMAZÁSAI (HV-PCI6 Video Digitizing Card and its Applications)

1. mérés - LabView 1

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

FIATAL MŰSZAKIAK TUDOMÁNYOS ÜLÉSSZAKA

NYOMÁSOS ÖNTÉS KÖZBEN ÉBREDŐ NYOMÁSVISZONYOK MÉRÉTECHNOLÓGIAI TERVEZÉSE DEVELOPMENT OF CAVITY PRESSURE MEASUREMENT FOR HIGH PRESURE DIE CASTING

Széchenyi István Egyetem

Robotot vezérlő szoftverek fejlesztése Developing robot controller softwares

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Objektumorientált programozás C# nyelven III.

Bonobo: A GNOME CORBA alapú komponens-megoldása Unixokra

Access adatbázis elérése OLE DB-n keresztül

3. Gyakorlat Ismerkedés a Java nyelvvel

AUGMENTED REALITY KITERJESZTETT VALÓSÁG TARTALOMJEGYZÉK. Czéhner Tamás

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

P-GRADE fejlesztőkörnyezet és Jini alapú GRID integrálása PVM programok végrehajtásához. Rendszerterv. Sipos Gergely

A SZEMCSEALAK ALAPJÁN TÖRTÉNŐ SZÉTVÁLASZTÁS JELENTŐSÉGE FÉMTARTALMÚ HULLADÉKOK FELDOLGOZÁSA SORÁN

Széchenyi István Szakképző Iskola

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.

A WEB programozása - JSP1 dr.gál Tibor őszi félév

Hálózati protokoll tervezése

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Proxer 7 Manager szoftver felhasználói leírás

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Bánsághi Anna

BBS-INFO Kiadó, 2013.

Teleoperáció Robot vezérlése IP-hálózaton

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

117. AA Megoldó Alfréd AA 117.

Intelligens közlekedés: a járműipar és járműirányítás IKT igényei, a VehicleICT projekt. Lengyel László lengyel@aut.bme.hu

DR. SZABÓ LÁSZLÓ 1 DOBOS GÁBOR 2

A fafeldolgozás energiaszerkezetének vizsgálata és energiafelhasználási összefüggései

C# osztályok. Krizsán Zoltán

Elektromágneses hullámok terjedési sebességének mérése levegőben

Mérési útmutató a Mobil Kommunikáció és Kvantumtechnológiák Laboratórium méréseihez

PARAMÉTERES GÖRBÉK ALKALMAZÁSA VALÓSIDE- JŰ DIGITÁLIS HANGFELDOLGOZÁS SORÁN

VHR-23 Regisztráló műszer Felhasználói leírás

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

Java programozási nyelv 10. rész Input/output kezelés

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Bluetooth mérési útmutató 1. mérés

A CAN mint ipari kommunikációs protokoll CAN as industrial communication protocol

Konfigurációkezelés (2B)

CAD-CAM

Java felhasználói felület

Jövő Internet - kutatások az elmélettől az alkalmazásig. Eredménykommunikációs kiadvány

Programozási nyelvek Java

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

SZOFTVEREK A SORBANÁLLÁSI ELMÉLET OKTATÁSÁBAN

WebSphere Adapters. 6. változat 2. alváltozat. WebSphere Adapter for SAP Software felhasználói kézikönyv 6. változat 2. kiadás

A JAVA FUTTATÁSAKOR ELŐFORDULÓ HIBA-

TECHNIKAI RENDSZEREK ÁLLAPOTLEÍRÁSÁNAK KÉRDÉSEI QUESTIONS REGARDING THE DESCRIPTION OF THE STATE OF TECHNICAL SYSTEMS

A földi ellenôrzô berendezésekben alkalmazott programozási technikák

A ROBOTIKA ALKALMAZÁSÁNAK LEHETŐSÉGEI A HAD- ÉS BIZTONSÁGTECHNIKAI MÉRNÖK KÉPZÉSBEN

Deep Learning a gyakorlatban Python és LUA alapon Felhasználói viselkedés modellezés

PHP5 Új generáció (2. rész)

FATERMÉSI FOK MEGHATÁROZÁSA AZ EGÉSZÁLLOMÁNY ÁTLAGNÖVEDÉKE ALAPJÁN

Tartalomjegyzék 3 TARTALOMJEGYZÉK

SEAGUARD. Integrált Biztonság-felügyeleti Rendszer

ÓBUDAI EGYETEM Neumann János Informatikai Kar Informatikai Rendszerek Intézet Témavezető: Bringye Zsolt

ANTENNARENDSZEREK KUTATÁSA

1. Legfontosabb tulajdonságok. 2. A lejátszó leírása

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Segédanyag: Java alkalmazások gyakorlat

libgdx alapok, első alkalmazás

Department of Software Engineering

Adatbázis-kezelés ODBC driverrel

Szakmai program 2015

DWL-G520 AirPlus Xtreme G 2,4GHz Vezeték nélküli PCI Adapter

Teszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW3 SW2. Kuris Ferenc - [HUN] Cisco Blog -

ERserver. iseries. Szolgáltatási minőség

Térbeli folyamatok elemzése WiFi alapú virtuális szenzor hálózattal

Hálózatkezelés Szolgáltatási minőség (QoS)

II. év. Adatbázisok és számítógépek programozása

Számítógép labor V. Egyszer Web szerver. Dokumentáció. Készítette: Ács Gergely (K4C03M)

Ismétlődő műveletek elvégzésének automatizálása

Objektumorientált programozás C# nyelven

Summer of LabVIEW The Sunny Side of System Design

SZEMLÉLETES RÉSZINFORMÁCIÓK INTEGRÁCIÓS PROBLÉMÁINAK VIZSGÁLATA A VIRTUÁLIS VALÓSÁGOT TEREMTŐ SZIMULÁTOROK ALAPJÁN

!!" KÉSZÍTK: ERDÉLYI LAJOS KOLLÁR NÁNDOR WD6OGW BUK8Y7

Villamos jelek mintavételezése, feldolgozása. Mérésadatgyűjtés, jelfeldolgozás 9. előadás

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

KÜLSÕ CÉGEK TÁMOGATÁSÁVAL MEGVALÓSÍTOTT, 4GL ÉS CASE ESZKÖZÖKRE ALAPOZOTT KÉPZÉS A SZÉCHENYI ISTVÁN FÕISKOLÁN

Bevezetés a Symbian operációs rendszerbe

KERÉKPÁR MOZGÁSI JELLEMZÔINEK MEGHATÁROZÁSA ISKOLAI PROJEKTFELADATBAN

Java és web programozás

Book Template Title. Author Last Name, Author First Name

Számítógépes hálózatok

Alap számológép alkalmazás

Cloud computing. Cloud computing. Dr. Bakonyi Péter.

VoIP (Voice over IP)

TEE - Adásvételi szerződés keretében informatikai kutatási eszközök és szoftverek beszerzése a Pázmány Péter Katolikus Egyetem számára

Átírás:

BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM TUDOMÁNYOS DIÁKKÖRI KONFERENCIA DOKUMENTÁCIÓ Mobiltelefon szenzorainak méréstechnikai alkalmazása Készítette: Nagy Márton Tamás O0HK4S nmarton.t@gmail.com Konzulens: Dr. Samu Krisztián BME MOGI samuk@mogi.bme.hu 2015. november 5.

Kivonat Kivonat A mobiltelefonok technológiai fejlődésével és globális elterjedésével lehetőség nyílt arra, hogy azok szenzorait egyszerű méréstechnikai feladatok elvégzésére bárki alkalmazza. A dolgozat ezen szenzorokat és alkalmazási lehetőségeit elemzi, konkrét mérések tapasztalatai alapján. A dolgozat alapvető filozófiája az, hogy a telefont szenzorként kezeljük, a mért adatokat pedig egy kommunikációs csatornán, valós időben közvetítjük egy feldolgozó számítógépnek. A piaci részesedése alapján legnépszerűbb Android platformú telefonokat alkalmaztam a mérések során, a feldolgozó szoftver pedig az ipari standard LabVIEW platformon alapszik. A dolgozat keretében elkészítésre került számos Android alkalmazás, melyek különböző szenzorok jeleit továbbítják a feldolgozóegységnek. Az elkészített LabVIEW elemzőprogram pedig képes arra, hogy a szenzorok jeleit fogadja, és valós időben feldolgozza. Ezek használatával végeztem el a méréseket, melyek eredményei alapján értékelni lehet a szenzorok alkalmazhatóságát a méréstechnika területén. A dolgozatban kifejtésre kerül a szenzor és a feldolgozóegység szerepe a mérések során, a dolgozat filozófiájának szellemében bemutatásra kerül az információ útja a mérendő mennyiségtől a mérési eredményig. Részletes bemutatásra kerülnek a felhasznált szenzorok és az elvégzett mérések. Minden mérésről mérési jegyzőkönyv is rendelkezésre áll, melyekben megtalálhatóak a nyers mérési adatok, a mérési elrendezések részletes leírása, illetve a mérési eredmények és az ahhoz felhasznált összefüggések. A téma keretében elvégzett mérések a következők: mobiltelefon megvilágításmérőjének kalibrálása, gyorsulásmérő jeléből személyautó motorja fordulatszámának mérése valós időben, mikrofon jelének valós idejű frekvenciaanalízise, mobiltelefon kamera képének felhasználása objektumkövetésre. Továbbá, a téma kitér az Android platform lehetőségire a szenzorok kezelésével kapcsolatban, a LabVIEW-ban történő adatfeldolgozás sajátosságaira, a telefon és a feldolgozó számítógép közötti adatkommunikáció felépítésére. Megemlítésre kerül annak a lehetősége is, hogy több, különböző szenzor jelét oly módon használjuk fel, hogy azok egymást pontosítsák, egy jobb szenzort kapjunk a fúzióból (Sensor Fusion). Demonstrálásra kerül egy ilyen, már meglévő megoldás, és ennek alapján a módszer további alkalmazási lehetőségei is megemlítésre kerülnek. 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

TARTALOMJEGYZÉK Tartalomjegyzék 1. Bevezetés 6 1.1. Igény a telefonnal történő mérésekre......................... 6 1.2. Kutatási előzmények................................. 6 1.3. Az Android használata a mérések során....................... 7 1.4. A LabVIEW használata a mérések során....................... 8 1.5. A mérések során felhasznált eszközök........................ 9 2. Információáramlás a mérések során 10 2.1. Telefon és szerepe................................... 11 2.1.1. A szenzorok................................. 11 2.1.2. A szenzorok és az Android rendszer kapcsolata............... 12 2.1.3. A telefon kommunikációja a feldolgozó egységgel............. 12 2.2. Hálózati kapcsolat és szerepe............................. 12 2.2.1. A kommunikációs csatorna fizikai megvalósítása.............. 13 2.2.2. A kommunikációs protokoll......................... 13 2.3. Feldolgozóegység és szerepe............................. 14 2.3.1. A mérési adat fogadása a feldolgozóegységen................ 14 2.3.2. A mérési adat feldolgozása.......................... 14 3. Az Android méréstechnikai alkalmazása 15 3.1. Felhasználói felület.................................. 15 3.2. A szenzorok elérése.................................. 16 3.3. Időzítés megvalósítása................................ 19 3.4. Mikrofonkezelés................................... 19 3.5. Kamerakezelés.................................... 20 3.6. Hálózatkezelés.................................... 21 4. A LabVIEW használata a mérések során 24 4.1. Szenzoradatok fogadása, a TCP szerver....................... 24 4.2. Szenzoradatok feldolgozása.............................. 25 4.3. LabVIEW képfeldolgozás.............................. 26 5. Motor fordulatszámának mérése gyorsulásmérővel 27 5.1. A mérési elrendezés.................................. 28 3

TARTALOMJEGYZÉK 5.2. Mérési adatok felvétele................................ 29 5.3. Az adatsor frekvencia analízise............................ 29 5.3.1. Első mérési sor analízise........................... 30 5.3.2. Hatodik mérési sor analízise......................... 30 5.4. A mérési eredmény.................................. 31 5.5. Következtetések.................................... 31 6. Objektumkövetés mobiltelefon kameraképe alapján 32 6.1. A mérési elrendezés.................................. 32 6.2. A mérés menete.................................... 33 6.2.1. A hálózati késleltetés mérése......................... 34 6.2.2. 320x240 felbontással............................. 35 6.3. A mérési eredmény.................................. 35 6.3.1. Az elméleti háttér............................... 35 6.3.2. A mérési eredmények táblázatosan...................... 36 6.4. Következtetések.................................... 37 7. Mobiltelefon megvilágításmérőjének kalibrálása 37 7.1. A mérési elrendezés.................................. 37 7.2. A mérés menete.................................... 38 7.3. Szenzorok kalibrálása................................. 39 7.4. Kalibrált szenzorral való mérések........................... 41 7.5. Következtetések.................................... 42 8. Mobiltelefon mikrofon jelének frekvencia analízise 42 8.1. A mérési elrendezés.................................. 42 8.2. A mérés menete.................................... 43 8.3. Az adatsor frekvencia analízise............................ 44 8.4. Következtetések.................................... 44 9. Sensor Fusion 45 9.1. Bevezető........................................ 45 9.2. Orientáció meghatározása Sensor Fusion segítségével [6].............. 45 9.2.1. Orientáció meghatározásának módjai.................... 45 9.2.2. A Sensor Fusion alkalmazása........................ 46 9.3. Pozíciómeghatározás Sensor Fusion segítségével.................. 48 4

TARTALOMJEGYZÉK 9.3.1. Pozíció meghatározása gyorsulásmérő jeléből és orientációból....... 48 9.3.2. Pozíciómérés kamera képe alapján...................... 50 9.3.3. A Sensor Fusion alkalmazása........................ 51 9.4. Összegzés....................................... 52 10. Konklúzió 52 11. Végszó 54 11.1. A téma folytatása................................... 54 11.2. Köszönetnyilvánítás.................................. 54 12. Mellékletek 55 5

1. BEVEZETÉS 1. Bevezetés 1.1. Igény a telefonnal történő mérésekre A mobiltelefonok technológiai fejlődősével a bennük található szenzorok is egyre fejlettebbek lettek. A manapság forgalomba kerülő telefonokon szériafelszereltség a gyorsulásmérő, a mikrofon, a kamera, és számos egyéb szenzor. Alapvető méréstechnikai feladatokat egy telefon működése során folyamatosan végez: a gyorsulásmérő jelének folyamatos vizsgálatával változtatja a kép orientációját, a megvilágításmérővel a képernyő fényerejét, a közelségmérő segítségével pedig telefonálás közben sötétíti el a képet a készülék. A rendszeren kívül az alkalmazások is használják a készülék teljes szenzorpalettáját. Elég csak az ezernyi játékra gondolni, amelyek irányítására a gyorsulásmérő vagy a giroszkóp használatos. Ezen alkalmazások mögött méréstechnikai feladatok állnak: valós időben kell a telefon állapotát mérni, a mérési adatokat rögzíteni kell, azokból pedig következtetéseket kell levonni, és az alapján cselekedni. A felhasználó tudatosan a kamerát és a mikrofont használja leggyakrabban. Léteznek alkalmazások, melyek a kamera képét torzítják, vagy éppen a mikrofon segítségével készítenek hang állományt. A dolgozat célkitűzése az, hogy bemutassa a telefonnak, mint szenzornak az alkalmazását egyszerű méréstechnikai feladatok elvégzésére. A telefonnak így csupán a szenzorai lesznek használva, a feldolgozásért egy külön feldolgozóegység felel, amelyhez a telefon hálózati kommunikáció segítségével juttatja el a nyers mérési adatokat. A dolgozat ezen szenzorokat és alkalmazási lehetőségeit elemzi, konkrét mérések tapasztalatai alapján. 1.2. Kutatási előzmények Mint az előbbiekben ismertetésre került, a mobiltelefonok szenzorait elsősorban a készülék állapotának mérésére használjuk, hogy ez alapján változtassuk meg a telefon működését, ami lehet a kép orientációjának megváltoztatása, vagy esetleg egy játék karakterének irányítása. Ennek tudatában nyilvánvalóvá válik, hogy a szenzorok ismerete nélkülözhetetlen a mobiltelefonra történő fejlesztés során. Okostelefonok esetében rendelkezésre állnak rendszerhívások ahhoz, hogy a szenzorok adatait elérjük. 6

1. BEVEZETÉS Számottevő kutatási előzmények: Getting High Precision Timing on Android [4] A mintavételezéshez pontos időzítés szükséges, a tanulmány ennek leírásával foglalkozik. Motion recognition with Android devices [5] Mozgás felismerésének módjait leíró tanulmány, számos gesztus érzékelése gyorsulásmérővel. Sensor Fusion [6] Orientáció pontosított meghatározására szolgáló módszer. Object Recognition With OpenCV and Android [7] Objektum felismerése Androidon, kamerakép alapján. A dolgozat merít a fenti tanulmányokból, illetve a Sensor Fusion bemutatására külön fejezet szolgál: bemutatásra kerül az alapkoncepció és megvalósítása orientáció mérésére, illetve ismertetésre kerül egy további alkalmazási mód is. 1.3. Az Android használata a mérések során Manapság az Android a legelterjedtebb mobiltelefon platform, egyre növekvő népszerűséggel [8]. Az Android egy Linux kernelen alapuló, nyílt forráskódú operációs rendszer, legelterjedtebben mobiltelefonokban használatos. A dolgozatban használt mobiltelefonok ezt az operációs rendszert futtatják. Ennek okai a következőek: Ingyenes fejlesztőkörnyezet (Android Studio) Ingyenes szoftverfejlesztés a platformra Kiterjedt Sensor framework a szenzorok adatainak kezelésére A rendszer a leggyakrabban előforduló szenzorokat támogatja, a legtöbb telefonban pedig ezek megtalálhatóak Az Android platformra magas szinten Java nyelven programozhatunk, így szinte a teljes Java paletta is rendelkezésünkre áll. Ennek okán a hálózati kommunikáció is akadálytalanul megvalósítható a platformon. Ehhez kliensoldali TCP Socket áll rendelkezésünkre a telefonon, amivel a feldolgozóegységnek tudjuk továbbküldeni az adatokat. 7

1. BEVEZETÉS 1.4. A LabVIEW használata a mérések során A mérési adatokat tehát egy TCP Socket kapcsolaton keresztül juttatjuk el a feldolgozó egységnek. Ez a feldolgozó egység egy számítógép, mely egy LabVIEW programmal elemzi a beérkező adatokat, valós időben. A LabVIEW (Laboratory Virtual Instrument Engineering Workbench) egy rendszer tervező platform és fejlesztő környezet a National Instruments vizuális programozási nyelvéhez (G nyelv). A G nyelv egy adatfolyam programozáson alapuló nyelv. Az utasításokat a blokk diagram struktúrája határozza meg, melyen a fejlesztő függvénycsomópontokat vezetékez egymáshoz, kijelölve az adatfolyam irányát. Egy utasítás akkor hajtódik végre, hogyha az összes kellő adat megérkezik csomópontjaihoz. Ez a programozási módszer jelentősen gyorsítja és könnyíti a fejlesztést a platformra. Egy LabVIEW programot (ez lehet például egy függvény megfelelője) egy VI (Virtual Instrument) jelképez. A VI-nak vannak be- és kimenetei, ahova a megfelelő vezetékeket bekötve adhatjuk meg a paramétereket és nyerhetjük ki a visszatérési értéket. 1. ábra. Egyszerű matematikai művelet kódja LabVIEW-ban A LabVIEW platformot számos, jelfeldolgozásért felelős könyvtár erősíti, ezekből a dolgozatban felhasználtak: Signal Processing Toolkit Advanced Signal Processing Toolkit Vision and Motion Ezen könyvtárak segítségével végeztem el a szenzorok jeleinek Fast Fourier Transzformációját, illetve a képelemzést. Egyéb fontosabb könyvtárak: Data Communication 8

1. BEVEZETÉS Mathematics Ezen könyvtárak a telefon-számítógép hálózati kapcsolat és az alapvető matematikai műveletek elvégzését szolgálják. 1.5. A mérések során felhasznált eszközök A dolgozat során két telefont és egy számítógépet használtam fel: Nokia X Android alapú okostelefon Sony Xperia SP Android alapú okostelefon Dell Latitude E6530 Számítógép Készülék Operációs rendszer Verzió Nokia X Android 4.1.2 (CyanogenMod) Sony Xperia SP Android 4.3 (Hivatalos Sony ROM) Dell Latitude E6530 Windows 7 Professional, SP1 Egyéb felhasznált eszközök: MS-1500 Digitális megvilágításmérő (VOLTCRAFT) Opel Astra 1.2 16V Club személyautó HP 1740 17 TFT MONITOR Felhasznált szoftverek: Saját fejlesztésű feldolgozószoftver (LabVIEW 2014) Saját fejlesztésű Android szoftverek a szenzorok kezelésére és adattovábbításra (Android Studio) OriginPro 8.5 a kalibrációs görbék meghatározásához Adobe Photoshop CS6, TexMaker (L A TEX) a dokumentáció elkészítéséhez 9

2. Információáramlás a mérések során 2. INFORMÁCIÓÁRAMLÁS A MÉRÉSEK SORÁN Lényeges tisztában lenni azzal, hogy az információ hogyan áramlik a mérések során, mivel így felvázolhatjuk, hogy a mérések során milyen csomópontokon halad át információ, illetve ezen csomópontoknak mi a szerepe az információ feldolgozásában és továbbításában. 2. ábra. Az információáramlás szemléltetése Az 2. ábrán szemléltetésre kerül az információáramlás folyamata a dolgozatban elvégzett mérések során. Az ábra alapján az információ áramlása a következőképpen írható le: A mérendő fizikai rendszer jelei közül kiválasztott mért mennyiséget mérjük A mért mennyiség a telefon egy szenzorával villamos jellé alakítódik A telefon a villamos jelet AD átalakítással digitális jellé alakítja. A telefon a digitális jelet szükség szerint kalibrációs görbére illeszti, ezzel megkapjuk a mérési adatot. A mérési adat egy kommunikációs csatornán valós időben továbbításra kerül a feldolgozó egységhez. A feldolgozó egység fogadja a mérési adatokat, azokat pedig (valós időben) feldolgozza. Így jutunk el a mérési eredményig. A mérések szempontjából három fontos csoportot alkothatunk: 10

2. INFORMÁCIÓÁRAMLÁS A MÉRÉSEK SORÁN A telefon A kommunikációs csatorna A feldolgozóegység A fejezet további részei a fenti három csoporttal foglalkoznak. Ismertetésre kerül a csoportok felépítése, szerepe az információáramlásban. 2.1. Telefon és szerepe Mint az már említésre került, a telefont, mint szenzort alkalmazzuk a mérések során. Így a telefont három részre kell osztanunk: A beépített szenzorokra Az Android rendszer és a szenzorok kapcsolatrendszerére A telefon hálózati kommunikációja a feldolgozó egységgel 2.1.1. A szenzorok Az Android rendszer a következő szenzorokat támogatja (Android 4.0-tól): Gyorsulásmérő, ambiens hőmérséklet mérő, gravitáció szenzor, giroszkóp, megvilágításmérő, lineáris gyorsulás, iránytű, orientációmérő, nyomásmérő, közelségszenzor, páratartalom mérő, rotációs vektor mérő, hőmérsékletmérő Ezeken kívül elérhető a kamera és mikrofon jele is. A félkövérrel szedett szenzorok a dolgozat kidolgozása során felhasználásra kerültek. A szenzorokat három csoportba sorolhatjuk [9]: Mozgás szenzorok: Ezen szenzorok gyorsulási és rotációs erőt mérnek, három tengely mentén. Ide tartoznak a gyorsulásmérők, gravitáció szenzorok, giroszkópok és rotáció vektor szenzorok. Környezeti szenzorok: Környezeti paraméterek mérésére használatos szenzorok, például: külső hőmérséklet és nyomás, megvilágítás, páratartalom. Pozíció szenzorok: Ezen szenzorok a készülék fizikai pozícióját mérik. Ebbe a kategóriába tartoznak az orientációmérők és a mágnese iránytű. 11

2. INFORMÁCIÓÁRAMLÁS A MÉRÉSEK SORÁN Ezen szenzorok szerepe az, hogy a mérendő rendszer valamely valós fizikai jelét (a mért mennyiséget) valamilyen módszerrel elektromos jellé alakítsa, hogy azt a telefon operációs rendszere analóg digitális átalakítással digitális jellé alakítsa. A digitális jel ezután egy kalibrációs görbével kalibrációra kerül. Ezzel kialakul a mérési adat. A szenzorok hardver szintű felépítésével és az alacsony szintű folyamatokkal, mint az AD átalakítás vagy a telefonba beépített kalibráció a dolgozat nem foglalkozik. 2.1.2. A szenzorok és az Android rendszer kapcsolata Android rendszer esetén a mérési adatok elérésére egy kiterjedt Sensor Framework áll rendelkezésre. A kamera és a mikrofon elérésétől eltekintve a SensorManager osztály használatos a szenzorok kezelésére. Ezzel az osztállyal a készüléken megtalálható szenzorokra iratkozhatunk fel, hogy jeleiket elérjük. A szenzorokat kezelő Java osztályokkal és azok használatával egy későbbi fejezet foglalkozik részletesen. 2.1.3. A telefon kommunikációja a feldolgozó egységgel Rendelkezésünkre állnak tehát a mérési adatok, melyeket valós időben el kell juttatni a feldolgozóegységhez, hogy az adatfeldolgozás megtörténhessen. Az Android platformra magas szinten Java nyelven programozhatunk, így szinte a teljes Java paletta is rendelkezésünkre áll. Ennek okán a hálózati kommunikáció is akadálytalanul megvalósítható a platformon. Ehhez kliensoldali TCP Socket áll rendelkezésünkre a telefonon, amivel a feldolgozóegységen futó szerverhez tudjuk továbbküldeni az adatot. Ennek konkrét megvalósításával a következő fejezet foglalkozik. 2.2. Hálózati kapcsolat és szerepe A mérési adatokat közvetíteni kell a telefon és a feldolgozó számítógép között. Két lényeges dolgot kell eldönteni: A kommunikációs csatorna fizikai megvalósítását A kommunikációs protokollt 12

2. INFORMÁCIÓÁRAMLÁS A MÉRÉSEK SORÁN 2.2.1. A kommunikációs csatorna fizikai megvalósítása A mérés során a felhasznált feldolgozó számítógép (Dell Latitude E6530) beépített Wifi jeladóját használtam fel arra, hogy egy ad hoc vezeték nélküli kapcsolatot hozzak létre, amire a telefonnal fel lehet csatlakozni. Windows rendszer alatt a megvalósítás parancssorral történik: netsh wlan set hostednetwork mode=allow ssid=name key=pwrd netsh wlan start hostednetwork netsh wlan stop hostednetwork Ezzel rendelkezésre áll egy kommunikációs csatorna, amelyen keresztül vezeték nélkül, a számítógép körülbelül 5 méteres környezetében létesíthetünk kapcsolatot a két eszköz között. Az átlagos válaszidő 60 [ms]. Ezzel a kommunikációs csatornával megvalósíthatóak olyan mérések, melyeknél elengedhetetlen a telefon szabad mozgása (pl. rezgések mérésénél, kamerás méréseknél), a feldolgozóegységnek nem kell a szenzor közvetlen közelében lennie, és az adatkommunikáció illetve a feldolgozás valós időben kell történnie. Ezen tulajdonságok alapján a csatorna teljes körűen megfelel a dolgozat során elvégzett mérések adatkommunikációval kapcsolatos elvárásainak. 2.2.2. A kommunikációs protokoll A választott kommunikációs protokoll a TCP (Transmission Control Protocol). A TCP protokollnak számos előnye van a mérési adatok közvetítésénél: A mérési adatok biztosan megérkeznek a feldolgozó egységhez A mérési adatok helyes sorrendben érkeznek meg (helyes sorrendiség garantált) A mérési adatok helyesen érkeznek meg (hibakeresés) A megvalósítása egyszerű bármely platformon Egy alternatív protokoll lehet az UDP (User Datagram Protocol), azonban ott nem garantált minden mérési adat megérkezése a feldolgozó számítógépnek, illetve lehetnek hibás mérési adatok, mivel hibakeresés nincsen. Ezzel szemben lecsökkent késleltetési idő jellemzi ezt a protokollt. Alternatívát ez csupán a kamerakép közvetítésénél jelentene, a dolgozatban viszont azt is a TCP protokollal valósítottam meg. A hálózati kommunikáció létrejöttével már csupán a feldolgozó számítógép alapvető elvi vázlatát kell lefektetni ahhoz, hogy a szoftverek konkrét megvalósításáról tudjunk beszélni mind a telefon, 13

2. INFORMÁCIÓÁRAMLÁS A MÉRÉSEK SORÁN mind a feldolgozó oldalon. 2.3. Feldolgozóegység és szerepe A feldolgozó egység egy személyi számítógép, melyen egy LabVIEW adatfeldolgozó program fut. A feldolgozó egység szerepét két alapvető részre kell bontanunk: Az adat fogadása Az adat feldolgozása 2.3.1. A mérési adat fogadása a feldolgozóegységen A telefon és a feldolgozó számítógép között fennálló vezeték nélküli (WiFi) csatornán a kommunikáció protokollja a TCP. A LabVIEW platformon minden eszköz rendelkezésre áll, hogy ezt a kapcsolatot szoftver szinten megvalósítsuk. Ezen az oldalon működik a TCP szerver, amelyhez kapcsolódik a telefon oldali TCP Socket. A LabVIEW platformon a TCP kommunikációra a Data Communication csomag használatos, mely tartalmazza a TCP Server VI-t is. A szoftvert fel kell készíteni különböző adattípusok fogadására, mivel a mérések során nem csupán egyszerű valós számokat használunk, hanem esetenként tömböket illetve kép állományokat is. 2.3.2. A mérési adat feldolgozása A mérési adatokat fogadásuk után fel kell dolgozni. A feldolgozás alapvetően a mérési adatok megjelenítése, rögzítése, azokkal való műveletek elvégzése, illetve az így kapott mérési eredmény megjelenítése és rögzítése. A mérési adatok megjelenítésére rendelkezésre állnak a mérnöki munka során előszeretettel alkalmazott grafikonok, ezen felül pedig egyszerű numerikus indikátorokat is alkalmazhatunk. Az adatok rögzítésére az összes hagyományos módszer rendelkezésre áll a platformon: menthetünk szöveges és bináris fájlba is, továbbá számos szabványos formátum is választható, például a comma separated values (.csv). A grafikonok adatait is exportálhatjuk. A számszerű adatok elemzésére számos műveletre van szükség. Az alapvető matematikai műveletekre a LabVIEW Mathematics könyvtára áll rendelkezésre, a frekvencia tartománybeli 14

3. AZ ANDROID MÉRÉSTECHNIKAI ALKALMAZÁSA elemzésre és egyéb transzformációkra a Signal Processing Toolkit és az Advanced Signal Processing Toolkit használható. A frekvencia tartomány ábrázolására és csúcskeresésre természetesen rendelkezésre állnak eszközök a platformon. A valós idejű képfeldolgozásra a Vision and Motion toolkitet alkalmaztam a mérések során. Ez a csomag igen hatékony képfeldolgozó algoritmusokat tartalmaz, melyeket a képek szegmentálására használtam, szín alapú objektumfelismerés megvalósítására. Ezzel rendelkezésre áll a mérési eredmény, tehát elérkeztünk az információ áramlásának végére. A fent említett funkciók konkrét megvalósításának egy külön fejezetet szentel a dolgozat. 3. Az Android méréstechnikai alkalmazása A fejezet betekintést ad abba, milyen eszközeink vannak a szenzorok felhasználására Android platform alatt. Továbbá, a hálózati kommunikáció megvalósítása is bemutatásra kerül. Számos kódrészlet ad programozástechnikai példákat, a teljes forráskód pedig egy működő példát demonstrál, a téma keretén belül ezeket a szoftvereket alkalmaztam a mérések elvégzésekor. A dolgozat keretében készített programok és forráskódjaik (MIT Licence alatt) a mellékletek között megtalálhatóak, és szabadon felhasználhatóak (a licencben foglaltak betartása mellett). 3.1. Felhasználói felület Az okostelefonokra készített alkalmazások egyik igen fontos eleme a felhasználói felület. Android platformon lehetőség van egy felületet.xml formátumban leírni, és a felület elemeit Java kódban elérni. Ez jelentősen megkönnyíti a felhasználói felületek megvalósítását a platformon. Mivel ez nem a téma szerves része, ezért a megvalósítás bemutatásától eltekintek. A felhasználói felület felépítésénél figyelembe kell venni azt, hogy ezek az alkalmazások méréstechnikai célra készülnek. Számos Android applikáció készült, de mindegyik felülete rendelkezik az alábbi, mérésekhez szükséges eszközökkel és funkcionalitással: A képernyő forgatása le van tiltva (az alkalmazás objektumai és felülete ilyenkor újjáépítésre kerülnek, ami szüneteltetheti a mérést) A képernyő elsötétedése le van tiltva (hasonló okokból, mint a forgatásnál) 15

3. AZ ANDROID MÉRÉSTECHNIKAI ALKALMAZÁSA Szerepelnek olyan adatbeviteli mezők, melyekkel specifikálhatjuk a feldolgozó számítógép IP címét és a kommunikációs portot a hálózaton Connect gombbal csatlakozhatunk a feldolgozó egységhez Valamilyen formában megjelenítésre kerül a mérési adat Specifikálni lehet a mérési adat küldésének frekvenciáját Send Sensor Data gombbal elkezdhetjük a küldését az adatnak Lehetőség van szöveges adatokkal való kommunikációra a feldolgozóegységgel Továbbá, a felület egyes elemei nem elérhetőek bizonyos esetekben: A Send Sensor Data gomb nem aktiválható, ha nincs felállítva a hálózati kapcsolat Az adatküldés frekvenciája nem módosítható az adat küldése közben Az IP és Port beviteli mezők nem módosíthatóak a hálózati kapcsolat fennállása közben 3.2. A szenzorok elérése Ezen alfejezet a következő szenzorok elérésével foglalkozik: Gyorsulásmérő, ambiens hőmérséklet mérő, gravitáció szenzor, giroszkóp, megvilágításmérő, lineáris gyorsulás, iránytű, orientációmérő, nyomásmérő, közelségszenzor, páratartalom mérő, rotációs vektor mérő, hőmérsékletmérő 3. ábra. A felhasználói felület A félkövéren szedett szenzorokat használó applikációk elkészítésre kerültek a dolgozat keretein belül. Az alábbiakban a szenzorok kezelését a gyorsulásmérő példáján fogom bemutatni, mivel az összes többi (fent felsorolt) szenzor elérése és adatainak kezelése azzal analóg módon történik. Az Android platformon a SensorManager osztállyal érhetjük el a szenzorokat. Elérése: private SensorManager sensormanager; sensormanager = (SensorManager) getsystemservice(context.sensor_service); 16

3. AZ ANDROID MÉRÉSTECHNIKAI ALKALMAZÁSA Ennek az objektumnak a segítségével érhetjük el a telefon szenzorait, az alábbi módon: private Sensor sensoracc; sensoracc = sensormanager.getsensorlist(sensor.type_accelerometer).get(0); Ezzel kapunk egy példányosított, gyorsulásmérőt reprezentáló objektumot. Ahhoz, hogy a szenzor által mért adatokat elérjük, regisztrálni kell azt: sensormanager.registerlistener(sensorhandler, sensoracc, SensorManager.SENSOR_DELAY_FASTEST); A függvény második argumentuma a regisztrálni kívánt szenzor objektum, a harmadik pedig definiálja a szenzorfrissítési frekvenciát. A választható labelek és a hozzájuk tartozó jellemző (mért) mintavételezési frekvenciák a 4. ábrán találhatóak. Megjegyzésül: a frekvenciák készülék specifikusak, az Xperia SP készülékkel 200Hz-es mintavételezési frekvencia is megvalósítható a tapasztalataim szerint. 4. ábra. A szenzorkésleltetési idők, X10 mini [5] Az első argumentuma a registerlistener függvénynek egy SensorEventListener listener, mely interfészt egy SensorHandler osztállyal valósí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

3. AZ ANDROID MÉRÉSTECHNIKAI ALKALMAZÁSA 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ész onsensorchanged és onaccuracychanged függvényeit meg kell valósítani. Az utóbbi számunkra nem releváns, az előbbiből viszont kinyerhetőek a szenzor adatok, az argumentumban kapott event példányból. A kódrészletben bemutatásra kerül az adatok kinyerésének módja. Az onsensorchanged akkor hívódik meg, amikor új szenzor mintavételezési adat érhető el. A SensorDataListener interfész megvalósításával egy osztály értesül arról, hogy új szenzor érték érhető el. A téma keretein belül készített programokban ezt az interfészt a MainActivity implementálja. Hogyha nem kívánjuk továbbra is elérni a szenzorok adatait, akkor le kell iratkoznunk róluk. Ez az alábbi módon zajlik: sensormanager.unregisterlistener(sensorhandler); Ezt energia és erőforrás takarékossági szempontból kell megtennünk. 18

3. AZ ANDROID MÉRÉSTECHNIKAI ALKALMAZÁSA 3.3. Időzítés megvalósítása Mivel a pontos, meghatározott frekvenciájú mintavételezés nem megoldott az előbbiekben bemutatott szenzorkezeléssel, megoldást kell találni arra, hogy meghatározott időlépésenként küldjük a mérési adatokat a feldolgozó egységnek. Az Android platformon erre lehetőséget kínál a Timer osztály. A Send Sensor Data gomb megnyomására egy ilyen időzítő lép működésbe, amely egy általunk milliszekundumban meghatározott időlépéssel küldi a mérési adatot a feldolgozó egységnek. 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és A mikrofon kezelésére az AudioRecord osztály használatos. A mikrofon beállításánál számos lehetőségünk van: audiosource : a mérések során a beépített mikrofont használom samplerateinhz : a mintavételezési frekvencia, 44100Hz garantáltan működik minden készüléken, ezen felül elérhető 22050, 16000, 11025Hz egyes készülékeken channelconfig : a CHANNEL IN MONO minden készüléken támogatott, a CHANNEL IN STEREO is elérhető néhány készüléken 19

3. AZ ANDROID MÉRÉSTECHNIKAI ALKALMAZÁSA audioformat : ENCODING PCM 8BIT, ENCODING PCM 16BIT, és ENCODING PCM FLOAT buffersizeinbytes : annak a tömbnek a mérete, melybe az audio adatot írjuk A megvalósítás: //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övetkezőképpen tudunk mintavételezési 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űveletet egymás után elvégezhetjük, így folytonos mintavételezést kapunk. A buffer tömböt elküldve a feldolgozó egységnek, különböző műveleteket tudunk elvégezni az adatsoron, a legkézenfekvőbb a frekvencia tartományra bontás, ami a mérés során is alkalmazásra kerül. 3.5. Kamerakezelés Ahhoz, hogy kép stream-et küldjünk a feldolgozó egységnek, először szükségünk 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

3. AZ ANDROID MÉRÉSTECHNIKAI ALKALMAZÁSA } return camera; A kamera előnézeti képéből tudjuk kinyerni az elküldendő képeket. Fontos tudni a támogatott képfelbontásokat: List<Camera.Size> 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épkockák eléréséhez egy callback objektum áll rendelkezésünkre, ezeket a képkockákat jpeg formátumra konvertáljuk, és így küldjük el a feldolgozó egységnek: 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ása miatt nem kerül részletes bemutatásra a dolgozat keretein belül, azonban a mellékletek között a teljes forrás megtalálható. 3.6. Hálózatkezelés Az előzőekben ismertetésre került az, hogyan érhetőek el Android platformon a szenzorok adatai. Ezeket az adatokat továbbítani kell a feldolgozóegység felé, jelen alfejezet ezzel foglalkozik. Mint már említésre került, a hálózati kommunikáció a TCP protokoll szerint zajlik. Ezért a funkcióért a TCPClient osztály felel. Ennek megvalósítására először egy Socket objektumra van szükségünk: 21

3. AZ ANDROID MÉRÉSTECHNIKAI ALKALMAZÁSA Socket socket = new Socket(); socket.connect(new InetSocketAddress(serverIP, serverport), 2000); Ezek után a szöveges adatok ki- és bevitelén, valamint a mérési adatok bájtként történő továbbítását kell megoldani az alábbi módon: 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ódon kommunikálnia kell a TCPClient objektummal. Erre két interfészt használtam: OnMessageReceived : A szervertől (feldolgozóegység) kapott szöveges adat közvetítése TCPStatusListener : A TCP kapcsolat állapotáról tájékoztatja 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ől való adatok fogadásáról az alábbi 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

3. AZ ANDROID MÉRÉSTECHNIKAI ALKALMAZÁSA A mérési adatok és szöveges üzenetek küldéséről az alábbi függvények 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övetkezőképpen inicializáljuk a MainActivity-ből, külön szálban: 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

4. A LABVIEW HASZNÁLATA A MÉRÉSEK SORÁN } } A külön szálból való működés azért indokolt, mert ellenkező esetben az objektum működése a felhasználói felületért felelős szálból futna, így blokkolná az alkalmazás felületét. Először létrehozzuk a TCPClient objektumot, majd elindítjuk a mtcpclient.run(); hívással. A szervertől kapott üzenetek fogadásáért az onprogressupdate függvény felel, ezzel pedig a felhasználói felületen megjelenítjük az üzenetet: linetextview.settext(values[0]). 4. A LabVIEW használata a mérések során Az előző fejezetben bemutatásra került az, hogyan lehet Android alapú mobiltelefonon elérni a szenzorokat és adataikat, ez a fejezet pedig megmutatja, hogyan lehet LabVIEW oldalon fogadni, feldolgozni, rögzíteni és prezentálni a mérési adatot. A dolgozat keretében készített programok és forráskódjaik (MIT Licence alatt) a mellékletek között megtalálhatóak, és szabadon felhasználhatóak (a licencben foglaltak betartása mellett). 4.1. Szenzoradatok fogadása, a TCP szerver A Android oldalról bájtonként küldött mérési adatokat fogadnunk kell LabVIEW oldalon. A TCP kapcsolatért felelős szerver ezen az oldalon fut, ennek megvalósítása a 5. ábrán látható. A TCP 5. ábra. TCP szerver megvalósítása LabVIEW-ban szerver VI-nak a következő bemenetei vannak: Port: a kapcsolat portja Timeout: Az az idő, amennyit a kliens kapcsolódásáig vár a VI, ezután Exception-t dob Error in: input a bemenő hibának A kimenetek: 24

4. A LABVIEW HASZNÁLATA A MÉRÉSEK SORÁN Connection reference: A felépített kapcsolatot megadó érték, ami majd az adatot kiolvasó VI bemenete lesz Error out: ha a VI futása során hiba keletkezett, akkor a dobott hiba ezen a kimeneten lesz elérhető A kliens oldalról több formátumban érkezik adat: unsigned int számhármasok, short számok, single tömbök, jpeg kép állományok. Ezek fogadására külön-külön fel kell készíteni a feldolgozó programot. A különböző adattípusok között egy Mode kapcsolóval válthat a felhasználó. A többféle adat fogadásának megvalósítása a tcp2data.vi VI-al valósul meg. Ennek bemenete a fent említett Connection reference, illetve a szintén tárgyalt Mode állapota. A megvalósítás a megvilágításmérő jelének fogadására a 6. ábrán látható. 6. ábra. TCP szerver megvalósítása LabVIEW-ban A TCP kapcsolatból kiolvasó VI bemenete a kapcsolatot jellemző referencia, továbbá a kiolvasandó bájtok száma, a timeout intervallus, illetve a bemenő hiba. Látható, hogy az adatkimenet String formátumú, ezt át kell konvertálni (explicit cast) a megfelelő típusba, ami jelen esetben single. Ezzel megvan a feldolgozásra kész mérési adat. A különböző Mode-okhoz tartozó adatfogadási algoritmusokat a mellékelt forráskódban lehet megtalálni, a dolgozat keretein belül nem részletezem. Tehát rendelkezésre áll a feldolgozó oldalon a mérési adat, amit fel kell dolgozni, hogy eljussunk a mérési eredményig. Az adatfeldolgozással a következő alfejezet foglalkozik. 4.2. Szenzoradatok feldolgozása A dinamikusan változó adat egyik jellegzetes feldolgozási formája a frekvencia analízis. Ezt a módszert alkalmazhatjuk a gyorsulásmérő, giroszkóp és a mikrofon jelére. Az első két esetben a frekvenciatartomány valamilyen mozgás frekvenciáját adja vissza, tehát mérhetővé válnak rezgések 25

4. A LABVIEW HASZNÁLATA A MÉRÉSEK SORÁN frekvenciái, motorok fordulatszáma, stb. A mikrofon jeléből megkaphatjuk a felvett hanghullám hangmagasságát. Ezt a frekvencia elemzést a LabVIEW-ban Fast Fourier Transzformációval (FFT) valósíthatjuk meg. A transzformáció elvi hátterével a dolgozat nem foglalkozik, a LabVIEW megvalósítás az alábbi képen látható: A transzformációhoz Waveform typusú adat kell, amely egy adattömbből (Y) és 7. ábra. TCP szerver megvalósítása LabVIEW-ban egy időlépésből (dt) áll. Az FFT VI kimenete a Fourier transzformált valós és komplex része. Ezek egy (adott frekvenciához tartozó amplitúdókból álló) adattömbből, frekvencialépésből és kezdő frekvenciából állnak. A két komponens egyesítésének módja az 7. ábrán látható. A mérési adatok és mérési eredmények grafikus prezentálására számos lehetőség adódik a Lab- VIEW platformon, a dolgozat ezeket nem részletezi, de az elemzőprogram forráskódjában ezek alkalmazásra kerültek, így az jó példát szolgáltathat. A mérési adatot lehetőségünk van fájlba menteni, illetve a grafikonról közvetlenül is exportálhatjuk tartalmát.s 4.3. LabVIEW képfeldolgozás A LabVIEW platformon a képfeldolgozásért a Vision and Motion csomag felel. Ez egy igen erőteljes eszköz a képfeldolgozásra, komplexitása miatt nem részletezem a használatát a dolgozatban. A dolgozatban megtalálható forráskódban jelen van ez a technológia. A felhasználása a képfeldolgozásnak szín alapú szegmentálás. Ezt azt jelenti, hogy különböző feltételeknek megfelelő pixelek csoportját egy objektumnak tekintjük. Ebben az esetben a feltételek a színre vonatkoznak: az LHS (Luminance-hue-saturation) színtér paramétereire adott korlátok határozzák meg, hogy egy pont megfelelő-e a kritériumnak. Megadható a ponthalmaz méretére vonatkozó minimum és maximum érték is. 26

5. MOTOR FORDULATSZÁMÁNAK MÉRÉSE GYORSULÁSMÉRŐVEL Az algoritmus végén megkapjuk az objektum méretét pixelben, illetve az objektum súlypontjának x és y koordinátáit. Ezt az algoritmust egy színes objektum kamerakép alapján való követésére használom fel a dolgozat során. 8. ábra. Szegmentálás a LabVIEW programban Köszönettel tartozom Nagy Balázsnak és Papp Máténak, továbbá a MOGI Ethorobotikai laborjának LV2-es csoportjának azért, mert rendelkezésemre bocsátották a zöld színre kereső szegmentáló VI-t. A képfeldolgozási folyamat érdekes különlegessége, hogy a TCP-n átküldött jpeg képet először a feldolgozó oldalon a program a fájlrendszerbe/ramdisc-re menti, majd innen tölti be az IMAQ képfeldolgozó formátumába. Ezt azért kell megtenni, mert a Vision and Motion csak így képen jpeg fájlt betölteni a képfeldolgozó rendszerbe. Ezzel befejeződött a mérések elvi és gyakorlati megalapozása, így a továbbiakban a ténylegesen elvégzett mérések és azok tapasztalatai kerülnek bemutatásra. 5. Motor fordulatszámának mérése gyorsulásmérővel A mérés teljes mérési jegyzőkönyve, mely tartalmazza az összes mérési adatot, a mellékletek között megtalálható. A gyorsulásmérő a modern telefon egyik legalapvetőbb szenzora, legtöbb készülék esetében azonban helytelenül van kalibrálva. Ettől eltekintve, a szenzor alkalmas arra, hogy jelét frekvencia tartományra bontsuk, így pedig elvégezhetünk egyszerű fordulatszámmérést is. A mérés során egy személyautó motorjának fordulatszáma kerül mérésre, úgy, hogy a gyorsulásmérőből eredő 27

5. MOTOR FORDULATSZÁMÁNAK MÉRÉSE GYORSULÁSMÉRŐVEL adatokat FFT felhasználásával frekvenciatartományra bontjuk, és az eredményt összevetjük a fordulatszámmérő óráról leolvasott értékekkel. A feladat során felhasználtam a saját készítésű Android programot (AccOverTCP), mellyel a LabVIEW elemző programhoz továbbítjuk a szenzor adatokat. A szoftverek megvalósításával az előző fejezetek foglalkoznak. 5.1. A mérési elrendezés A mérés célja egy személyautó motorjának fordulatszámának mérése egy telefon beépített gyorsulásmérőjének jeléből. További cél az eljárás használhatóságának elemzése, a mérés értékelése, következtetések levonása. A mérés során az alábbi eszközök kerültek felhasználásra: Sz. Megnevezés Gyártó Mérési tart. Felbontás Gyári szám 1. 2. 3. ST gyorsulásmérő Sony Xperia SP AccOverTCP Android program Labview elemzőprogram ST Microelectronic -20-20 [ m s 2 ] 0,01 [ m s 2 ] Nagy Márton T. - - - Nagy Márton T. - - - 4. Opel Astra 1.2 16V Club Opel - - - [ ] [ ] 5. Opel Astra fordulatszámmérő órája Opel 0-70 2, 5-100 ford perc 100 ford perc 6. Dell Latitude E6530 Dell - - - A végrehajtandó feladatok: Az AccOverTCP Android szoftvert használva, a mérendő motorról a mérendő adatok felvétele. A motor fordulatszámmérő óráján mutatott értékek felvétele. A LabVIEW elemzőprogram segítségével elvégezzük a real-time frekvencia elemzést, melyből a motor fordulatszámára következtethetünk. Mérési adatok és a mérés eredményének rögzítése. Következtetések levonása, a mérés értékelése. - 28

5. MOTOR FORDULATSZÁMÁNAK MÉRÉSE GYORSULÁSMÉRŐVEL 5.2. Mérési adatok felvétele A mérési adatokat az AccOverTCP Android programmal rögzítjük, és a LabVIEW elemzőprogrammal végezzük a real time frekvencia analízist. A mérés során a telefont a motorhoz rögzítjük, hogy a mérési adatok pontosabbak legyenek. A mérést akkor végezzük el, amikor a motor fordulatszámát sikerült állandóra állítani. A gyorsulásmérő beállításai a következőek: Mintavételezési frekvencia: Buffer méret: 5 Hz vagy 10 Hz (mérésnél részletezve) 500 minta (2, 5 [s] vagy 5 [s]) Több ilyen, 500 mintából álló sor frekvencia analízise lesz elvégezve. A mérési sorok adatai: Sorszám [ Fordulatszámmérő 100 ford perc ] Mintavételezés frekvenciája [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őprogram segítségével elvégezhetjük az adatsor frekvencia analízisét. Ehhez a LabVIEW beépített Fast Fourier Transform VI-ját használjuk. Az elemzés történhet valós időben, folyamatosan, azonban ezen mérés során csupán egy adatsorra végezzük el az analízist. A FFT eredményéből csúcskereséssel meg kell határozni a csúcsok frekvenciáját és amplitúdóját. A csúcskeresést a LabVIEW beépített csúcskereső VI-jával végezzük el. A csúcsok között találhatóak olyanok, melyek nem a motor fordulatszámából adódnak, ki kell választani azt a csúcsot, amely a fordulatszámot adja. A Fast Fourier transzformáció [Hz]-ben adja meg a csúcsok frekvenciáját, míg a személyautó fordulatszámmérője [ ford min ] dimenziójú. A kettő közötti átváltás: y ford min = 60 y Hz 29

5. MOTOR FORDULATSZÁMÁNAK MÉRÉSE GYORSULÁSMÉRŐVEL A következőkben csak az első és a hatodik mérési sor elemzése kerül kifejtésre, a többi a mellékletek között megtalálható mérési jegyzőkönyvben megtalálható. 5.3.1. Első mérési sor analízise A fordulatszámmérőről leolvasott érték: 7, 5 [ 100 ford ] perc A gyorsulásmérő jelének FFT értékeire vett csúcskeresés eredménye: [ ] Sorszám Frekvencia [Hz], ford perc Amplitúdó [ ] m s 2 1. 26,59, 1595,4 0,26 2. 11,60, 696,2 0,11 A legnagyobb amplitúdójú komponens a motor rezgésének első felharmonikusát adja, amiből a mért fordulatszám: n = 1595, 4 ford perc 2 = 797, 7 ford perc Az alapfrekvencia zajos, de a második legnagyobb csúcsot ott mértük. A mérési eredmény legyen a kettő átlaga: n final = 797, 7 + 696, 2 ford 2 perc = 747ford perc [ 9. ábra. 750 ford perc ] 5.3.2. Hatodik mérési sor analízise A fordulatszámmérőről leolvasott érték: 30 [ 100 ford ] perc A gyorsulásmérő jelének FFT értékeire vett csúcskeresés eredménye: 30

5. MOTOR FORDULATSZÁMÁNAK MÉRÉSE GYORSULÁSMÉRŐVEL Sorszám Frekvencia [Hz], [ ] ford perc Amplitúdó [ m s 2 ] 1. 2,65, 159 3,1 Ezen a fordulatszámon már nincsen értékelhető eredménye a mérésnek. [ 10. ábra. 3000 ford perc ] 5.4. A mérési eredmény Az előzőek összegzésére szolgál az alábbi táblázat: ] Sorszám Fordulatszámmérő [ ford perc Gyorsulásmérő FFT-ből 1. 750 747,0 2. 1500 1468,0 3. 1500 1393,3 4. 2000 2020,8 5. 2500 1980,0 6. 3000 - [ ] ford perc 5.5. Következtetések A mérés alapján a következő következtetések vonhatóak le: A szenzor alkalmas alapvető, frekvencia analízisre épülő mérnöki és méréstechnikai feladatok ellátására. A standard kommunikációs protokoll a szenzor (telefon) és a feldolgozóegység (számítógép) között, illetve a valós idejű mérés lehetősége számos alkalmazási lehetőséget kínál. A buffer méret növelése növeli a mérési pontosságot, a csökkentése viszont a valós idejűséget javítja. A mérési tartománya az elrendezésnek hozzávetőlegesen 0 35 [Hz]. 31

6. OBJEKTUMKÖVETÉS MOBILTELEFON KAMERAKÉPE ALAPJÁN A mintavételezési frekvencia minimális értéke 5 [ms], mely maximálisan 100 [Hz] frekvenciájú rezgés mérését teszi lehetővé. 6. Objektumkövetés mobiltelefon kameraképe alapján A mérés teljes mérési jegyzőkönyve, mely tartalmazza az összes mérési adatot, a mellékletek között megtalálható. Manapság igen sok helyen alkalmaznak különböző képfeldolgozó eljárásokat, így meg kell vizsgálnunk a telefon ezen érzékelője képességeit is. A mérés során a telefon kamerájának képkockáit jpeg stream formájában küldjük a feldolgozóegységhez, ahol a LabVIEW program Vision and Motion csomag felhasználásával azt valós időben elemzi. Kérdéses a képkockák késleltetésének mértéke és a képfrissítési ráta. Ezeket különböző felbontásokon vizsgálja a mérés. Ezen kívül a módszer felhasználási körének behatárolása is feladata a mérésnek. 6.1. A mérési elrendezés A mérés célja - egy telefon kameraképének felhasználásával történő - objektumkövetés vizsgálata. Az objektumkövetés késleltetésének mérése, a kamera képfrissítésének meghatározása, különböző felbontások esetén. Továbbá, az eljárás alkalmazási körének behatárolása, következtetések levonása, a mérés értékelése. A mérés során használt eszközök az alábbiak: Sorsz. Megnevezés Gyártó Mérési tart. Felbontás Gyári szám 1. hátsó kamera Sony Xperia SP Sony Mobile - - - 2. CamOverTCP Android program Nagy Márton T. - - - 3. Labview elemzőprogram Nagy Márton T. - - - 4. HP 1740 17 TFT MONITOR HP - - - 5. Dell Latitude E6530 Dell - - - 32

6. OBJEKTUMKÖVETÉS MOBILTELEFON KAMERAKÉPE ALAPJÁN 6.2. A mérés menete A végrehajtandó feladatok: A hálózati késleltetés mérése. Mérési adatok felvétele három felbontáson. A LabVIEW feldolgozóprogrammal való real time elemzése a mérési adatoknak. Az eredmények átlagolása, táblázatba foglalása. Következtetések levonása, a mérés értékelése. A mérés előtt meg kell határozni a hálózat késleltetésének a mértékét, ahhoz, hogy el tudjuk különíteni a képfeldolgozásból adódó késleltetést a hálózatétól. A mérés során a telefont egy ad hoc wifi hálózattal összekötjük a LabVIEW programot futtató számítógéppel. A telefon kamerájával egy monitoron körmozgást végző pontot követünk. A pontról készült felvételek alapján a zöld színű objektumot behatároljuk a LabVIEW programmal, és kinyerjük annak X és Y koordinátáit a képen. Ezt az [XY] pontot és a referencia kört egy koordinátában ábrázoljuk, innen pedig a fáziskésésből meghatározzuk a mérés eredő késleltetését. Hogyha a mért pontokból adott számút (10db) ábrázolunk, a csóvához tartozó szög alapján képfrissítési időt mérjük. Három felbontáson végzendő el a mérés: 320x240, 640x480, 960x720[px]. A mérés paraméterei: A mérésről készült két videó felvétel: Referencia kör szögsebessége: 5 rad s A csóvában lévő mérési pontok száma: 10 Referencia kör színe az ábrákon: Mérési eredmény színe az ábrákon: A LabVIEW programról készült felvétel, ami megmutatja a felhasználói felület alapvető működését A mérési elrendezésről készült live action felvétel A két videó fájl a mellékletek között megtalálható. kék zöld 33

6. OBJEKTUMKÖVETÉS MOBILTELEFON KAMERAKÉPE ALAPJÁN 6.2.1. A hálózati késleltetés mérése A hálózati késleltetést a Windows ping -t parancsával mérjük, a mérési eredményt az alábbi kép tartalmazza: 11. ábra. Hálózati késleltetés mérése Tehát az átlagos hálózati késleltetés 57 [ms]. A továbbiakban a 320x240 pixel felbontással elvégzett mérés eredményei kerülnek részletezésre, a 640x480 és a 960x720 pixeles felbontásokkal készített mérések eredménye a jegyzőkönyvben megtalálható. 34

6. OBJEKTUMKÖVETÉS MOBILTELEFON KAMERAKÉPE ALAPJÁN 6.2.2. 320x240 felbontással A három mérés: (a) Első mérés (b) Második mérés (c) Harmadik mérés 12. ábra. Mérési eredmények 320x240[px] felbontáson, ω = 5 rad s Mérés sorsz. Fáziskésés φ [rad] Csóvához tartozó szög θ [rad] 1. 0,51 3,53 2. 1,03 3,00 3. 1,24 2,97 Átlag: 0,93 3,17 6.3. A mérési eredmény 6.3.1. Az elméleti háttér A fáziskésésből az eredő időkésleltetés t delay [s]: φ = ω t delay 35

6. OBJEKTUMKÖVETÉS MOBILTELEFON KAMERAKÉPE ALAPJÁN t delay = φ ω Ahol: ω = 5 rad s : a kamerázott objektum körfrekvenciája φ [rad] : fáziskésés Levonva a hálózat késleltetését: t dprocessing = t delay t dnetwork [s] Ahol t dnetwork = 0, 057 [s] A 10 mérési pontból álló csóvához tartozó szög és az átlagos képfrissítés kapcsolata: θ = 10 θ avg θ avg = ω t refresh Ahol: θ [rad] : a teljes csóvához tartozó középponti szög θ avg [rad] : átlagos középponti szög két képfrissítés között t refresh [s] : a képfrissítési idő ω = 5 rad s : a kamerázott objektum körfrekvenciája Tehát: A képfrissítés frekvenciája: t refresh = F P S = θ 10 ω 1 t refresh [Hz] A számításokhoz az adott felbontáshoz tartozó mérések átlagolt értékét használjuk fel. 6.3.2. A mérési eredmények táblázatosan Mérés t delay [s] t dprocessing FPS [Hz] 320x240 0,19 0,13 15,8 640x480 0,21 0,15 16,3 960x720 1,13 1,07 12,9 36

7. MOBILTELEFON MEGVILÁGÍTÁSMÉRŐJÉNEK KALIBRÁLÁSA 6.4. Következtetések A mérés alapján a következő következtetések vonhatóak le: A szenzor alkalmas alapvető objektumkövetési feladatok ellátására A LabVIEW képfeldolgozó real-time képes feldolgozni a beérkező képeket A felbontás növelésével a képfrissítési frekvencia nem változik jelentősen, azonban 640x480 felbontás felett a késleltetési idő jelentősen nő. A LabVIEW képfeldolgozó rendszerével tetszőleges színű és alakú objektumot tudunk követni. 7. Mobiltelefon megvilágításmérőjének kalibrálása A mérés teljes mérési jegyzőkönyve, mely tartalmazza az összes mérési adatot, a mellékletek között megtalálható. A mobiltelefonok számottevő részében található megvilágításmérő, melyet a rendszer általában arra használ, hogy - a környezet megvilágítottságának függvényében - megváltoztassa a képernyő megvilágítását. A szenzor adatait elérhetjük az Android rendszer alatt, így megvizsgálhatjuk a telefonok megvilágításmérőjének méréstechnikai falhasználását. A mérés lényege az, hogy összehasonlítsunk két különböző típusú készülék megvilágításmérőjének kalibrálását. Ezzel bemutatásra kerül egyrészt az, hogy milyen méréstechnikai alkalmazásai lehetségesek a szenzorral, másrészt pedig megvilágításra kerül a telefonokban megtalálható szenzorok sokfélesége. 7.1. A mérési elrendezés A mérés célja két mobiltelefon megvilágításmérő szenzorának kalibrálása, kalibrált megvilágításmérőt használva. Továbbá, a kalibráció értékelése, és a kalibrált szenzorokkal való kontroll mérések elvégzése, kiértékelése. A mérés során használt eszközök: 37

7. MOBILTELEFON MEGVILÁGÍTÁSMÉRŐJÉNEK KALIBRÁLÁSA Sorsz. Megnevezés Gyártó Mérési tart. Felbontás Gyári szám 1. MS-1500 Digitális megvilágításmérő VOLTCRAFT 0-40000[lux] 0.01[lux] 110504666 2. Light Sensor 0-1024[-] Sony Mobile Sony Xperia SP (saját egység) 1[-] - 3. LTR559 Light Sens. 0-65535[-] LiteOn Nokia X (saját egység) 1[-] - 4. OriginPro 8.5 adatelemző program OriginLab - - - 5. LuxOverTCP Android program Nagy Márton T. - - - 6. Labview elemzőprogram Nagy Márton T. - - - 7. Dell Latitude E6530 Dell - - - 7.2. A mérés menete A végrehajtandó feladatok Mérési adatok felvétele a három készülékkel. OriginPro felhasználásával lineáris regresszió a mérési adatokra, mindkét kalibrálandó készülékre. A lineáris regresszió adatainak implementálása az Android szoftverbe. A kalibrált szenzorokkal való kontroll mérések elvégzése. Következtetések levonása, a kalibráció értékelése. A mérési adatok felvétele előtt rendelkezni kell a LuxOverTCP Android alkalmazással, illetve a mérési adatok egyszerű gyűjtése érdekében az adatgyűjtő LabVIEW programmal. A mérés során figyelni kell arra, hogy diffúz felületre irányítsuk a szenzorokat (pl. plafon). A mérőeszközöket szorosan egymás mellé kell helyezni, hogy a lehető leghitelesebb legyen a mérési sor. A méréseket természetes megvilágítással végezzük (napfény). Különböző szobákban, különböző fényviszonyok mellett (más napszakban) végzünk méréseket. 38

7. MOBILTELEFON MEGVILÁGÍTÁSMÉRŐJÉNEK KALIBRÁLÁSA Xperia SP Nokia X Luxmeter [1] [1] [lux] Range: 1024 Resolution: 1 Range: 65535 Resolution: 1 Range: 40000 Resolution: 0.01 Light Sensor LTR559 Light Sensor (Sony Mobile) (LiteOn) Voltcraft MS-1500 A mérési adatok a jegyzőkönyvben megtalálhatóak. 7.3. Szenzorok kalibrálása A kalibrációs egyeneseket az OriginPro programmal veszem fel. Először keresem az összes adatra illeszthető egyenest. A (0,0) pontot rögzítem, csak a meredekség a kérdés. A keresett egyenesek y = m x alakúak. (a) Xperia SP (b) Nokia X 13. ábra. Lineáris regresszió a teljes adatsorra Az OriginPro programmal az alábbi meredekségek adódtak: m SP = 9, 33597 m X = 1, 89159 A regresszió további adatai illetve az OriginPro projekt fájl megtalálható a mellékletben. 39

7. MOBILTELEFON MEGVILÁGÍTÁSMÉRŐJÉNEK KALIBRÁLÁSA Az 14a. ábrán látható, hogy az Xperia SP szenzora esetében az alacsony értékekre nagyobb meredekségű egyenes illesztésével pontosabb kalibrációt kaphatunk. Az Xperia SP adatsorát kettéválasztva, két regresszióst egyenest kapunk. Ezekből pedig megkapjuk a kalibrációs egyenest. (a) Xperia SP alacsony értékeire (b) Xperia SP magas értékeire 14. ábra. Lineáris regresszió az Xperia SP adatsorára Az alacsony értékekre applikált egyenes alakú, míg a magas értékekre az egyenes alakja y = m SPlow x y = m SPhigh x + b SPhigh A program alapján kapott értékek: m SPlow = 16, 63037 m SPhigh = 5, 1791 b SPhigh = 1590, 65929 Keressük a két egyenes metszéspontját, az alábbi egyenletrendszerből: y 0 = m SPlow x 0 y 0 = m SPhigh x 0 + b SPhigh 40

7. MOBILTELEFON MEGVILÁGÍTÁSMÉRŐJÉNEK KALIBRÁLÁSA A megoldás: x 0 138 Így fel tudjuk írni a kalibrációs görbéket a két készülékre. Xperia SP: Nokia X: 16, 63037 x, if x 138 y(x) = 5, 1791 x + 1590, 65929, if x > 138 y(x) = 1, 89159 x Ahol: y [lux] : a kalibrált lux érték x [ ] : a kalibrálatlan érték, a szenzor saját egységében kifejezve A kalibrációs görbék implementálásra kerülnek a LuxOverTCP programba, hogy kontrollméréseket lehessen elvégezni. 7.4. Kalibrált szenzorral való mérések A kalibrált eszközökkel három mérést végeztem el, különféle fényviszonyok mellett. A mérési eredményt a 15. ábra mutatja. 15. ábra Látható, hogy a két kalibrált készülék csak nagyságrendileg pontos, így felhasználhatósága igen korlátozott. 41

8. MOBILTELEFON MIKROFON JELÉNEK FREKVENCIA ANALÍZISE 7.5. Következtetések A mérés alapján a következő következtetések vonhatóak le: A szenzorok igen különbözőek a két készülékben: a kalibrált meredekségek és mérési tartományok igen eltérőek A szenzorok kalibráltan is alkalmatlanok méréstechnikai feladat ellátására A szenzorok alkalmasak a megvilágítottság hirtelen változásának mérésére A szenzorok alkalmasak egyszerűbb és nagy pontosságot nem igénylő mérések elvégzésére, mint például egy szoba megvilágításának nagyságrendileg helyes mérésére 8. Mobiltelefon mikrofon jelének frekvencia analízise A mérés teljes mérési jegyzőkönyve, mely tartalmazza az összes mérési adatot, a mellékletek között megtalálható. A telefonok mindegyikében található beépített mikrofon, melynek jelét felhasználhatjuk méréstechnikai célokra. Jelen mérés során a mikrofon jelét valós időben bontjuk frekvenciatartományra, hogy ezzel meghatározzuk a rögzített hang (a mérés során zenei A) magasságát. 8.1. A mérési elrendezés A mérés célja egy mobiltelefon beépített mikrofon jelének valós idejű frekvencia analízisének elemzése, az eljárás alkalmazási lehetőségeinek feltárása. A mérés során használt eszközök: 42

8. MOBILTELEFON MIKROFON JELÉNEK FREKVENCIA ANALÍZISE Sz. Megnevezés Gyártó Mérési tart. Felbontás Gyári szám 1. Beépített mikrofon -32768-32767[-] Sony Mobile Sony Xperia SP (saját egység) 1[-] - 2. MicOverTCP Android program Nagy Márton T. - - - 3. Labview elemzőprogram Nagy Márton T. - - - 4. Sony MDR-EX 15 LP 8-22000 [Hz] Sony hangforrás (névleges) - - 5. http://onlinetonegenerator.com - - - - 6. Dell Latitude E6530 Dell - - - A végrehajtandó feladatok: A MicOverTCP Android szoftvert használva, külső forrásból eredő hang felvétele. A LabVIEW elemzőprogram segítségével elvégezzük a real-time elemzést. Mérési adatok és a mérés eredményének rögzítése. Következtetések levonása, a mérés értékelése. 8.2. A mérés menete A mérési adatokat a MicOverTCP Android programmal rögzítjük, és a LabVIEW elemzőprogrammal végezzük a real time frekvencia analízist. A hangforrás egy gumiharangos fülhallgató. A gumiharangot használjuk arra, hogy a zajokat kiszűrjük a mérésből. Az http://onlinetonegenerator.com szolgáltatást használva egy 440 Hz-es zenei A hangot elemzünk. A mikrofon beállításai a következőek: Mintavételezési frekvencia: Encoding: Csatorna konfiguráció: Buffer méret: 44100 Hz PCM 16 bit Channel in Mono 10240 minta (0, 2322 [s]) Az adatsor normalizálásra kerül, így a mért adatok tartománya 1... 1 [ ]. Egy ilyen, 10240 mintából álló sor frekvencia analízise lesz elvégezve. A nyers mérési adatok a mellékletek között megtalálhatóak. 43

8. MOBILTELEFON MIKROFON JELÉNEK FREKVENCIA ANALÍZISE 8.3. Az adatsor frekvencia analízise A LabVIEW elemzőprogram segítségével elvégezhetjük az adatsor frekvencia analízisét. Ehhez a LabVIEW beépített Fast Fourier Transform VI-ját használjuk. Az elemzés történhet valós időben, folyamatosan, azonban ezen mérés során csupán egy adatsorra végezzük el az analízist. Az FFT analízis nyers eredménye a mellékletek között megtalálható. (a) FFT eredménye 5000Hz-ig (b) Néhány további felharmonikus 16. ábra. Lineáris regresszió a teljes adatsorra A FFT eredményéből csúcskereséssel meg kell határozni a csúcsok frekvenciáját és amplitúdóját, mivel ezek mérése a mérés célja. A csúcskeresést a LabVIEW beépített csúcskereső VI-jával végezzük el. Csúcs (és nem völgy) keresése a cél, továbbá a zaj kiszűrése érdekében egy 0.005-ös amplitúdó treshold alkalmazandó. Ezzel a beállítással az alapfrekvencia két további oktávját is mérni lehet. Alacsonyabb treshold értékkel további felharmonikusokat mérhetünk, azonban a zaj szűrése kevésbé lesz hatékony. Magasabb treshold-dal kizárólag az alaphang mérése lehetővé válik. A csúcskeresés és a mérés eredménye: Frekvencia [Hz] Amplitúdó [-] 439,35 0,19218 1320,03 0,02576 3079,34 0,00537 8.4. Következtetések A mérés alapján a következő következtetések vonhatóak le: A szenzor alkalmas alapvető, frekvencia analízisre épülő mérnöki és méréstechnikai feladatok ellátására. 44

9. SENSOR FUSION A standard kommunikációs protokoll a szenzor (telefon) és a feldolgozóegység (számítógép) között, illetve a valós idejű mérés lehetősége számos alkalmazási lehetőséget kínál. A buffer méret növelése növeli a mérési pontosságot, a csökkentése viszont a valós idejűséget javítja. 9. Sensor Fusion 9.1. Bevezető A sensor fusion lényege az, hogy különböző szenzorok adatait kombinálva a kapott eredmény pontosabb, teljesebb, vagy megbízhatóbb, mint ha a szenzorok adatait külön használnánk fel. A következőkben egy, már kidolgozott módszer kerül ismertetésre, amely pontosabb orientáció mérést tesz lehetővé [6], illetve ez alapján egy másik lehetséges alkalmazását mutatom be a sensor fusionnek, amivel a pozíciót lehet pontosabban meghatározni az orientáció, a gyorsulásmérő és egy külső kamera képe alapján. Az orientációt meghatározó algoritmust implementáltam Android platformon, és a LabVIEW feldolgozóprogramot is felkészítettem a sensor fusion orientáció adatok fogadására. Egy 3D animáció segítségével lehet szemléltetni a telefon orientációját, valós időben. A pozíciómérés nem került megvalósításra a dolgozat keretein belül, csak az elvi háttér és az alapvető megfontolások. Azonban, mivel a téma kidolgozása során minden, a megvalósításhoz kellő algoritmust implementáltam mind Android, mind LabVIEW platformon, a forráskód pedig a mellékletek között szerepel, így nem okozhat nehézséget a pozíció meghatározás algoritmusának megvalósítása. A téma egyik gyümölcsöző folytatása lehet ez, és más hasonló sensor fusion módszer elemzése, mobiltelefon szenzorait felhasználva. 9.2. Orientáció meghatározása Sensor Fusion segítségével [6] 9.2.1. Orientáció meghatározásának módjai A három, a készülék orientációját jellemző szöget általában a gyorsulásmérő és a magnetométer (iránytű) jeléből állítjuk elő. A gyorsulásmérő jeléből meghatározható, hogy merre mutat a gravitációs vektor, a magnetométer pedig iránytűként funkcionál, a telefont körülvevő mágneses térből 45

9. SENSOR FUSION meghatározza, hogy a Föld északi pólusa a telefonhoz képest milyen szögben van. Ezzel a két eszközzel elméletileg meghatározható a készülék orientációja. Azonban mindkét szenzor pontatlan, ráadásul a magnetométer sok zajjal is terhelt, valamint a válaszideje is nagy. A készülékekben található giroszkóp sokkal nagyobb pontosságú, és a frissítési ideje is nagyobb. A giroszkóp szögsebesség adatokat szolgáltat három tengely mentén. Hogy ebből orientációt tudjunk számolni, az értékeket idő szerint integrálni kell. Ez úgy történik, hogy a szögsebesség adatot megszorozzuk az előző adat beérkezése óta eltelt idővel. Ezzel egy rotáció inkrementumot kapunk, ezeket összegezve pedig megkapjuk a készülék abszolút orientációját. φ i = ω i t Ahol: φ = n i=1 φ i φ i [rad] : az i-edik elemi rotáció inkrementum vektor ω i [ rad ] : az i-edik pillanatnyi szögsebességvektor s t [s] : az i 1 és i-edik időpillanat között eltelt idő φ [rad] : a készülék orientációját jellemző abszolút rotáció vektor A folyamat során az összes iterációnál apró hibák lépnek fel a mérési adatokban (zajos a szenzor). Hogyha ezt a zajt integráljuk, konstans ütemben változik az így mért orientáció (giroszkóp drift, 17. ábra), akkor is, hogyha a telefon valós helyzete nem változik. 9.2.2. A Sensor Fusion alkalmazása Az előzőekben leírtak alapján látható, hogy mindkét, orientáció mérésére alkalmazható módszernek vannak hibái: a gyorsulásmérő és magnetométer jeléből előállított orientáció zajos és lassú, a giroszkóp jelét integrálva viszont szembesülünk a drift jelenségével. Azonban látható, hogy a két módszer előnyeit egyesítve egy pontosabb és jobban használható orientáció mérési módszert kapunk. A megoldás konkrét szoftveres megvalósítására a dolgozat nem tér ki (az alfejezet címében található hivatkozás tartalmazza, illetve a mellékletek között megtalálható (nyílt forráskódú) SensorFusionOverTCP Android alkalmazásban implementáltam az algoritmust), viszont az alapvető algoritmus bemutatásától nem lehet eltekinteni. 1. A gyorsulásmérő és a magnetométer jeléből elő kell állítani az orientációt (accmagorientation) 46

9. SENSOR FUSION 17. ábra. Giroszkóp drift szemléltetése [10] 2. A giroszkóp jelét idő szerint integrálva elő kell állítani az orientációt (gyroorientation) 3. Az accmagorientation-re alul áteresztő, a gyroorientation-re felül áteresztő szűrőt alkalmazva összegezzük a két orientáció jelet, hogy megkapjuk a korrigált orientációt. 18. ábra. [6] Az alul áteresztő szűrővel a magnetométer és gyorsulásmérő jeléből előállított orientációnak csak a lassan változó vagy konstans részét kapjuk meg, a felül áteresztő szűrő pedig a giroszkóp integrálásából eredő orientáció dinamikáját adja vissza. Ezeket összegezve egy olyan orientáció jelet kapunk, mely jó dinamikai képességekkel rendelkezik, jól reagál, nem jellemzi a drift kevésbé zajos A 19. ábra szemléletesen mutatja be a sensor fusion ezen alkalmazását. 47

9. SENSOR FUSION 19. ábra. [6] 9.3. Pozíciómeghatározás Sensor Fusion segítségével Az előzőekben bemutatásra került orientációmérés módszerrel analóg módon lehetőség van a készülék pozíciójának mérésére is felhasználni a sensor fusion-t. Jelen alfejezet taglalja a pozíciómérés módszereit, azok előnyeit és hátrányait, illetve bemutatja, hogy (felhasználva az előző alfejezetben bemutatott, javított orientációmérési eljárást is felhasználva) miként lehet - a mobiltelefonok szinte teljes szenzorpalettája felhasználásával - javítani a pozíciómérés pontosságát. 9.3.1. Pozíció meghatározása gyorsulásmérő jeléből és orientációból A pozíció meghatározásának egyik módja a gyorsulásmérő jelének kétszeres integrálása idő szerint. A gyorsulásmérő nyers jele azonban nem használható, mivel azt a gravitáció terheli: nem ad valós képet a telefon gyorsulásából a világ koordináta rendszerben. Ennek kiküszöbölésére a telefon koordináta rendszerében (ξ, η, ζ) elérhető nyers gyorsulásmérő adatokból álló a ξ,η,ζ vektort át kell transzformálni a világ koordináta rendszerbe (x, y, z). Ezt követően a z koordinátát terhelő g gravitációs gyorsulást ki kell vonni a kapott, (x, y, z) rendszerben lévő gyorsulásvektorból, hogy megkapjuk a készülék lineáris gyorsulását a világ koordináta rendszerben: a lin,x,y,z A transzformációs mátrix felírásához szükségünk van a telefon abszolút orientációjára. Az előző alfejezetben ismertetésre került egy módja a pontosított orientációmérésnek a sensor fusion alkalmazásával, itt is ez kerül alkalmazásra. 48