Rörelseanalyssystem. Motion analysis system. Rami Al Khodor. El 1404 Examensarbete i Elektronik och datorteknik 15 hp

Relevanta dokument
DIGITALA PROJEKT Väderstation

Pulsmätare med varningsindikatorer

KRAVSPECIFIKATION. Pontus Brånäs Wojtek Thorn Version 1.1. Status

Systemkonstruktion SERIEKOMMUNIKATION

WAGO IO System Service Seminar. Diagnostik

Introduktion till Arduino

Digitala Projekt (EITF11)

Kom igång med din SMART Board. Det praktiska

Ett väldesignat & slimmat plånboksfodral från WE CHARGE. Tillverkat i konstskin. Snäpp i telefonen i det hårda skalet och låt plånboksfodralet skydda

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

Introduktion till Arduino

Kravspecifikation avseende Tunna klienter

AQ-Box med Winlog kanalers mätsystem samlar och bearbetar 8 givarsignaler i en PC

geoliner 480 / 482 Fyrhjulsmätinstrument för personbilar, med CCD-teknik & Windows

Installationsguide. För att installera mjukvara och hårdvara, följ nedanstående anvisningar.

Användar Guide. är ett varumärke av Google Inc.

Trådlöst brandlarm. Systembeskrivning. Innehållet i detta dokument kan komma att ändras utan föregående varning. Honeywell Life Safety Sweden

InstalationGuide. English. MODEL:150NHighGain/30NMiniUSBAdapter

Med Leef Access 2.0 ökar du minneskapaciteten i din Android-telefon eller surfplatta och den är så liten att den får plats i din ficka.

Beijer Electronics AB 2000, MA00336A,

CanCom Bluetooth BLUETOOTH V5.6. Specifikation Specification LED. transceiver

Smartair System. TS1000 Version 4.23

OBS! Innan mätning Ladda mätare och vibindicator

Predator Digital 3D. Predator Digital 3D. Bruksanvisning. Version 1.0

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

Andromeda. Användning och Installation

TRUST 120V WIRELESS DVD & VIDEO VIEWER

K I F D G E L H C J. Sätt i batterierna Rörelsesensorn (G) tänds

Jag rek. starkt att alla uppgraderar sin TomTom till version 5 eller högre då massor av nya funktioner och en betydande prestandaskillnad finns.

USB DAC Bruksanvisning 2 SVENSKA. Din musik + vår passion

DCU605. Tekniska Data. Datablad SDA00178SE Version /02/18 Passersystem. Dörrcentral med direkt IP-anslutning till ESMIKKO-server

Personligare e-post Mejl med fokus på avsändaren

UPPDATERING MJUKVARA FÖR PALTRONIC SYSTEMS

55200 Inspelningsbar microfon

TRUST 450LR MOUSE WIRELESS OPTICAL

BRUKSANVISNING. jabra.se/speak810

CHERRY DW Wireless Desktop. Bruksanvisning (SE) SE, Jul 2013 (JD-0700 = Mod. JG-07, JF-07, JR-0700)

Produktlanseringsinformation. Säkerhetssystem

Utredning om införande av digital nämndhantering för socialnämnden

LEICA MOJOMINI MANUAL FÄLTGUIDE. SKEPPSTA MASKIN AB Täby Skeppsta Örebro. tfn:

Snabbguide AlphaSmart NEO2

Formula Blue. Digitala Projekt 8p. Jesper Ferm E02 Carl Hakenäs E04

JP JOYSTICKS PJP-008 & PJP-014

Nucleus CP810 ljudprocessor och Nucleus CR110 Remote Assistant Handbok för felsökning

Svensk version. Inledning. Installation av maskinvara. Installation av Windows XP. LW057V2 Sweex trådlösa LAN PCI-kort 54 Mbps

Läs igenom & Spara denna Guide för framtida användning.

Projektarbete 2: Interaktiv prototyp

Slutrapport Diagnos. Resultat. Projektmål. Projektstruktur

Användarhandbok. MHL to HDMI Adapter IM750

AT3000 Kabel-, rör-, metall- och installationssökare

NXT LEGO-robot laboration Programmering och felsökning av en LEGOrobot

Mätteknik 2016 Mätsystem

INSTALLATIONSGUIDE Compal CH7486e

Katalog med Innovas alkomätare 2006

FULL KOLL. på mätdatan överallt

Telefrang Smoke Control System Installationsmanual för Midi- och MaxiSmoke Sida 1 av 12

Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning

Start-Up Customization Applikation för TI-83 Plus

