この記事の内容
・obniz advent calender 2019の6日目
・LINE Thingsとobnizとサーボモータでゴミ箱の蓋を動かした
・作ったプロダクトや、詰まったポイントを紹介
機器情報
OS更新サボってます(ごめんなさい)。今から使う人は最新版を使ってください。
・obniz(v1.1.0)
・obniz.js(v1.16.1)
・サーボモーター(GWServo S03TXF/STD/J)
作成したプロダクト
5月末に大阪で開催されたデジットハッカソンにて、その場で結成されたチームの5人で作成しました。
未来ゴミ箱
維持費を自分で稼ぐゴミ箱。電子決済、自走、ログ収集機能を備えています。
構成図
詳細
以下、ブログにて紹介されてますのでご覧ください。
- 【速報】ROHM OPEN HACK CHALLENGE 2019 最終審査会開催!
- LINE ThingsとLINE Pay APIを活用したプロダクト「未来ゴミ箱」がROHM OPEN HACK CHALLENGE 2019にて最優秀賞を獲得しました。
- 【使用例】未来ゴミ箱( ROHM OPEN HACK CHALLENGE 2019 最優秀賞)
obnizの使用部分
LINE Thingsと連携して、フタを開け閉めする部分にobnizを使いました。使った理由は、サーボモーター用にはんだ付けしたくなかったからです。(当方ネットワークエンジニア)
物理構成
obnizにサーボ直繋ぎしました。電源はモバイルバッテリーです。
フタの中に収めるとこんな感じです。シリコンケースの中にobnizがあります。
参考にした記事
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なら何とか動きます。