アサリの砂抜きは不要?

アサリの砂抜きは常識ですが、実際は潮干狩りで取ったアサリを良く洗えば直ぐ食べれます??

iPhone開発(4):加速度測定

2009-05-27 23:30:14 | 開発

一応、加速度を取得して、表示できるところまでは出来た。

<動作>
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];
 }
}


 


最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
質問 (devbetter)
2010-08-08 11:52:01
acceleration.x
acceleration.y
acceleration.z
表示された値は実際加速度値ではないでしょうか?
返信する
加速度ですね (amru1957)
2010-08-11 21:13:24
そうですね。加速度です。動いていない時は、重力方向に1.0近くになります。地球を重力を1とした値ですね。
何か質問が有りましたら@amru1957へtweetしてもらうと、早く返事が戻せる。。。と思います。
返信する

コメントを投稿