2018年4月27日金曜日

micro:bitからEddyStone-URL(ビーコン信号)を発信

BBCのmicro:bit(マイクロビット)ですが、BLE(Bluetooth Low Energy)のうえで、ビーコンとしても使えます。ビーコンの信号構成はいくつかあるのですが、GoogleのEddyStone形式のものを発信できます。EddyStoneにも信号構成はいくつかありますが、ここでは、EddyStone-URLを使ってみます。これによると、micro:bitが、URLを発信し続けるようにすることができます。

たとえば、以下の「神奈川工科大学 情報工学科 Twitter」です。
https://twitter.com/kait_cs
(ただし、Eddystone-URLのデータ容量の制約から、これを短縮URLに変換しています。)


micro:bitからEddyStone-URLを発信するプログラム

micro:bitのEddyStone-URL発信プログラムは、上図のように簡単です。
次に、これを受信して、このURLのホームページを表示するプログラムは、Androidプログラムとして自作しました。


Eddystone-URLを発信するmicro:bitと受信用Androidアプリ

EddyStone信号受信プログラムには、幾つかの課題があります。具体的には以下のような事項です。

  1. 実環境では、多数の機器から多様なBluetooth信号が発信されている。
  2. Eddystoneだけでも、Eddystone-UID, Eddystone-URL, Eddystone-TLMがある。
  3. ここでは、それらのうちのEddystone-URL信号だけを取り出す。
  4. 複数のEddystone-URLを受信した場合は、受信強度の順にソートする。
  5. 通常、もっとも近い(受信強度の強い)ものを採用する。
  6. そのアドバタイズデータを得て、urlをデコードする。
  7. ブラウザでそのurlの内容を表示する。
Eddystone-URLのAndroid受信アプリは、最近のMIT App Inventorでは、BLE extensionsが提供されているので、だいぶ楽に作成できるようになりました!
これらについては別の記事で書こうと思っています。

2018年4月13日金曜日

BBCのmicro:bitで暗号仮想通貨の基礎を知る

------------------------------------

本稿をYouTubeに登録しました。12台のmicro:bitを使った場合です。
https://youtu.be/YCZV_FoEeTI
------------------------------------

 英国BBCがIT企業の協力を得て開発したmicro:bitですが、日本の技適を取得したこともあって、子供向けのコンピュータサイエンス、プログラミングに活用する動きが次第に高まっているようです。

 以下のサイトをご覧になると分かりますが、これは、とても奥深いマイクロコンピュータボードであることを強く印象づけられます。子供向けとしておくのはもったいないです。私自身も使ってみたい、プログラミングしてみたい、という気にさせられます。

http://microbit.org/ja/guide/


 小さい、デザインが美しい、Bluetooth、無線(BLE以外の)、加速度、照度、温度のセンサ、USBインタフェース等があり、5x5のLEDマトリックスがついています。そのほか、3つの端子があって外部機器との接続も可能。そして、ご覧のとおり、ボダン電池(これはオプション)で電源を取れます。

 子供向けには、初歩の電子工作を、プログラミングと共に行うのがメインのようです。プログラミングは、ブロックを組み合わせるというScratchと同様のインタフェースで行います。しかしながら、このブロック形式のプログラムは、メニューの切り替えでJavaScriptのソースコード編集に行けます。さらに、Pythonでもプログラムできます。

 もうちょっと大人向けの使い方はないのかな、と思っていたらありました!
現在話題の仮想通貨ビットコイン(Bitcoin)の基本的な仕組みを実現したJavaScriptによるブロックがありました!ビットコインの仕組みについては、私は素人ですが、要するに、「分散データベース」のような基盤の上にあるものと思っていました。最近、よく聞くブロックチェーンがその基礎にああるようです。Crypt Currency, Blockchains.


これだけで、Bitcoinの基になるブロックチェーンの一端を知ることができる

 詳しいことは、別途検討することにして、私がこれを試行した結果を以下に示します。6台のmicro:bitを使っています。Block chainには、スマートコントラクト、コンセンサス、P2Pネットワークなどの技術も含まれますが、ここでは、micro:bitの間の「分散データベース」としての、コヒーレンス(整合性、一貫性)を主に扱っているようです。Radio Block-chainというmicro:bitのブロックを使っています。

 今、各micro:bitが、それぞれ、下図のような個数のコインを得ているとします。

12時から時計回りに、各micro:bitが、3個、0個、0個、1個、3個、2個のコインを得ています
ここで重要なことは、各micro:bitが見ているブロックチェーン(ブロックとは、コイン情報を指してしており、チェーンはそれらのブロックをすべて連結したもの)は、(常時ではなくても、リアルタイムではなくても)必要な時には、最新の状態であることです。つまり、時間遅れはあっても、ブロックチェーンはこの世界で唯一の正しいものが維持され続ける必要があります。それを、非集中制御で維持することがポイントの一つです。

各micro:bitのBボタンを押すと、現在のブロックチェーンの長さ9が表示された
これを確認するため、各micro:bitのBボタン(右側のボタン)を押すと、全てのmicro:bitが、ブロックチェーンの長さを表示しますが、すべて9となっています。すなわち、この仮想通貨の世界の通貨量が正しく保持されていることを示しています。

 ブロックチェーンについては、まだまだ検討すべきこと(述べるべきこと)が残っていますが、本稿ではここまでです。とにかく、このmicro:bitを利用した教育的なアプリの可能性を示すものと考えたいと思います。

2018年4月6日金曜日

新たに個人研究所を設立

 24年間勤めた大学を定年退職しました。2018年4月より、個人的に研究所を設立しました。といっても、もちろん、何ら公的なものではありません。以下のようなことをやって行こうというための、心の引き締めみないなものに過ぎません。


 昨年夏に亡くなった母が育てていた胡蝶蘭を家で引き継いで置いておきました。定年退職となった数日前に、上の写真のように綺麗な花が咲きました。

これ以外にもあるが、これからやってみたいこと