開発日記

2007年10月31日 (水)

開発の進捗状況

こんばんは。マダム でんでん♪でございます。

ほったらかしになってて申し訳ありません。「Roaster Loggerをどう思いますか」アンケートでも、「是非使いたい」、「良さそうなら使ってみたい」というお答えを何件か頂いていて、興味を持ってくださっている方がいらっしゃるのに。。。

「焙煎珈房 蝸牛の宿」のブログを読んでくださっている方はご存知かと思いますが、8月以来何度か体調を崩して、ネットショップの準備が遅れていて、Roaster Loggerの開発が滞ってます。

このブログの記事は、4ch温度計で正しくデータが取得できないバグのところで更新が止まってましたが、とりあえずこのバグは修正できてます(「焙煎珈房 蝸牛の宿」7月21日のエントリ参照)。

Roaster Loggerの紹介」では、今後の機能拡張の予定として

  • 焙煎データの保存機能(焙煎データをテキストフォーマットで保存)
  • 焙煎データのインポート機能(テキストフォーマットで保存されたデータを参考データとしてインポートする)
  • 焙煎データの管理機能(焙煎データを豆銘柄、気温、湿度、天気などの属性で絞込み必要なデータを検索する機能)
  • カッピングデータの記録機能(焙煎ごとにカッピング結果を記録、保存できるようにする)
  • DBM連携(MySQLなどのオープンソースのDBMと連携し記録データを格納、検索、取得する機能)

としていましたが、テキストフォーマットでのデータ保存機能は実装せず、DBMS(MySQL)にデータを格納する方式でのみデータ保存機能を実装する予定です(テキスト形式では、データを管理する仕組みを作るのが難しいため)。MySQLは無料で利用できるソフトウェアですので、Roaster Loggerが対応温度計、センサーを用意すればソフトウェアについては無料で利用できることは変わりません。

今後の開発スケジュールですが、焙煎珈房 蝸牛の宿のネットショップシステム構築に目処がついてからの着手になりますので、今のところはっきりとした日程はお約束できない状況です。

どうぞもうしばらくお待ちください。

| | コメント (0) | トラックバック (0)
|

2007年7月22日 (日)

4ch温度計の取り付け

こんばんは。マダム でんでん♪でございます。

今日は焙煎機に新しい温度計(FUSO-304)を取り付けました。まずはそのために温度センサー(熱電対)を取り付けないといけません。

2007070715_thermocouple

昨日、秋葉原の坂口電熱さんで買ってきたシース熱電対で す。上から順に径1mm、シース長100mmのT35101、径1mm、シース長50mmのT351005、径2.3mm、シース長50mmの T352305です。お値段は1mm径のが1本1850円、2.3mm径のが2100円でした。この熱電対には、FUSO-304に接続するためのコネクターが付いてないので、まず導線の被覆をはがしてコネクターを取り付け。

2007070715_drill

つぎは、焙煎機に取り付け用の穴を開けなければ。穴あけは以前買っておいた電気ドリルを使いました。実は電気ドリルを使うのは初めて。主人に教えて もらってもらいながら手伝ってもらってどうにか穴あけ完了。最初はちょっとおっかなかったですけど、どうにか慣れました。次からは大丈夫かな。

2007070715_thermometer

そして、焙煎機にあけた穴に熱電対を差し込み、FUSO-304に接続して無事取り付け完了です。どのコネクタがどのセンサーのだか分からなくなってしまうので、ラベルを付けてみました。

さっそく、この前FUSO-304に対応させたばかりのRoaster Loggerのテストを兼ねて焙煎してみました。今回は初期火力を今までより強火の0.7kPaにしてみました。

でも投入早々Roaster Loggerにトラブル発生。途中で吸気温度のデータが取れなくなってしまって。青色のグラフがぷっつり切れちゃってるでしょ。そうかと思うとまた復活したり。最後には4ch分まとめてデータが来なくなってしまいました。

20070715_col_1

焙煎が終わったあとで、調べてみましたが原因不明。焙煎しないで記録動作させてみても再現しないんですよね。困った。再現してくれないとどこがおかしいのか調べることもできません。デバッグ情報を書き出すようにプログラムを修正して、様子を見たいと思います。

そんなわけで、焙煎のほうがお留守になってましたが、見た感じは悪くなさそうです。

| | コメント (7) | トラックバック (0)
|

2007年7月13日 (金)

FUSO-304対応

こんにちは。マダム でんでん♪でございます。

