5
6

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 5 years have passed since last update.

konashi.js向けのコードをChromeで実行

Last updated at Posted at 2015-11-22

* 注意 *

本家のほうでWeb Bluetooth向けのSDKが開発されているようです。よって現在では、この記事に書かれているようなhackなしで普通にKonashiをお楽しみいただけます。素晴らしい!(追記:2016年10月8日)

この記事について

iOS上からJavaScriptで制御できるホビー向けBLEデバイスkonashiと、そのJavaScript開発環境のkonashi.jsが面白い。せっかくなのでAndroidでも遊んでみましょう、という趣旨の記事です。

前回の記事でkonashiやWeb Bluetoothについて少しだけ解説しています。Web Bluetoothを使ってLEDを点滅させる例を紹介しましたが、今回はkonashi.js向けのコードを(なるべく)そのまま持ってきてOpen Web上で事項する事を目標としてみました。

仕組み

konashi.jsを使った開発では、konashi-bridge.jsによって提供されるAPIを使ってBLEデバイスの制御を行います。このkonashi-bridge.jsの中にあるk.triggerToNative()を上書きし、Web Bluetooth APIを用いたコードに置き換えることで簡単なサンプルコードをChrome上で実行してみました。

利用者から見た場合konashi-bridge.jsに続けてkonashi-bridge-webapi.jsを読み込むだけで既存のコードが利用できる事を目標としています。

konashi-bridge-webapi.js

GitHubでオリジナルのSDKをforkして、konashi-bridge-webapi.jsを追加したbranchを公開しています。とりあえずLチカサンプルを動かすところまでを考えて

  • find
  • pinMode
  • digitalWrite

のみを実装しました。後は遊んでいて必要になったら付け足す感じで。pull requestも歓迎です。というか、ある程度まとまった段階でupstreamにmergeしたいところです。

今のところjs/konashi-bridge-webapi.jsを追加しただけなので別段forkする必要はなかったのですが、想定しているkonashi-bridge.jsのバージョンとの対応がとれた方がわかりやすいかな、と。その点、同じrepository/branch上でcommitしてあれば安心なので、あまり深く考えずにforkしました。まぁ、将来pull requestできれば良いね、くらいのつもりで。

サンプル

monakazさんがjdso.itで公開しているLチカのサンプルを動かしてみました。例によってWeb Bluetoothがsecure origin必須なため、jsdo.it上ではforkできず、JSFiddle上でfork?しています。Android Chrome Dev 48(要chrome://flags#enable-web-bluetooth)で動作確認しました。

追記

2015/11/22 22:05

同じくmonakazさんのナイトライダーも動かしてみたくてdigitalWriteAllの実装を追加しました。やはりJSFiddleで公開してあります。

5
6
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
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?