2017年02月26日

koshianでLチカを試してみた

koshian.jpg

Bluetooth Low Energyの通信を簡単に試すことができる「koshian」というボードがあります。
これは、ユカイ工学の「konashi」という同じくBLEのボードの互換品(一部非互換あり)です。

本家であるkonashiが注目を集めていたのは、ESP8266が流行るよりも前で、2013年ごろからです。
konashiというより、BLE自体が注目を集めていた時期でもあります。

スマホ連携ガジェットを作ろう! - 第2回 konashiとは何か?スマホの入出力を無線で拡張:ITpro

その後、konashiはkoshianを取り込んで、現在はkonashiはkoshianボードを使う形態に変わっているようです。

konashi(こなし)メジャーアップデート「konashi2.0 」を発表 | ユカイ工学

この「koshian」ボードですが、もともと980円と安価な上に、一時期、販売元のMPressionがキャンペーン(確かオンラインストアに会員登録すると無料でもらえた)をしていたこともあり、私の手元には3枚もありました。

使わずにしまってあったのですが、BLEの勉強がてら、試しに使ってみることにしました。

まずはLチカから、ですが、これはMPressionのサイトにチュートリアルがあります。

ハードウェアのHello World !? koshianつかって『まずはLチカ 』 | マクニカオンラインストア

このチュートリアルでkoshianにつないだLEDをiPhoneやiPadから点滅させることはできるのですが、BLEを使っているのかkoshian.jsというアプリ(のAPI)を使っているのか、ちょっと判然としないところはあります。
JavaScriptでプログラムが書けて、敷居が低くていいのですが、逆に組み込みシステムをある程度知っている人にとっては、隔靴掻痒という感じがあると思います。

実際には、このチュートリアルで動いているシステムの全体像は下の図のようになっています。

koshian-arch.jpg


ボード側では、I/Oピン等を制御するAPIをBLEで公開するファームウェアが動作しており、iPhone/iPad側ではこのファームウェアのAPIをJavaScriptから叩く機能を持つアプリを動作させています。
このアプリによって、ユーザのJavaScriptプログラムは、koshianのファームウェアへの命令に変換されているわけです。

Lチカ程度であれば、わざわざJavaScriptを叩かなくても、ボードのAPIを直接叩けば良さそうです。
ただ、このAPIはBLEの規定に則ってGATT(Generic Attributes)というフォーマットで提供されています。
GATTの部分を隠蔽して、ボードのI/Oに直接アクセスできるアプリとして、ユカイ工学の「Inspector」があります。

konashi inspectorを App Store で

konashi inspector - Google Play の Android アプリ

このアプリを使えば、プラグラムを書かずにI/Oの値を直接設定できます。
その代わり、たとえば0.5秒おきにオン・オフする、といったことはできません。

GATTを直接叩きたければ、Mac用の無料ツールで「LightBlue」というものがあります。
私のMacbook AirはLate2010モデルなのでBLE非対応なのですが、バッファローのUSB BLEドングル「BSBT4D09BK」を挿したら、特にドライバ等を導入しなくてもBLE対応になりました。

LightBlue を Mac App Store で

GATT自体は、それほど難しいものではありません。
デバイスが提供する「サービス」の下に、複数の「characteristic」があり、characteristicの値を読み書きすることでデバイスの動作を制御します。
たとえばkonashiなら、I/Oを制御するという「サービス」の下に、I/Oピンが入力か出力かを設定する「characteristic」や、出力ピンならHighなのかLowなのかを設定する「characteristic」があります。
characteristicが、制御レジスタみたいなイメージです。

以前紹介したPythonistaでも、このあたりの制御ができるはずなのですが、ちょっと試したところではまだkoshianを制御するところまでは至りませんでした。


さて、ページの冒頭に載せた写真は、100円ショップ・ダイソーで購入したLEDランプに、koshianと赤・緑の2つのLEDを仕込んだものです。
ランプは2つ入りで100円、1つ50円です。

daiso.jpg


底面にスライドスイッチがあります。電池はCR2032です。

daiso2.jpg


ケースははめ込んであるだけなので、細いドライバなどでこじれば外れます。
中身は白色LED。LEDのピンの一方はスライドスイッチに直付けされています。
もう一方のピンは、ケースを突き抜けたところで曲げられて、電池と接触する電極として使われています。

daiso3.jpg


スイッチは活かして、ピンヘッダをつけたkoshianに赤と緑のLEDを直付けしたものを組み込みました。
PIO4に赤、PIO5に緑のLEDを接続しています。
LEDはどちらも高輝度タイプです。抵抗はつけていません。
また、LEDには光拡散用のキャップをかぶせています。
このへんのパーツは秋月電子で買ったものです。
daiso4.jpg


元通りケースをかぶせるとこんな感じです。
BLEリモコンで2色オンオフができるLEDランプができました。
daiso5.jpg


さて、そんなkoshianですが、今はボード単体では若干入手難のようです。
マクニカのオンラインストアでも販売されていないようです。
また、このボードの心臓部はBroadcom社のBCM20737Sというチップだったのですが、BroadcomのIoTデバイス事業は既にCypress社に売却されています。
Cypress社では、BCM20737SをCYW20737Sという型番で出していますので、ディスコンというわけではなさそうです。

BLEではNordic社のnRFシリーズがメジャーになってきており、このチップを使ったkonashiと似た感じのモジュールがBraveridge社から販売されています。