Roaster Loggerを新しく買った4ch温度計、FUSO-304に対応させました。以前のバージョンと同様、1秒ごと(ただしFUSO-304のサンプリングレートが各チャンネル3秒に1回なので、1秒ごとに最新データが記録されるわけではない)に温度情報を取得して「今回データ」シートにデータを記録するようになっていて、「焙煎記録表」シートの焙煎曲線にリアルタイムに4ch分のグラフが表示されます。ただ、表の方は行が増えて1画面に収まらなくなってしまうので、新しく増えた2ch分のデータは表示しないようにしてあります。

20070713_roasterlogger_4ch

見た目はほとんど変わってません。中身も温度計との通信部分を書き直しただけで、ほとんど変わってません。コードもやっつけのまま。明日、何度か焙煎してみてテストしてみます。

| | コメント (0) | トラックバック (0)
|

2007年6月30日 (土)

中点の自動検出機能を追加

こんばんは。マダム でんでん♪でございます。

焙煎もぼちぼちやってますが、Roaster Loggerの改良も少しずつ進めてます。25日のバージョンでは中点は「中点」ボタンをクリックした時点のデータを取っていたのですが、中点は豆温度が一番低くなった点なので、こういうのはコンピュータに判別させたほうが正確です。それは初めから分かってたんですが、要するに判別ルーチンを書くのが面倒だったのでボタンにしてたんです。。。

今回追加したルーチンは、豆温度の最低温度と時刻を変数に保持しておいて、30秒のあいだ最低温度が更新されなかった時点で変数に保持されている温度と時刻を中点のデータとして確定し、記録するというだけの仕組み。

最初から付けとけよって感じの機能ですが、中点ボタンをクリックしなくても済むようになったのでちょっとだけ便利になりました。

| | コメント (0) | トラックバック (0)
|

2007年6月25日 (月)

焙煎データ記録プログラム完成!!

こんにちは。マダム でんでん♪でございます。

やりましたっ。焙煎データ自動記録のExcelマクロがついに完成です!!

さっそく、練習用に買ってあったコロンビア スプレモを1kg焙煎して、完成したプログラムのテストです。

20070625_colombia

ちょこっとメジャーなバグが残ってる気配ですが、とりあえずデータの記録はきちんとできました。まだ改善の余地はありますが、操作性もなかなかいい感じ。

右側のボタン類で火力、ダンパー操作、ハゼのタイミングなんかを記録できるようになってます。あとは、120℃、150℃、190℃に到達した時間のが自動で記録できるとか、直前20秒、5分の温度上昇率なんかもリアルタイムに表示されるようになってます。温度上昇率を表示する機能は、火力調整の目安として結構使えるんじゃないかと思ってます。

焙煎曲線で破線で表示されているのは、今使っている焙煎機の購入を検討していたときに、製作者の方のお宅でモカ イルガチェフ1kgのテスト焙煎させていただいたときのデータです。このときのコーヒーはとてもいい出来だったので、初心に帰って製作者の方に教わったとおりの焙煎でやってみました。ちょっとだけ下方に平行移動した感じにしてますが。

20070625_colombia_roastedbean

焙煎結果の方は、まだ分かりませんが豆の見た目や直後にドリップしてみた感じでは、そんなに悪くないんじゃないかと思います。まあ、今日はどっちかというとプログラムのテストの比重が大きかったので、結果はあまり気にしてませんが。それに、プログラミングで夜更しが続いていたので、眠くて眠くて。。。。

今日はゆっくり寝ます。

| | コメント (1) | トラックバック (0)
|

2007年6月23日 (土)

データの自動記録 その2

こんばんは。マダム でんでん♪でございます。

昨日から始めた焙煎データを自動記録するためのプログラムですが、どうにかそれっぽい形になってきました。

20070623_autorecord_s

とりあえず、シートの右のほうにある「投入」ボタンをクリックすると温度データの記録を始めて、「煎り止め」ボタンをクリックすると記録を終了します。で、記録されたデータはリアルタイムで左上の表と左下のグラフに表示されます。ついでに、過去のデータを「参考データ」シートに貼り付けておけば、参考データとの差をリアルタイムで確認しながら焙煎できます。

あとは、中点、1ハゼ、2ハゼ、火力操作、ダンパー操作のボタンをクリックしたときのイベントを書けば、とりあえず完成。エラー処理とかめっちゃ適当なので、人に使ってもらえる状態じゃないですけど、来週からはこのプログラムを使って焙煎できそうです。

