Desenvolvimento – codificação e programação

Antes de mais nada, todo futuro desenvolvedor deve ter em mente três pilares, que NÃO são luxo:

  1. Lógica de programação;
  2. Inglês, que é ferramenta de trabalho; e,
  3. Força de vontade.

Para programar para Arduino – qualquer que seja a placa-mãe escolhida -, é necessário alguns conhecimentos de C/C++.

A codificação em Arduino está dividida em três bases:

  1. Funções
  2. Variáveis
  3. Estruturas

O objetivo desta página não é reinventar a roda. O objetivo é direcionar os nossos estudos àquilo que realmente interessa, cujo acesso a este link explica cada uma das bases elencadas acima. O caminho que oriento é a referência do Arduino, em inglês, para consulta e exemplificação das três bases; embora, existe em português também, neste link.

O código, por sua vez, deve ser organizado, contendo comentários sucintos e suficientes para facilitar a manutenção, seja pelo criador, seja próximos desenvolvedores.

 

Comentários

São linhas que o SDK não converte em código, mas, são extremamente úteis à compreensão do desenvolvedor. Durante a conversão em código executável, todas as linhas com estas marcações são ignoradas.

Há dois tipos:

Comentário linha a linha – representado pelos caracteres juntos //

Exemplo :

// Autor : Alexandre Toledo

Comentário por bloco – representado pelos caracteres juntos /* e */

Exemplo :

/*

Autor : Alexandre Toledo

Data de criação : 23/04/2020

Versão : 1.0

/*

 

Ponto-e-vírgula

Lembre-se de sempre colocar o ponto-e-vírgula (;) ao término de cada linha, exceto para comentários e outras situações a serem vistas durante os exemplos-modelo.

Exemplo : digitalRead (4) ; <= note o ponto-e-vírgula.

 

Parêntesis ( ) – colchetes [ ]  – chaves { }

Estes duplos trios tem distinção de uso em função de sua aplicação. A melhor forma de compreendê-los é vendo exemplos.

 

Palavras reservadas

Algumas poucas adaptações foram feitas à plataforma, sendo importante reconhecê-las para poder usar. Estamos falando das palavras reservadas e sua sintaxe.

As palavras reservadas não podem ser usadas diferentemente ao qual foram criadas.

  1. HIGH | LOW – Configura uma porta como nível lógico alto ou baixo, respectivamente.
  2. INPUT | OUTPUT | INPUT_PULLUP – Configura uma porta como entrada, saída ou ainda como entrada e ativa o resistor de pull-up interno.
  3. LED_BUILTIN – Ao invés de endereçar a porta 13 (no caso Arduino UNO R3) pelo número, invoca-se esta palavra reservada e o compilador faz o resto.
  4. true | false – São constantes que servem de condição de teste, largamente empregado em praticamente todos os compiladores C/C++.

 

Sintaxe e convenção

Quando criamos uma função simples, nomeamos esta função integramente com letras minúsculas; entretanto, funções que são batizadas com nomes compostos, a grafia é feita com todas as letras juntas e a partir da segunda palavra, as iniciais deverão ser sempre maiúsculas.

Confuso ? Veja os exemplos abaixo. Clique em cada uma e veja uma demonstração diretamente do site.

função simples : random()

função composta : digitalWrite()

Também cabe a observação a respeito do que significa LOW/HIGH. Supondo a seguinte situação abaixo:

int led1 = LOW;

int led1 = 0; // zero

Ambos tem o mesmo significado durante a compilação e execução.

 

Case Sensitive

Nesta plataforma, escrever uma variável (calma, que a explicação virá, caso você não saiba o que significa) como:

contador e Contador, são sentenças completamente diferentes, O compilador trata-os de forma diferente.

 

A cara de uma função

retorno nome-da-função (argumentos);

Toda a função precisa de um nome, o nome-da-função. Ex. digitalWrite, analogRead, delay. É impossível e desnecessário fica listando todas aqui.

Argumentos são termos que podem ser passados ou não para a função, afim de que esta execute determinada tarefa.

Já o retorno, corresponde ao resultado final da execução da função, que recebeu os argumentos. São exemplos de retorno : void, char, int, double, float, string, bolean. O resultado final é expresso pela função return. Entretanto, se o retorno for do tipo void, não faz sentido a última instrução ser return.

 

Instalando a IDE do Arduino a partir do site

Acesse e baixe a versão adequada para a sua plataforma (Windows, Linux, Mac) disponível neste link. É possível que, durante a instalação do Arduino, você experimente uma dificuldade: clone ou original?

Isso se deve porque existe uma interface entre o microcontrolador ATMEGA328 e a porta USB. Quando a placa é original, a instalação é transparente ao usuário.

CH340G - interface genérica

CH340G – interface genérica

Entretanto, quando a placa é um clone (que emprega a pastilha CH340G, no lugar do ATMEGA16U2 ou o ATMEGA8U2), o usuário deverá instalar um driver adicional. O passo a passo, com o driver, pode ser encontrado neste link.

Depois de instalado o driver, a SDK não faz distinção se a placa é original ou genérica.

 

setup e loop

São o início de tudo na plataforma Arduino. Todo o sketch novo começa com estas duas funções E, sim, eles são escritos em letra minúsculas, pois são case sensitive; logo, não as use em mais nenhum lugar, exceto como elas se apresentam! Tão logo você tenha instalado o SDK e fazer a sequência :  Arquivo > Novo, a tela abaixo será exibida.

Sketch inicial

Sketch inicial – Clique na imagem para aumentar

 

Exemplo de um Sketch básico

O exemplo abaixo traz uma possível estrutura de código-fonte, que pode ser seguido pelos iniciantes, embora algumas das entradas não sejam usadas em primeiro instante. Dada a riqueza de detalhes, sugiro clicar sobre a imagem para melhor visualizar o modelo.

Exemplo de estrutura de código fonte

Exemplo de estrutura de código fonte – Arquivo pessoal

 

O desenvolvimento e a programação

Por hora, deixo o link com uma apostila da UFF em Niterói, do Rio de Janeiro, sobre exemplos fáceis e consagrados ao desenvolvimento e programação do Arduino.

 

Usando as bibliotecas

Bibliotecas conferem ao Arduino a capacidade de expansão – sejam de software (internas) ou de hardware (externas). A fim de que esta página não ficasse muito extensa, neste link é possível encontrar um artigo pessoal.

 

References

No site do Arduino existe uma página com todas as funções básicas em português – acessível por este link, contendo:

  1. a descrição;
  2. a sintaxe;
  3. os parâmetros;
  4. o que ele retorna;
  5. exemplos de códigos prontos para usar (Isso ajuda muito)
  6. avisos e alertas
  7. veja mais … (várias sugestões de outras funções)

 

Voltar a página inicial do estudo sobre Arduino, neste link.

Comentários encerrados.