ここまでのおさらい
前回は、jitterによる様々な映像加工について学習しました
(4)と(5)ではさらに2つの新しいセンサを使っていきます
-
ToF距離センサ
推奨測定距離は30mm - 1000mm(最大2mまで)、1mm単位で測定できる対象物の反射率に関わらず正確な測距が可能
-
3軸加速度センサ(±1.5g)
X, Y, Z軸にかかる加速度を検出する
"g"は重力を基準とした加速度の大きさを表す単位で、重力と同じ大きさの力が加わる状況のことを"1g"ということがある。
この記事ではToF距離センサの使用法について説明します
ToF距離センサを使う
####ハードウェアの準備
- センサ(上の写真のもの)にコードを繋いで、Seeeduinoの「I2C」のポートに接続
- SeeeduinoをPCに接続
ソフトウェアの準備
-
センサを使用するためのライブラリを下記URLからダウンロード
緑色のアイコン
Clone or Download
を選択→Download ZIP
を選択
- Arduino IDEを起動して
スケッチ
→ライブラリをインクルード
→.ZIP形式のライブラリをインストール
を順に選択し、先ほどダウンロードしたzipフォルダを選択 - 下部ウインドウに「ライブラリが追加されました」と表示されたらライブラリのインストールは完了
サンプルプログラムを試す
-
ファイル
→スケッチ例
→Grove _Ranging_sensor_vl5310x
→continuous_ranging
を選択してスケッチを開く -
➡
をクリックしてスケッチを書き込む -
シリアルモニタ
をクリックして値を確認する※このとき、通信レートを「115200bps」に変更する
-
スケッチ上の
delay(100)
の値を「10」に変更し、より早く値を取得できるように変更する -
再び
➡
をクリックしてスケッチを書き込み、シリアルモニタ
をクリックして値を確認
値をMax8で読めるようにスケッチを改変
//continuous_ranging_2max
//シリアル通信でToFセンサの値を送信するスケッチforMax8
#include "Seeed_vl53l0x.h"
Seeed_vl53l0x VL53L0X;
#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define SERIAL SerialUSB
#else
#define SERIAL Serial
#endif
void setup()
{
VL53L0X_Error Status = VL53L0X_ERROR_NONE;
SERIAL.begin(9600);
Status=VL53L0X.VL53L0X_common_init();
if(VL53L0X_ERROR_NONE!=Status)
{
SERIAL.println("start vl53l0x mesurement failed!");
VL53L0X.print_pal_error(Status);
while(1);
}
VL53L0X.VL53L0X_continuous_ranging_init();
if(VL53L0X_ERROR_NONE!=Status)
{
SERIAL.println("start vl53l0x mesurement failed!");
VL53L0X.print_pal_error(Status);
while(1);
}
}
void loop()
{
VL53L0X_RangingMeasurementData_t RangingMeasurementData;
VL53L0X.PerformContinuousRangingMeasurement(&RangingMeasurementData);
if(RangingMeasurementData.RangeMilliMeter>=2000) //2000ミリ以上距離がある時
{
Serial.print(200);
Serial.println();
//SERIAL.println("out of ranger"); //何も出力しない
}
else
{
//SERIAL.print("distance::");
//SERIAL.println(RangingMeasurementData.RangeMilliMeter);
Serial.print(RangingMeasurementData.RangeMilliMeter/10); //単位をcmに変換
Serial.println(); //改行データを送る
}
delay(10); //10ミリ秒待つ
}
Max8で値をみてみる
下記の文字列をコピーして、Max8でFile
→ New From Clipboard
を選択
ここを押して展開される内容をコピー
----------begin_max5_patcher----------
1586.3oc2Zk0iahDD94IR4+.hmcr56i8sceI+FVkMJBay3PBl1BZmLSh1+6a
e.XOLbz1FOYy3QZ.2PSU0WcW3e912bW7J0CoUwQ+QzGht6teZV4N2Z1UtqYg
6h2k7v57jJ2MFuVsaWZgNdQ8E0oOncWXSVkNoXcZ6Ux13VWs5KuCJaWcehd8
myJ19oxz0ZOoILzRNcQDjRVRoTDlC7evjEQL3RvhHDXIH5iMOihC6xJxS0NN
BdxppC5lkAtU+229F6QygEAKgEoe2vyOW.2mr9qQY9+5SHI3wDRjvJGXB2IN
b+AzfREoeopUX8qoebep+wGGG8wKVhqxy1jV1mLgjiKSTmhCKgKkR.P.k9Ob
rWkYzojmn49ZgZ0ZUtpz+..KIXIBxVXNiSj.j8DD0eFbZU99jxjco5zxOkVj
rJ2gEfIPtpre3tODksDbSfSCgW0Obhgg.mTBZojwI.VMbJLqAlvf4RvDzvh+
hn3UIEauQVUhQgAfSVuBiJLjyHbqsDi1XUIsKA+M1pZD3jNFbBg3qDNkVORK
FhMPHv4rhIPCF+5DMAADF+J.SFfKHVLTf3DJzdFjxDL7uwn4fEE7OqV+YkpJ
MpJsLKIeupT2KlOpALvUB.08eHk+RWOfVscaduk0f4ix2jZNFsjhPLBotpFn
Q6iHNofbkJ7J8i9UpYx2qx2DetUNjYTbWS1tgJWpz7fitWUtKQqS2zK9IB.+
PPiFGarcQM3mwSQvCMc3stpvsI59sMjgXaXkCFEhH0wQj1povSHanWxZCGz0
NxTteoNZuJO2HaQ5O23jGMjWNTLcjUD9WjW9k0WCcZIhxwOuZNwKdSMCVSJD
GPwXuRJIcDT.EPMTu9QAX.1yuR.gAhmenXp97gATfHRvBqO+AbzIilsdQeGt
AXw8kpcUOtakJuObPF.LXKZqataNJTL4X4MdN78kooEuCF+Rl+aHrISqR5CU
BIGGzcfvl.GvCgC+U9gzK.FtQVI+HOZao5vdSg5f9PD9zHBTXPAImCaioX52
jSur5fFOtw0f.C2I.aZYjPaJ4uag+q19zNDk.puuPJvz5svdlwIRZ6ZDN2ML
X8n9+hgjgqKUlbI8AvATnE2milM2UOeqxzTklGAwQvdkWR.NMlDwPL.CAMej
sUVFPPkmJ93wE+EGOdafBWiCIQRV+wPBntDHPrjXmISStFfwG5Ry+hlJ+60f
Bl9gKOz+qPfEvfP714HROgGuWUnal1CDcbXOOOBCwOzcJ.fXx5HLBVXSzyx+
Mpsmzq2.dTVtpvDSxsm+zpoiGKU8oa69j0oWWiO6Njqy5LsuukT1xO8c8SM7
N5HtNoXyil+41G+zUyrqxN2WoQOZXJg3eKQtDFX5R6aC.wNcWszibtzqcmny
cvtcLe.RJQ3GbI.fkr5yPxvFgYKevO640WYdVMYvPWSKEMNIjSdxMVgfmwn3
ylQa2JsYqBlcbut49xATgvelffelL5rEurYFOTEOmHkFMhw+nUUZqQmZeDcb
v76INOq3YufXmcq8Bcb6pTGJW2P35FDhNg41jVoyJRzYphStIa5uHvXQSCld
hPnWGlRUZc7slmuTLfcvfQvi20trM6UlrJ0vLlac5QPrMYFD113j0LgQF3Z8
HOfYPd3gHOhYS+wBgbzYib12We.1mj4ifgPO9rRNTfja.iQNyZvAMcryfDSy
6MSo1DBzam1yklEdGGTrC77Y6g4A66NODDElDBmOBFTzIHd9HHMHBhlOBBBh
fyGjBChfciyLqobbr.LHV3VkkvwBnfXAzsjEvAwB3eor.RdqsElTQzMNvu.y
wtQFleVXRmxtwJlWagfBKLeI5Cpvo4KrG8xIWcaEI62+szxp5c3ojos8u3a4
Qrv+8rB+28MjEWl9srlsTeKIklNn0l1mOT56l+AVc+5w6TFEZwgrFyJqrZIs
q+wtszzNMfdlutQ9tO4PttCpjrdcZg979Ym0.FKZ.7Ryi33HYaHnajDs1hOU
I0gSe5aDIbVE3F9C19w0LIy1d5MiK+6z7b02mhMOc3UevM9JpcbdGMz5QNDH
Jzg3bAzORByln19rmeQw8VSs+Bat.7l2NfEpDAob+HSfR10ZZT6P4l2kkUq1
WOwL2bwd6aL2x+09pFjF
-----------end_max5_patcher-----------
前回と同じ手順(COMポートの選択
, toggleを押す
)で値を確認
復習も兼ねた応用
- 距離センサを使って音を再生するパッチを作る
- 同様に、映像を再生するパッチを作る
- エフェクトの掛かり具合を変化させるパッチを作る
<参考>
sensorPlayerパッチ(音の再生)
https://www.dropbox.com/s/1o8e3gjbsg2z46n/sensorPlayer.maxpat?dl=1
someFuncMoviePlayerパッチ(映像の再生)
https://www.dropbox.com/s/xmhsuilvjchctja/someFuncMoviePlayer.zip?dl=1
someFunkパッチ(センサデータ活用用オブジェクト)
https://www.dropbox.com/s/ixa35sulwtkua4a/someFunk.maxpat?dl=1
jitterエフェクトパッチ(画像データの加工)
https://www.dropbox.com/s/8jv1ssoehabzsbe/jitterEffect.maxpat?dl=1