編集履歴一覧に戻る
suzan_worksのアイコン画像

suzan_works が 2021年05月18日22時01分48秒 に編集

修正、追記

本文の変更

+

## 全体まとめ

obnizを使って、スマホからカーテンを操作するデバイスを作ってみました。

-

ブラウザからブロックプログラムでプログラミングしました。

+

obnizはどのI/Oからも1A流せて、モータードライバーに最適だと思って、あと、自分はプログラミングは不慣れなので、ブラウザからブロックプログラムでさくっとプログラミングしてみました。 今回は実装し切れませんでしたが、obniz Board 1Yでスリープ使えば、もっと長時間動作できそうですね。

-

まずは動作の動画す。

+

## デモ動画 まずは動作の動画を見てみてください。 簡単な部品説明もしてます。

@[youtube](https://youtu.be/t4lRvJeOVNQ)

-

次に使用部品はこちら。 使用部品 - obniz Board 1Y (制御します) - タミヤ ダブルギアボックス(左右独立4速) (タイヤを動カーテンを引っ張ります) - タミヤ ユニバーサルプレート (車輪や電池ボックスを載せました) - 単3電池3本 (obnizもモタも電池駆動です) - 電池ボック (2本セットを2個使って電池3本す) - 結束バンド (カーテンレールへ固定ました)

+

## 使用部品 obnizタミヤのモーー回してるのがメンの構成です。 ロトタイプな感じで、結束バンドと使っちゃっます タミヤユニバーサルプレート電池が無加工良い感じに固定できました

+

|アイテム|数量|用途| |:---|:---|:---| |obniz Board 1Y|1|全体制御| |タミヤ ダブルギアボックス (左右独立4速タイプ)|1|動力| |タミヤ ユニバーサルプレート|1|車輪や電池ボックスを固定| |単3電池|3|電源| |電池ボックス|2|2本セットを2個使って電池3本搭載| |結束バンド|1|カーテンレールへ固定|

+

![全体外観](https://camo.elchika.com/226a8c86359e9af760ef181a1d7246e9cd3a4c25/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39393432383530652d653361662d346339362d626433302d3038353237623031663263382f39333231653765352d613635342d343930622d386130302d313032383237313134366163/) ## 回路図、接続

回路図はこちら。 回路図 ![回路図](https://camo.elchika.com/376aaf9853915a2ab8c0758a24395a75cb5700d0/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39393432383530652d653361662d346339362d626433302d3038353237623031663263382f64386462633439312d343061362d343462392d383235322d346435656665313935326539/)

+

## ソースコード #### ブロックプログラム

ソースコードはこちらです。 ![ブロックプログラム1](https://camo.elchika.com/57e2458f71d336a179960d1b3996e731377c233c/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39393432383530652d653361662d346339362d626433302d3038353237623031663263382f34613931366238612d333332322d343539652d383264652d393664633162326366383763/) ![ブロックプログラム2](https://camo.elchika.com/857d5787641991392eed292be1e4aa9d698abed7/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39393432383530652d653361662d346339362d626433302d3038353237623031663263382f39343036646362362d386464372d343538642d393764392d663763373266636233666265/)

-

```html:カーテン開閉

+

#### コード (コンソール>ファイル>コードを見る で確認できます。) ```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, timer_hour, motor1, motor2, label, open2, close2, label1, label2, label3, up, down, start; obniz = new Obniz('7164-4056'); await obniz.connectWait(); timer_hour = 6; motor1 = obniz.wired("DCMotor",{"forward":0, "back":1}); motor2 = obniz.wired("DCMotor",{"forward":2, "back":3}); label = new ObnizUI.Label('label'); label.setText('カーテン開閉'); open2 = new ObnizUI.Button('開く'); close2 = new ObnizUI.Button('閉じる'); label1 = new ObnizUI.Label('label'); label1.setText('タイマー'); label2 = new ObnizUI.Label('label'); label2.setText(timer_hour); label3 = new ObnizUI.Label('label'); label3.setText('時間後に開く'); up = new ObnizUI.Button('↑'); down = new ObnizUI.Button('↓'); start = new ObnizUI.Button('タイマー開始'); while (true) { await ObnizUI.Util.wait(0); if (close2.isClicked()) { motor1.move(true); motor2.move(true); await obniz.wait(23000); motor1.stop(); motor2.stop(); } if (open2.isClicked()) { motor1.move(false); motor2.move(false); await obniz.wait(2300); motor1.stop(); motor2.stop(); } if (up.isClicked()) { timer_hour = (typeof timer_hour == 'number' ? timer_hour : 0) + 1; label2.setText(timer_hour); } if (down.isClicked()) { timer_hour = (typeof timer_hour == 'number' ? timer_hour : 0) + -1; label2.setText(timer_hour); } if (start.isClicked()) { await obniz.wait((timer_hour * 3600000)); motor1.move(false); motor2.move(false); await obniz.wait(23000); motor1.stop(); motor2.stop(); } } })(); </script> </body> </html> ```