[iPhone] CoreMotion スマホの傾きを検出する (Objective-C)

スマホには加速度センサーがあり、傾きを検知できます。
 
coremotion_0

CoreMotion

 
3軸の加速度センサー

Event handling for iOS によると 上の図のように3軸の加速度センサーが搭載されており、CMAccelerometerData のオブジェクトとしてキャプチャーされています。
 
ここで気をつけないといけないのは加速度センサーなので加速度を加えたときだけ検知するのではなくそれに重力加速度も加わっているということです。
 
右に傾けたときは、当然加速度が出ますが、傾いたままでも重力加速度が残っているという事です。細かく言うと地球の自転による遠心力が逆に働いていてその差が重力な訳ですが。昔習ったお話ですねー
 

加速度センサーの値を取り出す

 
加速度センサーの値を読み出すコードを実装してみましょう。
 
CoreMotion の3軸の値を表示するためのラベルを配置します。

ViewController.h

 
センサー値の取り出し方には2通りあります
 

 

 
今回はこちらを使います
 
ViewController.m

 
IBのラベルとコードをつなげて
ビルド実行すると
3軸のセンサーデータが読み取れます
 

 
実際の生のデータはローパスフィルタなどを使わないと
扱いにくいとは思います。
 
Swiftのケースはこちらです。

一人でアプリ開発の限界を感じたら

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンライン・スクールがいいと思います。


TECH ACADEMY
自宅にいながら1時間でプログラミング基礎を習得

こういうものではアプリ作れないと言う意見もありますが、それは結局本人のやる気があるかないかです。やる気があっても独学では突破しにくいところは教えてもらうのが一番早い。


侍エンジニア塾
侍エンジニア塾 無料体験レッスン



とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


CodeCamp
~約20,000名の受講生と300社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp




直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。


Play Ground
本業と並行してやるには月額制なのがありがたいです。


無料で転職まで
これはiOSアプリ限定ではありませんが無料です
その代わり就職することを前提にしたスクールで「エンジニアになって職を得たい」のであれば手っ取り早いかもしれません


誤字脱字、意味不明などのご意見は 謙: e-mail まで
ブックマークしておくと便利です このエントリーをはてなブックマークに追加
Twitter:


シェアする

  • このエントリーをはてなブックマークに追加

フォローする