Adafruit MacroPad RP2040 Starter KitとTinyGoでLチカ
この記事で書くこと
Adafruit MacroPad RP2040 Starter KitとTinyGoでLチカを行う方法
背景
マイコンをGo言語で制御することができるTinyGoに入門したく、対応しているマイクロコントローラを探していたところ、面白そうなデバイスがありました。
Adafruit MacroPad RP2040 Starter Kit
RP2040はRaspberry Piにも搭載されているマイコンで、TinyGoでの開発に対応しています。
3 × 4のキーパッドに、OLEDディスプレイ、スピーカー、ロータリーエンコーダが搭載されています。
詳しい説明は、公式やスイッチサイエンスさんのページをご覧ください。
組立前
同梱物一式
組立後
10分で完成
最終的にはキラキラなキーパッドを作りたいと思いますが、まずはLチカからやっていきます。
確認環境
端末: MacBook Pro (13-inch, M1, 2020)
OS: macOS 13.1
Go: 1.20.3
TinyGoのインストール
参考: https://tinygo.org/getting-started/install/macos/
TinyGoのインストール
brew tap tinygo-org/tools
arch -arm64 brew install tinygo
インストール確認
tinygo version
tinygo version 0.27.0 darwin/amd64 (using go version go1.20.3 and LLVM version 15.0.0)
コード
.
├── go.mod
└── main.go
go.mod
module sample
go 1.20
制御するためのmachineパッケージを使用してLEDをつけたり消したりしています。
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.Second * 1)
led.High()
time.Sleep(time.Second * 1)
}
}
Flashing(書き込み)
TinyGoでプログラムを書き込むには、tinygo flash
コマンドを使用してtarget
オプションに機器毎の値を指定します。
機器毎のページに書き込み方法が記載されています。
参考: https://tinygo.org/docs/reference/microcontrollers/macropad-rp2040/
こちらのページを参考に、書き込みを実行するとエラーが発生しました。
tinygo flash -target=macropad-rp2040 --size short .
code data bss | flash ram
7748 108 3152 | 7856 3260
error: failed to flash /var/folders/d3/r0lrql114fzcwpsl0qdnn0br0000gn/T/tinygo1246708819/main.uf2: unable to locate device: RPI-RP2
The BOOT button is the button switch in the rotary encoder! To engage the BOOT button, simply press down on the rotary encoder.
rotaryボタンを押しながらUSB接続することで、書き込み可能な状態に切り替えることができます。
この状態でUSB接続すると、Finder上からRPI-RP2というデバイスが認識されました。
よく見ると基盤に書いてあります。装飾・基盤保護用のプレート(が邪魔)で見えませんでした。。
"↓Boot"って書いてある
この状態で書き込みを再度実行すると、今度は成功しました。
Lチカ
Lチカ!
光るのそこかー。
まとめ
- Lチカできました
- キラキラキーパッド目指して精進します
Discussion