google-site-verification: google3bd66dd162ef54c7.html
fc2ブログ

VSCode for Arduino の使いこなし、いろいろな問題は解決

◆まえがき
VSCode for Arduino を使いこなす話の続きです。前回の記事ではCPUのレジスタ名を使った参照とPROGMEM機能がエラーになる話を書きました。しかし、これはどうも私の設定が間違っていたために発生していたようです。

ということで、この記事ではそのあたりの話と、その後に発生した問題を整理しておきたいと思います。

ところで、VSCode についてこれまでにいくつかの記事を書いてきました。最初は立ち上げ方法のまとめのつもりで書いていたのですが、実際にはそうはなっておらず、立ち上げ失敗の顛末記のようなものになっています。そんなことで、世の中にいっぱいいる VSCode のユーザから見ると、"素人のアホが何やっているんだ" という内容になっているような気がします。生暖かく見守っていただければ幸いです。

◆Tag Parser の設定
前の記事にCPUのレジスタ名の参照とPROGMEM機能が使えないという話を書きました。そうなってしまう原因は Intelli Sense Engine の設定が "Default" のままになっていたためでした。ここを "Tag Parser" に変更することでこの問題は解決しました。

・Tag Parserの設定
インテリセンスエンジンをタグパーサーに設定
この設定は多くの解説資料に書かれているのですが、やったつもりになっていて実際には設定するのを忘れてました。 orz

デフォルトの状態では厳密な構文解析を行うのに対し、Tag Parser を指定すると Fuzzy な解析を行うので虚報が出なくなるのだそうです。個人的にはそういう曖昧?な解決方法では無く、理詰め(つまりDefaultの状態)で解析してもらいたかった気がしますが難しいのでしょうか。

ともかくこれで問題解決。バリバリ使えるようになったかと思ったのですが、新たな問題が発生しました。

◆シリアルポートの選択が出来なくなった
いつの間にかシリアルポートの選択が出来なくなっていました。現象としては、画面右下付近にある Select Serial Port のボタンを押しても反応がありません。

対策を調べると、コードの設定ファイルである arduino.json に "port": "COM3"の行を書き加える手があるそうです。でも、COMポートの番号は動的に変わる(ことがある)のでこの対策は気に入りません。

◆VSCode のバージョンを戻す
さらに調べると、VSCode のバージョンによってこの問題が出ることがあるそうです。ということで、試しに古いバージョンに戻してみたらあっさり問題は解決しました。ちなみに、問題が発生したバージョンは 1.59.0 でこれを 1.58.2 に戻すことでOKになりました。

なお、バージョンの変更は単にそのインストールファイル、例えば VSCodeUserSetup-x64-1.48.2.exe を実行するだけでOKでした。つまりアンインストールなどはせず、単に旧バージョンのインストーラーを動かして上書きするだけで済みました。なお、各種の設定はそのまま残っていました。

◆VSCodeの自動アップデートの禁止
知らない間にバージョンアップが行われて前記のような問題が起きては困るので、VSCode の自動アップデートを止めることにしました。

・自動アップデートの停止
VSCodeの設定を以下のように変更します
自動アップデート
"Enable Windows Background Updates" のチェックを外し、"Mode" を manual に設定します。

それにしても、勝手にバージョンアップしてユーザーに迷惑をかけるのは、Microsoft の伝統芸ですね。

◆今更ですが、VSCodeの使い方
VSCode のユーザーには当たり前なんでしょうが、初心者はこんなことも知らないという例です。

・エディターの画面
設定ファイル(json)の編集
プログラムコードの編集が出来るのは当然ですが、上の画面のように jsonなどの設定ファイルも編集可能でした。実は私、知らなかったので別のエディター(秀丸)を起動して編集していました。

タブで画面を切り替えるようになっていますが、内容に変更があったタブにはその名前の後ろに ● 印が付くので判り易くなっています。

画面が出ているのでついでに説明しますが、エクスプローラーの画面でフォルダ名が大文字で表示されるようですが、これってもの凄い違和感があります。元のフォルダ名は大文字と小文字を混ぜた名前になっていることが多いはずですが、そういうのを無視して全部大文字に変換して表示しています。こうすると情報が減ることになりますが、何でこういうアホなことをするのか、意図が判らないです。
そうは書いたものの、たぶんこうしておいたほうが良いことがあるんでしょう。私の修行不足でその良さが判っていない、ということだと思います。

◆シリアルモニタの画面
エディタの画面の下に各種のアウトプット情報を表示する窓がありますが、その中に表示されるシリアルモニタの画面の見方を勘違いしてました。

シリアルモニタの設定

上に「問題」 「出力」 「ターミナル」 「デバッグ コンソール」 のタブがありますが、この「ターミナル」がArduino IDE のシリアルモニタだと勘違いしていました。

Arduino IDEのシリアルモニタは完全に別窓で表示されます。だから、VSCode でも別窓は無理でも別タブで表示し、それが「ターミナル」のタブだろうと勝手に思い込んでいました。しかしこのターミナルというのはDOS窓みたいなもので、シリアルモニタは「出力」のタブの表示内容を切り替える方式で出力されていました。

判ってしまえば、なーんだという話ですが、Arduino IDE の世界から来たので勘違いしてしまいました。

◆まとめ
とりあえず VSCode の立ち上げは終わり、現時点では普通に使える状態になりました。これから使い込んでみたいと思います。

VSCode for Arduino をカストマイズする時に判り難く感じるのは、その設定を行うメニューの場所(位置)があちこちにあることです。これは、ベースとなっている VSCode に各種の拡張機能を付けることで全体の機能を実現している、という構造上の理由から仕方ないことなんでしょう。ただそうは言ってももう少し判り易く整理しておくことが必要な気がします。つまり例えば、これはパーサーの機能だからC/C++コンパイラの設定で指定する、なんて説明があれば判り易い気がします。

あと、以前の記事で「これはおかしいのでは」と指摘したことがありますが、それらの多くは私の勘違いだったので追記の形で記事を修正しておきたいと思います。
カレンダー
07 | 2021/08 | 09
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。
記事の内容のご利用は読者の自己責任でお願いします。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード