読者です 読者をやめる 読者になる 読者になる

Take’s diary

Macとマイコンに関すること--ワクワクの製作日記

Edisonとスイッチサイエンス版EagletでiPhoneをWifiで連携させる(MEMS非接触温度センサー応用編その2:他のEdisonボード)

  Arduino用のI2c基盤は5V動作が多く、さらに3.3Vでも動作するものも結構たくさん販売されています。今回はスイッチサイエンス製以外のボードでOMURON DT6を動作させるための下準備を行ってみます。Henryに関しては3.3V変換でした。ゴメンナサイ。

Sparkfun社製Intel Edison Blockのi2c接続

 私の場合 i2c、BatteryBoard、BaseBlockボードを手に入れました。

BaseBlockボード

 OTGへの5V電源をConsoleコネクタから持ってきてるので、Intelブレークアウトなどより簡単にUSB外部機器がつなげられる点が、すごく便利です(変換コネクタが必要だが)。BaseBlockボードだけでも、この連載で紹介したSimpleCVをインストールすれば簡単に動画配信可能。さらにEdisonの初期設定も確実に行えます。

            f:id:TAKEsan:20150814154230j:plain

i2cボード

 このボードのi2c端子は、mraaで操作するところのi2cの1番となります(ただし3.3V)

。つまり6番ではないのでArduino IDEでは操作できません。しかし、このボードはLipoも含めてUSB電源供給用のコネクタを備えているボードと同位置に端子があり、ボード間の上下がギリギリであることから、とても使いにくいという欠点があります。同じような欠点は、後から手に入れたPWM BLOCK、Arduino BLOCKにもあり、こちらの2つは、端子にハンダ付けすると、USBが刺せなくなる場合があります。どうしてこんな設計にしたのか疑問ですが、このあたりはちょっと頭を使って切り抜けましょう。

 このボードの特徴は、ボード上でパターンをカッターなどで切れば(下の写真のLevel Select部分)、他の電圧にも対処できるので、電源が確保できればレベルコンバーターは必要ありません。

       f:id:TAKEsan:20150814153044p:plain

Battery BLOCK

 省電力設計のセンサーを使う場合、とてもスマートなものが出来上がります。Lipoの容量が少ないので、BaseBlockボードのOTGにWeb Cameraを接続してみてもカメラは動きませんでした。

     f:id:TAKEsan:20150814154221p:plain

 今回はこの3つのボード構成で非接触温度センサーを動かしてみます。Edison Blockの特徴である小ささを生かすために、Battery BlockのLED接点(上の写真のPower LED Jumper)から3.3Vを取り出し、ステップアップ電圧レギュレーターで5Vに昇圧しました。さらにOMURON D6Tをつなげています。

f:id:TAKEsan:20150814154535j:plain

で、ボード最小構成だと、

f:id:TAKEsan:20150814154838j:plain

3枚接続して、いつものようにレザーカバーを付けたのがこれです。

f:id:TAKEsan:20150814162433j:plain

 今回の構成では最初に書いたようにArduino IDEでは操作できません。PythonかCでI2cポート番号を1としてプログラムを作ります。前々回紹介したPythonプログラムで、ポート番号を6から1に変更すれば、非接触温度センサーが動きます。

takesan.hatenablog.com

 

Henry基板のi2c接続

 このボードは基板上でどこに接続すれば良いのかわからないので、公開回路図とテスターを使って調べてみました。結果が以下の写真です。(下図でRXとTXの間にRTSが入ってました。すいません。)

f:id:TAKEsan:20150814162235p:plain

 3.3Vの電源が出ているので、今回は3.3V変換にしました。

 信号は全て1.8Vのため、レベル変換は自前で行います。ただしプルアップ抵抗があると、i2cに接続した機器が全く動きません。この例ではレベル変換基板にプルアップ抵抗が付いていたので、ニッパーでエイッと取ってしまいました。

f:id:TAKEsan:20150814154012p:plain

 接続方法は、使用するレベルコンバーターの説明書を参照して下さい。OMURON-D6TはスイッチサイエンスEglet使用時に作成した(3.3V→5V)表示機付きのものを使って動作確認しました。他のi2c基板を接続するときは3.3V動作のものを使ってください。

 Henryのi2cはポート番号が6のため、Arduino IDEコンパイルしたプログラムでi2cが操作できますが、IDEコンパイルしたファイルがボードに転送できません。一番手っ取り早いのは、Edisonを外し、他のボードでコンパイル・転送してまたHenryに接続する方法です。Arduinoプログラムの制御方法はこの方備忘録 Edisonボード Arduino制御を参考にすると、停止・再開ができます。

 まーこのボードの基本は、PythonかCまたはNodeなんでしょうね。

 

ではまた。 次回はちょっと長くなりますが、OpenframeworksをiPhone実機で動かすまでを書いて見たいと思います。

takesan.hatenablog.com