230 likes | 344 Views
Mood Based Navigation Shoe. Roland Haring Otto Naderer Doris Zachhuber Matthias Kranz Unconventional User Interaction VO 367.051 UE 367.052. Mood Based Navigation Shoe. Navigation system for pedestrians Intended use in urban environments Input: the user‘s current emotional state
E N D
Mood Based Navigation Shoe Roland Haring Otto Naderer Doris Zachhuber Matthias Kranz Unconventional User Interaction VO 367.051 UE 367.052
Mood Based Navigation Shoe • Navigation system for pedestrians • Intended use in urban environments • Input: the user‘s current emotional state • To find other users who feel the same • To find an activity which fits the mood. • Output: LED-integrated shoe • Indicates the heading
Components • Server • Handles all clients • Does „mood matching“ • Client • Ultra Mobile PC (UMPC) • Provides GUI to enter the current mood • Maintains connection to server • Features GPS receiver • Controls and powers the Arduino board • Arduino Board • Small programmable board (USB interface) • Controls LEDs • Programming e.g. in „Processing“ (JAVA) • Shoes • Integrated cross-shaped LED setup • Connected to Arduino‘s outputs • Direct user (left, right, back, forth)
Further Information / Project Site • Paper • Extensive information about the project • Explains every aspect more detailed • Available at our website • Website • Hosted on GoogleCode • At: http://code.google.com/p/moodbs/ • Supports subversion • Read-only access for „anonymous“ • Sources and installers available
Arduino Open Source Project (HW u. SW) Analog und digital I/Os USB-Interface for communication with the PC Programming in C++ with Wiring Framework Java-IDE Big community Lots of SW libraries Lots of HW components Autonomous usage via battery possible Distribution Mainly used among architects and media artists 12 distribution partners in Europa Lots of clones http://www.arduino.cc
Arduino Duemilanove • Newest USB-Board ofArduino • $35 atSparkfun • Hardware-Design availableforfree • Atmel ATmega168 • USB to Serial Converter • Quarz-Oscillator • Multi-Pin Connector • Power supply USB orBattery/Power Adapter • PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite() function • Arduino NG • Nobuilt-in LED connectedto digital pin 13 • Atmel ATmega168 or ATmega8
Atmel ATmega168 • RISC Processor • Power: 3,5µW – 45mW (bei 5V und 16 MHz) • Harvard Architecture • Memory • 16KB Flash (Program + Data) • 1KB SRAM (Data) • 512Bytes EEPROM • 16MHz Clock Frequency • 23 GPIO Pins • 6 PWM Outputs • 6 Analog Inputs(10 Bit ADC-Converter) • 2x 8-Bit Timer • 1x 16-Bit Timer • Bus Interfaces • USART • SPI (Master) • I2C (Master/Slave) • Watchdog Timer
Duemilanove Accessories XBee Shield Stepper Motor Control TouchShield Ethernet Shield GPS Shield Sensoren / Aktuatoren
Sampe Project Ardrumo • MIDI drums • Self construction $53 • Piezo elements for pressure sensitive sensors • Arduino-Board • A/D-Convertion of signals • Data transfer via USB • Only 14 lines of code!
Arduino LilyPad – Main Board Wearable E-Textile Technology developed by Leah Buechley [http://web.media.mit.edu/~leah/index.html] Designed in cooperation with Spark Fun Electronics Sewing on and washing of clothes possible ATmega168V with Arduino Bootloader Lots of accessories available(Input, Output, Power, Sensor und Actuator-Boards) Dimensions: 50mm outer diameter Thickness 0,8 mm
Arduino LilyPad – Accessories LilyPad Accelerometer 20 mm Ø, $24.95 LilyPad Bright White LED 6 x 11 mm, $ 1.95 LilyPad Button Board8 x 16 mm, $ 1.50 LilyPad Buzzer20 mm Ø, $ 7.95 LilyPad Temperature Sensor20 mm Ø, $ 4.95 LilyPad Tri-Color LED20 mm Ø, $7.95 LilyPad Vibe Board20 mm Ø, $14.95 LilyPad USB Link 0.9x1.25", $14.95 LilyPad Power Supply AAA battery (1.2 – 5V) 56 x 26 mm, $14.95 LilyPad LiPower Supply Lithium Polymer battery (5V) 20 mm Ø, $14.95 LilyPad Extensions:Bluetooth (siehe Abb.) Data-Logging Conductive Thread 117/17 2ply, 234/34 4ply, $19.95 LilyPad Light Sensor 20 mm Ø, $7.95
Leah Buechley – Turn Lights for Bikers Buttons on the sleeve cuffs Lights LEDs
Arduino – Programming • Java IDE „Processing“ • MIT-Project • Programming in C++ • GNU Compiler • Simple Projects • Wiring Library abstracts Hardware • User has to implement setup and loop • Setup is called once • Loop is called cyclic • Only one file with source code per project (Sketch) • One control flow • No Interrupts • Many additional libraries from community • ~ 30 on www.arduino.cc • Stepper Motor Control • Soft-UART • LCD • Etc. • „Printf“-Debugging • Bootloader allows Flash-Programming via USB
Prototype – 2 Shoes Components: • 4 green LEDs (front, right, back, left) • 4 resistors (150 Ω) • Connector pinsforeveryLED and GND (5V) • Arduino digital pins 4 - 7 • USB cableto PC/PDA
Client - Server Architecture MBS Client Position Update MBS Server Mood Update MBS Client Cancel Navigation (LED) Update Statustext Update MBS Client
Mood / Activity Matrix 0 … not 1 … neutral 2 … little 3 … much
Matching Algorithm • float Mood::getMatch(Mood &other) • { • float match = 0.0f; • int i=0; • for (i=0; i<=MAX_MOOD_INDEX; i++) • { • if (other.getVal(i) == NEUTRAL || getVal(i) == NEUTRAL) • { • continue; • } • float diff = abs((float)other.getVal(i) - (float)getVal(i)); • const float MAX_DIST = 3.0f; • match += 1.0f - diff / MAX_DIST; • } • match /= (float)i; • return match; • } Threshold: 0.75
Server C++ win32 OpenGL OSM Karte
Server Configuration <?xml version="1.0" encoding="utf-8" ?> <MBSSERVER> <MAP FILENAME="../data/linz.png" UL_LNG="14.22077" UL_LAT="48.34071" LR_LNG="14.360633" LR_LAT="48.285773"/> <ACTIVITY NAME="Moviemento" LNG="14.290535" LAT="48.30292035" TYPE="0"/> <ACTIVITY NAME="Cineplex" LNG="14.32139873" LAT="48.30110691" TYPE="0"/> <ACTIVITY NAME="Landestheater" LNG="14.23575" LAT="48.303769" TYPE="1"/> <ACTIVITY NAME="Theater Phoenix" LNG="14.296946" LAT="48.29159796" TYPE="1"/> <ACTIVITY NAME="Rote Krebs" LNG="14.283666" LAT="48.306125" TYPE="2"/> <ACTIVITY NAME="Walkers" LNG="14.286091" LAT="48.305319" TYPE="2"/> <ACTIVITY NAME="Nui" LNG="14.285788" LAT="48.304311" TYPE="3"/> <ACTIVITY NAME="Steak House" LNG="14.288819" LAT="48.307333" TYPE="3"/> <ACTIVITY NAME="John Harris Fitness" LNG="14.2915477" LAT="48.301973" TYPE="4"/> <ACTIVITY NAME="Pueblo" LNG="14.3224603" LAT="48.3266306" TYPE="4"/> <ACTIVITY NAME="Casino Linz" LNG="14.2900925" LAT="48.2979315" TYPE="5"/> <ACTIVITY NAME="Wettbuero" LNG="14.2813288" LAT="48.31123137" TYPE="5"/> <ACTIVITY NAME="Wissensturm" LNG="14.28854604" LAT="48.29136005" TYPE="6"/> <ACTIVITY NAME="Uni Linz" LNG="14.31934606" LAT="48.3378234" TYPE="6"/> <ACTIVITY NAME="Posthof" LNG="14.3120665" LAT="48.3117609" TYPE="7"/> <ACTIVITY NAME="Empire" LNG="14.30115208" LAT="48.31357423" TYPE="7"/> <ACTIVITY NAME="Brucknerhaus" LNG="14.29260131" LAT="48.31061332" TYPE="8"/> <ACTIVITY NAME="Stadtwerkstatt" LNG="14.28486858" LAT="48.31061332" TYPE="8"/> <ACTIVITY NAME="Posthof" LNG="14.3120665" LAT="48.3117609" TYPE="9"/> <ACTIVITY NAME="Kammerspiele" LNG="14.28301893" LAT="48.30400392" TYPE="9"/> <ACTIVITY NAME="Cafe Glockenspiel" LNG="14.28635338" LAT="48.30541430" TYPE="10"/> <ACTIVITY NAME="LUI" LNG="14.32217177" LAT="48.33770261" TYPE="10"/> <ACTIVITY NAME="Parkbad" LNG="14.29617027" LAT="48.31287828" TYPE="11"/> <ACTIVITY NAME="Institut Wohlgemuth" LNG="14.2784323" LAT="48.3127976" TYPE="11"/> <ACTIVITY NAME="Lentos" LNG="14.28843754" LAT="48.30836480" TYPE="12"/> <ACTIVITY NAME="Ars Electronica" LNG="14.2847997" LAT="48.31098407" TYPE="12"/> </MBSSERVER>
Client C++ win32 MFC
Client Configuration <?xml version="1.0" encoding="utf-8" ?> <MBSCLIENT> <SERVER>localhost</SERVER> <PORT>4711</PORT> <ID>1</ID> <COM>3</COM> <STARTPOS LNG="14.315480" LAT="48.320586" ORIENT="90"/> </MBSCLIENT>
Sources All sources available at http://code.google.com/p/moodbs/