SlideShare a Scribd company logo
1 of 76
Download to read offline
100




iOS Sensors
Where Mobile Begins
Roadmap   100




Roadmap
Where We’re Going
Teaser: What to Expect!   96




Teaser
What to Expect!
Teaser: What to Expect!   96




Teaser
What to Expect!




     Digital Camera
Teaser: What to Expect!                   96




Teaser
What to Expect!




                                            Audio Sampler

     Digital Camera
Teaser: What to Expect!                   96




Teaser
What to Expect!




Navigation System

                                            Audio Sampler

     Digital Camera
Teaser: What to Expect!                   96




Teaser
What to Expect!




                                            Air Level

Navigation System

                                            Audio Sampler

     Digital Camera
Teaser: What to Expect!                   96




Teaser
What to Expect!




            Ball Game

                                              Air Level

Navigation System

                                              Audio Sampler

     Digital Camera
Teaser: What to Expect!                   96




Teaser
What to Expect!

                                              Compass

            Ball Game

                                              Air Level

Navigation System

                                              Audio Sampler

     Digital Camera
Mobile vs. Desktop: What’s the Difference   92




Mobile vs. Desktop
What’s the Difference
Mobile vs. Desktop: What’s the Difference              92




Mobile vs. Desktop
What’s the Difference




    Speakers                                                      Speakers
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
    Camera                                                          Camera
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
    Camera                                                          Camera

        GPS
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
    Camera                                                          Camera

     GPS
Accelerometer
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
    Camera                                                          Camera

     GPS
Accelerometer
  Gyroscope
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
    Camera                                                          Camera

     GPS
Accelerometer
  Gyroscope
Magnetometer
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
    Camera                                                          Camera

     GPS
Accelerometer
                                                           Mobile Sensors
  Gyroscope
Magnetometer
Sensors in 12 Device Generations                  88




Sensors in Device Generations
Great Common Denominators
                                                           With iPod
All 12 Generations - 2007+                                 Without iPod
Sensors in 12 Device Generations                                       88




          Sensors in Device Generations
          Great Common Denominators
                                                                                        With iPod
          All 12 Generations - 2007+                                                    Without iPod
100.00%




 75.00%




 50.00%




 25.00%




    0%
           Speaker   Microphone   Accelerometer         GPS               Camera   Gyroscope   Magnetometer
Sensors in 7 Device Generations                                       84




          Sensors in Device Generations
          Great Common Denominators
                                                                                        With iPod
          Latest 7 Generations - 2010+                                                  Without iPod
100.00%




 75.00%




 50.00%




 25.00%




    0%
           Speaker   Microphone   Accelerometer         GPS               Camera   Gyroscope   Magnetometer
Sensors in 7 Device Generations                                       84




          Sensors in Device Generations
          Great Common Denominators
                                                                                        With iPod
          Latest 7 Generations - 2010+                                                  Without iPod
100.00%




 75.00%




 50.00%                                       Majority

 25.00%




    0%
           Speaker   Microphone   Accelerometer         GPS               Camera   Gyroscope   Magnetometer
Delegate Pattern   80




Delegate Pattern
Quick Look
Delegate Pattern   80




Delegate Pattern
Quick Look




  Delegate
Delegate Pattern     80




Delegate Pattern
Quick Look




  Delegate




             didArriveAtBar:
             didDrinkBeerNumber:
             didUpdateAlcoholLevel:
             wantsMeToComeHome:
             didCallCab:
             didEnterCab:
             didExitCab:
Roadmap   76




Roadmap
Where We’re Going
Light: Implementing a Camera   72




Light
Implementing a Camera
Light: Implementing a Camera                     72




        Light
         Implementing a Camera


// setup image picker controller
imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.allowsEditing = NO;
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.delegate = self;


// display
[viewController presentModalViewController:imagePickerController animated:YES];


// grab photo as soon as it was taken
-(void) imagePickerController:(UIImagePickerController *)picker /
didFinishPickingMediaWithInfo:(NSDictionary *)info{

    // captured image
    UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    
    // dismiss image picker
    [viewController dismissModalViewControllerAnimated:YES];
}
Light: Implementing a Camera                     72




        Light
         Implementing a Camera


// setup image picker controller
imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.allowsEditing = NO;
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.delegate = self;


// display
                           Camera Demo
[viewController presentModalViewController:imagePickerController animated:YES];


// grab photo as soon as it was taken
-(void) imagePickerController:(UIImagePickerController *)picker /
didFinishPickingMediaWithInfo:(NSDictionary *)info{

    // captured image
    UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    
    // dismiss image picker
    [viewController dismissModalViewControllerAnimated:YES];
}
Sound: Implementing a Sound Recorder   68




Sound
Implementing a Sound Recorder
Sound: Implementing a Sound Recorder                     68




         Sound
          Implementing a Sound Recorder

// get audio session
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryRecord error:nil];
[audioSession setActive:YES error:nil];

