M5Stackを実行したい私 vs 謎のエラーを出してくるArduino
おはこんばんにちは、しおりんです。
オリンピック・パラリンピックで白熱したこの夏ですが、皆さん最近バトルしてますか?
私は、平和な日々を送っていたのですが、そんな私の前に敵が現れ、3日間の熱い戦いを繰り広げておりました。
そして、この記事を書いている今日!完全に勝利したので、
ここにその戦いの記録を残していきます🏋️♀️
戦いの始まり
日々のリモートワークにおいて、
今MTG中だよ!部屋に入らないでね
ということがわかるボードを作りたいな〜と思い、M5Stackを引っ張り出しました。
よし!大学以来、久々にArduinoで書くぞ〜 💪
と同時に、gitでも管理したかったので、VSCodeでArduinoを書いて実行できるように、環境を整え、
いざ!自分で、軽く簡単なコードを書いて実行💪💪💪
となった時、ヤツが現れたのです......
そして、ヤツは現れた
そう....ヤツとは、このエラーです。
/Users/shiorin/Documents/Arduino/libraries/M5Stack/sandbox/demodemo.ino: In function 'void setup()': demodemo:7:6: error: redefinition of 'void setup()' void setup() ^ /Users/shiorin/Documents/Arduino/libraries/M5Stack/sandbox/MtgBord.ino:3:6: note: 'void setup()' previously defined here void setup(){ ^ /Users/shiorin/Documents/Arduino/libraries/M5Stack/sandbox/demodemo.ino: In function 'void loop()': demodemo:16:6: error: redefinition of 'void loop()' void loop() ^ /Users/shiorin/Documents/Arduino/libraries/M5Stack/sandbox/MtgBord.ino:17:6: note: 'void loop()' previously defined here void loop(){ ^ 「SD.h」に対して複数のライブラリが見つかりました 使用済:/Users/shiorin/Library/Arduino15/packages/esp32/hardware/esp32/1.0.6/libraries/SD 未使用:/Applications/Arduino.app/Contents/Java/libraries/SD 「WiFiClient.h」に対して複数のライブラリが見つかりました 使用済:/Users/shiorin/Library/Arduino15/packages/esp32/hardware/esp32/1.0.6/libraries/WiFi 未使用:/Applications/Arduino.app/Contents/Java/libraries/WiFi exit status 1 IntelliSense configuration already up to date. To manually rebuild your IntelliSense configuration run "Cmd+Alt+I" [Error] Verifying sketch 'sandbox/MtgBord.ino': Exit with code=1
バトルスタート
Round.1
まず、エラーの中身をパッとみて、
「SD.h」に対して複数のライブラリが見つかりました 「WiFiClient.h」に対して複数のライブラリが見つかりました
とから、ライブラリがうまく参照できていないのかもしれない?
と思い、読み込み元のパスを自分で指定せず、自動で書き込まれるように修正して実行🥊
エラーは変わらず、🙅♀️
Round.2
そんな中、調べてみたら、このライブラリのメッセージはライブラリの読み込みが間違っているというエラーではなく、
コードや別のエラーがある時に一緒に出るものらしい😱?!
ということだったので、自分で書いたコード、エラーが出ていないだけで書き方が間違っているのかもと考え、
M5Stack公式が出しているサンプルコードをそのままコピペして実行 🥊
エラーの様子は全く変わらず、🙅♀️
ただこの時、勝利の光が...!
この時、コピペ元のサンプルコード自体は、 エラーも出ず、M5Stackに、ちゃんと書き込めていたので、
実行できないサンプルと、実行できない私が作成したファイル...一体何が違うんだ?と見比べ始めた時、
勝利の光が見えてきたのです✨
原因
1つのフォルダー内に、複数のinoファイルを入れていたからだった!
なぜ、同じフォルダに複数ファイルを入れてはだめだったのか🤔
A. 同じフォルダに入れてしまうと、実行する際、同時にファイルを開いてしまうから
解決策
1つのinoファイルは、それ専用のフォルダを作成して、その中に入れる
まとめ
こうして、Arduinoから出ているエラーを倒し、M5Stackに自分のコードを書き込むことができました🎉🎉🎉
ようやく、M5Stackで作りたいものを作るためのスタートラインに立てた!いや〜長かった.....
解決した今みると、Arduinoのリファレンスの概要に書いてある基礎的な部分だったのに、エラーとして出ると、こんなにも解決までにかかってしまうなんて...
となったので、ちゃんと公式リファレンスを読もうと改めて認識しました!
わからなすぎるこのエラーとの戦いに勝利し、自分の書いたコードでM5Stackを動かせる状態になったので、
作りたいもの、頑張って作っていきます!