2011年12月18日日曜日

WiLL Viが可愛すぎてキレそう

Toyota Will Vi
トランクについてるエンブレム。かわいい。 by Gipiosio GipiOsio

表題のとおりWiLL Viがかわいすぎるので、かわいさ加減を書き散らして発散させてください。

WiLL Viってなんだ

もともとWiLLシリーズとして、いろんなお友達業種を超えたメーカーがデザイン重視の製品を発売するムーブメントがあって、松下(当時)がMDプレーヤや洗濯機を出してたり、文具が出てたりしていました(参考:Wikipedia)。そのなかで、トヨタ自動車はWiLL Vi / WiLL VS / WiLL CYPHAの3車種が発売されていました。後者2車種の話はしません。

WiLL Viは1999年の東京モーターショーにコンセプトカーとして発表され、まさかのデザインほぼそのままで発売。当時の奥田社長直下の組織で設計されたおかげで、横やりが入って牙がそがれることもなく生産にもっていけたそうな。ガワは独特だけど、中身(内装ではなく)は初代Vitzと同じ。トロンボーンや60鍵シンセサイザーも積めるし、タイヤを外せばロードレーサーも積めるのです。かわいいのにパワフル。

トランクのふくらみ具合がかわいい

Now, if only Camrys were this intriguing...
みんな後ろから撮りたがる。 by joh3

リアウィンドウの傾きがふつうと逆なので、トランクのふくらみ具合が余計に強調されるんですよね。これはアレですよ、アレ。

Maid in Japan
メイドさん by ThisParticularGreg

そう、フリフリのスカートのようじゃないですか。フリフリスカート=かわいい、トランクのふくらみ=フリフリスカート。ゆえに、トランク=かわいいが成立するわけですね。

内装がみてて愛おしい

IMG_0206
暗闇でもきれいに撮れます、ではなくて。

コラムシフトのさきっぽが真ん丸だったり、ダッシュボードから速度計がのぞいてたり。内装がいちいちかわいいので、ずっと見ていたい気持ちになります。運転中は前をみていないといけないけど。できるだけ長く車内にいたいから、必然とスピードを出さなくなりますよね。無意識のうちに上品ドライバーになってしまうのです。

ホイールキャップも個性的

IMG_0014

ウィキペディアではスカシカシパン呼ばわりされてますけど。ちょっとふくらんでいるおかげで、道路の端に寄りすぎてしまうとこすってしまうのね。角をまがるときも「傷つけてしまわないように」と思いやりが芽生えるほどということ。

トヨタってどこにも書いてない

WiLLというブランドを推していく方針から、メーカーの名前は大きく出ない方向に。WiLL Viでも、外から見てわかるトヨタのしょっぱいロゴは窓ガラスのみ。あとは取扱説明書の背表紙くらい。

凶器にも棺桶にも廃車にもさせない

「自動車は凶器にも棺桶にもなりうる」とTBSの安東さんがおっしゃっていましたが、かわいいかわいいWiLL Viをそんな目にあわせるわけにはいかない。心は常に上品ドライバーで。

でも既に10年落ち。いつかはエンジンが死ぬ日がくるでしょう。そのときはエンジンを捨てて、中身を電気に改造してしまうのもいいかなと。ネタになるしね。絶対に廃車にはしない覚悟で面倒をみていきます。俺の嫁だからね。

自動車内の信号を(できるだけ手軽に)読み出したい

昨年の初夏くらいにWiLL Viを中古で買ってから早一年半、かわいすぎるあまり彼女のことをもっと知りたいので車内の信号をどうにかして読めないか探っています。


一番手前が俺の嫁。かわいいし荷物積めるし最高じゃないですか。

どんな信号が流れているのか

いまや自動車の中身はおおかたが電子機器になっています。速度やエンジン回転数なんかが車内の制御コンピュータどうしのネットワークで流れることで、タコメータの針がふれたり、縦列駐車をビシーッとキメられるようにハンドルが曲がったりと、そこそこ便利になるように利用されているんですね。

WiLL Viも2000年ごろの自動車ですが、エンジンやエアバッグなんかのコンピュータが搭載されているので、それら同士の通信用だったり、警告ランプを点灯させたりするために自動車内のネットワークが構成されているのです。

どうやって読み取るのか

配線にワニ口クリップで電圧を…みたいなことをする必要はなく、コンピュータの故障診断用ポートを使います。OBD2(On-Board Diagnostics)というコネクタがどの自動車にも搭載されていて、通常は診断ツールで読み出します。

IMG_0778
OBDコネクタ。WiLL Viの場合は運転席の下に装備。

