VSCodeでPICO WのC++開発環境構築
Pico Wの開発環境の種類
今回は、Raspberry Pi PICO Wの開発を、VSCodeを使って、C++で出来るようにする方法をご紹介致します。 一見簡単そうに見えるテーマですが、いざやってみると、つまづく点も多く、資料もとぼしく、かなり大変でしたので、動画にまとめました。
ピコWの開発環境は4つあります。
- MicroPython
これは最も一般向けの開発環境です。言語がPythonですので、入門者でも気軽にプログラミングできます。 ドキュメントやネット上の情報も豊富にあります。Pythonはスクリプト言語のため、動作が遅く、メモリ消費も多いという欠点があります。 IDEはThonnyを使います。VSCodeでも開発環境を構築することができます。それについては、私のショート動画で紹介していますので、そちらを見て下さい。 - CircuitPython
教育現場での利用を主眼に作られた環境です。 - Pico SDK(C++)
Raspberry Piの公式の開発環境です。ハードウェアの細かな制御が可能で、高度なプロジェクトに向いています。その分、使いこなす難易度は高いです。 - Arduino SDK(C++)
おそらくPicoW開発では、2番目にポピュラーな開発環境です。C++をベースにしたArduino言語で開発します。Arduinoの豊富なライブラリを使うことが出来ます。コンパイル言語ですので、Pythonよりも遥かに高速です。初心者から上級者まで活用できます。 高度なハードウェア制御が必要な時はPico SDKに劣ります。
今回は、4つ目のArduino SDKの開発環境を構築致します。
PicoをArduinoで開発する場合、SDKは、「Arduino公式版」の他に「EarlePhilhower(アール・フィルハウアー)版」があります。Pico wに対応しているのは「EarlePhilhower版」の方になりますので、こちらを使ってセットアップしていきます。 セットアップにあたっては、前準備として、VSCodeとGitのインストールを完了させておいて下さい。
Windowsの場合、長いパスを有効にする
最初に、Windowsユーザーの場合は、長いパスを有効にします。Mac、Linuxユーザーの方はここを飛ばして次のチャプターに飛んで下さい。
Windowsユーザーの場合、ファイルのパスの長さは制限されており、デフォルトだと、GitHubのリポジトリ取得の際にエラーになってしまいます。
私は最初、これを知らなくて、5時間くらいエラーに悩まされました。対処は公式ドキュメントに書いてありました。ドキュメントはしっかり読まないとダメですね。
これを回避するために以下の手順を実行します。
- gitで長いパスを有効にする。
- Windows OS で長いパスを有効にする。
- コンピュータを再起動する。
順番にやっていきましょう。
- gitで長いパスを有効にする。
管理者権限でGit Bash等のターミナルを開きます。そして次のコマンドを入力します。
git config –system core.longpaths true - Windows OS で長いパスを有効にする。
Windowsのスタートボタンの横にある、検索に、gpedit.msc と入力し、ローカルグループポリシーエディターを開きます。
ローカル コンピュータ ポリシー、コンピュータの構成、管理用テンプレート、システム、ファイルシステムとたどって移動します。
Win32 ロング パスを有効にする。をダブルクリックしてダイアログを開きます。
有効を選択してOKで閉じます。 - コンピュータを再起動してください。
VSCodeへ拡張機能のインストール
VSCodeに2つの拡張機能をインストールします。
- C/C++(Microsoft)をインストールして下さい
- PlatformIO IDEをインストールして下さい。
開発プロジェクトの作成
プログラムを作るためのプロジェクトフォルダを作って下さい。今回は、Lチカのプログラムを仮に作りますので、blink2という名前のフォルダを作りました。
そしてその下に、srcフォルダを作り、LチカのC++のプログラムはそのsrcフォルダの中に作って下さい。
プロジェクトフォルダ直下。ここではblink2フォルダ直下に、platformio.ini というファイルを作り、中身を以下の内容にして下さい。
セミコロン以降はコメントですので、コメントは入力不要です。
[platformio]
default_envs = pico
[common]
build_type = release
[env:pico]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = rpipicow
framework = arduino
board_build.core = earlephilhower
monitor_speed = 115200
build_flags =
-D ARDUINO_RASPBERRY_PI_PICO_W ; enable use Pico SDK
-D PICO_STDIO_USB ; enable stdio over USB
PlatformIOの初回環境構築
左のPlatformIOのスズメバチのようなアイコンをクリックします。
そして、Pick a folderをクリックします。
プロジェクトフォルダを選択し、フォルダーの選択、をクリックします。
初回は環境準備のため、PlatformIOのセットアップが動きます。右下の進捗状況を見ながら、終了までしばらく待ちましょう。私の環境では、小一時間かかりました。
インストールが完了したら Project has been successfully updated! のメッセージが表示されます。
ビルド
ビルド、つまりコンパイルから、ピコWへのプログラムの書き込みまでの手順を解説します。
再びスズメバチメニューをクリックして開くと、エクスプローラ欄が変化します。
Buildをクリックしてコンパイルします。
ビルドが成功したらSUCCESSのメッセージが出ます。
アップロード
ビルドが終わったら、プログラムをピコWに転送します。
pico WのBootselボタンを押しながらPCに接続します。
Windowsの場合、デバイスマネージャーを開くとRP2 Bootが警告マークが付いています。このデバイスがPICO Wになります。
警告を消して、シリアルポートとして見えるようにします。
Zadigをダウンロードします。
ダウンロードが終わったら実行します。
RP2 Bootが選択されていることを確認します。USB Serial(CDC)を選択します。Install Driverをクリックします。
デバイスマネージャのポート(COMとLPT)欄のRP2 Bootを探し、COMポート番号を調べます。この例ではCOM8になります。
platformio.iniに今調べたポート番号の指定を追加します。
[platformio]
default_envs = pico
[common]
build_type = release
[env:pico]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = rpipicow
framework = arduino
board_build.core = earlephilhower
upload_port = COM8
monitor_speed = 115200
build_flags =
-D ARDUINO_RASPBERRY_PI_PICO_W ; enable use Pico SDK
-D PICO_STDIO_USB ; enable stdio over USB
左メニューの Uploadか、下メニューの → を選択すると、ボードへプログラムの書き込みがはじまります。
SUCCESSの表示が出たら成功です。
ピコW上でプログラムが動き出します。
転送が上手くいかない場合
転送が上手くいかなかった人は、プロジェクトフォルダから、.pio、build、picoとたどってください。中にfirmware.uf2というファイルがあります。これがピコWに書き込むファイルになります。ピコWのフォルダにドラッグドロップして書き込んで下さい。
まとめ
以上がVSCodeでのArduinoSDKをつかったピコWの開発環境になります。
キモはplatformio.iniファイルの書き方です。詳細な記載方法は、arduino-picoの公式ページや、platformioのドキュメントにありますので参照してください。
これでPythonを使った開発よりも、ピコWのポテンシャルを引き出せる開発ができるようになると思います。
ディスカッション
コメント一覧
まだ、コメントがありません