マガジンスイッチサイエンスのブログです。コメントを受け付けていません。発売前新発売の商品ですが、オムロンのMEMS温度センサを使って簡易サーモグラフィーみたいなものを作りました。今回使った温度センサは、非接触で4x4の範囲の温度を測ることができます(1x8のものもあります)。一般的なサーモグラフィー用の温度センサに比べると解像度がかなり低いのですが、そのぶんお手頃価格で購入できます。スイッチサイエンスでは、4x4のほうの温度センサ(形D6T-44L-06)とケーブル(ハーネス)を近日中に販売開始します販売しています。興味を持たれた方は販売開始までしばらくお待ちください。温度センサとハーネスを発売しました。Arduinoと温度センサの間はI2Cで通信するので、I2C通信の機能が割り振られているAnalogピンにセンサを接続します。Duemilanoveですが、Unoでも同じです。VCCとGNDは正しくは電源とGNDの端子につなぐべきですが、この温度センサは消費電流が標準で5mAと低消費電力なので、GPIOポートを出力にしてHighとLowに設定することで電源を供給し、接続の手間を減らしています。I2C通信を行うためにWireライブラリを入れています。温度センサから送られてくるデータは35バイトなので、32バイト以上も受信するためにfenrirさんのWireExtライブラリも使っています。やっていることはさほど難しくなくて、シリアルポートから0x01が送られてきたら温度センサから温度データを読み出してシリアルポートに送り出すだけです。デバッグで楽をするためにテキストで送信しましたが、送信データ量を減らしたいならバイナリで送信したほうがいいでしょう。長くなるのでソースコードは記事の最後に付けておきます。ソースではJSONで送信する関数も入れておきました。(JSON出力は未テストなので間違ってたらごめんなさい)なお、改行コードはCR+LF(0x0D+0x0A)です。画面表示がないとつまらないので、PCで受信して画面表示することにしました。開発言語はProcessingです。ソースは同じく最後に付けておきます。Arduinoにデータのリクエストを送信し、少し待ってからシリアルポートをチェックし、データが来ていたら全部のデータが受信できるまでまたしばらく待ってから受信します。受信したデータはカンマ区切りのテキストなので、splitで分割してfloatで浮動小数点数値に変換して配列に格納します。あとは温度ごとに色を設定してから四角を描いて、を16回繰り返して1回分の処理が完了します。温度の数値も表示しておきました。いったリアルタイムの画像表示をするプログラムをさっと作りたいときにはProcessingが便利ですね。そんなわけで、繰り返しにはなりますが4x4のほうの温度センサ(形D6T-44L-06)とケーブル(ハーネス)を近日中に販売開始します販売しています。興味を持たれた方は販売開始までしばらくお待ちください。温度センサとハーネスを発売しました。Macの場合、/dev/tty.*のポートを選択してください。Macの場合、/dev/tty.*のポートを選択してください。4)*160+80);}}}TweetArduinoMEMSOMRONProcessingセンサ温度センサ投稿ナビゲーション前の記事:【3月】ウダーの日レポート次の記事:フルカラーシリアルLEDテープを光らせてみた。