LoginSignup
31
33

More than 1 year has passed since last update.

Raspberry Pi PicoをWSL(Windows Subsystem for Linux)で使う

Last updated at Posted at 2021-02-02

Raspberry Pi Picoを買ってみました。

環境構築の方法はGetting started with Raspberry Pi Picoに載っていますが、開発環境はRaspberry Pi 4上で構築するのが基本となっているようです。Windowsでのやり方も一応載っていますが、コマンドライン上での操作となるとWSL(Windows Subsystem for Linux)を使うのが便利なので、その方法をまとめてみました。

DSC_3408.jpg

必要なもの

  • Raspberry Pi Pico本体 (できれば2枚)
    • 2枚あると片方をデバッグプローブにすることでJTAGデバッグが可能になるので便利です。
  • ピンヘッダ
    • Raspberry Pi Picoにはピンヘッダがマウントされていないので、ブレッドボードに挿すためのピンヘッダを別途用意して、基板にはんだ付けする必要があります。
    • Picoの基板には両側に20ピンずつ2列、あとJTAGデバッグ用に3ピン必要なので、適宜折り取って20ピンのヘッダは基板の裏面に、3ピンのヘッダは基板の表面にはんだ付けします。
  • ブレッドボード
    • Raspberry Pi Picoにいろいろ繋げて遊ぶために使います。
  • ジャンパワイヤ
    • ブレッドボード上で配線をつなげたり、後述のUSBシリアル変換アダプタをつなぐのに必要です。通常はオス~オスタイプだけあれば良いですが、他の基板やケーブルとつなぐ際にはメスが必要になることもあるので、 オス~オスタイプオス~メスタイプメス~メスタイプ を一通り揃えておけば、後で繋げるときにあれが足りない、というようなことがなくてよいと思います。
  • USBシリアル変換アダプタ
    • Raspberry Pi PicoのGPIOに出るシリアル(UART)出力をPCのターミナルソフトで見るために必要です。もちろん変換アダプタをPCにつなぐためのUSBケーブルも。

Raspberry Pi Picoにピンヘッダをはんだ付けすると、こんな感じになります。

DSC_3410.jpg

環境構築

Windows上に以下のアプリをインストールします。

  • WSL(Windows Subsystem for Linux)
    • WSL上で動かすLinuxはUbuntu-20.04を推奨します。Ubuntu-18.04だと入っているCmakeが古いため、Pico SDKのビルドが通らないためです。
    • 既存の環境があってUbuntu-18.04を使用したい場合は、Ubuntu 18.04 に Cmake の Latest Release をインストールする などを参考にして最新のCmakeに入れ替えてやることで使えるようになるようです。
    • WSLのバージョンはWSL1でもWSL2でも構いません。ビルドの速度はWSL2の方が圧倒的に速いのですが、JTAGデバッグの準備がそこそこ面倒です(こんな感じで)。
  • USBシリアル変換アダプタのドライバ
    • 購入した変換アダプタに対応するものを使用します。 上記のリンク先にあるFTDIのチップの変換アダプタの場合はFTDI社のドライバを使用します。
  • ターミナルソフト (TeraTermなど)
    • Pico SDKのシリアル接続のデフォルトは「115,200bps 8bit パリティなし ストップビット1」なので、通信パラメータもこのように設定しておきます。
  • Visual Studio Code
    • "Remote - WSL" 機能拡張を入れておくと、WSL上のファイルもWindows上のものと同様に編集できます。

WSL上の環境構築

Getting started with Raspberry Pi PicoChapter 2. The Pico SDK に従って以下を実行します。Chapter 1. Quick Pico Setup は 開発環境にRaspberry Pi 4を使う場合の設定手順なので、実行しないように!

$ cd ~/
$ mkdir pico
$ cd pico

$ git clone -b master https://github.com/raspberrypi/pico-sdk.git
$ cd pico-sdk
$ git submodule update --init
$ cd ..
$ git clone -b master https://github.com/raspberrypi/pico-examples.git

$ sudo apt update
$ sudo apt install cmake gcc-arm-none-eabi build-essential 

(Ubuntu-18.04の場合は、最後のapt installでcmakeはインストールせずに自前でビルドします)

Pico SDKの位置を環境変数PICO_SDK_PATHに設定しておきます。.bashrcに以下の記述を追加します。

export PICO_SDK_PATH=${HOME}/pico/pico-sdk

サンプルアプリのビルドと実行

Chapter 3. Blinking an LED in C

ビルドの手順はドキュメントと全く同一です。

$ cd pico-examples
$ mkdir build
$ cd build

$ cmake ..
Using PICO_SDK_PATH from environment ('/home/xxxx/pico-sdk')
PICO SDK is located at /home/xxxx/pico/pico-sdk
  .
  .
  .
-- Build files have been written to: /home/xxxx/pico/pico-examples/build

$ cd blink
$ make -j4
Scanning dependencies of target ELF2UF2Build
Scanning dependencies of target boot_stage2_original
[ 0%] Creating directories for 'ELF2UF2Build'
  .
  .
  .
[100%] Linking CXX executable blink.elf
[100%] Built target blink

実行もドキュメントの通りです。Raspberry Pi PicoのBOOTSELボタンを押しながらPCのUSB端子に接続するとマスストレージデバイスとして認識されるので、ビルドでできたblink.uf2をドラッグ&ドロップします。
ファイルのコピーが行われると、Raspberry Pi Picoが再起動してLED点滅を始めます。

ビルド直後のコマンドラインで、

$ explorer.exe .

を実行するとそのフォルダがWindowsのエクスプローラで表示されるので便利です。

ドキュメントでは 3.2.2. Using the command line でコマンドラインでcpコマンドによって書き込む手順も紹介されていますが、WSLではこの手順はうまく動作しないようです。

(追記) WSLからPowerShellを呼び出してコマンドラインから書き込めるようにしました。【小ネタ】WSL利用時のRaspberry Pi Picoへの書き込みをコマンドラインから行う を参照してください。

Chapter 4. Saying "Hello World" in C

ビルド・実行手順はChapter 3.同様です。UART出力を見る際は 9.2.5.1. UART output を参考にして USBシリアル変換アダプタとジャンパワイヤで接続し、Windowsのターミナルソフトで見てください。

31
33
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
33