0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LEGOシティのトレインを複数操作できるページを作成

Posted at

LEGOシティのトレイン(https://www.lego.com/ja-jp/themes/city/train)
のリモコンやアプリでは一つの電車しか操作できないので、
電車を複数台動かそうとすると都度リモコンやスマホを用意する必要があります。

少し調べた限りだとサードパーティでも複数台動かせるアプリなどが見つからなかったので(ご存知でしたら教えて下さい)
作ってみました。

当初スマホアプリで作成しようとしたものの、
Web Bluetooth APIというブラウザでbluetooth接続するライブラリがあることを知ったので、
インストール不要のブラウザで操作できるものにしました。

完成品はこちらです。

内容

対応ブラウザであればnavigator.bluetoothクラスが用意されているので、それを使用。

実装自体はJavaScriptを介したBluetoothデバイスとの通信などのドキュメントを参考に、
かなり簡単にbluetoothに接続できます。

つまづいたポイント

LEGOの電池(LEGO Powered UP ハブ)に接続するための情報が中々無く、
下記サイトを参考に、少しずつ情報を集めていきました。

LEGO Wireless Protocol 3.0.00 Doc v3.0.00 r17 documentation
undera/pylgbst
LEGO Power Function 2.0 and BLE

所感

bluetooth機器に対してはバイナリで信号を送るので、そのバイナリ情報さえ分かれば比較的簡単に実装できることが分かりました。
ただ、iPhoneではそもそもAPIが用意されておらず、PCまたはAndroidスマホ限定になってしまいました。(macであればGoogle ChromeからはOK)

あと、こういうライブラリだと当然ながら非同期処理が多く、
今回は実装に時間をかけたくなかったのでasync/awaitを多用したコードになりES6対応のブラウザオンリーになってしまいました。
※そのためかiPhoneでbluetoothが使えるブラウザ「コネクトブラウザ」で動きませんでした。

次はスマホアプリで作ろうと思います。

0
0
0

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
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?