🐻

準備なし!今すぐはじめられる TinyGo

2024/12/16に公開

この記事は TinyGo Advent Calendar 2024#16日目の記事です。

https://qiita.com/advent-calendar/2024/tinygo

はじめに

みなさん、TinyGo って知っていますか?
Go 言語のコンパイラのひとつで、組み込みシステムや小さなデバイス向けに小さく最適化されています。Go 言語を知っている方にとってはとても書きやすいものです。Tiny!小さくてかわいい!
「タイニーゴー」と呼んであげてください。

こんな感じで光らせることができる、かわいい子です。
ところが最近、久しぶりにキートップをオシャレさせて遊んであげようとしたら。

うんともすんとも言わないのです。ちょっと機嫌が悪いみたい。(ケーブルとの相性かも...)

ということで、デバイスがなくても今すぐ TinyGo をはじめる方法について記事を書くことにしました。

Tour of TinyGo

Go ならば Tour of Go ですが、TinyGo にもあるんです。Tour of TinyGo が。

TinyGo をブラウザ上で動かすことができます。
さらに、デバイスを自由に選ぶこともできます。

Blinking LED

https://tinygo.org/tour/blink/onboard/

LED の点滅を試すことができます。

最初は次のようなコードが書いてあります。

led := machine.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
for {
	led.High()
	time.Sleep(time.Second/2)

	led.Low()
	time.Sleep(time.Second/2)
}

出力 High 状態で 0.5秒の点灯、出力 Low 状態で 0.5秒の消灯が繰り返されています。
わたしは time.Sleep(time.Second/10) くらい忙しいほうが好みかも!

External LED

https://tinygo.org/tour/blink/external/

これは外部ピンに LED を接続している例です。
ledmachine.LED から machine.A1 に置き換えることで、外部ピン A1 を利用していることになります。

ここからちょっと面白くなります。

Editor の下にある Add タブを選んで、LED を追加してみましょう。
わたしは黄色を選んでみました。

接続している場所が GP11 なので、コードは次のように置き換えます。

led := machine.GP11 

そうすると、赤く点滅していた部分が、黄色の点滅に置き換わります。

自分だけの Try TinyGo

Tour of TinyGo を楽しんだので、次は Try TinyGo で遊びましょう。

https://tinygo.org/

Gopher Badge 欲しいですか?欲しいですよね!

Gopher Badge とは、さまざまなセンサーや LED などが搭載されたツールです。
カンファレンスで名刺代わりに利用することもできます。

基板を手に入れる前に、触り心地を試してみましょう。

Gopher の目を点滅させたい!そんなときは、Gopher Badge チュートリアルの step3 です。
ディスプレイに文字を表示させたいときは step4 が参考になります。
また、次のようにすると、とてもかわいい GopherFont を利用できます。

import (
	"machine"
  .
  .
  .
	"tinygo.org/x/tinyfont/gophers"	
)
.
.
.
tinyfont.WriteLine(&display, &gophers.Regular32pt, 40, 80, "ABCEFGHIJK", color.RGBA{R: 255, G: 255, B: 0, A: 255})

Gopher たちがアルファベットに対応して表示されます。

さいごに

このように、かわいくて楽しい TinyGo はいつでもはじめられます。

でもやっぱりデバイスで動かしてこその楽しさ!満たしたい所有欲!
TinyGo Keeb というコミュニティは、TinyGo と自作キーボードをかけ合わせたとても楽しいハンズオンの全国ツアーを開催しています。
あなたの街にも現れるかも!? ぜひ遊びに来てください。

https://tinygo-keeb.connpass.com/

Discussion