TinyGoを始めるのに苦労しました
· 約5分
windows10のWSLでTinyGoを使ってArduino UNOに書き込みをしようとしたらそれなりに嵌りました。
はじまり
とりあえず公式ドキュメントを確認 して必要なものをubuntuでダウンロードした。
LEDやら用意するのが面倒だったので、 チュートリアルをみつつ シリアル出力でhello worldを行おうとした。 書き込み時のオプションは 公式リファレンスで確認 して指定した。
使用したソースは以下の通り(チュートリアルのまま)
// embed/main.go
package main
import (
"time"
)
func main() {
count := 0
for {
println(count, ": Hello, World")
time.Sleep(time.Millisecond * 1000)
count++
}
}
書き込みコマンドは以下の通り。
tinygo flash -target arduino embed/main.go
実行すると以下のエラーが発生した。
error: unable to locate a serial port
sudoでも同様だった。
Arduino IDEをwindowsにインストールして書き込みをしてみるとこれは成功したのでwslでなにかあるのだろうという前提で調べ始めた。
検索
wslではwindows上のCOMポートを /dev/ttyS<n> に繋げているらしいことは知っていたので、デバイスモニターでArduinoがつながっているポートを確認すると COM3 だったので wsl上では /dev/ttyS3 に繋がるんだろうと理解した。
とりあえずポートを明示してみたがダメ。
tinygo flash -target arduino -p /dev/ttyS3 embed/main.go