LoginSignup
1
1

More than 3 years have passed since last update.

Adafruit Trinket M0でTinyGo(環境構築&Lチカ編)

Last updated at Posted at 2020-02-29

はじめに

Goで組み込み向けプログラミングができるTinyGoが盛り上がってきているようなので試してみた。
今回実行したのはAdafruit Trinket M0の搭載LEDを利用したLチカ。

動作環境

  • OS: macOS 10.15.3
  • Go: 1.13.8
  • TinyGo: 0.12.0
  • マイコン: Adafruit Trinket M0

セットアップ

Go

$ brew update
$ brew install go

TinyGo

$ brew tap tinygo-org/tools
$ brew install tinygo
$ brew tap osx-cross/avr
$ brew install avr-gcc avrdude
$ go get -u tinygo.org/x/drivers

BOSSA

BOSSAからMAC用パッケージをダウンロードしてインストール

実行コード

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)
    }
}

ビルド&書き込み

パターン1. Macでビルド&書き込み

MacにインストールしたTinyGoを使ってビルドから書き込みまで一気に実行

$ tinygo flash -target trinket-m0 ./main.go

パターン2. Dockerでビルド&Macから書き込み

Mac上でDockerを使ってビルドして、書き込みはMacから実行
Trinket M0はUSBマスストレージとして扱えるので、ビルドで生成されたUF2ファイルをドラッグ&ドロップで書き込み

$ docker run --rm -v $(pwd):/src -w /src tinygo/tinygo:0.12.0 \
tinygo build -o /src/flash.uf2 -size=short -target trinket-m0 ./main.go

実行結果

IMG_20200301_004751.jpg

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1