Open5

足伸ばしトレ

内田直樹内田直樹

まずは距離を測る

const Obniz = require('obniz');
const obniz = new Obniz('Obniz_ID'); // Obniz_IDに自分のIDを入れます

obniz.onconnect = async () => {
    const hcsr04 = obniz.wired('HC-SR04', {gnd:0, echo:1, trigger:2, vcc:3})
    hcsr04.temp = 27
    while(true) {
      const val = await hcsr04.measureWait()
      console.log(val)
    }
  }
内田直樹内田直樹

参考あけちゃダメの箱

const Obniz = require('obniz');
const obniz = new Obniz('Obniz_ID'); // Obniz_IDに自分のIDを入れます

obniz.onconnect = async function () {
    // 超音波測距センサを利用する
    const hcsr04 = obniz.wired('HC-SR04', { gnd: 0, echo: 1, trigger: 2, vcc: 3 });
    // RGB LEDを利用
    const rgbled = obniz.wired('WS2811', { gnd: 5, vcc: 6, din: 7 });
    // MP3プレーヤーを利用
    const mp3 = obniz.wired("Grove_MP3", { gnd: 8, vcc: 9, mp3_rx: 10, mp3_tx: 11 });
    await mp3.initWait();
    mp3.setVolume(30);

    // setIntervalで一定間隔で処理
    setInterval(async function () {
        // 距離を取得
        let distance = await hcsr04.measureWait();
        // そのままだと小数点以下の桁数がやたら多いので整数に丸めてもよい
        //distance = Math.floor(distance);

        // 距離が10cm以上かどうかの判定
        if (distance > 100) { // 100mm = 10cm 以上の場合
            ///光る
            rgbled.rgb(255, 0, 0);
            //MP3フォルダ内の「0001」から始まるMP3ファイルを再生
            mp3.play(1);
            }else {
                rgbled.rgb(0, 0, 0);
                mp3.stop();
              }


    }, 4000); // 4000ミリ秒 = 4秒おきに実行
}
内田直樹内田直樹

回数数えて話すコード

const Obniz = require('obniz');
const obniz = new Obniz('Obniz_ID'); // Obniz_IDに自分のIDを入れます

obniz.onconnect = async function () {
    // 超音波測距センサを利用する
    const hcsr04 = obniz.wired('HC-SR04', { gnd: 0, echo: 1, trigger: 2, vcc: 3 });
    // MP3プレーヤーを利用
    const mp3 = obniz.wired("Grove_MP3", { gnd: 8, vcc: 9, mp3_rx: 10, mp3_tx: 11 });
    await mp3.initWait();
    mp3.setVolume(30);

    let cnt = 0; 
    
    // setIntervalで一定間隔で処理
    setInterval(async function () {
        // 距離を取得
        let distance = await hcsr04.measureWait();
        // そのままだと小数点以下の桁数がやたら多いので整数に丸めてもよい
        //distance = Math.floor(distance);

        // 距離が5cm以下かどうかの判定
        if (distance < 50) { // 50mm = 5cm 以下の場合
            console.log(cnt)   
            cnt++
            console.log(cnt) 
            if(cnt===1){
                //MP3フォルダ内の「0001」から始まるMP3ファイルを再生
                mp3.play(1);
            }else {
                mp3.stop();
            }
        }

    }, 1000); // 1000ミリ秒 = 1秒おきに実行
}
内田直樹内田直樹

1回、5回、10回、15回、20回で声が出るコード

const Obniz = require('obniz');
const obniz = new Obniz('Obniz_ID'); // Obniz_IDに自分のIDを入れます

obniz.onconnect = async function () {
    // 超音波測距センサを利用する
    const hcsr04 = obniz.wired('HC-SR04', { gnd: 0, echo: 1, trigger: 2, vcc: 3 });
    // MP3プレーヤーを利用
    const mp3 = obniz.wired("Grove_MP3", { gnd: 8, vcc: 9, mp3_rx: 10, mp3_tx: 11 });
    await mp3.initWait();
    mp3.setVolume(30);

    let cnt = 0; 
    
    // setIntervalで一定間隔で処理
    setInterval(async function () {
        // 距離を取得
        let distance = await hcsr04.measureWait();
        // そのままだと小数点以下の桁数がやたら多いので整数に丸めてもよい
        //distance = Math.floor(distance);

        // 距離が5cm以下かどうかの判定
        if (distance < 50) { // 50mm = 5cm 以下の場合
            console.log(cnt)   
            cnt++
            console.log(cnt) 
            if(cnt===1){
                //MP3フォルダ内の「0001」から始まるMP3ファイルを再生
                mp3.play(1);
                console.log("カウント1") 
            }else {
            }
            if(cnt===5){
                //MP3フォルダ内の「0002」から始まるMP3ファイルを再生
                mp3.play(2);
                console.log("カウント5") 
            }else {
            }
            if(cnt===10){
                //MP3フォルダ内の「0003」から始まるMP3ファイルを再生
                mp3.play(3);
                console.log("カウント10") 
            }else {
            }
            if(cnt===15){
                //MP3フォルダ内の「0004」から始まるMP3ファイルを再生
                mp3.play(4);
                console.log("カウント15") 
            }else {
            }
            if(cnt===20){
                //MP3フォルダ内の「0005」から始まるMP3ファイルを再生
                mp3.play(5);
                console.log("カウント20") 
            }else {
            }
        }

    }, 1000); // 1000ミリ秒 = 1秒おきに実行
}