素のVSCodeから、拡張機能でArduino for Visual Studio Code(Microsoft)をインストール。(この辺の手順はいろんなサイトに書かれている)そうすると、Arduinoのスケッチが快適に書けるようになる。この痒いところに手が届く快適さを知ると、オリジナルのIDEにはちょっと戻れないかも。
こういったEditerは他にもあるようだが、オリジナルIDEのいいところは、スケッチを書いた後、コンパイル、ボードへの書き込み、シリアルモニタでのデバッグ、動作テストが一連の作業でぱっとできること。
しかし、VSCodeのArduino拡張機能は、これと同じことをそれ以上の機能でできるというではないか。これはやってみなくては。
実際簡単なスケッチでやってみると、オリジナルIDEよりはやや遅いかな、くらいのスピードでボードへの書き込みまでできてしまった。
(例にあるLチカ(Blink)のスケッチでは、オリジナルが約10秒で書き込み完了したのに対し、VSCodeは16秒程度かかった。)
さて本題
私の環境は先に書いたように、Raspberry Pi3 Model B 1.2にOSはRaspbian。(debianのバージョンは9.8)それにVisual Studio Code(ラズパイではCode-OSSという名称。バージョン1.14.0)をインストールし、Arduinoの環境設定をしている。(RaspbianにはオリジナルのArduino IDE1.8.5もインストールされている)Windows8に、同様にVSCode、Arduino IDEをインストールしてArduinoの環境設定をした場合は、問題なく動作した。(すべてMicrosoftだし)
しかし、Raspbian上のVSCodeでArduinoの環境設定をしようとすると、単に拡張機能でArduino for Visual Studio Codeをインストールしただけではだめ。例えばスケッチ例を読み出そうとしても、オリジナルIDEのようなサンプルが出てこない。
そのために基本設定を行う。
ファイルメニューから基本設定→設定を選択。
そうするとsettings.jsonの編集画面になるので、そこにpathを書き込む。
"arduino.path": "/home/pi/Arduino1_8_5/arduino-1.8.5"
arduinoのスケッチ例のexamplesやlibrariesホルダのあるところが、私の場合は
/home/pi/Arduino1_8_5/arduino-1.8.5
だったので、上のような書き方になった。
書き込みするには、むろん直接書いてもいいが、「設定の検索」欄にarduinoと書くと、いくつかの候補が出てくるので、その中のarduino.pathにカーソルを持っていくと、左側に鉛筆マークがでてくる。それを左クリックすると「設定にコピー」となるので、それを左クリックすることで右側の設定欄にコマンドがコピーされる。その後””の間にarduinoホルダのpathを書き込む。(その後保存)
こうすることで、F1(またはShift+Ctrl+p)を押してArduino:Select Exampleを選択すると、オリジナルIDEのようにスケッチ例が現れて、希望のサンプルを読み出すことができる。
その他、F1(またはShift+Ctrl+p)を押してArduino:Change Board Typeを選択する。
これらの結果は{}arduino.jsonに記載される。(左上のエクスプローラーアイコンで表示される。)
そこで苦肉の策だが、{}arduino.jsonの中のportを書き換えてみた。
"port": "COM1"
のようになっていたものを、
"port": "/dev/ttyACM0"
とした。(ttyACM0の最後は'ゼロ')もしこの文が無い場合は追加して書き込む。
この/dev/ttyACM0というのは、オリジナルArduion IDEで、ツール→シリアルポートを選択したときに表示されるものである。
また、ファイルマネージャで/devを見てもttyACM0というファイルがあるのがわかる。
{}arduino.jsonを手で書き換えた結果が以下のようになっている。
結果的にこれでエラーが出ずにボードに書き込むことができた。(下のメッセージ欄にuploadedとあるのがわかる)
なぜArduino:Select Serial Portをクリックしても何も出ないのか、現段階で不明。
まだ使い込んでいないので、これ以上どんな不具合があるのか分からないが、とりあえずウィンドウを増やすとフリーズしてしまうので増やさないようにして使っている。(フリーズしたら、仕方なく電源を落として再立ち上げしている。)
その他、F1(またはShift+Ctrl+p)を押してArduino:Change Board Typeを選択する。
これらの結果は{}arduino.jsonに記載される。(左上のエクスプローラーアイコンで表示される。)
ここで問題が
出力ポートの選択もしないといけないが、ここで、選択ができないというトラブルが起きる。Arduino:Select Serial Portをクリックしても何も出ない。(Windowsにインストールした場合はOK)他のサイトを見ると、ボードの選択と同様にいくつかの選択肢が表示されるはずだが、出てこない。そのため、Arduino:Uploadをしても、ボード書き込みの段階でエラーになってしまう。そこで苦肉の策だが、{}arduino.jsonの中のportを書き換えてみた。
"port": "COM1"
のようになっていたものを、
"port": "/dev/ttyACM0"
とした。(ttyACM0の最後は'ゼロ')もしこの文が無い場合は追加して書き込む。
この/dev/ttyACM0というのは、オリジナルArduion IDEで、ツール→シリアルポートを選択したときに表示されるものである。
また、ファイルマネージャで/devを見てもttyACM0というファイルがあるのがわかる。
{}arduino.jsonを手で書き換えた結果が以下のようになっている。
結果的にこれでエラーが出ずにボードに書き込むことができた。(下のメッセージ欄にuploadedとあるのがわかる)
なぜArduino:Select Serial Portをクリックしても何も出ないのか、現段階で不明。
まだ使い込んでいないので、これ以上どんな不具合があるのか分からないが、とりあえずウィンドウを増やすとフリーズしてしまうので増やさないようにして使っている。(フリーズしたら、仕方なく電源を落として再立ち上げしている。)