Firmata(フェルマータ)

Firmataの背景

ArduinoとPCが一緒に仕事をするには通信することが必要だ。

今、日本国内でのArduinoの使われ方において、PCはスケッチを書き、できあがったプログラムをアップロードする役割しかもっていない場合が多い。

それはArduinoが単体でいろんなことができるという面に着目したものだ。しかし、ArduinoとインターネットにつながったPCを考えると、ArduinoをPCからコントロールする必要がある。具体的にいうと、PCからArduinoのピンのモードがセットでき、出力、入力ができるということ。

ArduinoにつながったUSBはシリアル通信である。シリアル通信でコントロールする標準的なプロトコルがFirmata(フェルマータ)である。
ArduinoとFirmataは強い関連をもっていて、Arduinoの標準ライブラリーにFirmataを実現したものがあるし、サンプルに完全にPCからArduinoをFirmataプロトコルで操作できるファームウェアも準備されている。

さて、日本国内でFirmata.orgの文献の翻訳を見つけることができなかった。
面倒くさいけど、少しやっておくことにする。

<h2>MIDI

その前に少しMIDIについて勉強。なぜならば、FirmataはMidiを踏襲したプロトコルだからである。

MIDIで使用されるデータは「ステータスバイト」か「データバイト」の大きく2種類に分けられる。ステータスバイトとはMSB(Most Significant Bit:最上位ビット)が「1」の80H〜FFHまでの128種類の数値を指し、データバイトとはMSBが「0」、すなわち00H〜7FHまでの128種類のバイトを指す。

MIDIメッセージの先頭は常にステータスバイトで始まり、ステータスバイトの後に任意の個数のデータバイトが続く。ステータスバイトでは、機器の動きを定義する。データバイトは、ステータスバイトで定義したものについて、その内容や数値を指定するのに使用する。

ステータスバイトが80H〜FFHのうち何であるかによって、「チャンネルメッセージ」、「システムメッセージ」に分かれ、機器の指定などを行うが、Firmataの場合はピン、ポートの指定となっている。

なお、SysexとはMidiにおいては機器固有の機能を制御するために使用される。データとしては16進数の「F0」ではじまり「F7」で終了する。

Firmaプロトコル

さて、Firmataの
FirmataがカバーするI/Oピンは以下のとおり。

  • 16アナログピン
  • 128デジタルピン(8ビットポートx16)

FirmataプロトコルはMIDIメッセージフォーマットを踏襲しているが、すべてのプロトコルをサポートしているわけではない。以下にほとんどのコマンドを記載するが、MIDIコントローラやシンセサイザーにはそのまま使えるわけではない。狙いはMIDIと共存して問題が起きないようにしていることと、MIDIインタープリターでもきちんと分解できることである。メッセージデータによっては違う使い方をしている。
MIDIについては、http://www.harmony-central.com/MIDI/Doc/table1.html

MIDI
タイプ コマンド チャネル 第一バイト 第二バイト
アナログI/Oメッセージ 0xE0 pin番号 LSB(bits0-6) MSB(bits 7-13)
デジタルI/Oメッセージ 0×90 Port LSB(bits 0-6) MSB(bits 7-13)
レポートアナログピン 0xC0 pin番号 disable/enable(0/1) - n/a -
レポートデジタルピン 0xD0 port disable/enable(0/1) - n/a -
sysexスタート 0xF0
セットピンモード(i/o) 0xF4 pin # (0-127) pin state(0=in)
sysexエンド 0xF7
プロトコルバージョン 0xF9 メジャーバージョン マイナーバージョン
システムリセット 0xFF
SysExベース(0×00-0x7F)コマンドは拡張コマンドセットとする
タイプ コマンド 第一バイト 第二バイト
文字列 0×71 文字列…
ファームウェア名/バージョン 0×79 メジャーバージョン マイナーバージョン 文字列…

データ構造

デジタル2バイトデータ

  • 0 デジタルデータ 0×90-0x9f
  • 1 デジタルピン 0-6 ビットマスク
  • 2 デジタル 7-13 ビットマスク

アナログ14ビットデータ

  • 0 アナログピン 0xE0-0xEF
  • 1 アナログ下位 7ビット
  • 2 アナログ上位 7ビット

