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:
- Gera binários menores: O compilador otimiza o código para ocupar menos espaço;
- Tem menor consumo de memória: Executa com RAM reduzida;
- É compatibilidade com Go: Você continua escrevendo Go “normal”;
- Suporta múltiplas placas: Arduino, Raspberry Pi Pico, microcontroladores ARM, e muito mais…
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:
- Projetos IoT: Sensores conectados, lâmpadas inteligentes;
- Automação residencial: Controlar luzes, temperatura, portas;
- Prototipagem rápida: Desenvolva um projeto com microcontrolador sem ter que aprender C;
- Robótica: Controle de motores, servos, sensores;
- Wearables: Relógios inteligentes, rastreadores de fitness;
- Qualquer coisa com um chip: Se cabe em um microcontrolador, pode rodar TinyGo;
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
- Instale o TinyGo (veja tinygo.org)
- Compile para sua placa:
tinygo build -target=arduino-nano33 -o main.hex main.go
- 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?
- ✅ Inscreva-se na newsletter para receber mais dicas práticas sobre Go diretamente no seu e-mail!
- 🚀 Conheça a Imersão Golang e leve seus conhecimentos em Go para o próximo nível!
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.

