yukima77のアイコン画像
yukima77 2021年05月16日作成 (2021年05月16日更新)
製作品 製作品 閲覧数 960
yukima77 2021年05月16日作成 (2021年05月16日更新) 製作品 製作品 閲覧数 960

お勉強さぽ~とくん by obniz(子どもの勉強をゆるくサポートするデバイス)

お勉強さぽ~とくん by obniz(子どもの勉強をゆるくサポートするデバイス)

概要

子どもが机で勉強しているのを応援してくれるデバイスです

仕組み

赤外線センサで机の椅子に座っているかどうかを判定します。
椅子に座ったら勉強していると判断して、勉強時間をカウントアップします。
椅子から立ち上がると勉強終了です。一定時間以上、勉強するとねぎらってくれます。
勉強の始まりと終わりにLINEに通知します。

デモ動画

ここに動画が表示されます

部品

部品名 備考
obniz Board 1Y
Grove - 赤外線測距センサ v1.2
ケース Daisoで購入

回路の接続イメージ

Grove赤外線センサ obnizBoard1Y
GND -(マイナス)
VCC 3.3V
NC 未接続
SIG 0

ブロックコード

キャプションを入力できます

工作

100円ショップで購入したハコの下準備。
キャプションを入力できます

部材の取り付け
キャプションを入力できます

電源の確認
キャプションを入力できます

ポイント

赤外線センサが椅子に座ったあたりの方向・距離で調整します

まとめ

子どもの勉強する気持ちをそっとサポートします(まずは、椅子に座ってみるところから)

参考(ソースコード)

ソースコード

<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, _E5_8B_89_E5_BC_B7_E4_B8_AD, labelTitle, labelTime; obniz = new Obniz('xxxxxxxx'); await obniz.connectWait(); obniz.display.print('応援ガジェット') await ObnizUI.Util.wait(1000); _E6_99_82_E9_96_93 = 0; _E5_8B_89_E5_BC_B7_E4_B8_AD = 0; 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 (_E5_8B_89_E5_BC_B7_E4_B8_AD == 1) { await fetch('https://maker.ifttt.com/trigger/StudyEnd/with/key/xxxxxxxx', {method:"GET", mode: "cors", cache:"no-cache"}).catch(e=>{ /* nothing */ }); _E5_8B_89_E5_BC_B7_E4_B8_AD = 0; } 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) _E5_8B_89_E5_BC_B7_E4_B8_AD = 1; if (_E6_99_82_E9_96_93 == 1) { await fetch('https://maker.ifttt.com/trigger/StudyStart/with/key/xxxxxxxx', {method:"GET", mode: "cors", cache:"no-cache"}).catch(e=>{ /* nothing */ }); } } 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>
yukima77のアイコン画像
会社員/個人事業主(クロスメイカーズ)/大学非常勤講師。 ハードウェア/ソフトウェア開発のエンジニアとしてのバックグラウンドを持ち、新規ビジネスの企画・開発に従事。メイカーとして個人や有志の仲間たちとものづくり活動も行っており、コンテストへの参加や物販などの活動を行っている。受賞歴に、「第55回 石川県発明くふう展 発明協会会長奨励賞」「KanazawaCivicTechContest2019 金沢市長奨励賞」「株式会社ローム主催 ROHC2019 最優秀賞」など。他多数。2児の父。石川県金沢市在住。
ログインしてコメントを投稿する