SDKパーツライブラリに掲載されているパーツを実際に購入して試した結果をレポートします。センサBME280を試してみた。スイッチサイエンスのBME280を購入した。ボードにピンヘッダを半田付けする必要がある。半田付け済みの製品もあるが300円ほど高い。電源ピンはVioとVcoreの2ピンがある。この2つはBME280基板上で接続されているので、Vcoreをobnizから配線する必要はない。BME280はSPI通信とI2C通信に対応している。obnizのパーツライブラはI2C通信を使っている。パーツライブラに掲載されている1番目と2番目のプログラムを試してみた。秋月電子通商が販売しているBME280ボードも試してみた。Sensor」に分類されています。パーツライブラリのページはこちらです。購入先パーツライブラリのページには、スイッチサイエンスとadafruitの商品ページへのリンクが記載されています。私はスイッチサイエンスで購入しました。製品パッケージには、本体とピンヘッダが入っています。ピンヘッダを半田付けする必要があります。スイッチサイエンスには、ピンヘッダを本体に半田付け済みの製品もあります。バラバラの製品より324円値段が高くなっています。配置BME280はI2CとSPIの2種類の通信方式に対応しています。3Wのどちらにも対応しているようです。基板には次のような端子名が記載されています。4Wの端子名になっていることがわかります。DNC(接続しない)VcoreとVio電源端子としてVcoreとVioの2つがあります。BME280チップのマニュアルにはこういう記述があります。記述の中のVDDがVcore、VDDIOがVioに対応しています。2つの端子の役割分担はこうなっていることがわかります。両方に同じ電源を繋いでも問題ないようです。スイッチサイエンスの商品ページをよく見ると次のような記載があります。VcoreとVioは基板上で結線されているので、どちらか一方に電源を供給すれば良いことがわかります。I2Cでの端子の役割I2Cの場合、端子の役割は次のようになります。SCKはI2CのSCL(クロック)。SDIはI2CのSDA(データ)。SDO端子はI2Cアドレスを選択するために使われます。BMEは2種類のI2Cアドレスを選択できるようになっていて、SDOをGNDに接続すると0x76(デフォールトアドレス)になり、Vioに接続すると0x77になります。CSBはI2CとSPIのどちらの通信方式を使うかの識別に使われているようです。I2Cを使う場合はVioに接続しておきます。I2Cの動作の仕組みをわかりやすく解説している動画があります。配線の分析まずはパーツライブラリのページに記載されている配線を分析してみます。端子の説明表のすぐ下にと書いてあるので、通信方式としてI2Cが使われていることがわかります。)関数の例題プログラムではとなっていて、各端子が順番通りにio0〜io6に割り当てられています。obnizにBME280を直接挿せば良さそうに思えますが、パーツライブラリのページにはこのような記述があります。I2C通信では、2つの通信線「SDA(SDI)とSCL(SCK)」をプルアップする必要があります。obniz内部の仕組みを使ってプルアップできますが、通信を安定させるためには外部でプルアップした方が良いと記載されています。この写真では、SDI(SDA)とVcoreを抵抗を介して接続しているように見えます。抵抗の値は10KΩのようです。SCK(SCL)もプルアップする必要がありますが、どのように配線されているのかこの写真からはわかりません。その1パーツライブラリに掲載されている最初のサンプルプログラムに対応した配線にしてみます。VioとGNDはブレッドボードの電源ラインの+とーに接続します。SDI(I2CのSDA)とSCK(I2CのSCL)は10KΩの抵抗を介して電源ラインの+に接続しプルアップします。obnizからは次のように配線します。SDOio0(Vio)とio2(GND)はブレッドボードの電源ラインの+とーに配線します。io1(Vcore)は配線しません。BME280ボード上でVioとVcoreが接続されているので配線が不要だからです。io3(CSB)〜io6(SDO)はBME280の対応するピンに配線します。見やすく表示されます。その2パーツライブラリに掲載されている2番目のサンプルプログラムに対応した配線にしてみます。使用するioはio0〜io3の4つです。VioとGNDはブレッドボードの電源ラインの+とーに接続します。CSBは電源ラインの+に接続します。SDI(I2CのSDA)とSCK(I2CのSCL)は10KΩの抵抗を介して電源ラインの+に接続しプルアップします。SDOは電源ラインのーに接続します。obnizからは次のように配線します。秋月電子通商のBME280秋月電子通商もBME280ボードを販売しています。スイッチサイエンスのBME280と比較して次のような違いがあります。端子数が6本で、スイッチサイエンス版より1本少ない。VioとVcoreが1つにまとめられてVdd端子になっているため。端子の並び順が若干異なる。ボードとピンヘッダに分かれているので、ピンヘッダを半田付けする必要がある。ピンヘッダは90度曲がった形なので、ボードとピンが平行になる。プルアップ抵抗がボード上に用意されており、はんだジャンパで使用する/しないを選択できる。SPI通信とI2C通信のどちらを使うか選択するためのはんだジャンパが用意されている。価格は、スイッチサイエンス版が1,377円で秋月版が1,080円。秋月版の方が少し安い。製品に添付されているデータシートにこのような図が描かれています。配線はんだジャンパを使うと後でSPIを使いたくなった時にはんだを剥がす必要があり面倒なので、はんだジャンパを使わないで動かしてみます。はんだジャンパを使わない場合は、CSBをVDDに接続することと、SDI(I2CではSDA)とSCK(I2CではSCL)をプルアップする必要があります。プログラムはパーツライブラリの2番目のプログラムを使います。SCKパーツライブラリの2番目のプログラムを動かしてみると、ちゃんとデータが取得できました。