加速度計試験顛末
Yutaka Yasuda, Kyoto Sangyo Univerisity

OpenGL ES Application

勝手にここまで実行結果

OpenGL ES1 / ES2

完全に２セットある

ココを見る

EAGLView.m//The GL view is stored in the nib file. When it's
unarchived it's sent -initWithCoder:- (id) initWithCoder:(NSCoder*)coder{
if ((self = [super initWithCoder:coder]))! {.... 略 ....
!!
! !
! !
! !
! !
! !
! !
! !
! !
! !

renderer = [[ES2Renderer alloc] init];if (!renderer){! renderer = [[ES1Renderer alloc] init];! if (!renderer)! {! ! [self release];! ! return nil;! }}EAGLView.m#import "EAGLView.h"#import "ES1Renderer.h"#import "ES2Renderer.h"@implementation EAGLView@synthesize animating;@dynamic animationFrameInterval;..(略)..
- (id) initWithCoder:(NSCoder*)coder{..(略)..

さっきの}- (void) drawView:(id)sender{[renderer render];}

これで描画を実施

ESRender.h@protocol ESRenderer <NSObject>- (void) render;- (BOOL) resizeFromLayer:(CAEAGLLayer *)layer;@end

EAGLView.h#import "ESRenderer.h"@interface EAGLView : UIView{@private! id <ESRenderer> renderer;!
! BOOL animating;! BOOL displayLinkSupported;! NSInteger animationFrameInterval;! id displayLink;
NSTimer *animationTimer;}

あったES2Renderer.m#import "ES2Renderer.h"@interface ES2Renderer (PrivateMethods)
.....
@end
@implementation ES2Renderer// Create an ES 2.0 context- (id) init { }こんなん言うてはります- (void) render{// Replace the implementation of this method to do your own custom drawing}...（その他数種の関数定義）...
- (void) dealloc { ... }@end

ES1Renderer.m も同構造

構造

２セット
用意
本体の実装はこの中renderer の定義
初期化時にどちらを使うかrenderer に設定

加速度計
Z-Y

X-X
Y-Z

accelerometerxxxxxAppDelegate.h#import <UIKit/UIKit.h>@class EAGLView;@interface accuracyTestAppDelegate :NSObject <UIApplicationDelegate, UIAccelerometerDelegate> {UIWindow *window;
EAGLView *glView;!
}

追加@property (nonatomic, retain) IBOutlet UIWindow *window;@property (nonatomic, retain) IBOutlet EAGLView *glView;@endaccelerometerxxxxxAppDelegate.m- (void) accelerometer:(UIAccelerometer *)accelerometer
didAccelerate:(UIAcceleration *)acceleration{
acceleration.x, acceleration.y, acceleration.zが使える}- (void) applicationDidFinishLaunching:(UIApplication *)application{! // 加速度計の設定! [UIAccelerometer sharedAccelerometer].updateInterval = 0.03;! [UIAccelerometer sharedAccelerometer].delegate = self;! [glView startAnimation];}実際の測定値
Z
-Y

X

-X

Y

-Z : -1.0 近辺-Z
X, Y : せいぜい 0.25

差0.01812 <0.01811 <0.01811 <0.01811 <0.01811 <0.03623 <0.01811 <0.01811 <0.01812 <0.01811 <0.01811 <0.01811 <0.01811 <0.01812 <0.01811 <0.01811 <0.03622 <0.01812 <0.01811 <0.03622 <0.01812 <加速度 出現回数-0.188372-0.17025
3-0.15214
3-0.13403
3-0.11592
3-0.09781
3-0.06158
1-0.04347
3-0.02536
4-0.00724
270.01087
45
0.02898
10.04709
10.0652
10.08332
30.10143
10.11954
10.15576
20.17388
40.19199
20.22821
20.24633
1

X 軸方向の加速度計測値
特徴：・粗い（21種しか値がない）
・ゼロ近辺に集中
限りなく怪しい･･･

・0.01811 の倍数しかない。。
＝分解能が低すぎる

'#%%&!%'("#$%&!%'("#%%&!%'($#%%&!%)(-8.00E-03

-6.00E-03

-4.00E-03

%#%%&*%%(-2.00E-03 0.00E+00!$#%%&!%)(!"#%%&!%'(!"#$%&!%'(2.00E-03

4.00E-03

6.00E-03

8.00E-03

)#$$%!$&'&#($%!$&'&#$$%!$&'"#($%!$&'"#$$%!$&'

系列"'(#$$%!$)'-2.00E-02

-1.50E-02

-1.00E-02

$#$$%*$$'-5.00E-03
0.00E+00
!(#$$%!$)'!"#$$%!$&'

5.00E-03純粋なヨコ移動＋ちょい上昇
それら

しきX

まるで
重力加
速度
な値

ちょっと加
速さ
れた
重力
加
速度

軸の値