// some settings 
NSMutableDictionary *settings = [[NSMutableDictionary alloc] init];
[settings setValue:[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey];
[settings setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];
[settings setValue:[NSNumber numberWithInt:2] forKey:AVNumberOfChannelsKey];
    
tmpRecording = [NSURL fileURLWithPath:[NSTemporaryDirectory() /
stringByAppendingPathComponent:@"recording.caf"]];

// start recording  
audioRecorder = [[AVAudioRecorder alloc] initWithURL:tmpRecording settings:settings
error:nil];
[audioRecorder setDelegate:self];
[audioRecorder prepareToRecord];
[audioRecorder recordForDuration:2.0];
    
// do when recording is finished
- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag{
    isRecording = NO;
    
}
Sound: Implementing a Sound Player   64




Sound
Implementing a Sound Player
Sound: Implementing a Sound Player               64




        Sound
         Implementing a Sound Player



// get audio session
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive:YES error:nil];
    
tmpRecording = [NSURL fileURLWithPath:[NSTemporaryDirectory() /
stringByAppendingPathComponent:@"recording.caf"]];

// start playing  
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:tmpRecording
error:nil];
[player setDelegate:self];
[player prepareToPlay];
[player play];
    
// do when recording is finished
- (void)audioRecorderDidFinishPlaying:(AVAudioRecorder *)recorder successfully:
(BOOL)flag{
    isPlaying = NO;  
}
Sound: Implementing a Sound Player               64




        Sound
         Implementing a Sound Player



// get audio session
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive:YES error:nil];
    

                            Sound Demo
tmpRecording = [NSURL fileURLWithPath:[NSTemporaryDirectory() /
stringByAppendingPathComponent:@"recording.caf"]];

// start playing  
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:tmpRecording
error:nil];
[player setDelegate:self];
[player prepareToPlay];
[player play];
    
// do when recording is finished
- (void)audioRecorderDidFinishPlaying:(AVAudioRecorder *)recorder successfully:
(BOOL)flag{
    isPlaying = NO;  
}
Location: Implementing a Positioning System   60




Location
Implementing a Positioning System
Location: Implementing a Positioning System   60




        Location
         Implementing a Positioning System



// create location manager
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
    
// start location update
[locationManager startUpdatingLocation];

// process position
-(void)locationManager:(CLLocationManager *)manager
   didUpdateToLocation:(CLLocation *)newLocation
          fromLocation:(CLLocation *)oldLocation{

   // access position
   float latitude = newLocation.coordinate.latitude;
   float longitude = newLocation.coordinate.longitude;

    // one position is enough
    [locationManager stopUpdatingLocation];
}
Location: Implementing a Positioning System   60




        Location
         Implementing a Positioning System



// create location manager
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
    

                       Positioning Demo
// start location update
[locationManager startUpdatingLocation];

// process position
-(void)locationManager:(CLLocationManager *)manager
   didUpdateToLocation:(CLLocation *)newLocation
          fromLocation:(CLLocation *)oldLocation{

   // access position
   float latitude = newLocation.coordinate.latitude;
   float longitude = newLocation.coordinate.longitude;

    // one position is enough
    [locationManager stopUpdatingLocation];
}
Magnetic Field: Implementing a Compass   56




Magnetic Field
Implementing a Compass
Magnetic Field: Implementing a Compass   56




      Magnetic Field
      Implementing a Compass




// setup location manager
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager startUpdatingHeading];

// receive update of heading
-(void)locationManager:(CLLocationManager *)manager
      didUpdateHeading:(CLHeading *)newHeading{

  // device is pointing ‘heading’ away from north
  float heading = manager.heading.magneticHeading;
    
}
Magnetic Field: Implementing a Compass   56




      Magnetic Field
      Implementing a Compass




// setup location manager
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
                     Compass Demo
[locationManager startUpdatingHeading];

// receive update of heading
-(void)locationManager:(CLLocationManager *)manager
      didUpdateHeading:(CLHeading *)newHeading{

  // device is pointing ‘heading’ away from north
  float heading = manager.heading.magneticHeading;
    
}
Roadmap   52




Roadmap
Where We’re Going
Accelerometer: May the Force be with you   48




Accelerometer
May the Force be with you
Accelerometer: May the Force be with you   48




Accelerometer
May the Force be with you


      Force
      in g-force




              -1.0

0.0



                     0.0
Accelerometer: May the Force be with you                       48




Accelerometer
May the Force be with you


      Force                                                           Rotation
      in g-force                                                      in degrees




              -1.0
                                                                        0.0
0.0                                                                                -0.5



                     0.0


                                                                                   0.5
Accelerometer: May the Force be with you                       48




Accelerometer
May the Force be with you


      Force                                                           Rotation
      in g-force                                                      in degrees




            Accelerometer Demo
              -1.0
                                                                        0.0
0.0                                                                                -0.5



                     0.0


                                                                                   0.5
Accelerometer: May the Force be with you   44




Accelerometer
May the Force be with you
Accelerometer: May the Force be with you   44




        Accelerometer
        May the Force be with you




// enable accelerometer
[[UIAccelerometer sharedAccelerometer] setDelegate:self];

// receive the acceleration values
- (void) accelerometer:(UIAccelerometer *)accelerometer
         didAccelerate:(UIAcceleration *)acceleration {

    // move ball
    ball.x += acceleration.x * kBallSpeed;
    ball.y += acceleration.y * kBallSpeed;

    // rotate air level
    level.rotation = acceleration.y * 90;
}
Gyroscope: I’m spinnin’ around   40




Gyroscope
I’m spinnin’ around
Gyroscope: I’m spinnin’ around   40




Gyroscope
I’m spinnin’ around


Rotation Rate
in radians per second




              0.0