バージョンレポート

  • 0 バージョンレポートヘッダー(0xF9)
  • 1 メジャーバージョン(0-127)
  • 2 マイナーバージョン(0-127)

コントロールメッセージ

セットピンモード

  • 1 セットピンモード(0xF4)
  • 2 ピン番号(0-127)
  • 3 状態 (INPUT/OUTPUT/ANALOG/PWM/SERVO, 0/1/2/3/4)

ピン毎のアナログ入力レポートの切り替え

  • 0 デジタルにゅうryク レポート切り替え(0xC0-0xCF)
  • 1 disable(0)/enable(non-zero)

ピン毎のデジタルポートの切り替え

  • 0 デジタルポートレポートの切り替え(0xD0-0xDF)
  • 1 disable(0)/enable(non-zero)

バージョンレポートの要求

  • 0 バージョンレポート要求(0xF9)

SysEX

SysExはSysExスタートバイトの次のSysExコマンド部分を二番目のコマンドスペースと考える。データはどんなサイズでもよい。

  • 0 START_SYSEX (0xF0)
  • 1 コマンド(0×00-0x7F)
  • x 0からMAX_DATA_BYTESまでの長さで7ビットバイトデータ
  • 最後 END_SYSEX (0xF7)

後は必要に応じて翻訳。。。

Posted in フィジカルコンピューティング | Leave a comment

外資系銀行が日本化している、、、だなんて

日本化した外資系投資銀行という記事があり、たいへん興味深かった。

一旦業績をあげたトレーダーは辞めない、辞められないのだそうだ。

笑ったのは、それで「ヘッドハンターが死んだ」ってとこ。キャリアパスだへったくれだとキレイ事を唱えても、人材紹介業は人を動かしてナンボだからね。

Posted in サラリーマン | Tagged , , , , , , , , , , , | Leave a comment

企業でスマホ・タブレットを使うを嗤う

たとえば、日経コンピュータのこんな記事
もうね、IT業界の自称プロと素人と差がなくなってるな、と痛感する。

記事の批判じゃなく、

<h2>ネットワーク</h2>

あんだけDMZだ、ファイアーウォールだ、VPNだと騒いでいて電話からのアクセスを許すから、端末管理に金かかる

しかも電話なんて今時は金かける時代じゃない。内線機能なんて交換器買えばタダ同然。

企業が携帯電話でデータ通信し始めたら、定額制がいち早く崩れるだけだろう。

<H2>タブレット</H2>

iOSにAndroidですか?今までLinuxはおろかOSXすら社内システムにつなぐのに文句いってたくせに、目新しければ「生産性」とか言ってつなぐんだ。もうネットワークはグチャグチャだな。

<h2>PCの動向</h2>

タブレットは文字入力可能なのはオマケだ。人間の指はある程度、押し込み感がないと長時間入力作業を続けられない。今まで、押し込み感のないキーボードはすべて残らず失敗に終わっている。

なんでタブレットに焦点があたっているかというと、軽いのと公衆回線内蔵だから。それだけ。

逆にいえば、インテルとマイクロソフトが天狗になってて努力しないから。

「1キログラム以下」+「すぐに立ち上がる」+公衆回線内蔵=ノートPC

が出たら、ビジネスマンのような情報を発信しなければならない人がタブレットなんていう素人向けのものを使いつづける理由がない。

いくら売るものがないからといって、他のソリューションとのPROS&CONSを書かないのはいかがなもんかなー。

Posted in パソコン・インターネット, ビジネスと人 | Tagged , , , , , , , , , , , , , , , , , , , | 1 Comment

Radiation Watch(日本中にガイガーカウンターを)

Radiation Watch 手っ取り早く言うとガイガーカウンターを日本中にばら撒くプロジェクトです。センサーをiPhoneを使って動作させます。ただし、センサーはキットです。もし、購入して作って欲しいという方は、私の知り合いもしくは知り合いの友人であれば、送っていただければ送料だけで組み立てます。(ただし、キットにフリスクのケースを添付してください。理由はサイトで、Assemblyの記事を見ればわかります)

