Main Contents

[Objective-c] iPhone et accéléromètre

mai 11, 2009

Aujourd’hui on va voir comment utilisez l’accéléromètre de l’iPhone, afficher les infos, et détecter une petite secousse.

Créez une application de type « View-Based » et donnez lui le nom de accel par exemple. Les fichiers qui vont nous intéresser sont accelViewController.h et accelViewController.m.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//accelViewController.h
#import 
 
@interface accelViewController : UIViewController  {
	IBOutlet UILabel *x;
	IBOutlet UILabel *y;
	IBOutlet UILabel *z;
	IBOutlet UILabel *shake;
}
 
@property (nonatomic, retain) IBOutlet UILabel *x;
@property (nonatomic, retain) IBOutlet UILabel *y;
@property (nonatomic, retain) IBOutlet UILabel *z;
@property (nonatomic, retain) IBOutlet UILabel *shake;
@end

Nous allons donc ajouter à notre vu 4 labels, x , y, z et shake et reliez les dans IB. Notez le UIAccelerometerDelegate dans la déclaration de l’interface.

Pour le 2ème fichier :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//accelViewController.m
#import "accelViewController.h"
 
@implementation accelViewController
@synthesize x,y,z, shake;
 
- (void)viewDidLoad {
	UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer];
	accel.delegate = self;
        [shake setText:@"calme"];
	accel.updateInterval = 10.0f/60.0f;
    [super viewDidLoad];
}
 
- (void)accelerometer:(UIAccelerometer *)acel didAccelerate:(UIAcceleration *)aceler {
 
	if (fabsf(aceler.x) > 1.5 || fabsf(aceler.y) > 1.5 || fabsf(aceler.z) > 1.5)
	{
 
			[shake setText:@"secousse"];
 
	}
	x.text=[NSString stringWithFormat:@"%f",aceler.x];
	y.text=[NSString stringWithFormat:@"%f",aceler.y];
	z.text=[NSString stringWithFormat:@"%f",aceler.z];
}

Ligne 8 et 9 on déclare l’accéléromètre et on définit le delegate, qui sera lui même. Ligne 10 on définit l’intervalle de rafraîchissement des données.
La méthode accelerometer:didAccelerate est donc exécutée dès que l’iPhone détecte un mouvement. Si on détecte un mouvement brusque on va afficher un texte particulier, par exemple secousse. Pour le reste, on va afficher les valeurs en temps réel des capteurs lignes 23, 24, 25.

accel

J’espère que ce petit tutorial vous aura été utile !

Catégorie(s): Développement, Iphone, Objective-C | Comments (9)

9 Comments