Dockningsstation för två bärbara datorer med fildelning och perifer delning - USB 3.0

HRI. Puls-/Datagivare (M-Bus/MiniBus) för vattenmätare AT 7275HRI

FÄLTMÄTINSTRUKTION TESTO 174H

tsense (Disp) T RH RL

PUBLICERINGSNOTISER TRIMBLE ACCESS SOFTWARE. Version Revidering A Oktober 2013

Installationsanvisning för kursens programvara på egen dator

Svensk version. Inledning. Innehåll. Specifikationer BT100. Extra specifikationer BT100 S W E E X. C O M. BT110 - Sweex Bluetooth Class I Adapter USB

Installationsanvisning av proximityläsare 1103/2. Mod. 1103/2

INSTALLATIONSANVISNING

UPONOR VVS GOLVVÄRME UPONOR CONTROL SYSTEM. Uponor Control System DEM Ökad komfort och mindre energiförbrukning

DishPointer Apple iphone som hjälpmedel vid inställning av satellitantenn

Smart Rogic Manual. Robostick Manual

TTS är stolta över att ingå i

Kravspecifikation avseende Patientnära panel-pc, stationära datorer, bildskärmar och tillbehör

Robotfotboll med Arduino

Kapitel 22: Överföring av variabler och uppgradering 365. I fönstret VAR-LINK visas en lista med definierade variabler, Flashprogram

adage solutions ADAGE NEREID Handburen Läsare RFID RFID-SYSTEM OCH PRODUKTER TEKNISKA DATA

Regulatorer Avfrostningsregulatorer Differentialtermostater Multistegsregulatorer

Manual för version V2

Grafiskt användargränssnitt för rörelsemätning av ryggraden R A F A E L M A N T H A R T H U R O N O S Z K O

Powerware 3105 UPS Användarhandbok

LUXCONTROL modulardim

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Modern företagstelefoni Förenkla och förbättra er kommunikation

Teknikprogrammet, inriktning informations- och medieteknik

Snabbmanual IC-PCR100.

Foderöverföringar på gårdar med DeLaval VMS Mgmt

Installatörs- och användarhandbok DI L

Svensk manual för Access Keyboard/Mouse IR-Interface

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Portabelt Bluetooth Ljudsystem Med PLL FM Radio TRA-800BT. Svensk Instruktions Manual

Typ Beskrivning Kraftmatning

Videoutgång Maximal DisplayPort-upplösning Maximal HDMI-upplösning

Effektpedal för elgitarr

Mobil lagerhantering med streckkodsskanner

Radiomottagare typ DB317 & DBR1-M4 Bruksanvisning, utgåva 8

Ett tryggare Sverige. Ett gemensamt system för mobil kommunikation

Projekt EITA15. Väckarklocka. LTH Ingenjörshögskolan vid Campus Helsingborg Datateknik

Tags för 433 MHz är aktiva d.v.s. har ett inbyggt batteri, med 6-8 års livslängd vid normal aktivitet.

Installationsanvisning

Manual Sportident Onlinekontroll via GPRS

DAC500 Door Access Control unit

Transkript:

Rörelseanalyssystem Motion analysis system Rami Al Khodor El 1404 Examensarbete i Elektronik och datorteknik 15 hp

CENTRUM FÖR MEDICINSK TEKNIK OCH STRÅLNINGFYSIK MEDICINSK TEKNIK, FORSKNING OCH UTVECKLING NORRLANDS UNIVERSITETSSJUKHUS Rörelseanalyssystem Examensarbete i Elektronik och Datorteknik Rami Al Khodor Rami Al Khodor Sida 1

