
せっかくArduino IDEを使ってみたが障壁は高く挫折
どうも、じぇいかわさきです。
ちょっと前ですが、こんな記事を書きました。
書いた当時は、これってかなり上手くいくかもしれない。そんな期待をしたのですが、結局うまくいかず挫折してしまいました。
今回は、何が挫折の要因だったか、初心者が同じ所で躓かないように記事にしました。
上手くいったのはマグレ?
前回の記事で、ラズパイ・ピコをMicro Pythonではなく、Arduino IDEで開発できるとの情報から実際に自分で挑戦してみました。
その時は、オンボードに有るLEDを点滅させる、いわゆるLチカを作ったんです。
この時は問題なく、Arduino IDEからプログラムを書き、コンパイルが完了。実行ファイルの書込みも完了し無事動作したんです。
しかし、その後が上手くいかない。
これはたった1回のマグレだったのでしょうか?
つまずいたのはヘッダーファイル
取り敢えず、次に実験していたのは、同じ環境でMicroPythonでは上手く動作した、I2CでのOLEDの表示です。
Arduino IDEではPythonで使うライブラリーとは違うので、全てArduinoで使うヘッダーファイルをライブラリーとして読み込むように書いた。
その状態で実際にコンパイルすると、エラーも出ずにコンパイルが完了。
できた実行ファイルをラズパイ・ピコに書込み実施でも問題なく完了。
しかし、OLEDはうんともすんとも言いません。
ライブラリー以外は、OLEDのI2Cのアドレス設定と表示サイズ指定のみ。
しかし、何も表示せず。
同じソースをArduino nanoに書き込み、実行させればプログラム通りの表示になります。
どうしてラズパイ・ピコでは動作しないのでしょうか、自分としては不思議なんです。
OLEDではなく、I2CのキャラクターLCDに変更しても全く同じ状態で変化せず。
ネットで調べるが解決ぜず挫折
ナゼを3回繰り返すと教わって来ましたので、ナゼを繰り返しながらネットで調べて行きました。
しかし、ネットで調べて少し違っているかと言う部分は全て修正して対応してみましたが、一向に解決するメドが立ちまっせん。
流石にナゼを3回以上繰り返しても、糸口さえ見つからない状況が続きました。
もしかして!
有る考えが浮かんできました。
確かにArduino IDEは使えるようになったが、Micro Pythonとは違いヘッダーファイルが実は違っているのでは無いかと考えだしました。
そもそも、ハードウェア自体の構成は違っていますので、ヘッダーファイルはハードウェア依存型で、コンパイルできて実行ファイルを書き込んでも動かないにでは?
成功して上手くいったソースは、ヘッダーファイル使っていないよねって。
行き着いた先は、ヘッダーファイルをラズパイ・ピコように書き換えなければいけないのでは。
そんな技量は持ち合わせていません。
いろいろ調べてもヘッダーファイルの事を書いた記事って見かけないんです。
残念ながらここで挫折してしまいました。
今、冷静になって考えてみると
今、もう一度冷静になって考えてみると、ラズパイ・ピコの開発環境は、Micro PythonとC++があります。
開発の簡単さと、ライブラリーの豊富さからPythonが選ばれ、そこが良さとなっています。
確かに、C++の記事ってあまり見かけません。
そもそもC++の方が敷居が高いですからね。
従って、C++のヘッダーファイルが有れば、Arduino IDEで使えるようになるんじゃないかな。
Arduino自体が、C++をベースに作られているって言われていますから。
多分、結論はそこに行き着くと思うんですよ。
しかし、残念な事に自分でヘッダーファイルを探したり、修正したりする事ができないので、ここで試合終了。
結論としては、ラズパイ・ピコはMicro Pythonでの開発がベストという事です。
もう少しヘッダーファイルについての記事が、ネットで出てくるようになるまで凍結する事にしました。
勇足になり、チョッと期待し過ぎましたね。
いいなと思ったら応援しよう!
