2013年4月13日土曜日

完全煙フリーの燻製器ができた

話せば長いとある事情により、燻製(自家製ベーコン作り)をやろうかと思っている。
ですが、住宅街のど真ん中で煙をもくもくするのは、さすがにヤバイだろう、ということで煙をなんとかできないかと考えていたのですが、かなりよい方法を思いつきました。


簡単に言えば、
スモーカーを完全密閉して、吸気は熱帯魚のエアポンプ、 排気はベランダ水栓につけたアスピレータ(ディフューザー)で吸い込んで、そのまま水と一緒に下水に流す。
煙の臭いは水に溶けるか、溶けきらない分もマイクロバルブになって排水トラップより上には全く来ない。
アスピレータによるマイクロバルブ発生は、もともと水に溶けていた空気によるものなので(吸気口は塞ぐ)、吸気している状態ではマイクロバブルは発生しないですね。
とうか、そもそも、ベランダ水栓につながっているホースをちょっと長くして、排水トラップの封水にホースを直接突っ込んでしまえば、構造上、煙は外部には一切出なくなりますね。

この文章だけで分かる人にはだいだいどんなものか分かるとは思いますが、一応、構造の絵を描いてみました。
アスピレータにつないだホースを排水トラップの奥に突っ込むことで、煙は完全に封水の向こう側に行ってしまいます。
排気用のエアチューブに2分岐をはさんでいるのは、スモーカーからの煙の排出量をコントロールするためです。2分岐の何もつないでない側のコックの開度を調整することで煙の排出量を調整できます。
ただ、蛇口をひねって水の流量を変えれば、大まかな煙の排出量調整は可能なので、2分岐は不要かもしれません。
入気側のコックの開度でチップの燃焼速度(煙の発生量)をコントロールできます。

発展形としては、チップの燃焼室(煙の発生源)と、スモーカー本体(電熱器等の熱源+肉の置き場)を、別の箱にして、その間もエアチューブでつなぐ構造にすれば、さらにいろんなことができそうです。どちらの箱も完全密閉構造なので、たとえば、冷水(or氷水)をはったクーラーボックスの中に、スモーカー本体を箱ごとどっぷり浸してしまった状態でスモークすれば、真夏でも10℃とか20℃とかの冷燻が簡単に実現可能だと思われます。
とすると、温燻/熱燻のときも、スモーカー本体内に熱源を置くのではなくて、スモーカー本体をお湯に沈めて湯煎状態にしてスモークするのもよいかも。沸騰している鍋につければ熱燻(100℃)、保温設定にした炊飯器につければ温燻(約70℃)になりそう。
(煙が全く出ないので、スモーカーをベランダからキッチンに持ってきても大丈夫なはず。)

ちなみに、燃焼室と、スモーカー本体を分ける構造の場合、エアポンプ → 燃焼室 → スモーカー本体という空気経路と並行して、エアポンプ→スモーカー本体という(燃焼室をバイパスする)経路も設けておいて、それぞれにコックを設けておけば、煙を発生させない風乾/温乾(燃焼室を完全にバイパス)や、煙の濃さ調整ができそうです。

2012年12月18日火曜日

コーナー検出のサンプル

とりあえず参考になりそうなページ。
OpenGL ES2での、コーナー検出(Harris filter)。
How to detect corners in a binary images with OpenGL?

これで、iphone 4Sで60fpsいくなら、Raspberry Piなら120fpsくらいまで行ける!?

2012年12月16日日曜日

OpenGLで画像処理

Raspberry PiのGPUを使って画像処理(フィルタ適用、透視変換、エッジ検出等)をしたい。
OpenCVを使えばいいんだけど、Raspberry Piには高性能なGPU(VideoCore4)があるということで、GPUでの画像処理を目指す。どうも、OpenGL ES2というものでできるらしい。

Raspberry PiでのOpenGLの使い方は、
Jun's Homepage ラズベリーパイ メモ
が参考になる。

OpenGL ES2(2) - まずは初期化 (2012/09/15)
で、OpenGLで画面に描画する場合の初期化が書かれている。
しかし、やりたいのは画面描画することではなく画像処理なんで、EGLの初期化ではなくて、画面ではなくて、オフスクリーンのバッファを指定したい。


本家Raspberry Piのフォーラムで、よいサンプルを見つけた。
Hardware 3D in a window demo
Xのウィンドウ内にOpenGLで描画するデモ。(これ自体も興味深い)
内部では、オフスクリーン専用にEGLを初期化して、そこに向けてOpenGLで描画して、描画結果をglReadPixelsで取り出して、XPutImageでXのウィンドウに画像として貼り付けている。

これを改変して、OpenGLで描画して、bmpで保存できるようになった。
(備忘録)Raspberry Piオフスクリーン用のEGLの初期化の流れ
・eglGetDisplay → eglInitialize → eglChooseConfig (通常の画面描画と同じ)
で、その後、普通は、eglCreateWindowSurfaceだが、その代わりに
・eglGetConfigAttrib → eglCreateGlobalImageBRCM → eglCreatePixmapSurface
となる。で、最後に、
・eglCreateContext → eglMakeCurrent (通常の画面描画と同じ)

これで、オフスクリーンでの描画ができた。

Raspberry Pi入手

Raspberry Piを入手。
ガスメータの読み取り・記録装置を作る予定。