2019年3月10日日曜日

ラズパイでVSCodeを使ってArduinoの開発環境を作る

なんとかRaspberry PiにVisual Studio Code(VSCode)をインストールし、Arduinoの開発環境を構築しようとして、またトラブル。

素の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: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をクリックしても何も出ないのか、現段階で不明。

まだ使い込んでいないので、これ以上どんな不具合があるのか分からないが、とりあえずウィンドウを増やすとフリーズしてしまうので増やさないようにして使っている。(フリーズしたら、仕方なく電源を落として再立ち上げしている。)

2019年3月4日月曜日

Raspberry PiにVisual Studio Codeをインストールできない

Raspberry PiになかなかVisual Studio Codeがインストールできずに苦労したので、その覚書。

かのからあげ先生もお勧めの、はやりのエディタVisual Studio Codeが、Raspberry Piにもインストールできるようなので、遅ればせながらやってみた。

ちなみに使用環境は
Raspberry Pi 3 Model B V1.2
以下のコマンドでdebianのバージョンを表示させると、9.8だった。
cat /etc/debian_version
「これでprintデバッグから卒業!VS CodeでPythonデバッグ入門」
https://karaage.hatenadiary.jp/entry/2019/02/20/073000

ネットで探すと簡単にインストールできるらしい。

「Raspberry PiにVisual Studio Codeをインストール」

https://qiita.com/iton/items/1cd7440442f7420e6b99

LXTerminalから2行入力するだけでOKなら、簡単!
元ネタは
https://code.headmelted.com/#linux-install-scripts

早速実施
そこに書かれているように、sudo -sを入力してスーパーユーザーセッションに入り、
. <( wget -O - https://code.headmelted.com/installers/apt.sh )
と入力するのみ。
早速やってみると・・・
いろいろ出るが、どうもだめみたい。
インストールはできない
特に赤線に注目すると、「公開鍵を利用できない」とか、「以下のパッケージは認証されていません!」という警告がでて、最終的に「Visual Studio Code install failed.」で終わってしまっている。

元ネタのページを見ると公開鍵について、
For either APT or YUM installation, you'll want the public GPG key to verify the package, which you can download here.
のように書かれた部分があり、hereをクリックするとなにやら鍵のようなものがダウンロードされる。
でもこれってどう使うのかがわからない。Linuxに疎いのでここで止まってしまった。

公開鍵については、sshの関連で記事がいっぱいあるが、パッケージ認証に関してはあまり見えない。
見つけたそれらしいサイト

「aptの信頼されていないパッケージ(GPGエラー)は公開鍵の更新で解決する」

 http://elsur.xyz/ubuntu-apt-update-expired-key

これに従って端末にインストールされている鍵を表示させてみた。

2012とあるので、現在の2019年からすると、すべて期限切れ?。最新版に更新する必要があるのか、それとも他の鍵を追加する必要があるのか。

公式フォーラムに方法が
ここで悩んでいたら別のインストール方法を見つけた。

「VSCodeをラズベリーパイで使う方法」

http://zeroxsixf.wp.xdomain.jp/2018/07/21/vscode%E3%82%92%E3%83%A9%E3%82%BA%E3%83%99%E3%83%AA%E3%83%BC%E3%83%91%E3%82%A4%E3%81%A7%E4%BD%BF%E3%81%86%E6%96%B9%E6%B3%95/

これは本文にもある通り「ラズベリーパイ公式フォーラムに投稿されていたものを実際にやってみた結果」ということで、オリジナルは
である。

これによると、まずはGPGキーのインストールとあり、最初に引っかかったGPGエラーを解決するかもしれない。
この手順に従い、まずはGPGキーをインストールする。
sudo wget -qO - https://packagecloud.io/headmelted/codebuilds/gpgkey | sudo apt-key add -;

順調に終了したら、sudo apt-key listコマンドによってキーリストを表示させてみる。
なにやらキーが追加されているようだ。

更にソースリポジトリの追加を行う。nanoエディタによってテキストファイルに1行を追加、保存する。追加したあとのファイルは以下のようになっている。

このあとはVSCodeを手順に従ってインストールするのみ。
まずは
sudo apt-get update
これが終了したらインストール。
sudo apt-get install code-oss
今度は変なエラーのような文章も出ず、すんなりインストールされたような印象。

ここまで特にREBOOTもしていない。
このままメインメニューのプログラムを開くとちゃんとCode-OSSがある。
恐る恐るクリックすると、無事VSCodeが立ち上がった。
立ち上がりに少々時間がかかるものの、pythonのプログラムとか、aruduinoのスケッチを表示させると、なかなかきれい。

多分あまり変なことをしていないと、うまくインストールされるかもしれないが、さんざん変なことをした後だと、この手順でもインストールはできなかった。
一見インストールできたようでも、メニューにはCode-oss(headmelted)などと書かれていて、立ち上げてもウィンドウのみでさっぱり動作しない。(この表示でも動作する例があるようだ)

メニューに表示された「Code-oss(headmelted)」
立ち上げてもこれしか出ない

OSの再インストールもやりたくなかったので、この方法でいいのか分からないが、/etc/apt/sources.list.dホルダにあるheadmelted_vscode.listを消し、/etc/apt/trusted.gpg.dホルダ内のheadmelted_vscode.gpgも同じように削除して、Code-ossを、メニュー→設定→Add/Remove Softwareを使って削除。
その後上記手順の、GPGキーのインストールからやり直すとOKとなった。(この辺は管理者権限でないと削除できないので、LXTerminalで操作。)

このあといろいろと設定をしなくてはならないが、使用感も含めて後日。

INA219にはまる

 INA219電流センサーの互換品を買う。 互換品 オリジナル Adafruit Industries(エイダフルート) 商品レビューで評判が良くない。不良品が多すぎるという。 とはいえ全体の購入者数からすれば一部の人の評価だろうから、まあ大丈夫だろうと買う。 オリジナルの値段の...