LINE Thingsでラジコン操作する詳しい方法は記事未完成です・・・本記事では雑記に終始しますので、そちらが目的の方はすみませんがブラウザバックお願いします・・・
7/13に行われたProtoOut LINE Things ハッカソンにおいてLINE Thingsとobnizを使ってスマホからラジコンを操作する作品を作りました。
ラジコンをobnizでLINE Thingsでスマホから操作する図 pic.twitter.com/ReWSlOqruN
— 哲学する@WIer (@Ratchooo) July 19, 2019
初めてのハッカソンでしたが思いのほか良い結果だったので嬉しい限りです。
しかし、如何せん反省点・自分の中で許せない点が多い経験となったのでその振り返りも兼ねて反芻していきたいと思います。
反省点1. 工作部分が疎かだったこと
電子工作が素人なため導線とジャンプピンの繋げ方もわかっておらず、ハッカソン当日は講師からお借りしたマスキングテープで接続していました。
グルーガン持ってないので、ググって出てきた安全な方法で改めて繋げ直しました。
ピンをペンチで曲げて、導線ひっかけて捻って、ゴムテープ巻いて、完 pic.twitter.com/np2Neyg6j4
— 哲学する@WIer (@Ratchooo) July 31, 2019
反省点2. WiFi前提のobnizを使用したこと
持っているBLEデバイスがobnizしかなかったのでobnizを使用しましたが、
折角Bluetoothでスマホ⇔ラジコンを操作するのに、WiFi前提のobnizが間にいたらメリットを食いつぶしてしまっていますよね…
逆に言うとBluetooth使用を想定していなかったらobniz単体で実現できてしまうってことなので、obnizすごい(語彙力)
そしてこのobniz以外のBLEデバイスを用いて実装するという本質的な課題をまだ完了していません。なぜならM5StickCがスイッチサイエンスで在庫復活した数十分で売り切れになり、中国ECサイトで注文してもいっこうに連絡が送られてこないから!!!!!!!!!!!
反省点3 . スマホの傾きセンサーを使ってラジコンを操作
LINE Things上でもDeviceOrientationEventを検知できることは確認済みだったので、
普通に動きました。現場からは以上です。 pic.twitter.com/OUBOfijSgd
— 哲学する@WIer (@Ratchooo) July 2, 2019
ハッカソン当初は傾きセンサーでラジコンを動かす想定でいましたが、当日はテンパり具合でそれどころではありませんでした。実際には以下のようにLIFF側で取得した傾きの値を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();
}
};