一応、加速度を取得して、表示できるところまでは出来た。
<動作>
1)開始ボタンで測定開始
2)1秒タイマーで経過時間を表示
3)加速度数値(-1.0~+1.0)をXYZ別に表示
4)加速度をプログレスバーに表示
5)終了ボタンで測定終了
大体のソースは以下の感じですね。クラスの使用方法説明がなかなか見つけられないので、慣れるまではなかなか進みが遅いですが、こんなに少ないソースででそれなりの動作が出来るのは凄いことです。やる気が出てきますね。
<インターフェース部分>
@interface uTimerViewController : UIViewController {
NSTimer *timer ;
//
IBOutlet UIButton *startBtn; // 開始ボタン
IBOutlet UIButton *stopBtn; // 終了ボタン
IBOutlet UILabel *dispTime; // timeの表示ラベル
IBOutlet UILabel *dispXYZ; // 加速度の表示ラベル
IBOutlet UIProgressView *progX ;// X加速度
IBOutlet UIProgressView *progY ;// Y加速度
IBOutlet UIProgressView *progZ ;// Z加速度
IBOutlet UIView *graph ; //加速度グラフ
//
double accelX, accelY, accelZ; // 加速度
bool startFlg ;
int count ;
}
- (IBAction)stopTimer; // Speed==0
- (IBAction)startTimer; // mag変更
- (void)countUp:(NSTimer *)timer; // タイマーから呼び出される
<実装部分>
- (void)viewDidLoad {
[super viewDidLoad];
timer = // タイマーの作成(動作開始)
[NSTimer scheduledTimerWithTimeInterval:1.0 // 時間間隔(秒)
target:self // 呼び出すオブジェクト
selector:@selector(countUp:) // 呼び出すメソッド
userInfo:nil // ユーザ利用の情報オブジェクト
repeats:YES]; // 繰り返し
count=0 ;
startFlg=FALSE ;
// 加速度センサーの設定
UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
accelerometer.updateInterval = 0.02;
accelerometer.delegate = self;
}
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
// 加速度センサー表示
if (startFlg) {
accelX = acceleration.x;
accelY = acceleration.y;
accelZ = acceleration.z;
dispXYZ.text = [NSString stringWithFormat:@"X%+2.1fY%+2.1fZ%+2.1f",
accelX,accelY,accelZ];
progX.progress=(accelX+1.0)/2.0 ;
progY.progress=(accelY+1.0)/2.0 ;
progZ.progress=(accelZ+1.0)/2.0 ;
}
}
- (IBAction)stopTimer
{
startFlg=FALSE ;
count = 0 ;
}
- (IBAction)startTimer
{
startFlg=TRUE ;
}
// タイマーから呼び出されるメソッド
- (void)countUp:(NSTimer *)timer
{
if (startFlg) {
count++ ;
int sec = count % 60 ;
int min = ((count - sec)/60 ) % 60 ;
int hour = (count - sec - min*60)/3600 % 60 ;
dispTime.text = [NSString stringWithFormat:@"%02d:%02d:%02d", hour,min,sec];
}
}
acceleration.y
acceleration.z
表示された値は実際加速度値ではないでしょうか?
何か質問が有りましたら@amru1957へtweetしてもらうと、早く返事が戻せる。。。と思います。