Sammanfattning Idag ses ett ökat intresse för användandet av rörelseanalys inom olika sammanhang t.ex. övervakning, dataspel och diagnostisk undersökning av personers rörelsemönster med mera. Optisk rörelseanalys är den teknik som finns mest idag, men de systemen är dyra och saknar lämplig mjukvara för klinisk användning. En forskargrupp vid centrum för medicinsk teknik och strålningsfysik (CMTS) forskning och utvecklings avdelning (MT-FoU) vid Norrlands universitetssjukhus har sedan 2007 jobbat med en produktidé som bygger på att skapa ett nytt mobilt system för rörelseanalys som kan användas i medicinska undersökningar. Ett Arduino pro mini kort samt ett 9-axligt prototypkort som består av MPU-6000 och en magnetometer HMC5883L är anskaffat för att tillverka ett system i detta syfte. Syftet med projektet har varit att skapa ett verktyg som kan samla in rörelsemönster för att sedan presentera resultatet i ett diagram. Systemet skulle kunna samla in data från en sensor som inkluderar en 3D-accelerometer ett 3D-gyroskop och en 3D magnetometer för att därefter skicka det vidare till en dator där mätdata presenteras visuellt och sparas undan i en textfil. En viktig detalj att ta hänsyn till vid konstruktionen av det nya systemet var att konstruktionen gjordes med hjälp av billiga standardkomponenter och kretskort. Projektet har genomförts och några testmätningar har gjorts. Ett resultat sparades undan i en textfil och ett diagram har tagits fram som beskriver ett lårs rörelsemönster vid normal gång. Abstract An increased interest for the use of motion analysis is today seen in different contexts such as surveillance, computer games and diagnostic investigation of movement patterns for individuals and more. Optical motion analysis is the technique that is most widely used, but the systems are expensive and lack the appropriate software for clinical use. A research team at the Centre for Biomedical Engineering and Radiation Physics (CMTS) research and development department at the University Hospital of Umea has since 2007 worked with a product idea that is based on creating a new mobile system for motion analysis that can be used in medical research. An Arduino pro mini card and a 9-axis prototype card consisting of the MPU 6000 and a magnetometer HMC5883L was obtained to develop a system for this purpose. The purpose of the project was to create a tool that could capture movement patterns and then present the results in a graph. The system could collect data from a sensor that included a 3D accelerometer, a 3D gyroscope and a 3D magnetometer and then send it forward to a computer where the data was presented visually and stored in a text file. An important detail to take into account in the design of the new system was that the design was made using cheap standard components and circuit boards. The project has been implemented and some test measurements have been taken. One result was saved in a text file and a chart has been developed that describes a thigh s motion during normal walking. Rami Al Khodor Sida 2

Projektidentitet VT 2013 Umeå Universitet Namn Ansvar Telefon E-post Rami Al Khodor Ansvarig 073-994 97 26 rami_al_khodor@hotmail.com Fredrik Öhberg handledare(cmts-fou) 070 530 13 17 Fredrik.ohberg@vll.se Kund: CMTS-FoU, Norrlands Universitetssjukhus, 901 85 UMEÅ Kontaktperson hos kund: Fredrik Öhberg, 070 530 13 17, Fredrik.Ohberg@vll.se Kursansvarig: Ulf Holmgren, 090-786 77 65, ulf.holmgren@tfe.umu.se Förord Denna rapport är dokumentationen för mitt examensarbete för examen i högskoleingenjörsprogrammet i elektronik och datorteknik vid Institutionen för tillämpad fysik och elektronik. Stort tack till min handledare Fredrik Öhberg, som varit ett stort stöd genom hela examensarbetet. Som gett mig vägledning, tips och goda råd. Jag är tacksam och skulle inte ha lyckats nå fram i mål utan detta stöd. Rami Al Khodor Sida 3

Innehållsförteckning Sammanfattning... 2 Abstract... 2 Projektidentitet... 3 Dokumenthistorik... 6 1 Inledning... 7 1.1 Bakgrund... 7 1.2 Syfte och mål... 7 1.3 Beställare... 7 2 Problembeskrivning... 7 3 Sammanfattning av kravspecifikationen... 8 4 Teori... 9 4.1 Arduino (software)... 9 4.2 Processing... 9 4.3 Arduino pro mini... 9 4.4 Rörelsesensorkrets innehåller... 10 4.4.1 MPU-6000 MEMS Motion Tracking... 10 4.4.2 Magnetometer... 11 4.5 En Blåtandsmodul (RN-42), BlueSMiRF HID... 12 4.5.1. Specifikationer:... 12 4.6 FTDI Kabel för att strömmatning och programmering av Arduino-kortet... 13 5 Metod... 14 5.1 Övergripande systembeskrivning... 14 5.2 Kretsschema och kommunikationsbeskrivning... 14 5.2.1 PC Arduino pro mini... 14 5.2.2 Arduino pro mini mot rörelsesensor kretsen.... 15 5.3 Arduino... 15 5.4 Processing... 17 6 Resultat... 18 6.1 Mätresultat... 18 6.2 Uppfyllda krav... 19 6.3 Delvis uppfyllda krav... 19 6.4 Ej uppfyllda krav... 19 7 Diskussion... 21 7.1 Slutsatser... 21 Rami Al Khodor Sida 4

7.2 Vidareutveckling av systemet... 21 8 Referenser... 22 Rami Al Khodor Sida 5

