Tutoriais

Linguagem Go com Arduino

Eletrogate 20 de abril de 2023

Introdução

Esse artigo consiste em brevemente falar sobre a poderosa linguagem recente do Google criada em 2007 para otimizar processos da web, que agora é permitida ser usada com microcontroladores, e se tornando muito poderosa devido a seus aspectos muito vantajosos que iremos falar mais a frente. Mas, como tudo tem suas desvantagens, Go também tem seus pontos fracos com os microcontroladores. Porém, Go apesar de suas desvantagens, ainda é demasiadamente superior à linguagem original do Arduino.


O que é esta Linguagem GO?

Golang, também conhecido como Go, é uma linguagem de programação de código aberto desenvolvida pela Google em 2007. Ela foi criada para resolver alguns problemas comuns encontrados em outras linguagens de programação, como C e C++, e também alguns processos da Web. Go é projetada para ser rápida, simples, segura e escalável, e tem como objetivo tornar a programação mais produtiva e eficiente. Algumas das características mais notáveis do Go são a sintaxe simples e legível, o suporte para concorrência e paralelismo, a coleta de lixo ou no inglês, garbage collection eficiente, e o suporte integrado para testes unitários.


Arduino

Oque é Arduino?

Arduino é uma plataforma de prototipagem eletrônica de código aberto, que utiliza microcontroladores programáveis para controlar dispositivos eletrônicos. Foi criada em 2005 pelo italiano Massimo Banzi e sua equipe e, desde então, tem sido usado por milhares de pessoas em todo o mundo para criar projetos eletrônicos de todos os tipos, o Arduino é composto por uma placa de circuito impresso que contém um microcontrolador, uma série de pinos para entrada e saída de dados, um ambiente de desenvolvimento integrado (IDE) e uma linguagem de programação própria baseada em C++ que tem algumas limitações que podem ser sanadas pela linguagem Go.


Vantagens e Desvantagens

Golang Com Arduino

Embora o Arduino tenha sua própria linguagem de programação, baseada em C++, nem todos os programadores estão familiarizados com essa linguagem ou gostam de usá-la. Além disso, a linguagem do Arduino pode ser limitada em alguns aspectos, como algumas falhas de segurança. Golang, por outro lado, tem suporte integrado para concorrência e paralelismo, o que é essencial para muitos projetos eletrônicos. Além disso, a sintaxe simples e legível do Go torna mais fácil para os programadores escreverem e manterem o código. Golang também é uma linguagem segura, com recursos integrados para prevenir falhas de segurança comuns, como desbordamento de buffer. Porém, nem tudo são flores, como diz o ditado popular. Go tem suas desvantagens com Arduino, como não ter um IDE especifico para fazer upload dos códigos: os códigos têm que ser feito por meio de conversores de GO para C++ para que o Arduino entenda as instruções. O conversor seria uma biblioteca Go, sobre a qual falaremos mais adiante. Inclusive, é notável citar que parte do Arduino IDE é criada em Go.


Como Usar Golang com Arduino?

Aplicando a Linguagem GO ao Arduino

Para a comunicação do código Go com o Arduino, primeiro, precisaremos de um Ambiente de Desenvolvimento Go. Uma alternativa seria o Goland da JetBrains ou, mesmo, o Visual Studio Code da microsoft. Isto tudo com a linguagem já instalada no computador, para fazer o download dos IDE’s acima, basta ir ao site das fabricantes e, para instalar o Go, você precisará de ter o windows ou linux instalado em seu PC e, logo em seguida, ir ao site da linguagem Golang. Agora, partiremos para parte do código no Arduino. Para isso, precisaremos de uma biblioteca Go, chamada TinyGO. Basicamente, o que esta biblioteca faz é, por baixo dos panos, pegar todo o código GO,e entregar um código C++ legível para o Arduino. Isso é possível pela extrema semelhança do GO com C++. Nesta biblioteca, já se tem pronta todas as funções do Arduino, desde os endereçamentos dos pinos digitais e analógicos, até as funções mais complexas.


Instalação da Linguagem GO e TinyGO

Siga os passos para a instalação da linguagem GO e, também, da biblioteca TinyGO

Passo 1: Instalar o executável direto do site da linguagem

Passo 2: Executar o Arquivo baixado:

Passo 3: Instalar o Go no computador

Para a instalação do TinyGO, é um pouco diferente:

