JavaScriptでアプリ開発ができるスマートウォッチ「Bangle.js 2」が到着しました。
Kickstarterで出資を募っていたプロジェクトで、出資していたのでリワードとして品物が到着しました。はるばるイギリスからやって来ました。
Bangle.js 2: The Open Smart Watch by Gordon Williams — Kickstarter
いま時のスマートウォッチ基準でデザインを見れば、ベゼル太くて野暮ったいスマートウォッチでです。ただ、見るべきところはココではありません。Bangle.js 2は、Java Scriptのインタプリタを搭載しており自前のアプリ開発が出来るところがウリです。開発環境はクラウド上にあります。
Apple WatchやWear OSを搭載するスマートウォッチでもアプリは開発できますが、開発者登録が必要など一定の敷居は設けてられています。これと比較するとBangle.js 2は、端末とウェブブラウザーがあれば誰でもアプリが開発できます。やる気があれば誰しもが開発者になれるのでパソコン創成期のようです。
端末スペックの確認
Bangle.js 2はアプリ開発がウリなので、これを中心に書きたいのですが端末を使い込んでいないので、まずは、スペックを確認しながらどんなアプリが開発できるのかを見ていきます。
以下は、Kickstarterのキャンペーンページに公開されているスペックです。
- Nordic 64MHz nRF52840 ARM Cortex-M4 processor with Bluetooth LE
- 256kB RAM, 1MB on-chip flash, 8MB external flash
- 1.3 inch 176×176 always-on 3 bit color LCD display (LPM013M126) with backlight
- Full touchscreen (6H hardness glass)
- GPS/Glonass receiver
- Heart rate monitor
- 3 Axis Accelerometer
- 3 Axis Magnetometer
- Air Pressure/Temperature sensor
- Vibration motor
- 200mAh battery, 4 week standby time
- 36mm x 43mm x 12mm watch body, with standard 20mm watch straps
- Full SWD debug port on rear of watch
ざっくり言えば、マイコンにディスプレイとセンサー、バッテリーを追加して、腕時計のケースに収めたという感じの作りです。腕にマイコンを着けているような感じですね。
64MHzと256KBです
SoCのクロック64MHz、メモリは256KBなので、凝ったことは出来ないはずです。実際は、アプリを作ってみないとわかりません。
アプリ開発中は、動作が遅かったりメモリ不足が多発しそうなので、SoCやメモリのことを常に頭の中に置いて、コードを書く必要がありそうなです。いま時、こんなことを考えて開発するケースは稀ですが、その昔は当たり前でしたね。
搭載されているSoCの詳細は以下のページにあります。
特徴的なディスプレイ
ディスプレイのサイズは1.3インチです。同じサイズで、使ったことがあるのはFitbit Versaです。
このくらいのサイズがタッチ操作できる最低限の大きさなので、面積の狭い画面を操作することを考慮して表示内容を絞り込んだり、メッセージの字数を減らすなどの工夫が必要になりそうです。他、使える色が8色(3bitカラー)限られているので、ここも工夫は必要です。
ディスプレイ解像度は176 x 176ドットです。
この数字だけ見ると高精細ではないと感じますが、計算すると191PPIなので悪くありません。ただ、いま時のスマートウォッチは300PPIを超えるので、フォントサイズが小さな文字は読みづらいはずで、これも配慮が必要なはずです。
このディスプレイは半透過型です。
バックライトが消えている時は、周囲の光を使う反射モードで動作して高い視認性を保ちます。よって常にディスプレイに何かを表示した状態で使えます。一部を点灯するOLEDの常時点灯とは意味が違うので、特性を使ったウォッチフェイスを考えるのも面白そうです。
搭載センサーはいまどき
いま時のスマートウォッチに必要なセンサーは搭載されています。
中でも「Air Pressure/Temperature sensor」は他の端末では見ないセンサーです。これを使って、どんなことが出来るのだろうかとドキュメントを眺めてみましたが、現時点ではドキュメントを見つけられていません。どこかに記述はあるかもしれないので、時間ができた時に探してみます。
あと、Bangle.js 2にはスピーカーが搭載されていません。
これの影響で想像できる範囲はアプリの表現力が下がることですが、音の代替えとなる表現方法も検討できると思うので、どう影響するかは今後の検証です。
ワクワクが止まらない
私は、アプリがオープンな環境で開発できるところに興味を持って出資しました。
短期間しか使っていませんが自分次第で化ける可能性があるところは、いまスマートウォッチとは違う期待があります。使っていて、こんなことができるのではないかと、考えを巡らせながら使うのが楽しくて仕方ありません。
端末の特性などが理解できたらアプリ開発を始めるつもりです。