0.0



                      0.0
Gyroscope: I’m spinnin’ around                             40




Gyroscope
I’m spinnin’ around


Rotation Rate                                           Absolute Rotation
in radians per second                                       in radians
                                              by adding all rates to reference frame




              0.0
                                                               0.78
0.0                                                                         0.0



                      0.0


                                                                            0.0
Gyroscope: I’m spinnin’ around                             40




Gyroscope
I’m spinnin’ around


Rotation Rate                                           Absolute Rotation
in radians per second                                       in radians
                                              by adding all rates to reference frame


                Gyroscope Demo
              0.0
                                                               0.78
0.0                                                                         0.0



                      0.0


                                                                            0.0
Gyroscope: I’m spinnin’ around   36




Gyroscope
I’m spinnin’ around
Gyroscope: I’m spinnin’ around   36




         Gyroscope
         I’m spinnin’ around


// create core motion manager
motionManager = [[CMMotionManager alloc] init];
motionManager.gyroUpdateInterval = 1.0/60.0;
[motionManager startGyroUpdates];

// frequently call the update method
[self schedule:@selector(update:)];

// frequently read the gyro data
-(void)update:(ccTime)dt {

    // absolute rotation
    rotationX += motionManager.gyroData.rotationRate.x;
    rotationY += motionManager.gyroData.rotationRate.y;

    // move ball
    ball.x += rotationX + kBallSpeed;
    ball.y += rotationY + kBallSpeed;

    // rotate air level
    level.rotation = rotationY * 180/PI;
}
CoreMotion: Use this!   32




CoreMotion
Use this!
CoreMotion: Use this!   32




CoreMotion
Use this!



                          +
                 Raw data
            Accelerometer + Gyroscope
CoreMotion: Use this!   32




CoreMotion
Use this!



                            +
                   Raw data
              Accelerometer + Gyroscope




            CoreMotion Framework

     6 Degrees of Freedom Inertial System
                  Dead Reckoning
CoreMotion: Use this!       28




CoreMotion
Use this!
                                     +
CoreMotion: Use this!       28




      CoreMotion
      Use this!
                                                  +


// create core motion manager
motionManager = [[CMMotionManager alloc] init];
motionManager.motionUpdateInterval = 1.0/60.0;
[motionManager startMotionUpdates];

// frequently call the update method
[self schedule:@selector(update:)];
CoreMotion: Use this!       20




CoreMotion
Use this!
                                     +
CoreMotion: Use this!              20




        CoreMotion
         Use this!
                                                               +
// frequently read the gyro data
-(void)update:(ccTime)dt {

    // absolute   rotation
    rotationX =   motionManager.deviceMotion.attitude.pitch;
    rotationY =   motionManager.deviceMotion.attitude.yaw;
    rotationZ =   motionManager.deviceMotion.attitude.roll;

    // absolute gravity
    gravityX = motionManager.deviceMotion.gravity.x;
    gravityY = motionManager.deviceMotion.gravity.y;
    gravityZ = motionManager.deviceMotion.gravity.z;

    // user acceleration
    accelerationX = motionManager.deviceMotion.userAcceleration.x;
    accelerationY = motionManager.deviceMotion.userAcceleration.y;
    accelerationZ = motionManager.deviceMotion.userAcceleration.z;

}
CoreMotion: Use this!              20




        CoreMotion
         Use this!
                                                               +
// frequently read the gyro data
-(void)update:(ccTime)dt {

    // absolute   rotation
    rotationX =   motionManager.deviceMotion.attitude.pitch;
    rotationY =
    rotationZ =        CoreMotion Demo
                  motionManager.deviceMotion.attitude.yaw;
                  motionManager.deviceMotion.attitude.roll;

    // absolute gravity
    gravityX = motionManager.deviceMotion.gravity.x;
    gravityY = motionManager.deviceMotion.gravity.y;
    gravityZ = motionManager.deviceMotion.gravity.z;

    // user acceleration
    accelerationX = motionManager.deviceMotion.userAcceleration.x;
    accelerationY = motionManager.deviceMotion.userAcceleration.y;
    accelerationZ = motionManager.deviceMotion.userAcceleration.z;

}
Roadmap   16




Roadmap
Where We’re Going
Summary: What we did not cover   10




Summary
What we did not cover
Summary: What we did not cover   10




Summary
What we did not cover




                        GPS Accuracy
Summary: What we did not cover   10




Summary
What we did not cover




               Shaking-Motion Events

                        GPS Accuracy
Summary: What we did not cover   10




Summary
What we did not cover




                  Recording Movies

               Shaking-Motion Events

                        GPS Accuracy
Summary: What we did not cover   10




Summary
What we did not cover



                  Sensor Availability

                  Recording Movies

               Shaking-Motion Events

                        GPS Accuracy
Summary: What we did not cover   10




Summary
What we did not cover



                  Sensor Availability

                  Recording Movies

               Shaking-Motion Events

                        GPS Accuracy
             http://developer.apple.com/library/ios
Summary: What we learned!   5




Summary
What we learned!
Summary: What we learned!     5




Summary
What we learned!




           Capturing                    Images
Summary: What we learned!     5




 Summary
 What we learned!




Recording & Playing                      Sound

            Capturing                    Images
Summary: What we learned!     5




 Summary
 What we learned!




         Geolocating                     Device