BVMCN5103-CEAA-BK | Braveridge

まあこちらは20個セットですし、ホビイスト向けではなさそうですが。
ラベル:Bluetooth
posted by boochow at 15:23| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2016年11月13日

I will translate this blog into English by Google translation

Recently, it has become a hot topic that Google translation has improved considerably due to machine learning.

Google unleashes deep learning tech on language with Neural Machine Translation | TechCrunch

Perhaps, it may be possible to use Google translation for English translation of this blog.
Therefore, in order to investigate the performance of Google translation, I will translate the previous articles in English using Google Translate and post them.

The article translated into English is tagged "English".
Those articles are translated into English by Google translation, and then I corrected the translation error manually.

Google翻訳でこのブログの英訳を行います

最近、Google翻訳が、機械学習のおかげで大幅に品質向上したと話題になっています。

Google、ニューラルネットワーク機械学習を検索翻訳に適用―第一陣は中国語/英語 | TechCrunch Japan

もしかすると、このブログの英訳にGoogle翻訳が使えるかもしれません。
そこで、Google翻訳の性能を調べるため、Google翻訳を使って以前の記事を英訳してポストしていきます。

英訳した記事には"English"タグが付けられます。
それらの記事は、Google翻訳で英訳した後、翻訳ミスを人手で修正しています。
ラベル:english
posted by boochow at 12:46| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2016年10月20日

Make: Japanでご紹介いただきました

今日のMake: Japanで、このブログの最近のArduboy関連記事(画像作成ツール、シェル、PWMサウンド)をご紹介いただきました。

Make: Japan | Arduboyプログラミングに役立つツールとノウハウ

ありがとうございます。
掲載に至るには、お世話になった数々のOSS/フリーソフトに加えてYouTubeとGitHubとミクさんが重要な役割を果たしたと思われます。
こちらにも感謝です。
ラベル:Arduboy
posted by boochow at 23:28| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2013年08月16日

enchantMOONを買った訳

私がenchantMOONを買ったのは、その「手書き機能」や「ユーザーインタフェース」が気に入ったからではありません。(そもそも実物を触らないで買っていますので…出来の良し悪しで判断していません。)

手書きという作業そのものに関しては、重要だと思っています。
仕事でアイデアをまとめるときは、いつも紙と鉛筆です。
ただ、私は絵描きではなく、仕事の成果物は最終的にはPowerPointなどPC上のツールで最初から作ることがほとんどですので、手書き段階の作業を紙の代わりにコンピュータの上でやる必要性はあまり感じません。

また、ユーザーインタフェースですが、UEIは「No UI」を掲げて、新しい手書きUIを提案してきましたが、正直なところ、これにそれほど魅力は感じませんでした。
ユーザーインターフェースについては、実機をしばらく使ってから書こうと思います。


enchantMOONを買ったのは、これがAndroidでもiPhoneでもPCでもない「何か」だからです。

特定のタスクを考えれば、たぶんiPadやAndroidタブレットのほうが、トータルで見て効率よくこなせるでしょう。
私はenchantMOONを実用品として買ったのではなく、実用的でないことを織り込み済みで買いました。
実用性よりも、「他のものでない何か」であることに価値を見出したわけです。

コンピュータ好きの一人として、私も「コンピュータの新しい使い方を見出したい」という情熱を持っています。
新しい使い方を見出す有力な方法は、それまでの使い方を捨てることです。
その結果、いったん「何も出来ないコンピュータ」へ退化したように見えてしまうことは仕方ない。

ところが、iOSの登場以降、特にユーザーインタフェースに関して、違うものを提案しようという動きがあまり出てきません。
Androidには期待はしませんが、それ以降のスマホ向けFirefox OSやUbuntuなどもユーザーインタフェースを考え直そうという機運があまり感じられません。

そんな中、enchantMOONは、久しぶりに既存システムのお作法から離脱しようとしている製品だと思いました。
もちろんその先に、新しい使い方を見出せるかどうかはまだ分かりません。
単にそのチャンスがある、というだけです。

下の竹内先生のブログも同じことを言われていると思いますので、リンクを張って紹介しておきます。

一見、バカに見えることの中にこそ、チャンスがある。あなたの会社は、バカなことをやっていますか? - 竹内研究室の日記

enchantMOONに関しては、その尖り具合にお金を払ったようなものなので、アップデートを重ねてどんどん尖っていって欲しいですね。
posted by boochow at 16:01| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2013年08月15日

enchantMOONがやってきた

particle.jpg


予約していたenchantMOONが届きました。
なのでこれをネタに、久しぶりにブログを再開しようと思います。

enchantMOONはユビキタスエンターテインメント(UEI)という日本のベンチャー企業が作った、手書きにこだわったタブレットです。
ネットにはレビューもちらほら出ています。

ドリキンが斬る!(1):enchantMOONファーストルック (1/2) - @IT

ベンチャー企業が小ロットで生産する製品ですから、実験的というか、半分試作品みたいなところはあります。

この端末の上でプログラミングもしてみたいのですが、まだあまり開発関連の情報は出ていないようです。
Androidベースということなので、GPLで縛られる部分はソースコードを公開しなくてはいけないはずですが、今のところそれもまだ見当たりません。

そんな感じなので、このブログのネタとしていつまで続くかは先が見えない感じもしますが、例によって飽きるまでは書いてみる予定です。
posted by boochow at 19:10| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする
人気記事