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

  1. bigshow (2 comments) mai 26, 2009 @ 22 h 31 min

    Yo !! merci encore, j’ai implémenté ça dans mon application et ça marche bien !!
    (elle est aussi multilingue grâce à toi)

    Encore merci pour ces tutos !!!!!!

  2. kraft (36 comments) mai 27, 2009 @ 9 h 33 min

    Héhé, tant mieux! Fait nous partager ton appli !

  3. Medhi Naitmazi (3 comments) août 4, 2009 @ 15 h 49 min

    sympa en effet et simple !

    bravo !

  4. Oliverjack (1 comments) mars 16, 2010 @ 16 h 17 min

    Très intéressant ce petit tutos.

    Est-ce que tu pourrais faire un tuto pour nous expliquer comment fonctionne la boussole iiphone par exemple. Récupération des valeurs et des données de localisation etc…

    Merci

  5. Sandy (2 comments) mars 23, 2010 @ 10 h 59 min

    Bonjour ,
    j ai essayer ce tuto ca marche ,mais je n arrive pas a afficher les valeurs en temps reel.
    j affiche :calme,X,Y,Z mais sans les valeurs devant.

    merci d avance et merci pour tout ce ke tu fais pour nous programmeur debuttant en Objective-c
    sandy

  6. Florent (1 comments) avril 30, 2010 @ 1 h 40 min

    Salut,

    Merci beaucoup pour le tuto, c’est vraiment sympa. Je débute en objective-c et je rencontre quelques difficultés…lorsque je veux compiler ça me dit :
    ‘gt’ undeclared

    Je ne suis pas sur d’avoir déclaré « UIAccelerometerDelegate » au bon endroit. Est-ce que ça peut être ça?

    Merci

    Florent

  7. Christophe Boude (1 comments) juillet 12, 2010 @ 17 h 02 min

    Salut mec!
    merci pour ce tuto, très bien fait.
    Je commence aujourd’hui le dev sur iphone et ça m’aide bien 😉

  8. laurent colas (athlete-endurance.com) (1 comments) août 6, 2010 @ 12 h 21 min

    simple et utile
    Merci pour l’exemple

  9. Petite liste de tutorial Objective-C et iPhone | MacFan août 13, 2010 @ 10 h 46 min

    […] récents laurent colas (athlete-endurance.com) (1 comments) dans [Objective-c] iPhone et accéléromètreyassine (2 comments) dans [PHP] Serveur de WebServices SOAPArnaud Casella (2 comments) dans [PHP] […]

Leave a comment