将来的にはデータをデータベースに保存して、条件検索で参考になりそうなデータを探して利用できるようなシステムにしたいんですが。そこまでやるのは結構大変そう。。。

| | コメント (0) | トラックバック (0)
|

2007年6月21日 (木)

データの自動記録 その1

こんばんは。マダム でんでん♪でございます。

以前、「焙煎機の改造(改良)」で少し触れた焙煎データの自動記録システムの開発をやっとはじめました。プログラミングは久しぶりなので、ちょっとカンが鈍ってます。というか、もともと鈍るようなカンなどなかったわけですが。。。(笑

とりあえずは、データロガーとPCをRC-232で接続して、PCからデータロガーにコマンドを送って定期的に温度データを取得し、エクセルのシートにデータを書き込み、リアルタイムで表、グラフに表示するような簡単なものを作ろうと思ってます。

今使っているデータロガーは、マザーツールという会社のMT-306という2chのデジタル温度ロガーで、10個くらいのコマンドですべての機能を制御できるインタフェースになってます。このうち、Aコマンド(RS-232経由でASC 41Hを送る)で現在の温度情報をエンコードされた形で取得できるようになってます。

で、Excel VBAからCOMポート通信ができるモジュールをネットで探してたら、ちょうどよさそうなEasyCommっていうのを見つけました。リンク先からダウンロードしたアーカイブに含まれるec.basとecDef.basをExcelのブックにインポートすると、VBAからCOMポートと通信するためのメソッド、プロパティが利用できるようになります。

こういうプログラム書いた経験があまりない上に、MT-306のマニュアルの記述があまりに素っ気ないので、ずいぶん悩んだ末、とりあえず、MT-306から現在の温度情報を取得するコード断片を書いてみました。

Sub Main()

Dim recBinData() As Byte

ec.COMn = 2
ec.Setting = "9600,n,8,1"
ec.Delimiter = ec.DELIMs.LF
ec.BinaryBytes = 10          '取得バイト数を10に設定

ec.AsciiLine = "A"
Do While ec.InBuffer < 10   '10バイト受信するまで待機
    DoEvents
Loop
recBinData() = ec.Binary    'エンコードデータの読み込み

' T1の各桁をデコード
t1dig4 = recBinData(3) \ 16
If t1dig4 = 11 Then t1dig4 = 0
t1dig3 = recBinData(3) Mod 16
t1dig2 = recBinData(4) \ 16
t1dig1 = recBinData(4) Mod 16

' T2の各桁をデコード
t2dig4 = recBinData(7) \ 16
If t2dig4 = 11 Then t2dig4 = 0
t2dig3 = recBinData(7) Mod 16
t2dig2 = recBinData(8) \ 16
t2dig1 = recBinData(8) Mod 16

' 小数点の有無を判別しT1、T2を数値(ヴァリアント型)に変換
t1 = t1dig4 * 100 + t1dig3 * 10 + t1dig2 + t1dig1 * 0.1
If recBinData(2) And 4 Then
    t1 = t1dig4 * 1000 + t1dig3 * 100 + t1dig2 * 10 + t1dig1
End If

t2 = t2dig4 * 100 + t2dig3 * 10 + t2dig2 + t2dig1 * 0.1
If recBinData(2) And 32 Then
    t2 = t2dig4 * 1000 + t2dig3 * 100 + t2dig2 * 10 + t2dig1
End If

MsgBox ("T1: " & t1 & "/T2: " & t2)

End Sub

VBAエディタのイミディエイトウィンドウからmainプロシージャを実行すると、メッセージボックスに現在の温度(T1、T2)が表示されるだけの単純なコードです。後は、タイマーで定期的にこのコードを呼び出して、Excelのワークシートに時系列順にデータを書き込んでいけば、Excelのグラフ描画機能を使ってリアルタイムに温度データを表示できるかなと。で、過去30秒、1分、5分etc.の温度上昇率とか、火力、排気操作や1ハゼ、2ハゼの時間、温度なんかも自動で記録できるようにしたいなあと。

「T1の各桁をデコード」、「T2の各桁をデコード」ってコメントのあるあたりのコードは、BCDエンコードされている温度データをデコードしてるんですが、なんかどう考えてもだっさいコードです。もっとすぱっとキレイに書けるに違いないんですが。。。だれか教えてください~♪

VBAニガテなので、ちょっと苦労しそうですが。。。明日、明後日くらいで動くようになったらいいなあ。。。

| | コメント (0) | トラックバック (0)
|

その他のカテゴリー

Roaster Loggerについて | デモ | 開発日記