Dokumenthistorik version Datum Utförda Förändringar Utförda av Granskad 1.0 2014-05-12 Godkänd Rami Al Khodor Fredrik Öhberg 0.4 2014-05-06 Granskning Rami Al Khodor Fredrik Öhberg 0.3 2014-04-27 Granskning Rami Al Khodor Fredrik Öhberg 0.2 2014-03-27 Granskning Rami Al Khodor Jonathan Petersson 0.1 2013-05-08 Första Utkast Rami Al Khodor Fredrik Öhberg Rami Al Khodor Sida 6

1 Inledning 1.1 Bakgrund Datoriserad rörelseanalys är en metod som används inom många olika forskningssammanhang, ex övervakning, atletisk prestationsförmåga, medicinska diagnoser [1] samt visuell undersökning och observation av en persons rörelsemönster [2]. Idag är optiska rörelseanalyssystem de mest använda. Nackdelar med dessa system är att de är dyra, markörerna (som registrerar rörelserna) skyms lätt vilket resulterar i ofullständiga mätningar [3], systemen kräver i många fall speciella laboratorium och speciellt utbildad personal samt att lämplig mjukvara anpassad för klinisk användning och verktyg för att analysera och evaluera rörelser för medicinskt bruk saknas [2]. En forskargrupp vid MT-FoU har sedan 2007 jobbat med en produktidé som bygger på att skapa ett nytt mobilt system för rörelseanalys och utvärdering som kan användas i medicinska tillämpningar. Systemet består av givarmoduler MPU6000 (3-axlig accelerometer + 3-axlig gyroskop) och en magnetometer HMC5883L samt en datainsamlingsenhet som slussar vidare data till en dator. Problemet är att systemet baseras på ett egenutvecklat kretskort (givarmodulen). I ett första steg skulle det därför vara önskvärt att kunna byta ut den idag existerande datainsamlingsenheten mot en generell elektronikplattform ex Arduino eller RasperryPi samt genomföra nödvändiga ändringar på kretskortet. 1.2 Syfte och mål Syftet med projektet var att skapa ett verktyg som kan samla in och analysera rörelsedata från en mobil sensor som inkluderar en 3-axlig accelerometer, ett 3-axlig gyroskop och en 3- axlig magnetometer. Varje sensor skulle kunna sättas fast på valfritt kroppssegment. Rörelsedata skulle därefter kunna skickas vidare till en dator för visuell presentation och för lagring i en textfil. 1.3 Beställare Centrum för medicinsk teknik och strålningsfysik (CMTS), MT-FoU vid Norrlands universitetssjukhus. 2 Problembeskrivning Uppgiften i detta projekt var att skapa ett system som samlar in rörelsedata från en kroppsdel för att därefter beräkna kvaternionervärden som sedan sparas i en textfil som sedan kan användas för vidare analys. Vidare ska verktyget vara billig och lättanvänt. Systemet består av fyra huvuddelar: en dator som används för programmering samt visning och lagring av mätningsresultat, rörelsesensordelen som fångar rörelser, processordelen som driver operationen och kommunikationsdelen som sker via kabel och en blåtandmodul. Systemet ska kopplas ihop och programmeras så att önskad rörelsemätning nås. Mätningsresultat ska hamna i en textfil som sparas i mätningsdator. Rami Al Khodor Sida 7

3 Sammanfattning av kravspecifikationen Krav nr 1 Original Projektet skall innehålla Invensense 6-axliga Hög sensorn MPU-6000. Krav nr 2 Original Projektet skall innehålla Adruino pro mini. Hög Krav nr 3 Original Kommandon ska skickas från datorn till Arduino via Hög blåtand. Krav nr 4 Original Arduino pro mini och rörelsesensor är trådbundna. Hög Krav nr 5 Original Nödvändiga program anskaffas för att driva Hög processen Krav nr 6 Original Systemet ska samla in data från ett 3D gyroskop, Hög en 3D accelerometer samt en 3D magnetometer. Krav nr 7 Original Insamlat data ska sparas till en text fil. Hög Krav nr 8 Tillägg En länk till insamlat data ska också kopplas till en Låg SQL-databas. Krav nr 9 Original Programmering av Arduino sker via USB-kabel. Hög Krav nr 10 Tillägg Data ska skickas från Sensorn till datorn via en Låg blåtandsmodul. Krav nr 11 Original Möjlighet till anslutning av fler rörelsesensorer. Låg Krav nr 12 Original Möjlighet till att systemet drivs med batteri. Låg Krav nr 13 Tillägg Systemet skall konstrueras med hjälp av billiga komponenter. Hög Rami Al Khodor Sida 8

