Ícone do site Tiago Temporin

O que é TinyGo?

Neste post, vou explicar o que é TinyGo, por que você deveria conhecer e como começar com um exemplo bem simples. Se você nunca ouviu falar em TinyGo ou simplesmente quer entender esse universo de programação para microcontroladores, esse post é para você.

O que é TinyGo?

TinyGo é um compilador Go otimizado para ambientes com recursos limitados. Enquanto a linguagem Go tradicional foi criada para sistemas desktop, como CLIs, e servidores, como aplicações cloud, o TinyGo permite que você escreva código Go para rodar em microcontroladores e pequenos dispositivos.

A ideia é simples: leve a simplicidade e a elegância do Go para o mundo do IoT (Internet das Coisas) e sistemas embarcados.

Por que TinyGo existe?

Go tradicional gera binários grandes e requer certa quantidade de memória para rodar. Microcontroladores — aqueles pequenos chips que controlam LEDs, sensores e outros componentes — têm recursos muito limitados, o que acaba impossibilitando aplicações Go de serem executadas. Para tais casos, o TinyGo cai como uma luva pois ele:

Onde você pode usar TinyGo

Se você está pensando “por que não usar C ou Assembly?”, a resposta é: TinyGo te deixa escrever código mais legível e fácil de manter sem perder eficiência.

De modo geral, o TinyGo é uma ótima escolha para:

Exemplo prático

Para tornar um pouco mais palpável o que falamos até aqui, vamos olhar um exemplo clássico ou “hello world” do IoT, que é piscar um LED.

package main

import (
	"machine"
	"time"
)

func main() {
	// Define qual pino vai controlar o LED
	led := machine.GPIO{Pin: 15} // Pino 15 (ajuste conforme sua placa)
	led.Configure(machine.PinConfig{Mode: machine.PinOutput})

	// Loop infinito piscando o LED
	for {
		led.High()   // Liga o LED
		time.Sleep(time.Second)
		led.Low()    // Desliga o LED
		time.Sleep(time.Second)
	}
}

Note que, tudo nesse código – imports, funções, loops – é igualzinho na linguagem Go. A única diferença é a API machine, que é específica do TinyGo para acessar o hardware.

Como compilar e fazer upload

  1. Instale o TinyGo (veja tinygo.org)
  2. Compile para sua placa:
tinygo build -target=arduino-nano33 -o main.hex main.go
  1. Faça upload usando a ferramenta apropriada (Arduino IDE, tinygo flash, etc.)

Pronto! Seu LED pisca.

Conclusão

TinyGo abre as portas de Go para o mundo embarcado. Se você gosta de Go e quer mexer com hardware, ou se é iniciante em microcontroladores e quer escrever código mais legível, vale muito a pena aprender TinyGo.

A barreira de entrada é baixa — se você sabe Go básico, consegue começar hoje mesmo. E mesmo que não saiba Go, TinyGo é uma ótima porta de entrada para aprender a linguagem com um objetivo prático.


Gostou do conteúdo?


Faça parte da comunidade!

Receba os melhores conteúdos sobre Go, Kubernetes, arquitetura de software, Cloud e esteja sempre atualizado com as tendências e práticas do mercado.

* indicates required
Sair da versão mobile