最近の自動車で使われているのは、シリアル通信とCAN通信のどちらか。2000年〜2003年くらいに生産されたものはシリアル通信、それ以降はCAN通信になっています。前者はISO 9141-2にて規定されていて、10.4kbps。Highが5Vや3.3Vなどではなく、12Vらしい。後者はISO 15765(よく調べてない)で、2本の線の差動信号で信号を読み取ります。両者とも送受信を同じ配線で行います。

長くなったので、WiLL Viで今のところどんなことを試したかは別の記事に。

2011年12月14日水曜日

Node.jsでつくるプログラマブルなMIDIコントローラ

Node.jsとMIDIの続き。

前の投稿で、Node.jsでMIDI信号を横取りしていましたが、これによってシンセサイザー上のあるスイッチの状態によって、別のスイッチの出力信号を変化させるなんてこともできるようになります。信号を出して終わりじゃなくて、状態を持つかたちですね。

背景

Ableton Live(のお試し版)でDJごっこをして遊んでいるのですが、うちのシンセサイザーはノブが3つついているので、3バンドEQを割り当てるのにちょうどいいんですね。

PICT0014

いっぽうで、2つのチャンネルそれぞれに3バンドEQを割り当てようとすると、6個必要になるわけですね。足りない。ここで、横についているスライダーの位置に連動させられれば、3個でもなんとか事足ります。この信号の組み合わせをNode.jsでやってみましたと。

コード

githubにアップロードしたものを参照ください。ここではそのなかの解説を。

output.openVirtualPort('NodeMidi');

ここでNodeMidiという名前で仮想ポートを立てています。Node.jsにMIDI OUTの端子ができたようなものですね。

その後のinput.onでやっていることは前の投稿とほぼ同じ、スライダーの処理が増えただけです。スライダーやノブの位置を変数に保存しておいて、組み合わせてから出力しています。

output.sendMessage([channel,2,x]);

sendMessageでoutputに指定したポートから、引数のMIDI信号を出力します。冒頭でNodeMidiという仮想ポートを指定しているので、そこから出力することになります。

Live側では、MIDI入力機器としてNodeMidiを指定すればOK。Nodeで変換している間の負荷はLiveの邪魔をしない程度、Nodeの本気です。ひとつ問題があって、node-midiはNodeの0.6系ではコンパイルが通らないので、0.4系を使って動かしています。あとで直す、たぶん。

2011年12月1日木曜日

Nagoya.pm #2で発表してきました

もう10日ほど過ぎていますが、2011年11月20日に行われたNagoya.pmの模様を。

ぼくの発表

ひとつ前のエントリーに書いた、MIDIシンセでHTMLをぐりぐりいじる話。これをそのままPerlのAnyEventに移植しようとして、ライブラリがなく苦労した話を発表しました。シンセのつまみをいじって背景色がものすごい勢いでかわるリアルタイム感がばかうけで一安心でした。そしてまずはnkfのxsを読むと。

発表中の様子は、@jiheiさん撮影の動画で。きいろい服の人がおれです。

気になった話題

  • App::Ack
    これすごい。Perlに限らずいろんなソースコードの中から検索してくれるっぽい。
  • プレゼンにおけるスライドの役割。AUGM名古屋でみた教授の講演がセオリー通りだったのを思い出して納得。
  • にこぐらふ
    マッスルハウスの「矢郷さんの出番はありません。富山にお帰りください」で試してみたのはおれです。本人降臨が一番なのかーwww
  • useful oneline script for perl
  • Perl6の動作環境はレジスタマシン。CASL的なかと思いきや、全然そんなことはなく。ちょっと高級ぎみのアセンブラっぽい。
  • Nagoya.pmのサイトがこわい。なごやこわい。

まとめ

こういう場でデモも含めてちゃんと発表するのは初めてだったのですが、うまくいってよかったなと。デキる人に疑問点を直接きけるのもいいです。テキストだとうまく伝えられないんだよね。とりあえず3回続けることが目標のようなので、次回は来年の春が来る前くらいでしょうか。

おまけ

懇親会後、うちの近所まで帰るお姉さんをWiLL Viの助手席に乗せてきた。これが一番緊張した。上品ドライバーに徹しました。

2011年11月3日木曜日

node.jsとMIDI信号でHTMLをいじる

準備

node.jsでMIDIを拾うには、node-midiを使います。RtMidiというOSごとの差異をうめるライブラリを呼び出しているので、MacでもLinuxでも、もちろんWindowsでも大丈夫なようす。npmにはもうひとつPure JSでMIDIを扱えるものがありますが、こっちはサンプルを見たところLinux依存のようです。


MIDI信号をひろう

とりあえずサンプルのとおりに。

var midi = require('midi');
var input = new midi.input();

// MIDI INの信号を拾ったら実行する
input.on('message', function(deltaTime, message) {
  console.log('m:' + message + ' d:' + deltaTime);
}); 