Primeiramente, para instalar o TinyGo, iremos instalar o scoop, um instalador de pacotes do windows bem simples de usar. Para instalar ele, abra seu terminal PowerShell e digite os seguintes comandos:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

logo em seguida, digite o comando

irm get.scoop.sh | iex

Se tudo ocorreu bem, agora só precisaremos digitar o comando para realizar a instalação do TinyGO:

scoop install tinygo

Para ter certeza que esta com o TinyGO instalado, digite o seguinte comando em seu PowerShell:

tinygo version

Caso o tinygo version retorne um erro de caminho ou diretorio, no caso do caminho do PATH, basta adicionar ele ao PATH e, logo em seguida, reiniciar o computador.

Insira este comando para adicionar o TinyGO ao Path:

set PATH=%PATH%;"C:\tinygo\bin";

Se estiver usando Arduino Uno, você tera que baixar o “avrdude” para funcionar:

scoop install avrdude

Instalação e Configuração do IDE

O IDE escolhido é o Visual Studio Code, da Microsoft, ele é um software grátis e com suporte a várias linguagens de programação. Siga os passos para instalação e configuração.

Passo 1: Baixar o arquivo do site oficial da Microsoft

Passo 2: Executar o arquivo baixado e configurar a Linguagem

Passo 3: Uma tela de Boas-vindas surgirá. Basta clicar em “next”

Passo 4: Escolha o diretório onde deseja instalar o Vscode

Passo 5: Criação do atalho de inicialização

Passo 6: Setar o Vscode no path do computador

Passo 7: Instalação propriamente dita

Passo 8: Finalização do processo de instalação

Configurando Vscode para ser usado com a linguagem GO

Passo 1: Instalar extensão da Linguagem GO

Logo após, crie uma pasta e abra-a no Vscode. Clique no canto superior esquerdo, onde está escrito “File”:

Agora, crie um arquivo chamado main.go:

Logo depois, cole o código abaixo ou digite o código no arquivo GO:


Exemplo de Código com TinyGo para Controlar Dois LEDs

package main

import (
"machine"
"time"
)

func main() {
   ledVermelho := machine.D10
   ledAzul := machine.D8
   ledVermelho.Configure(machine.PinConfig{Mode: machine.PinOutput})

   ledAzul.Configure(machine.PinConfig{Mode: machine.PinOutput})
 for {

// Esta primeira parte liga o Led Vermelho e deixa o Led Azul desligado
    ledVermelho.High()
    time.Sleep(time.Millisecond * 1000)
    ledVermelho.Low()

//Logo em seguida espera 1 segundo Liga o Led azul
    time.Sleep(time.Millisecond * 1000)

// Esta segunda parte liga o Led Azul e deixa o Led Vermelho desligado
    ledAzul.High()
    time.Sleep(time.Millisecond * 1000)
    ledAzul.Low()
    

// FICA 1 Segundo inativo para repetir o codigo novamente
   time.Sleep(time.Millisecond * 1000)
 }

}

Compilação do Código para o Arduino

Para compilar o código, você tera que estar com seu TinyGO e a linguagem GO ja instalados no computador

Passo 1: Abra um terminal no Vscode

Passo 2: Digite o seguinte comando e aperte enter

Se preferir, copie e cole, no terminal, o comando abaixo:

tinygo flash -target arduino -port COM4 main.go // ou o diretorio do arquivo

para saber a porta de comunicação do seu Arduino, basta ir no Arduino IDE e verificar, na parte de ferramentas, em Porta, ou em “Port”.


Circuito para Aplicar o Código


Conclusão

Aqui terminamos uma breve demonstração da linguagem do Google com o Arduino. Podemos ver que Go é uma linguagem muito poderosa, porém ainda com pouca visibilidade, e podemos passar e olhar brevemente o quão simples é a sintaxe desta linguagem e o quão amigável ela é com os iniciantes, e principalmente podemos ver os grandes pontos de vantagens sobre a linguagem do próprio Arduino, mas também podemos ver suas desvantagens que são Ide’s não oficiais do Arduino e ter que instalar bibliotecas para que funcione a comunicação com Arduino.

Sobre o Autor


Davi Alexandre

Me chamo Davi sou Desenvolvedor de Software e entusiasta do ramo da eletrônica maker, Cursando Técnico em Automação Industrial integrado ao Ensino Médio no IFF – Instituto Federal Fluminense – Campus Santo Antonio de Padua


Eletrogate

20 de abril de 2023

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!