LINE Thingでスマホからラジコンを操作した時の反省点

---

**LINE Thingsでラジコン操作する詳しい方法は記事未完成です・・・本記事では雑記に終始しますので、そちらが目的の方はすみませんがブラウザバックお願いします・・・**

---

7/13に行われた[ProtoOut LINE Things ハッカソン](https://protoout.connpass.com/event/135942/)においてLINE Thingsとobnizを使ってスマホからラジコンを操作する作品を作りました。


<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">ラジコンをobnizでLINE Thingsでスマホから操作する図 <a href="https://t.co/ReWSlOqruN">pic.twitter.com/ReWSlOqruN</a></p>&mdash; 哲学する@WIer (@Ratchooo) <a href="https://twitter.com/Ratchooo/status/1152202524385935360?ref_src=twsrc%5Etfw">July 19, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

初めてのハッカソンでしたが思いのほか良い結果だったので嬉しい限りです。
しかし、如何せん反省点・自分の中で許せない点が多い経験となったのでその振り返りも兼ねて反芻していきたいと思います。


##反省点1. 工作部分が疎かだったこと

電子工作が素人なため導線とジャンプピンの繋げ方もわかっておらず、ハッカソン当日は講師からお借りしたマスキングテープで接続していました。

グルーガン持ってないので、ググって出てきた安全な方法で改めて繋げ直しました。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">ピンをペンチで曲げて、導線ひっかけて捻って、ゴムテープ巻いて、完 <a href="https://t.co/np2Neyg6j4">pic.twitter.com/np2Neyg6j4</a></p>&mdash; 哲学する@WIer (@Ratchooo) <a href="https://twitter.com/Ratchooo/status/1156578411000881158?ref_src=twsrc%5Etfw">July 31, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



##反省点2. WiFi前提のobnizを使用したこと

持っているBLEデバイスがobnizしかなかったのでobnizを使用しましたが、
折角Bluetoothでスマホ⇔ラジコンを操作するのに、WiFi前提のobnizが間にいたらメリットを食いつぶしてしまっていますよね…
逆に言うとBluetooth使用を想定していなかったらobniz単体で実現できてしまうってことなので、obnizすごい(語彙力)

---
そしてこの**obniz以外のBLEデバイスを用いて実装する**という本質的な課題をまだ完了していません。なぜならM5StickCがスイッチサイエンスで在庫復活した数十分で売り切れになり、中国ECサイトで注文してもいっこうに連絡が送られてこないから！！！！！！！！！！！

---


##反省点3 . スマホの傾きセンサーを使ってラジコンを操作

LINE Things上でも[DeviceOrientationEvent](https://developer.mozilla.org/ja/docs/Web/API/Detecting_device_orientation)を検知できることは確認済みだったので、

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">普通に動きました。現場からは以上です。 <a href="https://t.co/OUBOfijSgd">pic.twitter.com/OUBOfijSgd</a></p>&mdash; 哲学する@WIer (@Ratchooo) <a href="https://twitter.com/Ratchooo/status/1146062717591023617?ref_src=twsrc%5Etfw">July 2, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

ハッカソン当初は傾きセンサーでラジコンを動かす想定でいましたが、当日はテンパり具合でそれどころではありませんでした。実際には以下のようにLIFF側で取得した傾きの値を`obniz.js`に渡せたら良かったです。

```javascript:obniz.js
  writeCharacteristic.onwritefromremote = function(address, newvalue) {
    obniz.display.clear();
    motorLeft.stop();
    motorRight.stop();
    if (newvalue == 10) {
      //前に進む
      obniz.display.print('FORWARD');
      motorLeft.forward();
      motorRight.forward();
    } else if (newvalue == 20) {
      // 左を向く
      obniz.display.print('LEFT');
      motorLeft.forward();
      motorRight.reverse();
    } else if (newvalue == 30) {
      // 右に向く
      obniz.display.print('RIGHT');
      motorLeft.reverse();
      motorRight.forward();
    } else if (newvalue == 40) {
      // 後ろに戻る
      obniz.display.print('BACK');
      motorLeft.reverse();
      motorRight.reverse();
    } else if (newvalue == 50) {
      // 止まる
      obniz.display.print('STOP');
      motorLeft.stop();
      motorRight.stop();
    } else {
      obniz.display.print('( - _ - )');
      motorLeft.stop();
      motorRight.stop();
    }
  };
```