yukima77 が 2021年05月16日17時58分41秒 に編集
コメント無し
本文の変更
# 概要 子どもが机で勉強しているのを応援してくれるデバイスです # 仕組み 赤外線センサで机の椅子に座っているかどうかを判定します。 椅子に座ったら勉強していると判断して、勉強時間をカウントアップします。 椅子から立ち上がると勉強終了です。一定時間以上、勉強するとねぎらってくれます。 # デモ動画 @[youtube](https://youtu.be/H3fR3SLR30g) # 部品 | 部品名 | 備考 | |:---:|:---| | [obniz Board 1Y](https://www.switch-science.com/catalog/6081/) | | | [Grove - 赤外線測距センサ v1.2](https://www.switch-science.com/catalog/3133/) | | |ケース|Daisoで購入| # 回路の接続イメージ | Grove赤外線センサ | obnizBoard1Y | |:---:|:---| | GND | -(マイナス) | | VCC | 3.3V | | NC | 未接続 | | SIG | 0 | # ソースコード ![キャプションを入力できます](https://camo.elchika.com/08e5f37f40af3b1115014cf70793f04c7b6de8b4/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f36343737336262352d366563392d346133362d393634652d6262663035373065393736382f65356461636531352d306133342d343165312d383536612d623961633163303437313630/) # 工作 **100円ショップで購入したハコの下準備。** ![キャプションを入力できます](https://camo.elchika.com/12f8e2e984cd703050078d5c9015d11ca88725cf/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f36343737336262352d366563392d346133362d393634652d6262663035373065393736382f34326432663837652d623635632d346138332d383038642d313434396235646162383337/) **部材の取り付け** ![キャプションを入力できます](https://camo.elchika.com/f08ea5ed44fe6cfd8dbaccd75a9e4d7c2cc3cc29/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f36343737336262352d366563392d346133362d393634652d6262663035373065393736382f66653530343064342d336538332d343735642d626363342d373661303563373337393635/) **電源の確認** ![キャプションを入力できます](https://camo.elchika.com/9f124ac3db409f71a6af45c7c5b91c8fe0c2b9aa/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f36343737336262352d366563392d346133362d393634652d6262663035373065393736382f37393930613464302d373437382d343536392d396339642d346361396335313136643838/) # ポイント 赤外線センサが椅子に座ったあたりの方向・距離で調整します # まとめ 子どもの勉強する気持ちをそっとアシストします(まずは、椅子に座ってみるところから)
# 参考(ソースコード) ```html:ソースコード <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous" ></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous" ></script> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" /> </head> <body> <h3 id="bploading" style="text-align:center;">LOADING...</h3> <div id="OBNIZ_OUTPUT"></div> <br /> <script src="https://unpkg.com/obniz@latest/obniz.js" crossorigin="anonymous" ></script> <script src="https://unpkg.com/obniz-parts-kits@0.16.0/iothome/index.js" crossorigin="anonymous" ></script> <script src="https://unpkg.com/obniz-parts-kits@0.16.0/airobot/index.js" crossorigin="anonymous" ></script> <script src="https://unpkg.com/obniz-parts-kits@0.16.0/ui/index.js" crossorigin="anonymous" ></script> <script src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/howler2.1.2/howler.js" crossorigin="anonymous" ></script> <script src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/opencv3.4/opencv.js" crossorigin="anonymous" ></script> <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@3.3.0"></script> <script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet@2.1.0"></script> <script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/posenet@2.2.2"></script> <script src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/clmtrackr/clmtrackr.js" crossorigin="anonymous" ></script> <script src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/clmtrackr/emotion_classifier.js" crossorigin="anonymous" ></script> <script src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/clmtrackr/emotionmodel.js" crossorigin="anonymous" ></script> <script src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/clmtrackr/model_pca_20_svm.js" crossorigin="anonymous" ></script> <script src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/index.js" crossorigin="anonymous" ></script> <script src="https://unpkg.com/obniz-parts-kits@0.16.0/storage/index.js" crossorigin="anonymous" ></script> <script> $("#bploading").text("RUNNING..."); (async function(){ var obniz, _E6_99_82_E9_96_93, labelTitle, labelTime; obniz = new Obniz('OBNIZ_ID_HERE'); await obniz.connectWait(); _E6_99_82_E9_96_93 = 0; obniz.display.print('応援ガジェット') await ObnizUI.Util.wait(1000); labelTitle = new ObnizUI.Label('label'); labelTime = new ObnizUI.Label('label'); while (true) { await ObnizUI.Util.wait(0); if ((await obniz.io0.inputWait())) { obniz.display.clear(); obniz.display.print('べんきょうする?') if (_E6_99_82_E9_96_93 > 10) { obniz.display.clear(); obniz.display.print('がんばったね!') } _E6_99_82_E9_96_93 = 0; } else { obniz.display.clear(); obniz.display.print('がんばってるね!') obniz.display.print(_E6_99_82_E9_96_93) } labelTitle.setText('べんきょうじかん'); labelTime.setText(_E6_99_82_E9_96_93); await ObnizUI.Util.wait(1000); _E6_99_82_E9_96_93 = (typeof _E6_99_82_E9_96_93 == 'number' ? _E6_99_82_E9_96_93 : 0) + 1; } })(); </script> </body> </html> ```