4 Teori 4.1 Arduino (software) Arduino är en öppen källkod programvara som används för att programmera Arduino produkter. Man kan skriva önskad programkoden och skicka den till en Arduino produkt via I/O port [6]. Mjukvaran kompilerar och laddar upp programkoden med ett enda klick. Programmet kan installeras på Windows, Mac OS X och Linux. 4.2 Processing Processing är en utvecklingsmiljö för öppen källkod som gör det möjligt att kommunicera med Arduino-produkter. Den används i projektet för att visa och spara data som samlats in av Arduino [12]. 4.3 Arduino pro mini Fig1. Arduino pro mini [7] Arduino Pro Mini (fig1) har tillverkats av SparkFun Electronics. Det är ett kretskort med en mikrokontroller baserad på ATmega368. Kortet innehåller 14 digitala I/O portar, 8 analoga ingångar, en återställningsknapp, I2C portar och hål för monteringsstiftlister mm. Vidare är kretskortet utrustat med en stiftlist med 6 stift för strömförsörjning och kommunikation. Den kan anslutas till exempel till en FTDI-kabel som har 6 stiftkontakt. Två typer av Arduino pro Mini finns, (3,3 V och 8 MHz) eller (5 V och 16 MHz). I detta projekt har jag använt Arduino pro mini 3,3V [7]. Rami Al Khodor Sida 9

4.4 Rörelsesensorkrets innehåller Fig2. MPU-6000/6050ᵀᴹ system diagram [11] Rörelsesensorkretskort innehöll en magnetometer HMC5883L och en MPU-6000 (gyrometer/accelerometer). Blockdiagrammet, figur 2, visar att det behövs en applikationsprocessor för att kunna extrahera data från sensorerna. Arduino pro mini var den applikationsprocessorn som användes och kopplades till MPU-6000 via I2C terminalen. 4.4.1 MPU-6000 MEMS Motion Tracking Fig3. MPU6000 (Gyro + Accelerometer) [5] Den MPU-6000/MPU-6050 familjen är världens första och enda 6-axliga MotionTracking sensor som är avsedd för låg effekt, låg kostnad och med samma höga prestandakrav som i smarttelefoner, surfplattor och bärbara datorer. De MPU-6000/6050 enheter kombinerar en 3-axlig gyroskop och en 3-axlig accelerometer på samma kisel tillsammans med en inbyggd Digital Motion Processor (DMP ), (se Fig.3), vilket gör att den kan bearbeta komplexa 9-axliga MotionFusion-algoritmer. Integrerade 9- axliga MotionFusion algoritmer ger tillgång till extern magnetometer med hjälp av master I²C buss utan inblandning från systemprocessorn. MPU6000 har ett programmerbart gyro som kan ge ett fullskaligt intervall på ± 250, ± 500, ± 1000 eller ± 2000 /s och en programmerbar accelerometer med ett fullskaligt intervall på ± 2g, ± 4g, ± 8g och ± 16g [5]. Rami Al Khodor Sida 10

4.4.2 Magnetometer Fig4. HMC5883L [4] Fig5. Pilen visar riktningen av magnetfältet som genererar en positiv utgång i konfiguration Normal mätning. [4] HMC5883L är en 3-Axis liten ytmonterad sensor avsedd för låg-fält magnetisk avkänning tillverkad av Honeywell (se Fig4 och fig5.). En kompass eller magnetometer med låg kostnad är exempel på applikationer som kan anpassas med hjälp av HMC5883L:s digitala gränssnitt. HMC5883L har: Enkelt I2C-gränssnitt 2.16-3.6VDC leveransområde Låg strömförbrukning 5milli-Gauss upplösning Mått: 3.0x3.0x0.9mm HMC5883L används i många utrustningar som mobiltelefoner, bärbara datorer, hemelektronik, navigationsenheter i bilar och personliga navigationsenheter. [4] Rami Al Khodor Sida 11

