見出し画像

スマホのセンサー情報をMATLABで使おう

今回は、MATLAB Mobile アプリでスマホのセンサー情報を扱う方法についてです。(要MATLABライセンス)

色々なことができるので、基本的な使い方だけ。

今回の例では、スマホを動かすと、リアルタイムにスマホからのセンサー情報を表示しながらMATLAB上のグラフが回転します

画像1

早速やってみましょう。

準備

PCとスマホをネットワークに接続

PCでMATLABを起動
 環境 -> アドオン -> ハードウェアサポートの入手
で、使うスマホに合わせて "MATLAB Support Package for Apple iOS Sensors" もしくは "MATLAB Support Package for Android Sensors" をインストール

画像10

(Prerelease版ではアドオン エクスプローラーが起動しませんが、正式版でインストール済みだと、自動的にインストール画面に進むようです)

スマホにMATLAB Mobileアプリをインストールし、MATLABアカウントでログイン

アプリ設定

 メニュー -> センサー -> その他
  センサーアクセス ON

画像3

 メニュー -> センサー
  ストリーム先:MATLAB
  "方向"をONにします

画像4


画像4


アプリは接続待ち状態になります。

スクリプト実行

このライブスクリプトをMATLABで実行します。

if exist('m','var')
   clear m
end
m = mobiledev;
disp('Ready to start')
while isempty(m.Orientation); end
m.Logging = 1;
figure(1)
while (1==1)
   a = m.Orientation;
   drawnow
   if isempty(a); break; end
   bar3(a)
   view(a(1),a(2))
end
m.Logging = 0;
[o,to] = orientlog(m);
tInit = datetime(m.InitialTimestamp,'InputFormat','dd-MMM-yyyy HH:mm:ss.SSS','Locale',"en_GB");
tOrient = tInit + seconds(to);

figure(2)
plot(tOrient,o);
legend('方向','傾斜','回転',Location='best');
xlabel('時刻 (s)');
grid on
discardlogs(m)
clear m


しばらく待ってアプリと接続されるとライブエディターの右ペインに "Ready to start" と表示されます。

画像9

アプリでは "開始" ボタンが押せるようになるのでタッチして開始します。

画像5


スマホを動かすと、グラフが動きます。

画像6


アプリの "停止" をタップして終了します。

画像7

ログが表示されます。ログのタイムスタンプを、時刻に直して表示しています。

画像8

上のグラフを保存したのが、最初のアニメーションです。

R2021bだと、グラフ右下のアイコンで直接ビデオ(mp4/avi)かGIFアニメに保存できるので便利ですね。(u_u)

スマホを振ってMATLABを操作できるのは面白いですよね。


カメラ画像も撮れるのですが、フォーカスも合わせられなかったので今回は省略します。(;¬_¬)

m = mobiledev;
cam = camera(m,'back');
[img,timestamp] = snapshot(cam,'immediate');
%[img,timestamp] = snapshot(cam,'manual');
image(img)

> 追補
以下のようにすれば良いようです!

cam.Autofocus = 'on';
cam.Resolution = '1280x720';


色々と応用が考えられそうなので、MATLAB芸人の方々にも期待したいところです。( ̄ー ̄)

では。



この記事が気に入ったらサポートをしてみませんか?