TinyGoはGo言語でマイクロビットやラズベリーパイPico等のマイコン用のコンパイラです。
今回は
ラズベリーパイ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をインストールするようにしてください。
下記のコマンドを実行して、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にフラッシングをすることを目的としていましたが、マイコンの種類によって最後の入力内容が異なります。