このプロジェクトはKickStarterというアメリカで行われている極めて新しい投資資金が使われています。従来のベンチャーキャピタルは真っ青でしょう。一般の人が「おもしろそうだ」というものにファンドするのですから。3Dプリンターなどを始めとし、目標額を大きく越えるファンドを集めています。

ごく当たり前のまっとうな話ですが、少数でもおもしろいと思えば、今はビジネスになっていくのです。投資の世界もクラウドなんです。

おっといつものVC嫌いが出てしまった。

話を戻すと自分の周囲の放射能汚染の程度がわからず疑心暗鬼になっているのは精神的に極めてよろしくないと思いますので、ボランティアします。

Posted in デジタルグッズ, 俺や巷の出来事 | Tagged , , , , , , , , , , , , , , , , , , , , | Leave a comment

アフィリエイトサイトの作り方

アフィで儲けるには・・・ここからの引用

?ASPに登録して、何か気に入る広告を探す
?その広告のジャンルに興味がありそうな人が検索しそうなキーワードを考える
?そのキーワードで広告に関連したサイトを作る(タイトルには必ず?で考えたキーワードを入れてね!)
?ブログサービスにいっぱい登録して、さらにその登録したブログ一つ一つに別ブログからリンクを貼る
?その後、被リンクがいっぱい貼られたブログから自分のメインサイト(?のサイトだね)へリンクを貼る
?早ければ数日で、遅くても1?2週間で、?のキーワードで検索すれば自分のサイトが上位に来てるよ!
?来なかったら、別のキーワードで???を繰り返す

たったこれだけで、アフィ広告からバンバン物を買ってくれる質の高いユーザーだけを集めた自分だけのサイト群の完成だ!

これで月額100万円くらい稼げるらしい。ちなみに著者はサイト200、ブログ300でっち上げているという。

これはすべてSEO対策なんだよなぁ。。。検索上位にくればいい、ということと、ブログに頼っている。しかし、精度の高い検索結果を出すためには晩かれ早かれブログはランクを下げると思う。というのも、ニュースの繰り返しが多いから。

 

 

Posted in パソコン・インターネット | Tagged , , , , , , , , , , , , , , , , , , , | Leave a comment

Stop! 空腹

その場で走る要領で足踏みすればいいらしいよ
急に運動することで、糖が必要だと体が認識して
肝臓から糖が供給されて血糖値が上がり多少満腹感が生まれるって

一口に50噛み
食べる前にお湯

食欲を抑えるツボ http://www.kirindo.com/medical/kongzhi.html

炭酸水

Posted in 料理とお酒 | Tagged , , , , , , , , , , , , , | Leave a comment

鶏油

ネットで拾った覚書
よく作るのは四川料理人から教わった秘伝の麻鶏油

1.鶏皮を弱火で熱して油出すまでは同じ
2.カリカリになった皮を引き上げたら長ネギと根生姜を投入して中火にする
3.泡が出なくなったら引き上げて花椒とゴマを1さじづつ投入して火を切る
4.油が完全に冷えたら再度加熱して泡が出なくなったら熱いうちに濾す
5.まだ油が熱いうちにガラス瓶に入れて蓋をかぶせる(完全には閉めない)
6.人肌くらいまで冷めてきたら完全に蓋を閉める
7.塩胡椒は沈殿するので、ある程度冷え固まったら、フォーク等で混ぜ合わせる。
※ネギと根生姜:風味付けもあるが、抗酸化物資を油に溶け込ませて保存性を良くする
※泡が出なくなるまで:水分が残っていると腐敗の原因になるので完全に飛ばす

常温で3ヵ月はもちます

Posted in 料理とお酒 | Tagged , , , , , , , , , , , , , , , , , , , | Leave a comment

量子力学とオカルト(3)

以前書いた量子力学の実験結果とオカルトの世界を繋いでみる

エヴァレット解釈 意志が多重な宇宙を創り上げていく

ベンジャミン・リベット実験 顕在意識は潜在意識に操られている

白いシャツとゴリラの実験 人はみようというものしか見ていない

前回の実験の話しは、「人は人と「こうだと思った事実を共有している」」ことだった。
Continue reading

Posted in 心と体 | 4 Comments