Tudo o que precisa de saber sobre o Arduino CodeBlog Postcircuito teamMarch 11, 2018
Desde o lançamento da plataforma de código aberto Arduino, a marca estabeleceu-se no centro de uma extensa comunidade de código aberto. O ecossistema Arduino é composto por uma combinação diversificada de hardware e software. A versatilidade do Arduino e a sua interface simples torna-o uma escolha líder para uma vasta gama de utilizadores em todo o mundo, desde hobbyistas, designers, e artistas até protótipos de produtos.
A placa Arduino está ligada a um computador via USB, onde se liga ao ambiente de desenvolvimento do Arduino (IDE). O utilizador escreve o código do Arduino na IDE, depois carrega-o para o microcontrolador que executa o código, interagindo com entradas e saídas tais como sensores, motores, e luzes.
Bambos os principiantes e especialistas têm acesso a uma riqueza de recursos e materiais gratuitos para os apoiar. Os utilizadores podem procurar informação sobre como configurar o seu quadro ou mesmo como codificar no Arduino. O código aberto por detrás do Arduino tornou-o particularmente amigável para os utilizadores novos e experientes. Há milhares de exemplos de código Arduino disponíveis online. Neste post, vamos levá-lo através de alguns princípios básicos de codificação para o Arduino.
Planear o seu próximo projecto Arduino >>
Arduino Coding Environment e ferramentas básicas
Que linguagem é o Arduino?
Código Arduino é escrito em C++ com uma adição de métodos e funções especiais, que mencionaremos mais tarde. C+++ é uma linguagem de programação legível por humanos. Quando se cria um ‘sketch’ (o nome dado aos ficheiros de código Arduino), este é processado e compilado para linguagem de máquina.
Arduino IDE
O Arduino Integrated Development Environment (IDE) é o principal programa de edição de texto utilizado para a programação Arduino. É onde irá digitar o seu código antes de o carregar para o quadro que deseja programar. O código do Arduino é referido como sketches.
Note: É importante utilizar a última versão da IDE do Arduino. De vez em quando, verifique por actualizações aqui.
Arduino code example
Como pode ver, a IDE tem um design minimalista. Existem apenas 5 títulos na barra de menu, assim como uma série de botões por baixo que lhe permitem verificar e carregar os seus esboços. Essencialmente, a IDE traduz e compila os seus esboços em código que Arduino pode compreender. Uma vez compilado o seu código Arduino é então carregado na memória do tabuleiro.
Tudo o que o utilizador tem de fazer para começar a compilar o seu esboço é premir um botão (um guia para isto pode ser encontrado abaixo).
Se houver algum erro no código do Arduino, uma mensagem de aviso irá sinalizar que o utilizador deve fazer alterações. A maioria dos novos utilizadores experimenta frequentemente dificuldades na compilação devido aos rigorosos requisitos de sintaxe do Arduino. Se cometer algum erro na pontuação ao utilizar o Arduino, o código não será compilado e ser-lhe-á apresentada uma mensagem de erro.
Serial Monitor and Serial Plotter
Arduino serial monitor pode ser aberto clicando no ícone da lupa no lado superior direito do IDE ou em baixo das ferramentas. O monitor de série é utilizado principalmente para interagir com a placa Arduino usando o computador, e é uma óptima ferramenta para monitorização e depuração em tempo real. Para utilizar o monitor, terá de utilizar a classe Serial.
O código que descarrega do circuito.io tem uma secção de teste que o ajuda a testar cada componente utilizando o monitor de série, como pode ver na imagem de ecrã abaixo:
Arduino serial plotter é outro componente da IDE Arduino, que lhe permite gerar um gráfico em tempo real dos seus dados de série. O plotter de série facilita-lhe muito a análise dos seus dados através de uma apresentação visual. É capaz de criar gráficos, gráficos de valores negativos, e conduzir análises de forma de onda.
Debugging Arduino Code and Hardware
Não parecido com outras plataformas de programação de software, o Arduino não tem um depurador a bordo. Os utilizadores podem utilizar software de terceiros, ou podem utilizar o monitor de série para imprimir os processos activos do Arduino para monitorização e depuração.
Utilizando a classe Serial, pode imprimir para o monitor de série, depurando comentários e valores de variáveis. Na maioria dos modelos Arduino, isto será utilizando os pinos série 0 e 1 que estão ligados à porta USB.
Estrutura de código
Bibliotecas
No Arduino, tal como noutras plataformas de programação líderes, existem bibliotecas integradas que fornecem funcionalidades básicas. Além disso, é possível importar outras bibliotecas e expandir as capacidades e características da placa Arduino. Estas bibliotecas estão divididas aproximadamente em bibliotecas que interagem com um componente específico ou que implementam novas funções.
Para importar uma nova biblioteca, é necessário ir a Sketch > Import Library
Além disso, no topo do seu ficheiro .ino, é necessário usar ‘#include’ para incluir bibliotecas externas. Também pode criar bibliotecas personalizadas para utilizar em esboços isolados.
Pin Definitions
Para utilizar os pinos Arduino, é necessário definir qual o pino que está a ser utilizado e a sua funcionalidade. Uma forma conveniente de definir os pinos usados é usando:
‘#define pinName pinNumber’.
A funcionalidade ou é entrada ou saída e é definida usando o método pinMode () na secção de configuração.
Declarações
Variáveis
Quando se estiver a usar o Arduino, é necessário declarar variáveis globais e instâncias a serem usadas mais tarde. Em resumo, uma variável permite-lhe nomear e armazenar um valor a ser utilizado no futuro. Por exemplo, armazenaria dados adquiridos de um sensor a fim de os utilizar mais tarde. Para declarar uma variável basta definir o seu tipo, nome e valor inicial.
Vale a pena mencionar que a declaração de variáveis globais não é uma necessidade absoluta. No entanto, é aconselhável que declare as suas variáveis para facilitar a utilização dos seus valores mais abaixo.
Instâncias
Na programação de software, uma classe é um conjunto de funções e variáveis que são mantidas juntas num único local. Cada classe tem uma função especial conhecida como construtor, que é utilizada para criar uma instância da classe. Para utilizar as funções da classe, precisamos de declarar uma instância para ela.
Setup()
P>Todos os esboços Arduino devem ter uma função de configuração. Esta função define o estado inicial do Arduino no arranque e funciona apenas uma vez.
Aqui vamos definir o seguinte:
- Funcionalidade do pinMode usando a função pinMode
- Estado inicial dos pinos
- Inicializar classes
- Inicializar variáveis
- Lógica do código
Loop()
A função de laço é também uma obrigação para cada esboço do Arduino e executa-se uma vez concluída a configuração(). É a função principal e, como o seu nome indica, corre num laço vezes sem conta. O laço descreve a lógica principal do seu circuito.
Por exemplo:
Nota: O uso do termo ‘vazio’ significa que a função não retorna quaisquer valores.
Como programar Arduino
A lógica básica do código Arduino é uma estrutura “if-then” e pode ser dividida em 4 blocos:
Setup – será normalmente escrita na secção de configuração do código Arduino, e executa coisas que precisam de ser feitas apenas uma vez, tais como a calibração do sensor.
Input – no início do laço, ler as entradas. Estes valores serão usados como condições (“se”), tais como a leitura da luz ambiente de um LDR usando a leitura analógica().
Dados manipulados – esta secção é usada para transformar os dados numa forma mais conveniente ou realizar cálculos. Por exemplo, a AnalogRead() dá uma leitura de 0-1023 que pode ser mapeada para um intervalo de 0-255 a ser utilizado para PWM.(ver analogWrite())
Output – esta secção define o resultado final da lógica (“então”) de acordo com os dados calculados no passo anterior. Olhando para o nosso exemplo do LDR e PWM, acenda um LED apenas quando o nível de luz ambiente for inferior a um determinado limiar.
Bibliotecas de código Arduino
Estrutura da biblioteca
Uma biblioteca é uma pasta composta por ficheiros com códigos C++ (.cpp) e ficheiros de cabeçalho C++ (.h).
O .h descreve a estrutura da biblioteca e declara todas as suas variáveis e funções.
O ficheiro .cpp contém a implementação da função.
Importar bibliotecas
A primeira coisa que precisa de fazer é encontrar a biblioteca que deseja utilizar entre as muitas bibliotecas disponíveis online. Depois de a descarregar para o seu computador, basta abrir o Arduino IDE e clicar em Sketch > Incluir Biblioteca > Gerir Bibliotecas. Pode então seleccionar a biblioteca que pretende importar para o IDE. Uma vez concluído o processo, a biblioteca estará disponível no menu sketch.
No código fornecido pelo circuito.io, em vez de adicionar bibliotecas externas como mencionado anteriormente, fornecemos-lhes a pasta de firmware. Neste caso, a IDE sabe como encontrá-las ao utilizar #include.
From Software to Hardware
Há muito a dizer sobre as capacidades de software do Arduino, mas é importante lembrar que a plataforma é composta tanto de software como de hardware. Os dois trabalham em conjunto para executar um sistema operativo complexo.
Código → Compile → Upload → Run
No núcleo do Arduino, está a capacidade de compilar e executar o código.
Depois de escrever o código na IDE é necessário carregá-lo para o Arduino. Clicando no botão Upload (o ícone da seta para a direita), compilará o código e carregá-lo-á se tiver passado a compilação. Uma vez terminado o seu carregamento, o programa começará a correr automaticamente.
P>Pode também fazer isto passo a passo:
- First, compile o código. Para o fazer, basta clicar no ícone de verificação (ou clicar em sketch >Verify / Compile na barra de menu.
Como pode ver, o ícone de verificação está localizado na parte superior esquerda por baixo da etiqueta “File” na secção do menu.
Após ter feito isto, o Arduino começará a compilar. Uma vez terminado, receberá uma mensagem de conclusão com o seguinte aspecto:
Como pode ver, a linha verde na parte inferior da página diz-lhe que a compilação está “terminada”. Se o seu código não for executado, será notificado na mesma secção, e o código problemático será realçado para edição.
Após ter compilado o seu esboço, é altura de o carregar.
- Seleccionar a porta série a que o seu Arduino está actualmente ligado. Para o fazer clique em Ferramentas > Porta de série no menu para designar a porta de série escolhida (como mostrado acima). Pode então carregar o esboço compilado.
- Para carregar o esboço, clique no ícone de carregamento ao lado do tick. Em alternativa, pode ir ao menu e clicar File> upload. O seu Arduino LEDS irá piscar assim que os dados estiverem a ser transferidos.
Após concluído, será saudado com uma mensagem de conclusão que lhe diz que o Arduino terminou o carregamento.
Configurando o seu IDE
Para ligar uma placa Arduino ao seu computador, precisa de um cabo USB. Ao utilizar o Arduino UNO, o USB transfere os dados do programa directamente para a sua placa. O cabo USB é utilizado para alimentar o seu arduino. Também pode executar o seu Arduino através de uma fonte de alimentação externa.
Antes de poder carregar o código, há algumas configurações que precisa de configurar.
Escolha a sua placa – Precisa de designar qual a placa Arduino que vai utilizar. Faça isto clicando em Ferramentas >Placa >A sua Placa.
Escolha o seu processador – há certas placas (por exemplo Arduino pro-mini) para as quais precisa de especificar qual o modelo de processador que tem. Em ferramentas > processador > seleccione o modelo de processador que tem.
Escolha a sua porta – para seleccionar a porta a que a sua placa está ligada, vá a ferramentas > Porta > COMX Arduino (Esta é a porta de série do Arduino).
Como instalar placas não-nativas (por exemplo NodeMCU)
Alguns modelos de placas não estão pré-instalados na IDE do Arduino, portanto, terá de os instalar antes de poder carregar o código.
Para instalar uma placa não nativa como NodeMCU, terá de:
- Click on tools > Boards > Boards Manager
- Procure a placa que deseja adicionar na barra de pesquisa e clique em “install”.
Alguns quadros não podem ser encontrados através do Gestor de Quadros. Neste caso, terá de as adicionar manualmente. Para o fazer:
- Click on Files > Preferências
- No campo Additional Boards Manager, cole o URL do pacote de instalação da sua placa. Por exemplo, para o nóMCU, adicione o seguinte URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Click OK
- Procure o quadro que deseja adicionar na barra de pesquisa e clique em “instalar”.
li>>Vá a ferramentas > Quadros > Gestor de Quadros
Após ter completado este passo, verá as placas instaladas na lista de placas em ferramentas.
Nota: o processo pode diferir ligeiramente para placas diferentes.
Arduino: Uma plataforma extremamente versátil
Arduino é muito mais do que apenas um simples microcontrolador. Com uma IDE expansiva e uma vasta gama de configurações de hardware, o Arduino é verdadeiramente uma plataforma diversificada. A variedade das suas bibliotecas e o seu design intuitivo torna-o um favorito tanto para novos utilizadores como para fabricantes experientes. Existem milhares de recursos da comunidade para o ajudar a começar tanto com hardware como com software.
À medida que avança nas suas capacidades, pode enfrentar problemas que requerem depuração, o que é um ponto fraco da IDE Arduino. Felizmente, existem várias ferramentas e métodos para depurar o hardware e software do Arduino. No próximo artigo, vamos analisar como depurar o Arduino (e como testar o código Arduino), bem como como utilizar simuladores e emuladores.