0
0

WSL2にインストールしたtinygoでtinygo monitorをraspberry pi picoで実行

Posted at

WSL2にインストールしたtinygoでtinygo monitorを実行

どうしてもWSL2でtinygoを動かして、
rapberry pi pico相手に tinygo monitorを実行したかった。

備忘録としてメモをまとめる。

実行環境

  • Windows 11
  • WSL2 Ubuntu 22.04LTS
  • golang 1.22.5
  • tinygo 0.32.0

手順

1. golang, tinygoをインストール

2. ソースコードを作成

今回は下記 sample.go

package main

import "time"

func main() {
	for {
		println("hello world!")
		time.Sleep(time.Second)
	}
}

3.モジュール解決

go mod init sample
go mod tidy

4. コンパイル

tinygo build -target=pico -o ./sample.uf2 ./sample.go

5. rapberry pi picoにsample.uf2を書き込み

  • PCにraspberry pi picoをBOOTSELを押しながら、書き込みモードでUSB接続
  • エクスプローラーから先ほどコンパイルした「sample.uf2」をコピペ
    • エクスプローラーが自動でとじられる。

6. PC側にusbipdをインストール

7. WSL2にシリアルポートをアタッチ

  • 管理者権限でpowershellを起動
  • USBシリアルデバイスとなっているデバイスを下記要領で探して、WSL2にアタッチする。
PS C:\WINDOWS\system32> usbipd list
Connected:
BUSID  VID:PID    DEVICE                                                        STATE
4-2    2e8a:000a  USB シリアル デバイス (COM3)                                  Shared

PS C:\WINDOWS\system32> usbipd attach --wsl --busid  4-2
BUSIDは読み替えること

8. WSL2側でシリアルデバイスを使えるようにする

※シリアルデバイスとして、扱われているか確認する。
ls -ltr /dev/ttyACM0 
crw-rw-rw- 1 root dialout 166, 0 Aug  4 02:54 /dev/ttyACM0

sudo chmod 777 /dev/ttyACM0

9. tinygo monitor

うまくいけば「hello world!」を確認できる

$ tinygo monitor -target=pico -baudrate=9600
Connected to /dev/ttyACM0. Press Ctrl-C to exit.
hello world!
hello world!
hello world!

備考

終わるときはpowershellでデタッチ

 usbipd unbind --busid 4-2
 BUSIDは読み替え(4-2の箇所)

0
0
0

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
0
0