4.5 En Blåtandsmodul (RN-42), BlueSMiRF HID Fig6. Blåtandsmodul RN-42 [8] Figur 6 visar en bluesmirf HID med RN 42. Den kommer levererat med HID firmware. HID, eller "Human Interface Device, är det kommunikationsprotokoll som används för kringutrustning som tangentbord och styrspakar. Detta gör RN - 42 - HID till ett enkelt och kraftfullt verktyg för att skapa trådlösa kringutrustning som kan vara universellt godkänd och användas utan att installera speciella drivrutiner. Fjärrenheten kan drivas från 3,3 V till 6V för enkelt batterifastsättning. Alla signalstift på fjärrenheten är 3V-6V toleranta. Ingen nivåväxling krävs. 4.5.1. Specifikationer: [8] FCC Godkänd Klass 2 Bluetooth Radio Modem Extremt liten radio - 0.15x0.6x1.9 " Mycket robust koppling både integritet och överföring avstånd (18m) Hardy hoppfrekvens system - fungerar i tuffa RF miljöer som WiFi, 802.11g, och Zigbee Krypterad förbindelse Frekvens: 2,4 ~ 2,524 GHz Driftspänning: 3,3 V-6V Arbetstemperatur: -40 ~ +70 C Inbyggd antenn OBS: Det går inte att ansluta enheten direkt till en seriell port. Man behöver en RS232 till TTL-omvandlarkrets om man vill koppla detta till en dator. Rami Al Khodor Sida 12

4.6 FTDI Kabel för att strömmatning och programmering av Arduinokortet Fig7. FTDI kabel - TTL-232R-3V3 [9] TTL-232R-kablar är en familj av USB till TTL seriell UART omvandlare kablar som innehåller FTDI:s FT232RQ USB till seriell UART gränssnitt IC-enhet som hanterar all USB-signalering och protokoll (se fig7). Kablarna ger ett snabbt och enkelt sätt att ansluta enheter med ett seriellt gränssnitt TTL-nivå till USB. Varje TTL-232R-kabel innehåller ett litet internt elektroniskt kretskort, FT232R, som är inkapslad i USB-kontakten på kabeln. Den andra änden av kabeln levereras med ett urval av olika kontakter som stöder olika applikationer [9]. För detta projekt har jag använt USB till UART kabel med 3,3 V TTL-nivå UART-signaler och 6 pin SIL, 0,1" pitch som slutkontakt. Rami Al Khodor Sida 13

5 Metod 5.1 Övergripande systembeskrivning Fig8. Arduino processorn programeras med hjälp av Arduino mjukvara via FTDI kabel. Däremot skickas rörelsedata från rörelsesensorn till Processing på datorn via blåtand. Systemet består av tre delar (fig8): rörelsesensorenhet, programmera Arduino processorn som driver systemet så att rörelsedata från MPU-enheten kan samlas in, och slutligen spara insamlat rörelsedata i en textfil. Programmeringen av Arduino processor sker via en FTDIkabel med hjälp av Arduino-mjukvara. När mätningen börjar skickas rörelsedata från sensorn till datorn via blåtandsmodulen RN-42. Ett Processing-program i datorn används vid mätningen för att samla in och lagra av insamlat data. 5.2 Kretsschema och kommunikationsbeskrivning 5.2.1 PC Arduino pro mini Fig9. FTDI kabel mot Arduino processor Figur 9 visar kopplingen mellan FTDI:s 6 stiftkontakt med Arduinos 6 stiftlist. VCC och GND portar på FTDI och Arduino kopplas ihop medan RXD port på det ena kopplas mot TXD port på det andra. Rami Al Khodor Sida 14

5.2.2 Arduino pro mini mot rörelsesensor kretsen. Fig10. Arduino pro mini mot rörelsesensor och blåtandsmodulen Arduino pro mini har en I2C terminal (A4 är SDA & A5 är SCL). I2C är en teknik som gör det möjligt att koppla ihop en uppsättning av element eller enheter genom att använda två elektroniska anslutningar, en för seriella dataöverföring och en för seriell klocka. Figur 10 visar hur vi kopplar: A4och A5 på Arduino pro mini med SCL respektive SDA porter på rörelsekortet. TXD (transmit data) på Arduino mot RXD (receive data) på RN-42 medan RXD på Arduino mot TXD på RN-42 VCC punkter på alla kretskort tillsammans GND punkter på alla kretskort tillsammans 5.3 Arduino I detta projekt användes Arduino 1.0.5 programmeringsmiljö. Ett program skapades med syftet att extraherar data från MPU-sensorn, d.v.s. MPU6000. MPU6000 innehåller en DMP (Digital Motion Processor) som använder data från accelerometern och gyroskopet för att beräknar kvaternioner (dvs. ett sätt att beskriva sensorns orientering mot gravitationsaxeln). Kvaternionerna kan sedan omvandlas till Eulervinklar. Nästa steg var sedan att räkna ut hur man extraherar data från DMP. Jeff Rowberg har skrivit och offentliggjort ett mycket användbart bibliotek, i2cdevlib, som gör just detta 1. Eftersom jag använde MPU 6000, behövde jag biblioteksfunktionerna i mappen märkt Arduino/MPU6050. För att installera biblioteket, kopierade jag helt enkelt mappen Arduino/MPU6050 till samma plats som övriga Arduino bibliotek. 1 https://github.com/jrowberg/i2cdevlib. Rami Al Khodor Sida 15

