LoginSignup
1
0

More than 1 year has passed since last update.

M5Stack用超音波測距ユニット I2C(RCWL-9620)をATOM&公式ライブラリで使う際のサンプルコード修正点

Posted at

はじめに

M5社のATOM LiteM5Stack用超音波測距ユニット I2C(RCWL-9620)をつなぎ、製品サイトからリンクされている公式のライブラリを使い、その中にあるATOM用サンプルコードを使って動かそうとしたものの、どうしても正常に動かず。原因が分からず難儀しましたが、結局サンプルコードを一部修正することで、動くようになりました。

環境

  • macOS Monterey バージョン12.5.1
  • Arduino IDE 1.8.19(通常は下記 Visual Studio Code を使用していますが、問題の切り分けのために使用しました。今回はこの環境で検証してます。)
  • Visual Studio Code + PlatformIO(普段の開発環境&現象を発見した環境)

トラブルの内容

  • そのまま動かしても、シリアルに何も流れてこない。
  • サンプルコードでは20〜4000未満の数値しかシリアルに流れないようになってるのため、サンプルコードのif文を削除し、取得したデータ全てをシリアルに流すようにしたところ、どんな距離であっても「4500.00」のみを流してくる。

修正点

ATOM用のサンプルコード内の22行目にある

M5.begin(true, true, fasle);

のうち、

  • 2つ目の引数「true」を「false」に
  • 3つ目の引数「fasle」を「false」に(単純なスペルミス)

と修正、つまり・・

M5.begin(true, false, false); 

と書き換えると、動作しました。

原因

今回いただいたアドバイスによると、

  • M5.beginの2番目の引数はWireだが、trueだとSDA=25, SCL=21で初期化されてしまう(今回のセンサーをATOM LiteのGROVE互換端子経由で使う場合は、SDA=26, SCL=32)。
  • sensor.begin()でもWireを使っている。

ためではないか、とのことでした。

ちなみに他の機種用のサンプルコードも確認しましたが、M5.begin()内で引数を指定しているのはATOM Lite用のみで、他は引数なしでした。

その他

この問題を検証中に、Arduino IDEでコンパイルできない問題が出ましたが、検証前にたまたましていたOSをアップデートが理由でした。その解決にはこちらのサイトを参考にさせていただきました。

謝辞

今回の問題解決に際して、Facebookの「M5Stack User Group Japan」で多数のヒントやアドバイスをいただきました。ありがとうございました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0