MUDAなことをしよう。MUDAなことをしよう。先日、Arduino界隈の情報をウロウロ探していたら、以下の記事を見つけました。Arduinoで赤外線アレイセンサ「Grid-EYE」から2次元の温度データを取得するおお、これはなんだか、とても可能性を感じます。使ってみたい!ということで、自分で購入して使ってみることにしました。取得したデータをクラウドとかに上げられるようにしておいた方がライフログとしては便利だろうと思ったので、Wi-Fiに繋がりかつArduinoライクに開発可能なESP-WROOM-02で動かしてみました。Developerを使うことにしました。Developer(ESP-WROOM-02開発ボード)これならわざわざ自分で書き込み機を作らなくてよいので大変ラクです。IDEでの開発方法についてはこちらにまとめられています。二次元温度センサこと、Panasonic製赤外線アレイセンサ「Grid-EYE」を接続。いきたいところなのですが、その前に、当たり前ですがGrid-EYEを入手しないといけません。先の記事では「とある伝で入手した」とありますが、私にはそんなツテはございませんので、普通に買ってこないといけません。これが全然売っていない。唯一、RSコンポーネンツが買えそうな気配を出していたのですが、基本法人相手なようで、個人では買えませんでした。粘ってみましたが、海外からの輸入品になるらしく、申請の書類に所属する会社の許可が必要と言われて断念しました。Soft様がGrid-EYEを使用した二次元温度センサを販売されていました。こちらはAmazonから購入可能。使用)I2C接続版のROBOBA041とUSB接続版のROBOBA043がありますが、Arduinoで使う分にはI2C接続版の方が都合が良いですし、価格もお安いのでこちらにしました。お安いといってもほぼ一万円するので、買うからには有効活用してやるという覚悟が問われます(?)。ちなみに、上記のROBOBA041には10pinのフレキシブルケーブルが付属していますが、このままだと工作としては少々扱いづらいので、秋月で販売されているDIP化キットなどを併用すると扱いやすくなります。Grid-EYEには3.3V駆動と5V駆動の2タイプ(AMG883X系とAMG885X系)がありますが、ROBOBA041に搭載されているのはAMG8832で3.3Vなので、ESP-WROOM-02との接続については特に電圧の変換は気にしなくて良さそうです。ROBOA041の関連ドキュメントはこちらで公開されているので、主に回路図を見ながらESP-WROOM-02と接続してみます。回路図によると、フラットケーブル(CN1)の10番に3.3V、9番にSDA、8番にSCL、6番にGNDを繋げば良さそうです。これが実際のROBOBA041ですが、回路図でR2とR3となっている部分には、実際には抵抗がついていません。これは、接続するマスタデバイス側でI2Cのプルアップ抵抗が内蔵されているか否かで抵抗の要不要が変わるため、このような形になっているようです。EPS-WROOM-02でI2Cを利用する場合、プルアップ抵抗は内蔵されていないので、この部分にそれぞれ10kΩを取り付けてあげた方が良さそうです。本来はチップ抵抗を取り付けてあげるべきなのですが、所有していなければ半田づけする技術もありませんので、不細工ですが普通のカーボン抵抗をくっつけます。こちらがブレッドボードに実際に配線してみた状態です。フラットケーブルの10番に相当する部分は、DIP化キットの基板上では1番になっている点に注意です。見やすいように基板を外した状態です。ESP-WROOM-02では、GPIOの4番がSDA、5番がSCLになります。プログラムについては、素晴らしいことに、上記のサイトの方がArduino用のライブラリを作ってくださっています。本当にありがたいです。ありがとうございます。IDEにインクルードして、サンプルプログラムを動かして見ます。delay(1000);}サンプルプログラムは上記のサイトのサンプル1ほぼそのままなのですが、一点だけ変更しています。最初のGridEyeオブジェクトの宣言部分で、引数として”GridEye_DeviceAddress_1′′を渡しています。こちらの仕様を見るとわかるのですが、Grid-EYEは二つのI2Cアドレス(0x68と0x69)を選択できるようになっています。AD_SELECTピンをLOWにすると0x68、HIGHにすると0x69になります。その上で改めてROBOBA041の回路図を見てみると、ADの部分がHIGHになっており、アドレスが0x69になっていることがわかります。ライブラリではデフォルトのアドレスがGridEye_DeviceAddress_0(=0x68)になっているため、オブジェクトの初期化時にGridEye_DeviceAddress_1(0x69)を渡して、プログラムがアクセスするアドレスを変更しています。IDE上では”ライブラリGridEye-masterはアーキテクチャ[avr]に対応したものであり、アーキテクチャ[esp8266]で動作するこのボードとは互換性がないかもしれません“という警告が表示されますが、特に問題はありません。サンプルプログラムを実行してみると、シリアルモニタには以下のように表示されます。...うん、だいたい合ってそうです。Outputの値が、Grid-EYEがどういう向きのときの値に対応しているかですが、仕様を参考にするに、だいたいこの向きで向かい合ってこんな感じではないか。いうことで、Grid-EYEを動かすまでに結構手間取ってしまいましたので、取得したデータをクラウドに上げるのはまた次回とさせてください。ちなみに、これを書いている時点ではまだ成功していません。MUDAなことをしよう。(ROBOBA041)をESP-WROOM-02で動かすことには成功しました。MUDAなことをしよう。MUDAなことをしよう。コメントをキャンセルメールアドレスが公開されることはありません。hidaka_hirojiAmazonほしいものリストこちら自身の工作用に使いたいものがメインですが、必ずしも工作に使うわけではないのでご了承ください。MUDAなことをしよう。