クロームブックでTinyGoを使ってみる


TinyGoはGo言語でマイクロビットやラズベリーパイPico等のマイコン用のコンパイラです。

The Go Programming Language

TinyGo


今回は



ラズベリーパイPicoでLチカをしてみます。

※2024年4月16日時点でラズベリーパイPico Wでは今回のコードを試すことは出来ません。

※試すことが出来ない理由はラズベリーパイPicoとラズベリーパイPico WでLEDに当てられているGPIOピンが異なるからです。




はじめにGo言語を使用出来るようにします。

事前にクロームブックで開発環境を構築するを参考にして、クロスティーニを使用出来るようにしておいてください。


クロスティーニを開き、下記のコマンドを実行して、Go言語をインストールします。

$ sudo apt install golang
$ go version

go version go1.19.8 linux/amd64

のような出力があればインストールは終了です。


続いて、TinyGoをインストールします。

端末で下記のコマンドを実行します。

※今回はインテル製のCPU(AMD64)を搭載したクロームブックで話を進めます。


$ wget https://github.com/tinygo-org/tinygo/releases/download/v0.31.2/tinygo_0.31.2_amd64.deb
$ sudo dpkg -i tinygo_0.31.2_amd64.deb

※今回はTinyGo 0.31.2をインストールしていますが、下記のURLから最新のTinyGoをインストールするようにしてください。

Linux | TinyGo#Ubuntu/Debian


下記のコマンドを実行して、TinyGoが使用出来るようになっているか?を確認します。

$ tinygo version

TinyGoが正常にインストールされていれば、

tinygo version 0.31.2 linux/amd64 (using go version go1.19.8 and LLVM version 17.0.1)

のような内容が出力されます。




TinyGoでラズベリーパイPicoにLチカのコードをフラッシングしてみます。



白いボタン(BOOTSELと記載されている)を押しながら、パソコンとUSBケーブルで繋ぎます。



ファイルを開くと左側にRPI-RP2が表示されていますので、右クリックをして、



Linuxとの共有を管理をクリックします。

この手続きで、クロスティーニから下記のパスでラズベリーパイPicoにアクセスすることが出来るようになりました。

/mnt/chromeos/removable/RPI-RP2/



ラズベリーパイPicoにフラッシングするコードを作成します。

今回はプロジェクト名をlchikaにして話を進めます。


$ cd ~
$ mkdir workspace
$ cd workspace
$ mkdir lchika
$ cd lchika
$ nano main.go

~/workspace/lchika/main.go

package main

import (
        "machine"
        "time"
)

func main() {
        led := machine.LED
        led.Configure(machine.PinConfig{Mode: machine.PinOutput})
        for {
                led.Low()
                time.Sleep(time.Millisecond * 500)

                led.High()
                time.Sleep(time.Millisecond * 500)
        }
}

main.goを下記のコマンドでフラッシングしてみます。


$ tinygo build -o /mnt/chromeos/removable/RPI-RP2/firmware.uf2 -target=pico main.go

エラーの出力等がなければ、



のようにLチカが始まります。




TinyGoのコードをVisual Studio Code(以後、vscodeと略す)で作成出来るようにしておきます。

vscodeは事前にクロームブックにVisual Studio Codeをインストールするを参考にしてインストールしておいてください。


vscodeをインストール出来たら、vscodeを開き、今回のプロジェクトを追加し、main.goを開き、vscodeからおすすめされるGo言語用の拡張機能をインストールします。




画面の左側にある拡張機能のアイコンをクリックし、



入力フォームでTinyGoを検索します。

TinyGoが表示されたら、インストールボタンを押します。


拡張機能のTinyGoのインストールが終了したら、




コマンドパレットを開きます。



コマンドパレットにTinyGo targetを入力し、エンターを押します。



次の入力フォームが表示されたら、picoと入力してエンターを押します。

これでvscode側の設定は終了です。


今回はラズベリーパイPicoにフラッシングをすることを目的としていましたが、マイコンの種類によって最後の入力内容が異なります。

マインクラフト用ビジュアルエディタを開発しています。
詳しくはinunosinsi/mcws_blockly - githubをご覧ください。