学生実験」カテゴリーアーカイブ

Raspberry piに K熱電対ロガー (2)

前回に引き続き、今回はようやく熱電対2チャンネル分の動作まで確認できた。

外観はこんな感じ

Raspberry piに熱電対モジュール2つ接続した外観

Raspberry piに熱電対モジュール2つ接続した外観

SPIシリアルは基本的にはSSで機器を判別するので、配線は以下の通りとなる。

SPIシリアルピンと2つのK熱電対モジュールの配線図

SPIシリアルピンと2つのK熱電対モジュールの配線図

配線はなるべく短いほうがいいようです。とりあえず手元にあった古いLANケーブルを切り刻んでハンダ付けしましたが、十分OKでした。

あとはmax31855.pyのコードを2チャンネル分読み取るように編集すると完成。

5秒毎の室温を2ちゃんねる同時に測定し、libreofficeでグラフ表示

5秒毎の室温を2ちゃんねる同時に測定し、libreofficeでグラフ表示

概ね安定して測定できています。もう少しノイズ対策したらばらつきは改善するのかもしれません。windowsでプログラミングするようになってからあまりきにしていませんでしたが、pythonはインデント位置が厳密になっていて、綺麗にコードが書けるように配慮されています。あとはRS-232cポートを取り付けて、シリアル制御もできるとさらに可能性が広がります。できればUSBTMCも制御できてしまうと完璧なんですが。GPIBはとても大好きですけど遅いしもういらないかな・・・だれかUSBTMCドライバ開発してください。

Raspberry piにK熱電対ロガー (1)

K熱電対のモジュールが届いたので、ユニバーサル基板にピンソケットをつけて配線したらとりあえずあっさりと1チャンネル分の熱電対ロガーが出来てしまったので、まとめておく。

参考にしたサイトは以下のサイトですが、フランス語なのでgoogle翻訳のお世話になった。

http://chezdjibb.wordpress.com/2013/03/02/raspberrypi-et-thermocouple/

 

K熱電対のモジュールは千石電商から購入し、ソケット終端の熱電対がセットになっています。

IC(MAX31855)部分は予め半田付けしてあるので、ピンヘッダ部と熱電対のソケットをハンダで固定するだけです。

モジュールとraspberry piとの配線は以下の通り

  • VCC  →  3V3 Power  (隣の5Vはだめです。多分MAX31855が壊れます)
  • GND →  Ground
  • SS  →  GPIO 8(CE0) あるいは GPIO 7(CE1)どちらでも可(のはず)
  • MISO →  GPIO 9 (MISO)
  • SCK  → GPIO 11(SCKL)

GPIOs

 

とりあえず繋いでみた写真がこんな感じ

IMG_0255

 

ここからはソフトウェアの設定

  • GPIOを制御するライブラリのダウンロードとインストール

https://github.com/quick2wire/quick2wire-python-api

quick2wire-python-api-master.zipを適当なフォルダに保存したら

unzip quick2wire-python-api-master.zip

cd quick2wire-python-api-master

もしここでpyhton3がインストールされていなければ sudo apt-get install python3-setuptoolsを実行

sudo python3 setup.py install

  • Bitstringのダウンロードとインストール

https://code.google.com/p/python-bitstring/downloads/list

unzipで解凍したら先ほどと同じく解凍したフォルダに移動して

sudo python3 setup.py install

  • GPIOポートの設定

/etc/modprobe.d/raspi-blacklist.confの全ての行をコメントアウト(行頭に#をつけて保存)

rebootで再起動

  • MAX31855ドライバのダウンロードと編集

https://github.com/Tuckie/max31855/blob/master/

ZIPを解凍してmax31855.pyを編集

134行目 thermocouple = MAX31855(1, “f”) ここで括弧の中の1はCE1を示すので、CE1に接続したなら1のまま、CE0に接続の場合は0に書き換え、”f”は華氏、”c”に書き換えで摂氏に変更

  • とりあえず実行してみる

python max31855.py で実行すると以下の通り温度が1秒おきにスクロール表示される

IMG_0260

2つ値が表示されるが、tcが熱電対先端の温度で、rjがモジュールICに内蔵の冷接点補償回路のセンサー温度なので、常に冷接点補償された温度を記録できている。素晴らしい。

あとはもう1チャンネル繋いで、2チャンネル分収集出来るか確認が出来れば示差熱分析に使えそう!

ただ14ビットで最少0.25C刻みなので、ちょっと不安ではありますが・・・、まあ学生実験であれば許されるだろう;

というか-200℃~1800℃を14ビットで分解しているのはどう見てもおかしいでしょう。K熱電対はそんな高温まで耐えられないんだから1100℃上限のスケールにしてもらえればもう少し分解能は改善すると思うんですが。不思議です。

MAX31855はR熱電対用もあるみたいです。ただ1000個ロットでないと安く購入するのは難しいようなので、

どなたかR熱電対用も同じ価格でモジュールを販売していただけると助かります。

このコストパフォーマンスには驚かされます。Raspberry piが2950円(typeAに至っては2150円)、熱電対モジュールが1個2730円。モニタはターミナルあるいはVNC経由にしてしまえば通常は必要ないので、この時点で6000円ほどでLAN対応温度ロガーができてしまいます。電気炉のモニタにも使えるでしょうし、この面白さ、学生にもぜひ理解して欲しいところです。

Raspberry piで

35$コンピュータとして昨年人気になったRaspberry piを学生実験の計測に活用できないか思案中
とはいえデータロガーは最低でも数万はするし、NI-DAQとLabVIEWとなるとさらに高額でボツ。できれば熱電対の温度くらいは格安でデータ収集したいところです。

いろいろ探しているとRaspberry piにはSPIシリアルが2つ切り替えられるのと、SPIシリアル用に熱電対モジュールが販売されているようです。

MAX31855 K型熱電対温度センサモジュール

http://strawberry-linux.com/catalog/items?code=12388

また、pythonで読み取れるらしい。

http://www.raspberrypi.org/phpBB3/viewtopic.php?t=18125

これを2つ搭載すれば、示差熱分析が一万円しないで作れそう。
さらにUARTシリアルに電子天秤を繋げばTG-DTAにも・・・

 

B2の学生実験ガイダンスの補足

今年度も学生実験が始まりました。まずはB2のガイダンスからスタートです。
レポートの書き方でグラフソフトについて話しましたが、今日デモしたngraph-gtkに関するお役立ちリンクを紹介します。

ngraph-gtkはngraphをgtk+に移植させたものですが、最近はこちらのほうが開発が頻繁なようです。windowsはもちろんlinux, macでも動くので、windows使いの研究室学生が作ったグラフを、主にOSX使い(もともとwindowsユーザーです)の私が受け取って編集することができます。

ngraph-gtkが元となっているngraphのサイト。windows,linux版はあるが、OSXで起動させるにはかなり苦労しそうである。いつの間にかフリーソフトとなっている。大変ありがたい。もちろんngraph-gtkもフリーです。
単独で使うならngraphでもいいかも知れないが、pdfが出力できるgtkの方がいいと思う。使い方はまったく同じなので、マニュアルは役に立ちます。

秋田高専の電気情報工学科の先生のページらしい。レポートの書き方・手書きでのグラフの書き方についても解説がある。もちろんngraphの使い方についても丁寧に紹介されている。

エクセルで科学グラフの作成はかなり大変です。ぜひngraph等の専用ソフトを使いましょう。