1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【改良】ストレッチを日常化し、しなやかなハムストリングスを手に入れるデバイス

Posted at

こちらの記事の修正記事となります。
変更したフローとコード、結果のみ記載します。

#フロー図
iPaas.001.jpeg
前回、数値を測定するたびに記録していたことから行のズレが発生していたため、開脚と閉脚それぞれの数値を記録した後、まとめてスプレッドシートに記載する形式に変更

#サンプルコード

詳細はこちら展開ください

let mode = 0 //モードの記録
const Obniz = require("obniz");
let today = new Date();//日付取得
console.log(today);
let year = today.getFullYear();
let month = today.getMonth()+1;
let date = today.getDate();
let dist_close = 0;//閉脚前屈記録
let dist_open = 0;//開脚前屈記録

// Steinを利用するための準備
const SteinStore = require('stein-js-client');
const store = new SteinStore('SteinのURL');

const obniz = new Obniz("xxxx-xxxx");
obniz.onconnect = async function () {
  const hcsr04 = obniz.wired('HC-SR04', { gnd: 3, echo: 2, trigger: 1, vcc: 0 });
    // ディスプレイ
    obniz.display.clear(); // クリア
    obniz.display.print('input');
    // スイッチの反応を常時監視
    obniz.switch.onchange = async function (state) {
      if (mode === 0) {//シートへの入力
        if (state === 'push') {
          console.log('pushed0');
          if (dist_open === 0 || dist_close === 0) {
            console.log('measure the disntances')
            obniz.display.clear();
            obniz.display.print('measure the distances');
          } else {
            console.log('input completed');
            obniz.display.clear();// 一度消してから距離+mmの単位を表示
            obniz.display.print('input completed');
            await store.append("シート1", [
              {
                date:  year + '' + month + '' + date + '',
                close: dist_close + 'mm',
                open:  dist_open + 'mm',
              }
            ]);
          }
        } else if (state === 'left') {
          console.log('close');
          obniz.display.clear(); // クリア
          obniz.display.print('close');
          mode = 1;
        } else if (state === 'right') {
          console.log('open');
          obniz.display.clear(); // クリア
          obniz.display.print('open');
          mode = 2;
        }
      } else if (mode === 1) {//閉脚前屈
          if (state === 'push') {
            console.log('pushed1');
            dist_close = await hcsr04.measureWait();
            dist_close = Math.floor(dist_close);//丸め
            console.log(dist_close + ' mm'); // obnizディスプレイに表示
            obniz.display.clear();// 一度消してから距離+mmの単位を表示
            obniz.display.print(dist_close + ' mm');
          } else if (state === 'left') {
            console.log('input');//入力モードに戻す
            obniz.display.clear(); // クリア
            obniz.display.print('input');
            mode = 0;
          } else if (state === 'right') {
            console.log('open');
            obniz.display.clear(); // クリア
            obniz.display.print('open');
            mode = 2;
          }
      } else if (mode === 2) {//開脚前屈
          if (state === 'push') {
            console.log('pushed2');
            dist_open = await hcsr04.measureWait();
            dist_open = Math.floor(dist_open);//丸め
            console.log(dist_open + ' mm'); // obnizディスプレイに表示
            obniz.display.clear();// 一度消してから距離+mmの単位を表示
            obniz.display.print(dist_open + ' mm');
          } else if (state === 'left') {
            console.log('close');
            obniz.display.clear(); // クリア
            obniz.display.print('close');
            mode = 1;
          } else if (state === 'right') {//入力モードに戻す
            console.log('input');
            obniz.display.clear(); // クリア
            obniz.display.print('input');
            mode = 0;
          }
      }
    }
  }

#結果
スクリーンショット 2021-11-21 16.06.26.png
無事、同じ行に入力できるようになりました。

#今後の活用
実用に耐えうるレベルとなったので、実生活に取り入れていけそうです。

  • レコーディングによる継続的なストレッチ
  • 現在実施しているストレッチの効果測定

この2点を今後個人的に実行し、技術記事ではないためおそらくnote等になりますが、別途報告記事としてアップします。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?