Recording & Playing                      Sound

            Capturing                    Images
Summary: What we learned!                   5




     Summary
     What we learned!




Reading Device Position            +         6 Degrees of Freedom


             Geolocating                     Device

   Recording & Playing                       Sound

                Capturing                    Images
Summary: What we learned!                   5




     Summary
     What we learned!


                    Finding                   Magnetic North


Reading Device Position             +         6 Degrees of Freedom


             Geolocating                      Device

   Recording & Playing                        Sound

                Capturing                     Images
Thank you: You learned a lot!   0




Thank you
You learned a lot!
Thank you: You learned a lot!                                0




                   Download!
        https://github.com/southdesign/SuperBall


                                                             Me!
Read!                                                 Thomas Fankhauser
                                                    tommylefunk@googlemail.com



                 Thank you                                  Hire!
                   You learned a lot!                   southdesign.de


                                                             Buy!
                                                          Beatfreak
                                                          PianoTabs
                                                         QuestionPad

More Related Content

What's hot

All about monitors2
All about monitors2All about monitors2
All about monitors2Saumya Sood
 
Motion Sensor Presentation
Motion Sensor PresentationMotion Sensor Presentation
Motion Sensor PresentationFibaro USA
 
Katalóg Sekonic C-700, colormeter
Katalóg Sekonic C-700, colormeterKatalóg Sekonic C-700, colormeter
Katalóg Sekonic C-700, colormeterDarian
 
Impact of cloud connected, location-aware, media-rich world on consumers, ent...
Impact of cloud connected, location-aware, media-rich world on consumers, ent...Impact of cloud connected, location-aware, media-rich world on consumers, ent...
Impact of cloud connected, location-aware, media-rich world on consumers, ent...CSR
 
Izinova display-solution 2013
Izinova  display-solution 2013Izinova  display-solution 2013
Izinova display-solution 2013openerp1
 
Games With Sensors: CommonSenses - A proposed health game platform
Games With Sensors: CommonSenses - A proposed health game platformGames With Sensors: CommonSenses - A proposed health game platform
Games With Sensors: CommonSenses - A proposed health game platformJames Burns
 
Bringing Consumers a Premium Audio Experience
Bringing Consumers a Premium Audio ExperienceBringing Consumers a Premium Audio Experience
Bringing Consumers a Premium Audio ExperienceEllis Reid
 
Computer control using hand gestures
Computer control using hand gesturesComputer control using hand gestures
Computer control using hand gesturesRohithND
 
02 a pcam dcv specification sheet
02 a pcam dcv specification sheet02 a pcam dcv specification sheet
02 a pcam dcv specification sheetIlias Varsamis
 

What's hot (15)

All about monitors2
All about monitors2All about monitors2
All about monitors2
 
Sony HVR-Z5E
Sony HVR-Z5ESony HVR-Z5E
Sony HVR-Z5E
 
Sony HVR-S270E
Sony HVR-S270ESony HVR-S270E
Sony HVR-S270E
 
Motion Sensor Presentation
Motion Sensor PresentationMotion Sensor Presentation
Motion Sensor Presentation
 
Katalóg Sekonic C-700, colormeter
Katalóg Sekonic C-700, colormeterKatalóg Sekonic C-700, colormeter
Katalóg Sekonic C-700, colormeter
 
Dukane 6340 dlp projector
Dukane 6340 dlp projectorDukane 6340 dlp projector
Dukane 6340 dlp projector
 
Impact of cloud connected, location-aware, media-rich world on consumers, ent...
Impact of cloud connected, location-aware, media-rich world on consumers, ent...Impact of cloud connected, location-aware, media-rich world on consumers, ent...
Impact of cloud connected, location-aware, media-rich world on consumers, ent...
 
Robotics
RoboticsRobotics
Robotics
 
Izinova display-solution 2013
Izinova  display-solution 2013Izinova  display-solution 2013
Izinova display-solution 2013
 
Games With Sensors: CommonSenses - A proposed health game platform
Games With Sensors: CommonSenses - A proposed health game platformGames With Sensors: CommonSenses - A proposed health game platform
Games With Sensors: CommonSenses - A proposed health game platform
 
Elektor 0304-2020
Elektor 0304-2020Elektor 0304-2020
Elektor 0304-2020
 
Bringing Consumers a Premium Audio Experience
Bringing Consumers a Premium Audio ExperienceBringing Consumers a Premium Audio Experience
Bringing Consumers a Premium Audio Experience
 
Computer control using hand gestures
Computer control using hand gesturesComputer control using hand gestures
Computer control using hand gestures
 
02 a pcam dcv specification sheet
02 a pcam dcv specification sheet02 a pcam dcv specification sheet
02 a pcam dcv specification sheet
 
D link dcs-7010 l brochure
D link dcs-7010 l brochureD link dcs-7010 l brochure
D link dcs-7010 l brochure
 

Similar to iOS Sensors

Augmented Reality: Beyond the Hype
Augmented Reality: Beyond the HypeAugmented Reality: Beyond the Hype
Augmented Reality: Beyond the HypePaul Coulton
 
Virtual Reality (VR) - technology and product overview
Virtual Reality (VR) - technology and product overviewVirtual Reality (VR) - technology and product overview
Virtual Reality (VR) - technology and product overviewKun-Da Wu
 
Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...
Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...
Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...Ontico
 
