masato-ka's diary

日々思ったこととか、やったことの備忘録。

お仕置き系eXtreamFeedbackDeviceの開発

Jenkinsネタが続いてますが、本来僕のフィールドはもっと別のレイヤーにあるはず!
はい、この記事は、Jenkins Advent Calendar 10日目の記事です。
思えば初日の川口さんに始まり、昨日のleather_soleさんの記事に至るまで皆さんレベル高いです。そんな中でこんな記事を投稿するのも気が引けるのですが、空気読まずに投稿しちゃいます。

こんなん作ってみました的な記事なのですが、箸休め程度にみていただければ幸いです。

それではいってみましょう、10日目の今日はお仕置き系eXtreamFeedbackDeviceの開発です。

事の発端は現在のチーム内で、XFDを導入したいという話になりました。XFDはJenkinsなどのCIツールがビルドに失敗すると、回転灯などを光らせて瞬時に知らせる物理的なデバイスの事を指します。こうすることで、失敗したビルドの修正を素早く行うことを目的としているのですが、単純にけたたましい音や光が点滅するだけでは面白くないよねということになりました。
そこで、今回はビルドが失敗すると可愛いペナルティがある「お仕置き系」XFDを試作したので紹介したいと思います。
以下の写真が今回作成したお仕置き系XFD試作1号、通称サンダーボルトです。ビルド失敗した場合に先端の電極から凶悪な電気が流れ、装着者の体を痺れさせてビルドの失敗を知らせてくれます。

この装置の構成は以下の図のようになっています。

電圧発生部分には市販の「電子びっくり箱2」のキットを流用しました。秋葉原日本橋などの電気街や、通信販売でも簡単に手に入る代物です。

[rakuten:edenki:10017455:detail]

この電子びっくり箱の電池を繋ぐリード線の+側をリレーを介して接続します。リレーの駆動側はトランジスタを介してPepperと呼ばれるプロトタイピング向けのマイコンを接続しています。リレーを使用する理由は、Pepperを経由して供給されるUSBの電源と、電子びっくり箱で使用する電池を電気的に分離するためです。GNDが共通になってたりすると最悪USBがお亡くなりになります。Pepperの出力ではリレーを直接駆動できないので、トランジスタでPepperの出力を増幅してリレーを駆動します。マイコンの出力では一般的な回路構成です。

Pepperについてはmorecatさんのページをご覧下さい。PepperがあればXFD導入の敷居をかなり下げられるはずです。興味が出た方は是非購入してみて下さい。1000円程度と安いです。
Pepperの説明:http://web.mac.com/kuwatay/morecat_lab./Pepper.html

赤いPepperキット

赤いPepperキット

PepperとパソコンをUSBで接続し、Jenkinsからのビルド失敗の指令をPepper側に伝えます。ここでJenkinsからのビルド失敗の指令をどうやってPepperに伝えるのかというところなのですが、今回はJenkinsがビルドに失敗した場合、チームのIRCサーバーにbuildbreakの文字列が流れるようになっています。そしてIRCを監視するプログラムがそのメッセージを読み取ると、Pepperに出力をHighにするように指令を出し、リレーが動作し、電気が流れる仕組みとなっています。

このあたり、うまくJenkinsからマイコンの出力を操れるプラグインなんかがあればXFD作りも流行るのでしょうか?
あるのかな?つくろうかな・・・。

あ、Jenkins のアドベントカレンダーなのにJenkinsのキャプチャが一つも出てこない!!

さて明日はwadatkaさんです!