LoginSignup
3

More than 3 years have passed since last update.

posted at

obnizでゴミ箱の蓋を動かした

この記事の内容

obniz advent calender 2019の6日目
・LINE Thingsとobnizとサーボモータでゴミ箱の蓋を動かした
・作ったプロダクトや、詰まったポイントを紹介

機器情報

OS更新サボってます(ごめんなさい)。今から使う人は最新版を使ってください。

・obniz(v1.1.0)
・obniz.js(v1.16.1)
・サーボモーター(GWServo S03TXF/STD/J)

作成したプロダクト

5月末に大阪で開催されたデジットハッカソンにて、その場で結成されたチームの5人で作成しました。

未来ゴミ箱

維持費を自分で稼ぐゴミ箱。電子決済、自走、ログ収集機能を備えています。
71912200_433881360570942_6423214773323694080_n.jpg

構成図

決済系、制御系、センサ系に分けて実装しました。
mirai_pay_icon-1024x490.png

詳細

以下、ブログにて紹介されてますのでご覧ください。

obnizの使用部分

LINE Thingsと連携して、フタを開け閉めする部分にobnizを使いました。使った理由は、サーボモーター用にはんだ付けしたくなかったからです。(当方ネットワークエンジニア)

物理構成

obnizにサーボ直繋ぎしました。電源はモバイルバッテリーです。
フレーム-07-10-2019-10-09-23.png
フタの中に収めるとこんな感じです。シリコンケースの中にobnizがあります。
dZn2K2vmQXy4vEV%ErzdtA.jpg

参考にした記事

LINE Thingsは各地でハンズオンがあり、資料もたくさんあります。

obnizとの連携はこのあたりを参考にしました。

コード

LINE Thingsとの連携はGitにあるので割愛します。以下はいずれも obniz.onconnect = async functionの中です。サーボの電源をon/offしてるのは節電です。

サーボモーターの準備

  var servo = obniz.wired("ServoMotor", {gnd:0, vcc:2, signal:4});
  servo.off();

フタの開け閉め

  writeCharacteristic.onwritefromremote = function(address, newvalue) {
    if (newvalue[0] <= 1 ) {
      obniz.display.clear();
      if ( newvalue[0] == 1 ) {
        servo.on();
        servo.angle(90);
        obniz.display.print("Open");
        obniz.wait(1000);
        servo.off();
      } else {
        servo.on();
        servo.angle(15);
        obniz.display.print("Close");
        obniz.wait(1000);
        servo.off();
      }

BLE通信終了時にフタを閉める

  obniz.ble.peripheral.onconnectionupdates = function(data){
      console.log("remote device ", data.address, data.status);
      servo.on();
      servo.angle(15);
      obniz.wait(1000);
      servo.off();
  };

嵌ったところ

BLE通信終了時にフタを閉める?

BLE通信終了時にフタを閉める処理をobniz.oncloseに書いてました。obnizとの通信が切れてる状態なので、サーボの制御ができませんでした。代わりにobniz.ble.peripheral.onconnectionupdatesを使うと上手くいきました。LIFF終了時に呼び出されて、その後またすぐ繋がるような動作をしてますが、まぁ良しとします。

サーボモータに過電流?

obnizにサーボモータを直接接続すると「output voltage is too low when driving high」というエラーが出て上手く動きませんでした。調べると過電流の検知のようで、ブレッドボード上の配線くらい、小さな抵抗を挟めば大丈夫なようです。はんだ付けしたくなかったので、抵抗の代わりに延長コードを使いました。概ね、上手くいってます。(接触が良すぎる場合は、グラグラさせて接触不良にしてます)

Wi-Fi、BLE、飛びまくり!

ハッカソンのタッチアンドトライや、各展示会ではWi-Fi・BLEが飛びまくりで、LINE Things - obnizは10回試せば3回動くくらいの不安定さでした。KeiganMotorのBLEは安定してましたので、フタの内部に収めているのが問題かもしれません。obnizOS v2.1.1で、BLE通信の改善がされたようなので期待です。

カバーどこに売ってるの!?

ネットで調べると個人制作のカバーがいくつか見つかります。そこそこ良いお値段(カバー2個でobniz買えちゃう)するので、適当なシリコンケースを買って収めました。両面テープが全然くっつかなくて大変でした。放熱も心配です。良いケースが公式で売られると嬉しいな。

展示会場ごとにwi-fiを再設定...

未来ゴミ箱は色んな展示会に出したのですが、その度にWi-Fi設定変えるのは中々しんどかったです。また、Free Wi-Fiの認証あるパターンだと接続に失敗します。モバイルルータやスマホのテザリングでいつも同じSSID・パスワードだと便利です。

まとめ

電子工作の知識やプログラミングの知識が乏しくても、obnizなら何とか動きます。

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
What you can do with signing up
3