#目的
スマホのフラッシュライト活用してる人いますか?
落とし物探すときに隙間照らすぐらいしかないですよね。
でも、写真を撮るときに光って大切なんです。(知らんけど)
なので、被写体との距離でライトの明るさを自動で調整できるようにしました。
#この記事でできること
・node.jsでobnizを操作
・超音波測距センサ(HC-SR04 )で物体との距離を測る
・LEDライト(WS2811)を光らせ、明るさを調節する
・スマホがガジェット感出てかっこよくなる(気がする)
#完成したらこんな感じ
動かしたらこんな感じ
くまの距離に合わせて明るさ調整します。最高の明るさで写真撮れます。
— sawa (@sawakoshi_yy) October 18, 2020
ちなみにこのくまはマウスパッドで、嫁さんとお揃いです。#protoout#obniz#ともだちはくま pic.twitter.com/l9wJk8KsII
#コード
const Obniz = require('obniz');
const obniz = new Obniz(''); // Obniz_IDに自分のIDを入れます
obniz.onconnect = async function () {
// RGB LEDを利用
const rgbled = obniz.wired('WS2811', { gnd: 0, vcc: 1, din: 2 });
// 超音波測距センサを利用する
const hcsr04 = obniz.wired('HC-SR04', { gnd: 8, echo: 9, trigger: 10, vcc: 11});
// ディスプレイ表示(初期画面)
obniz.display.clear();
obniz.display.print('Hello obniz!');
// setIntervalで間隔を作る
setInterval(async function () {
// 距離を取得
let distance = await hcsr04.measureWait();
// 温度をコンソールに表示
console.log(distance + ' mm');
// obnizディスプレイに表示
// 一度消してから距離+mmの単位を表示
obniz.display.clear();
obniz.display.print(distance + ' mm');
if(distance > 2550){
distance = 255;
}
rgbled.rgb(distance/10, distance/10, distance/10);
}, 1000); // 1000ミリ秒 = 1秒
}
#考察
スマホのフラッシュライト使ってない。
光センサも使って「周りの明るさ」+「被写体との距離」でライトの明るさを調整しようと思いましたが、光センサ断念してしまいました。
被写体との距離ですが、どことの距離を計測しているか視覚的に分かるようになれば、もっと正確に明るさを調整できそうです。
嫁さんとの心の距離も測れないですかね。