Track 1 session 2 - st dev con 2016 - dsp concepts - innovating iot+wearab...
Track 1   session 2 - st dev con 2016 -  dsp concepts - innovating iot+wearab...Track 1   session 2 - st dev con 2016 -  dsp concepts - innovating iot+wearab...
Track 1 session 2 - st dev con 2016 - dsp concepts - innovating iot+wearab...ST_World
 
“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...
“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...
“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...Edge AI and Vision Alliance
 
On-device Motion Tracking for Immersive VR
On-device Motion Tracking for Immersive VROn-device Motion Tracking for Immersive VR
On-device Motion Tracking for Immersive VRQualcomm Research
 
Trends in mobile sensors: how smartphones keep changing our life
Trends in mobile sensors: how smartphones keep changing our lifeTrends in mobile sensors: how smartphones keep changing our life
Trends in mobile sensors: how smartphones keep changing our lifeSnapbackLabs
 
2014 mobile trends_27th Jan
2014 mobile trends_27th Jan2014 mobile trends_27th Jan
2014 mobile trends_27th Janmomoahmedabad
 
Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...
Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...
Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...ACTUONDA
 
Wearable Computing and Human Computer Interfaces
Wearable Computing and Human Computer InterfacesWearable Computing and Human Computer Interfaces
Wearable Computing and Human Computer InterfacesJeffrey Funk
 
"Achieving High-Performance Vision Processing for Embedded Applications with ...
"Achieving High-Performance Vision Processing for Embedded Applications with ..."Achieving High-Performance Vision Processing for Embedded Applications with ...
"Achieving High-Performance Vision Processing for Embedded Applications with ...Edge AI and Vision Alliance
 
Sensors intigration.docx
Sensors intigration.docxSensors intigration.docx
Sensors intigration.docxDIVEETHMp
 
FUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADAR
FUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADARFUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADAR
FUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADARiQHub
 
Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt )
Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt ) Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt )
Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt ) Alina Vilk
 
Goertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator Program
Goertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator ProgramGoertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator Program
Goertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator ProgramAugmentedWorldExpo
 
Mixed Reality Interfaces and Product Management
Mixed Reality Interfaces and Product ManagementMixed Reality Interfaces and Product Management
Mixed Reality Interfaces and Product ManagementJeremy Horn
 
Augmented Reality
Augmented RealityAugmented Reality
Augmented RealityKaviyaraj R
 
I Adept Marketing, New Delhi, VIBRATION MONITORING SERVICES
I Adept Marketing, New Delhi, VIBRATION MONITORING SERVICESI Adept Marketing, New Delhi, VIBRATION MONITORING SERVICES
I Adept Marketing, New Delhi, VIBRATION MONITORING SERVICESIndiaMART InterMESH Limited
 

Similar to iOS Sensors (20)

Augmented Reality: Beyond the Hype
Augmented Reality: Beyond the HypeAugmented Reality: Beyond the Hype
Augmented Reality: Beyond the Hype
 
Virtual Reality (VR) - technology and product overview
Virtual Reality (VR) - technology and product overviewVirtual Reality (VR) - technology and product overview
Virtual Reality (VR) - technology and product overview
 
Programmable watches
Programmable watchesProgrammable watches
Programmable watches
 
Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...
Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...
Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...
 
Track 1 session 2 - st dev con 2016 - dsp concepts - innovating iot+wearab...
Track 1   session 2 - st dev con 2016 -  dsp concepts - innovating iot+wearab...Track 1   session 2 - st dev con 2016 -  dsp concepts - innovating iot+wearab...
Track 1 session 2 - st dev con 2016 - dsp concepts - innovating iot+wearab...
 
“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...
“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...
“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...
 
On-device Motion Tracking for Immersive VR
On-device Motion Tracking for Immersive VROn-device Motion Tracking for Immersive VR
On-device Motion Tracking for Immersive VR
 
Trends in mobile sensors: how smartphones keep changing our life
Trends in mobile sensors: how smartphones keep changing our lifeTrends in mobile sensors: how smartphones keep changing our life
Trends in mobile sensors: how smartphones keep changing our life
 
2014 mobile trends_27th Jan
2014 mobile trends_27th Jan2014 mobile trends_27th Jan
2014 mobile trends_27th Jan
 
Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...
Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...
Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...
 
Wearable Computing and Human Computer Interfaces
Wearable Computing and Human Computer InterfacesWearable Computing and Human Computer Interfaces
Wearable Computing and Human Computer Interfaces
 
"Achieving High-Performance Vision Processing for Embedded Applications with ...
"Achieving High-Performance Vision Processing for Embedded Applications with ..."Achieving High-Performance Vision Processing for Embedded Applications with ...
"Achieving High-Performance Vision Processing for Embedded Applications with ...
 
gesture recognition!
gesture recognition!gesture recognition!
gesture recognition!
 
Sensors intigration.docx
Sensors intigration.docxSensors intigration.docx
Sensors intigration.docx
 
FUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADAR
FUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADARFUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADAR
FUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADAR
 
Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt )
Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt ) Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt )
Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt )
 
Goertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator Program
Goertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator ProgramGoertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator Program
Goertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator Program
 
Mixed Reality Interfaces and Product Management
Mixed Reality Interfaces and Product ManagementMixed Reality Interfaces and Product Management
Mixed Reality Interfaces and Product Management
 
