M5StickC Yun Hatのサンプルコードを動くようにしてみた

はじめに

先日、M5StickC Yun Hatを購入しました。雲の形をしており、気温、湿度、気圧の計測が可能で、なおかつフォトトランジスタとLEDがくっついている製品です。

M5StickC Yun Hat(SH20,BMP280,SK6812)m5stack.com

さっそく動かしてみようと思い、公式のサンプルコードを持ってきて実行してみました。 github.com

しかし、そのままでは以下のようなエラーが出て動きませんでした。

Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.

本記事では、こちらの問題への対応について記述しますが、別のケースでもたまに間違えてしまいそうな内容だと思ったのでご紹介します。
※YUN.inoに記載がありますが、Adafruit_BMP280についてはインストール済みであるという前提です。

開発環境

  • ArduinoIDE
  • Windows10

対応内容

色々と試しましたが、私のケースでは以下のことが原因でした。

フォルダ名とinoファイルのファイル名の不一致(大文字小文字の不一致も含む)

Githubに上がっているフォルダ名とinoファイルのファイル名を見てみると、以下の通りです(比較用にbeetleCの場合も載せています)

フォルダ名 ファイル名
Yun Hat hat-yun YUN.ino
beetleC beetleC beetleC.ino

私の場合、フォルダ名をhat-yun→yunに変更して動かそうとしていましたが、フォルダ名をYUNまたはファイル名をyun.inoに書き換えることで動かすことが出来ました。

よくよく考えると、確かにArduinoIDEでinoファイルを新規作成して保存するとファイル名と同名のフォルダ配下に格納されますもんね・・・。

おわりに

動作しない原因はコードに問題があるというよりも、フォルダ名とファイル名の問題でした。

一方で、別の話となりますがコード自体は改良の余地があると感じています。 たとえば使っていない変数が残っていたり github.com

また、黄色にしか点滅しないことやアンダーフローのような動作をする点もあります。

ですので、こんな感じに変えてみたりしました。

色々と出来ることはありそうなので、遊んでみようと思います。