// ポートを読み始める
input.openPort(0);

実行結果は以下の動画で。引数にファイル名を指定していないのは、どういうわけか実行ができなかったから。ノブをぐりぐりしたりキーを叩いたりすると、ターミナルに表示されているのがわかりますね。



HTMLに送る

node.jsでつかまえられるということはあれこれいじれますな。せっかくシンセサイザーにノブが3本ついているので、それぞれをRGBとしてSocket.IOでHTMLの背景色をいじってみます。コードはgithubに。


コードのなかでは何をやっているのか。MIDI信号を拾ってからの処理のうち、前半はこのシンセサイザーのための処理をやっています。XYZ3個のつまみがついているのですが、つまみを回した瞬間に「どのつまみを回した」という名刺がわりの信号がとび、そのあとに回し具合の信号がずらずらつづきます。回し具合の信号は3つのつまみで共通なので、「いまどのつまみを回したのか」を正しく知るための処理ということになります。

後半は、つまみの回し具合をカラーコードの文字列に変換しているところです。ここもハードウェアの縛りがあって、Xだけが127(実際はもっと大きい)、それ以外は100が最大値という仕様らしいので、それを255(0xFF)が最大になるように計算しています。この計算だと#FFFFFFにはできないんですけど、そこは手をぬきました。

最後にio.sockets.emit()で、Socket.IO経由でつながっているHTMLにカラーコードを送ります。HTML側では、受け取ったカラーコードをそのまま背景色につっこんでいるだけですね。

2011年10月30日日曜日

東京node学園祭に行ってきたよ

東京node学園祭に行ってきましたよ。六本木遠いわー。


アメーバ水をもらいました。なかみはふつうの水のようです。

Yahoo! Japanの中村さんが発表していた、バスの現在位置を共有がとても興味ぶかくて。渋滞その他で遅れがちな路線バスを、GPSでリアルタイムに地図上に表示するというもの。バス側にどんな仕掛けがあるのかが気になるところなのだけど、残念ながらそのあたりの話はなく。もっと聞きたかったっす。


むしろ後夜祭のほうがアツいというかアガるというか。ぼくが「nodeはいろんなハードウェアと組み合わせたら絶対おもしろい」的な話をしたら、周りの方々から「ソフトウェアをわかっていても、ハードウェア、というか電気回路になると壁を感じる」とか「ハードがわかる人とソフトがわかる人とが、もっと関わりを持てるといいよね」とか、いい方向のおしゃべりができたなと。

オームの法則程度で十分なんとかなる程度でも、やっぱりとっつきにくいものだし、わからなくてもいいようになっている。その大きな例がキネクトだね。ハードウェア屋さんがビシーッとデバイスをつくりこんで、APIを提供する。ソフトをつくる人はAPIを叩いたらどんな反応があるかをわかっていれば、ソフトから簡単にいろんな機能を使えるようになるし最高じゃないですか。そんな方向の話にひろがっていって楽しかった。名古屋でもこういう場があればいいな。なければ東京へ引っ越すだけなのだけど。

2011年10月2日日曜日

ラジオがないと困るたったひとつの理由

RADIO-iが閉局して1年ということで、ラジオがないと困る個人的な理由を。

ラジオがないと、新しい音楽に出会わないのだ。防災情報云々って言うと思った?そんなことを今になって説いているのは普段ラジオなんか聞いていないやつらだ。

ラジオ、特にFMラジオはいろんな音楽をかけてくれるので、そこで新しい音楽を知っていくわけですよ。もちろんいい曲だけじゃなくて、売らなきゃいけない曲ばかりであることのほうが多いのだけど。いいDJだと、雰囲気に会う音楽を選んでかけてくれる。そのかかった音楽で「ああーこの曲いいなー」とか「このかっこいい曲は誰のだ?」とか思うじゃないですか。いま流行りの表現をすれば、ラジオDJはみんなが大好きなキュレーターだよね。ラジオ放送は聞く分にはお金がかからないから、自分でCD買うなりダウンロードする前に試聴できるようなものですよ。初めて聞く名前のミュージシャンの曲を試聴もなしに買うってハードルたかいしさ。

だからってラジオがあればそれでいいかと言うとそういうわけじゃなくて。FMラジオなんてしゃべってばかりじゃないっすか。今は愛知県在住だからZIP-FMを名指しで例に挙げるけどさ、DJがひたすらしゃべってその隙間になんか売れたらいいな的な曲を挟むだけなんだよね。それも似たりよったりの、コブクロかファンキーモンキーベイビーズの劣化コピー的な曲ばっかり。自分の好みだけでは手を出さないところから、いい曲をかけてもらいたいんだけどね。