Augmented Reality
Augmented RealityAugmented Reality
Augmented Reality
 
I Adept Marketing, New Delhi, VIBRATION MONITORING SERVICES
I Adept Marketing, New Delhi, VIBRATION MONITORING SERVICESI Adept Marketing, New Delhi, VIBRATION MONITORING SERVICES
I Adept Marketing, New Delhi, VIBRATION MONITORING SERVICES
 

More from Thomas Fankhauser

More from Thomas Fankhauser (7)

Hands on AngularJS
Hands on AngularJSHands on AngularJS
Hands on AngularJS
 
Restats
RestatsRestats
Restats
 
Github - Social Coding
Github - Social CodingGithub - Social Coding
Github - Social Coding
 
Benji - Ruby on Rails Profiler
Benji - Ruby on Rails ProfilerBenji - Ruby on Rails Profiler
Benji - Ruby on Rails Profiler
 
Railscale
RailscaleRailscale
Railscale
 
Super Social Everybody
Super Social EverybodySuper Social Everybody
Super Social Everybody
 
OAuth 101
OAuth 101OAuth 101
OAuth 101
 

Recently uploaded

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

iOS Sensors

  • 2. Roadmap 100 Roadmap Where We’re Going
  • 3. Teaser: What to Expect! 96 Teaser What to Expect!
  • 4. Teaser: What to Expect! 96 Teaser What to Expect! Digital Camera
  • 5. Teaser: What to Expect! 96 Teaser What to Expect! Audio Sampler Digital Camera
  • 6. Teaser: What to Expect! 96 Teaser What to Expect! Navigation System Audio Sampler Digital Camera
  • 7. Teaser: What to Expect! 96 Teaser What to Expect! Air Level Navigation System Audio Sampler Digital Camera
  • 8. Teaser: What to Expect! 96 Teaser What to Expect! Ball Game Air Level Navigation System Audio Sampler Digital Camera
  • 9. Teaser: What to Expect! 96 Teaser What to Expect! Compass Ball Game Air Level Navigation System Audio Sampler Digital Camera
  • 10. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference
  • 11. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers
  • 12. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone
  • 13. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone Camera Camera
  • 14. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone Camera Camera GPS
  • 15. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone Camera Camera GPS Accelerometer
  • 16. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone Camera Camera GPS Accelerometer Gyroscope
  • 17. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone Camera Camera GPS Accelerometer Gyroscope Magnetometer
  • 18. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone Camera Camera GPS Accelerometer Mobile Sensors Gyroscope Magnetometer
  • 19. Sensors in 12 Device Generations 88 Sensors in Device Generations Great Common Denominators With iPod All 12 Generations - 2007+ Without iPod
  • 20. Sensors in 12 Device Generations 88 Sensors in Device Generations Great Common Denominators With iPod All 12 Generations - 2007+ Without iPod 100.00% 75.00% 50.00% 25.00% 0% Speaker Microphone Accelerometer GPS Camera Gyroscope Magnetometer
  • 21. Sensors in 7 Device Generations 84 Sensors in Device Generations Great Common Denominators With iPod Latest 7 Generations - 2010+ Without iPod 100.00% 75.00% 50.00% 25.00% 0% Speaker Microphone Accelerometer GPS Camera Gyroscope Magnetometer
  • 22. Sensors in 7 Device Generations 84 Sensors in Device Generations Great Common Denominators With iPod Latest 7 Generations - 2010+ Without iPod 100.00% 75.00% 50.00% Majority 25.00% 0% Speaker Microphone Accelerometer GPS Camera Gyroscope Magnetometer
  • 23. Delegate Pattern 80 Delegate Pattern Quick Look
  • 24. Delegate Pattern 80 Delegate Pattern Quick Look Delegate
  • 25. Delegate Pattern 80 Delegate Pattern Quick Look Delegate didArriveAtBar: didDrinkBeerNumber: didUpdateAlcoholLevel: wantsMeToComeHome: didCallCab: didEnterCab: didExitCab:
  • 26. Roadmap 76 Roadmap Where We’re Going
  • 27. Light: Implementing a Camera 72 Light Implementing a Camera
  • 28. Light: Implementing a Camera 72 Light Implementing a Camera // setup image picker controller imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.allowsEditing = NO; imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; imagePickerController.delegate = self; // display [viewController presentModalViewController:imagePickerController animated:YES]; // grab photo as soon as it was taken -(void) imagePickerController:(UIImagePickerController *)picker / didFinishPickingMediaWithInfo:(NSDictionary *)info{     // captured image     UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];          // dismiss image picker     [viewController dismissModalViewControllerAnimated:YES]; }
  • 29. Light: Implementing a Camera 72 Light Implementing a Camera // setup image picker controller imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.allowsEditing = NO; imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; imagePickerController.delegate = self; // display Camera Demo [viewController presentModalViewController:imagePickerController animated:YES]; // grab photo as soon as it was taken -(void) imagePickerController:(UIImagePickerController *)picker / didFinishPickingMediaWithInfo:(NSDictionary *)info{     // captured image     UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];          // dismiss image picker     [viewController dismissModalViewControllerAnimated:YES]; }
  • 30. Sound: Implementing a Sound Recorder 68 Sound Implementing a Sound Recorder
  • 31. Sound: Implementing a Sound Recorder 68 Sound Implementing a Sound Recorder // get audio session AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryRecord error:nil]; [audioSession setActive:YES error:nil]; // some settings  NSMutableDictionary *settings = [[NSMutableDictionary alloc] init]; [settings setValue:[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey]; [settings setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; [settings setValue:[NSNumber numberWithInt:2] forKey:AVNumberOfChannelsKey];      tmpRecording = [NSURL fileURLWithPath:[NSTemporaryDirectory() / stringByAppendingPathComponent:@"recording.caf"]]; // start recording   audioRecorder = [[AVAudioRecorder alloc] initWithURL:tmpRecording settings:settings error:nil]; [audioRecorder setDelegate:self]; [audioRecorder prepareToRecord]; [audioRecorder recordForDuration:2.0];      // do when recording is finished - (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag{     isRecording = NO;      }
  • 32. Sound: Implementing a Sound Player 64 Sound Implementing a Sound Player
  • 33. Sound: Implementing a Sound Player 64 Sound Implementing a Sound Player // get audio session AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil]; [audioSession setActive:YES error:nil];      tmpRecording = [NSURL fileURLWithPath:[NSTemporaryDirectory() / stringByAppendingPathComponent:@"recording.caf"]]; // start playing   AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:tmpRecording error:nil]; [player setDelegate:self]; [player prepareToPlay]; [player play];      // do when recording is finished - (void)audioRecorderDidFinishPlaying:(AVAudioRecorder *)recorder successfully: (BOOL)flag{     isPlaying = NO;   }
  • 34. Sound: Implementing a Sound Player 64 Sound Implementing a Sound Player // get audio session AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil]; [audioSession setActive:YES error:nil];      Sound Demo tmpRecording = [NSURL fileURLWithPath:[NSTemporaryDirectory() / stringByAppendingPathComponent:@"recording.caf"]]; // start playing   AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:tmpRecording error:nil]; [player setDelegate:self]; [player prepareToPlay]; [player play];      // do when recording is finished - (void)audioRecorderDidFinishPlaying:(AVAudioRecorder *)recorder successfully: (BOOL)flag{     isPlaying = NO;   }
  • 35. Location: Implementing a Positioning System 60 Location Implementing a Positioning System
  • 36. Location: Implementing a Positioning System 60 Location Implementing a Positioning System // create location manager locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;      // start location update [locationManager startUpdatingLocation]; // process position -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{ // access position float latitude = newLocation.coordinate.latitude; float longitude = newLocation.coordinate.longitude;     // one position is enough     [locationManager stopUpdatingLocation]; }
  • 37. Location: Implementing a Positioning System 60 Location Implementing a Positioning System // create location manager locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;      Positioning Demo // start location update [locationManager startUpdatingLocation]; // process position -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{ // access position float latitude = newLocation.coordinate.latitude; float longitude = newLocation.coordinate.longitude;     // one position is enough     [locationManager stopUpdatingLocation]; }
  • 38. Magnetic Field: Implementing a Compass 56 Magnetic Field Implementing a Compass
  • 39. Magnetic Field: Implementing a Compass 56 Magnetic Field Implementing a Compass // setup location manager locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; [locationManager startUpdatingHeading]; // receive update of heading -(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading{ // device is pointing ‘heading’ away from north float heading = manager.heading.magneticHeading;      }
  • 40. Magnetic Field: Implementing a Compass 56 Magnetic Field Implementing a Compass // setup location manager locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; Compass Demo [locationManager startUpdatingHeading]; // receive update of heading -(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading{ // device is pointing ‘heading’ away from north float heading = manager.heading.magneticHeading;      }
  • 41. Roadmap 52 Roadmap Where We’re Going
  • 42. Accelerometer: May the Force be with you 48 Accelerometer May the Force be with you
  • 43. Accelerometer: May the Force be with you 48 Accelerometer May the Force be with you Force in g-force -1.0 0.0 0.0
  • 44. Accelerometer: May the Force be with you 48 Accelerometer May the Force be with you Force Rotation in g-force in degrees -1.0 0.0 0.0 -0.5 0.0 0.5
  • 45. Accelerometer: May the Force be with you 48 Accelerometer May the Force be with you Force Rotation in g-force in degrees Accelerometer Demo -1.0 0.0 0.0 -0.5 0.0 0.5
  • 46. Accelerometer: May the Force be with you 44 Accelerometer May the Force be with you
  • 47. Accelerometer: May the Force be with you 44 Accelerometer May the Force be with you // enable accelerometer [[UIAccelerometer sharedAccelerometer] setDelegate:self]; // receive the acceleration values - (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { // move ball ball.x += acceleration.x * kBallSpeed; ball.y += acceleration.y * kBallSpeed; // rotate air level level.rotation = acceleration.y * 90; }
  • 48. Gyroscope: I’m spinnin’ around 40 Gyroscope I’m spinnin’ around
  • 49. Gyroscope: I’m spinnin’ around 40 Gyroscope I’m spinnin’ around Rotation Rate in radians per second 0.0 0.0 0.0
  • 50. Gyroscope: I’m spinnin’ around 40 Gyroscope I’m spinnin’ around Rotation Rate Absolute Rotation in radians per second in radians by adding all rates to reference frame 0.0 0.78 0.0 0.0 0.0 0.0
  • 51. Gyroscope: I’m spinnin’ around 40 Gyroscope I’m spinnin’ around Rotation Rate Absolute Rotation in radians per second in radians by adding all rates to reference frame Gyroscope Demo 0.0 0.78 0.0 0.0 0.0 0.0
  • 52. Gyroscope: I’m spinnin’ around 36 Gyroscope I’m spinnin’ around
  • 53. Gyroscope: I’m spinnin’ around 36 Gyroscope I’m spinnin’ around // create core motion manager motionManager = [[CMMotionManager alloc] init]; motionManager.gyroUpdateInterval = 1.0/60.0; [motionManager startGyroUpdates]; // frequently call the update method [self schedule:@selector(update:)]; // frequently read the gyro data -(void)update:(ccTime)dt { // absolute rotation rotationX += motionManager.gyroData.rotationRate.x; rotationY += motionManager.gyroData.rotationRate.y; // move ball ball.x += rotationX + kBallSpeed; ball.y += rotationY + kBallSpeed; // rotate air level level.rotation = rotationY * 180/PI; }
  • 54. CoreMotion: Use this! 32 CoreMotion Use this!
  • 55. CoreMotion: Use this! 32 CoreMotion Use this! + Raw data Accelerometer + Gyroscope
  • 56. CoreMotion: Use this! 32 CoreMotion Use this! + Raw data Accelerometer + Gyroscope CoreMotion Framework 6 Degrees of Freedom Inertial System Dead Reckoning
  • 57. CoreMotion: Use this! 28 CoreMotion Use this! +
  • 58. CoreMotion: Use this! 28 CoreMotion Use this! + // create core motion manager motionManager = [[CMMotionManager alloc] init]; motionManager.motionUpdateInterval = 1.0/60.0; [motionManager startMotionUpdates]; // frequently call the update method [self schedule:@selector(update:)];
  • 59. CoreMotion: Use this! 20 CoreMotion Use this! +
  • 60. CoreMotion: Use this! 20 CoreMotion Use this! + // frequently read the gyro data -(void)update:(ccTime)dt { // absolute rotation rotationX = motionManager.deviceMotion.attitude.pitch; rotationY = motionManager.deviceMotion.attitude.yaw; rotationZ = motionManager.deviceMotion.attitude.roll; // absolute gravity gravityX = motionManager.deviceMotion.gravity.x; gravityY = motionManager.deviceMotion.gravity.y; gravityZ = motionManager.deviceMotion.gravity.z; // user acceleration accelerationX = motionManager.deviceMotion.userAcceleration.x; accelerationY = motionManager.deviceMotion.userAcceleration.y; accelerationZ = motionManager.deviceMotion.userAcceleration.z; }
  • 61. CoreMotion: Use this! 20 CoreMotion Use this! + // frequently read the gyro data -(void)update:(ccTime)dt { // absolute rotation rotationX = motionManager.deviceMotion.attitude.pitch; rotationY = rotationZ = CoreMotion Demo motionManager.deviceMotion.attitude.yaw; motionManager.deviceMotion.attitude.roll; // absolute gravity gravityX = motionManager.deviceMotion.gravity.x; gravityY = motionManager.deviceMotion.gravity.y; gravityZ = motionManager.deviceMotion.gravity.z; // user acceleration accelerationX = motionManager.deviceMotion.userAcceleration.x; accelerationY = motionManager.deviceMotion.userAcceleration.y; accelerationZ = motionManager.deviceMotion.userAcceleration.z; }
  • 62. Roadmap 16 Roadmap Where We’re Going
  • 63. Summary: What we did not cover 10 Summary What we did not cover
  • 64. Summary: What we did not cover 10 Summary What we did not cover GPS Accuracy
  • 65. Summary: What we did not cover 10 Summary What we did not cover Shaking-Motion Events GPS Accuracy
  • 66. Summary: What we did not cover 10 Summary What we did not cover Recording Movies Shaking-Motion Events GPS Accuracy
  • 67. Summary: What we did not cover 10 Summary What we did not cover Sensor Availability Recording Movies Shaking-Motion Events GPS Accuracy
  • 68. Summary: What we did not cover 10 Summary What we did not cover Sensor Availability Recording Movies Shaking-Motion Events GPS Accuracy http://developer.apple.com/library/ios
  • 69. Summary: What we learned! 5 Summary What we learned!
  • 70. Summary: What we learned! 5 Summary What we learned! Capturing Images
  • 71. Summary: What we learned! 5 Summary What we learned! Recording & Playing Sound Capturing Images
  • 72. Summary: What we learned! 5 Summary What we learned! Geolocating Device Recording & Playing Sound Capturing Images
  • 73. Summary: What we learned! 5 Summary What we learned! Reading Device Position + 6 Degrees of Freedom Geolocating Device Recording & Playing Sound Capturing Images
  • 74. Summary: What we learned! 5 Summary What we learned! Finding Magnetic North Reading Device Position + 6 Degrees of Freedom Geolocating Device Recording & Playing Sound Capturing Images
  • 75. Thank you: You learned a lot! 0 Thank you You learned a lot!
  • 76. Thank you: You learned a lot! 0 Download! https://github.com/southdesign/SuperBall Me! Read! Thomas Fankhauser tommylefunk@googlemail.com Thank you Hire! You learned a lot! southdesign.de Buy! Beatfreak PianoTabs QuestionPad