🫖

Adafruit MacroPad RP2040 Starter KitとTinyGoでLチカ

2023/04/18に公開

この記事で書くこと

Adafruit MacroPad RP2040 Starter KitとTinyGoでLチカを行う方法

背景

マイコンをGo言語で制御することができるTinyGoに入門したく、対応しているマイクロコントローラを探していたところ、面白そうなデバイスがありました。

Adafruit MacroPad RP2040 Starter Kit
https://www.switch-science.com/products/8094

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.

https://learn.adafruit.com/adafruit-macropad-rp2040/circuitpython

rotaryボタンを押しながらUSB接続することで、書き込み可能な状態に切り替えることができます。
この状態でUSB接続すると、Finder上からRPI-RP2というデバイスが認識されました。

よく見ると基盤に書いてあります。装飾・基盤保護用のプレート(が邪魔)で見えませんでした。。

"↓Boot"って書いてある

この状態で書き込みを再度実行すると、今度は成功しました。

Lチカ


Lチカ!

光るのそこかー。

まとめ

  • Lチカできました
  • キラキラキーパッド目指して精進します
GitHubで編集を提案

Discussion