Fig11. Flödesschema Arduino-rörelsesensor Flödesschemat ovan (Fig11) visar huvudstegen som Arduino-programmet gör för att extrahera rörelsedata från rörelsesensorn. Jag valde accelerometerns och gyroskopets mest känsliga inställningar, dvs. +/- 2 g resp. +/- 250 grader/sek, och sedan att använda klockkälla med X Gyro som referens, vilket var något bättre än den interna klockkällan. void MPU6050::initialize() { setclocksource(mpu6050_clock_pll_xgyro); setfullscalegyrorange(mpu6050_gyro_fs_250); setfullscaleaccelrange(mpu6050_accel_fs_2); setsleepenabled(false); // thanks to Jack Elston for pointing this one out! Vidare bestämdes samplingsfrekvensen till 50Hz, detta eftersom mänskliga rörelsemönster sällan innehåller frekvenser över 10 Hz. DEBUG_PRINTLN(F("Setting sample rate to 50Hz...")); setrate(19); // 1khz / (1 + 19) = 50 Hz... here I set the rate to 50 Hz Rami Al Khodor Sida 16

5.4 Processing För att visa rörelsedata samt spara den i en textfil behövde jag en mjukvara som möjliggör detta. Processing (version 220) var det verktyg som jag använde för detta mål. Ett program togs fram för att läsa och spara kvaterniondata i en textfil. Fig12. Flödesschema för sensor-processing delen Programmet började med att initiera seriellporten för att kunna skapa kommunikationen mellan datorn och rörelsesensorenheten via blåtandsmodulen. MPU-sensorn väntade på att trigga DMP (Digital Motion Processor) genom att skicka en karaktär till avbrottsflaggan. Programmet hämtade data och sparade den till textfil ända tills användaren tryckte på en valfri knapp på tangentbordet, vilket ledde till att mottagen data sparades och programmet avslutades (se fig12 ovan). Rami Al Khodor Sida 17

6 Resultat 6.1 Mätresultat Fig13. En analysgraf som visar ett exempel på en mätning Mätresultatet hamnar i en textfil i form av siffror (kvaternioner, Eeulervinklar eller yaw/pitch/roll-vinklar) helt beroende på vilken funktion som användaren önskar. Man kan bestämma exakt var man vill spara filen i Processing annars hamnar det i en sketchmapp (välj sketch från meny sedan sketch folder). När mätningen är klar öppnas filen och allt data kopieras till en Excelfil för att rita upp ett diagram (se fig13). Man måste byta alla punkter till kommatecken för att kunna genomföra skapa diagrammet. För att få ett snyggare diagram som enkelt kan tolkas, startades mätningen med att stå stilla några sekunder. I fig13 ovan ser vi lite avvikelser i varje signal. Detta berodde på placeringen av sensorn på kroppsegmentet där sensorns riktningar skiljer sig lite från universella riktningar. Rami Al Khodor Sida 18

6.2 Uppfyllda krav Krav nr 1 Uppfyllt Projektet skall innehålla Invensense 6-axliga sensorn MPU-6000. Krav nr 2 Uppfyllt Projektet skall innehålla Adruino pro mini. Krav nr 4 Uppfyllt Arduino pro mini och rörelsesensor är trådbundna. Krav nr 5 Uppfyllt Nödvändiga program anskaffas för att driva systemet Krav nr 6 Uppfyllt Systemet ska samla in data från ett 3D gyroskop, en 3D accelerometer samt en 3D magnetometer. Krav nr 7 Uppfyllt Insamlat data ska sparas till en text fil. Krav nr 9 Uppfyllt Programmering av Arduino sker via USB-kabel. Krav nr 10 Uppfyllt Data ska skickas från Sensorn till datorn via en blåtandsmodul. Hög Hög Hög Hög Hög Hög Hög Låg 6.3 Delvis uppfyllda krav Krav nr 12 Delvis uppfyllt Möjlighet till att systemet drivs med batteri. Låg Kommentarer Krav nr 12: FTDI-kabeln användes för strömförsörjningen. En plats för ett batteri är dock skapat. 6.4 Ej uppfyllda krav Krav nr 3 Ej uppfyllt Kommandon ska skickas från datorn till Arduino via blåtand. Krav nr 8 Ej uppfyllt En länk till insamlat data ska också kopplas till en SQL-databas. Hög Låg Krav nr 11 Ej uppfyllt Möjlighet till anslutning av fler rörelsesensorer. Låg Rami Al Khodor Sida 19

Kommentarer Krav nr 3: Många försök har gjorts för att utföra detta krav utan att lyckas. Det lämnades för utvecklig vid senare tillfälle då prioriteringen var att få systemet att fungera. Krav nr 8: Kravet har ej prioriterats och därför ej uppfyllts. Fokus har legat på att få systemet att fungera med en rörelsemätningsenhet. Krav nr 11: Kravet har ej prioriterats och därför ej uppfyllts. Fokus har legat på att få systemet att fungera med en rörelsemätningsenhet. Rami Al Khodor Sida 20

7 Diskussion 7.1 Slutsatser Målet i detta projekt var att ta fram en prototyp till ett rörelsemätningssystem som läser kroppsrörelse och sparar resultatet i en textfil. Jag prioriterade och fokuserade på själva mätningsprocessen vilket gjorde att ett av de prioriterade kraven inte uppnådde behövda resultat. Detta krav var att kunna programmera Arduino via blåtand vilket jag har gjort med hjälp av FTDI-kabel. Arbetet med projektet gick bra och har varit mycket intressant och lärorikt. Trots det blev tidsplaneringen förskjuten mycket dels pga. privata omständigheter som hindrade mig från att jobba med projektet och dels pga. den tiden jag behövde för att inskaffa nya kunskaper. Jag hade mycket begränsad erfarenhet i programmeringsspråket vilket har inneburit en del svårigheter, med hjälp av handledare och olika Internetkällor kunde jag överkomma dem. 7.2 Vidareutveckling av systemet Det finns stora möjligheter till vidareutveckling av systemet. Den första möjligheten kan vara att uppfylla det höga kravet som jag inte kunde genomföra dvs. att programmera Arduino trådlöst via blåtand. Kraven med låg prioritet som inte är uppfyllda är också möjliga utvecklingssteg. Under mätningen insåg jag att man behöver vara i närheten av en dator beroende på blåtand begränsade signaltäckning. En bra utveckling i detta fall är att kunna ersätta Processings program som finns i datorn med ett program som körs från en mindre apparat, exempelvis en mobiltelefon. Det innebär också att systemet ska kunna sparas på mobilen eller på ett inbyggt SD-kort. Rami Al Khodor Sida 21

8 Referenser [1] J. K. Aggarwal and Q. Cai, "Human Motion Analysis: A Review," Computer Vision and Image Understanding, vol. 73, no. 3, pp. 428-440, March 1999. [2] H. Grip, O. Gustavsson, F. Öhberg, U. Edström, C. Häger-Ross and R. Lundström, "Movement of lower extremity development of a portable system for movement analysis". In World Congress 2009-Medical physics and Biomedical Engineering, Sept 7-12. in Munich, http://www.wc2009.org. [3] R. E. Mayagoitia, A. V. Nene och P. H. Veltink, Accelerometer and rate gyroscope measurement of kinematics: an inexpensive alternative to optical motion analysis systems, Journal of Biomechanics, vol. 35, nr 4, pp. 537-542, April 2002. [4] 3-Axis Digital Compass IC HMC5883L, januari 2014. [Online]. Available: http://www51.honeywell.com/aero/common/documents/myaerospacecatalogdocuments/defense_brochures-documents/hmc5883l_3-axis_digital_compass_ic.pdf. [5] 6 Axis Motion Sensor: MPU-6000, Component distributers.inc, Februari 2014. [Online]. Available: http://www.cdiweb.com/productdetail/mpu6000-invensense- Inc/420595/#.Uy8wkIXBeyY. [6] Arduino, Januari 2014. [Online]. Available: http://arduino.cc. [7] Arduino pro mini, April 2013. [Online]. Available: http://arduino.cc/en/main/arduinoboardpromini. [8] Bluetooth modem, Februari 2014. [Online]. Available: https://www.sparkfun.com/products/10938. [9] ftdichip, Februari 2014. [Online]. Available: http://www.ftdichip.com/support/documents/datasheets/cables/ds_ttl-232r_cables.pdf. [10] Github, April 2013. [Online]. Available: https://github.com/jrowberg/i2cdevlib. [11] Investens, Maj 2013. [Online]. Available: http://www.invensense.com/mems/gyro/mpu6050.html. [12] Processing, Maj 2013. [Online]. Available: http://processing.org. Rami Al Khodor Sida 22