外出自粛の中、ネット検索していたら、「Bangle.js」というスマートウォッチが網に引っかかってきた。
https://www.kickstarter.com/projects/gfw/banglejs-the-hackable-smart-watch
キックスターターで立ち上げた事業らしいが、既に寄付金は目標額に到達している。商品はイギリスから通販で買えるらしい。
なので、注文してみた。
https://shop.espruino.com/banglejs
イギリスのVAT(付加価値税)はカットになる代わりに、国際郵便送料がかかる。なんだかんだで、約1万円弱の買い物となった。有名どころのスマートウォッチに比べれば、大幅なお手頃価格。
このご時世であり、いつ手元に届くかわからないが、気長に待とう。
さて、このスマートウォッチ、特長は「Open Source」にある。既に存在するハード(ほぼ確実に中国製であろう)を買ってきて、ファームウェアを書き換えているらしい。ポイントは、JavaScript用のインタプリタを搭載していること。
自作のスクリプトをワイヤレスに書き込み、本体上で実行させることができる。Open Sourceなので、ユーザグループが作成した草の根ソフトをダウンロードしてきて自分のBangle.jsに書き込むこともできる。コーディングができなくても大丈夫。
スクリプトを自作したいという人のためには、開発環境が用意されている。
このIDEはWEBベースでブラウザから利用することもできるし、AndroidやChromeアプリをダウンロードして使うこともできる。
コーディングにはGUIベースのツールも用意されており、プログラミング学習環境として利用することもできる。このツールは「Scratch」に似たもので、機能を持ったピースを組み合わせるだけで構造化プログラミングを行うことができる。
そもそも、Bangle.jsそのものが「Espruino」という実行環境のサブセットになっており、JavaScriptインタプリタとしてのEspruinoを実装しているということらしい。
Bangle.jsの主なスペックは、こんな感じ:
*Bangle.jsサイトからの引用。
<ハードウエア>
- IP68 Waterproof: up to 10m underwater
- Nordic 64MHz nRF52832 ARM Cortex-M4 processor with Bluetooth LE
- 64kB RAM 512kB on-chip flash, 4MB external flash
- 1.3 inch 240x240 16 bit LCD display with 2 zone touch
- GPS/Glonass receiver (UBlox)
- Heart rate monitor
- 3 Axis Accelerometer (with Pedometer and Tap detect)
- 3 Axis Magnetometer
- Piezo speaker and Vibration motor
- 350mAh battery, 1 week standby time
- 5 x 5 x 1.7 cm case, plastic with stainless steel ring
- Can be disassembled with just 4 screws
- Easy to code and debug wirelessly using JavaScript or our graphical editor (based on Blockly)
- Pre-programmed with the Espruino Open Source JavaScript interpreter
- Vast majority of JavaScript ES5 features and many ES6 features including: Regular Expressions, Promises, Arrow Functions, Template Literals
- 40kB RAM for program memory/variables
- Bluetooth 4.2 Advertising, Central and Peripheral mode support with built-in Nordic UART service
- Graphics library with Vector fonts, bimap rotate & scale
- Tensorflow Lite for Microcontrollers AI
- Wear-levelled flash filesystem
- Heatshrink compression
- Upload functions written in C or ARM Assembler
- Built-in wireless debugging
- VT100 Terminal support on LCD
- Program with Web-based Web Bluetooth IDE or Node.js-based command line tools