Acionando os LED's do MSR-I

Arduino é uma plataforma de desenvolvimento Open Hardware, muito utilizada para fazer projetos e protótipos, além de servir como base no aprendizado em desenvolvimento de sistemas embarcados tem se tornado um dos recursos mais populares entre entusiastas, estudantes, técnicos e engenheiros, por isso o selecionamos para embarcar no projeto do robô MSR-I, além de sua fácilidade de aplicação, uma grande comunidade usa e compartilha seus projetos com Arduino pela internet, criando foruns e sites que cada dia mais se espalha por todo o planeta.
O primeiro programa que se pode fazer com um Arduino é um “pisca-pisca” utilizando um único LED. Nossa plataforma MSR-I oferece para você 4 LED's programáveis para que você programador tenha respostas visuais do comportamento do robô durante sua execução.
A seguir vamos demonstrar passo-a-passo como instalar, configurar e programar seu MSR-I.
Baixando e instalando a IDE Arduino
Antes de começar a programar seu robô MSR-I, vamos precisar de um programa chamado IDE (Integrated Development Environment, ou Ambiente de Desenvolvimento Integrado) para o Arduino. Com a IDE Arduino podemos dar os primeiros passos, desenvolver programas e realizar a gravação dos programas na placa de controle do nosso robô.
Para fazer o download da IDE Arduino entre no site oficial do Arduino na seção Software -> Downloads e escolha sua versão de sistema operacional(Windows, Linux, MacOS).


Se quiser fazer uma doação para o software Arduino este é o momento. Se não, basta clicar em Just Download.

Execute o arquivo instalador ‘.exe’ e siga as instruções de instalação.

Certifique-se de selecionar todos os componentes na tela abaixo.




Após a instalação, abra a IDE Arduino pelo atalho criado na sua área de trabalho.
Estrutura de um programa na IDE Arduino
Você não precisa ser um expert em programação para conseguir programar o robô MSR-I com o Arduino embarcado, mesmo assim, é bastante interessante que você procure entender os programas e o que cada uma das linhas de comando executam durante ser funcionamento. Vai parecer complicado no começo, algumas coisas no programa podem não ficar tão claras, mas com experimentos e disciplina você será capaz de entender cada linha dos programas que aqui iremos desenvolver. E essencial que você entenda os programas para que você possa fazer seus próprios projetos no futuro.
Ao abrir a IDE Arduino, que instalamos anteriormente, você se depara com um programa em branco, que não faz nada. A estrutura padrão de programa contém as funções setup() e loop().

setup() – É nessa parte do programa que você configura as opções iniciais do seu programa: os valores iniciais de uma variável, se uma porta será utilizada como entrada ou saída, mensagens para o usuário, etc. Essa função irá executar apenas uma vez quando o Arduino for ligado.
loop() – Diferente da função setup(), essa parte do programa repete uma estrutura de comandos de forma contínua ou até que algum comando de “parar” seja enviado ao Arduino. Vamos ver exatamente como isso funciona ao decorrer dos projetos.
Note que o conteúdo de cada função deve ir dentro das chaves “{ }”. O número de chaves que abrem “{” devem ser o mesmo das que fecham “}”, se isso não estiver correto o programa irá apontar um erro e não será possível transferir o mesmo para o Arduino. Se você tiver dificuldades em se entender com as chaves, a IDE do Arduino te dá uma ajudinha: Basta clicar em uma chave que abre “{” que ele irá apontar a que fecha “}”. Se você clica em uma chave que não mostra onde está o seu par, provavelmente ela está sobrando no código.
Programa 1 Pisca pisca

Os LED's que estão disponíveis na placa de controle do robô MSR-I podem ser visto no diagrama eletrônico a seguir, os pinos digitais responáveis pelo controle de cada um deles são respectivamente D5, D6, D7 e D8, o LED BAT_LOW fica próximo do plug da bateria, pois o mesmo foi feito com o objetivo de ser acionado para alertar ao operador do robô que a bateria esta descarreganda, evitando assim a redução da vida útil da mesma.
Abaixo você encontra o programa completo que pode ser copiado e colado direto na IDE Arduino para que possamos executar nosso primeiro teste:
// Programa Pisca-Pisca
// Autor: Dagon_Robots
void setup() {
pinMode(5, OUTPUT); //Configura o pino digital 5 como saída
}
void loop() {
digitalWrite(5, HIGH); //Acende o led PG_03
delay(1000); //Aguarda intervalo de tempo em milissegundos
digitalWrite(5, LOW); //Apaga o led PG_03
delay(1000); //Aguarda intervalo de tempo em milissegundos
}
Você pode notar que existem coisas escritas após as barras duplas “//”, Isso é chamado de comentário. Ele não altera seu funcionamento, mas serve para quem está programando explicar algo para alguém que vai lê-lo. Uma das boas práticas de programação é documentar o seu código por meio das linhas de comentário. Isso será útil não só para você, se precisar alterar o código depois de algum tempo, como também para outras pessoas que utilizarão o seu programa. Atente-se aos comentários, eles vão ajudar!
A linha do código contendo digitalWrite(5, HIGH);, liga o pino 5, acendendo o led. O comando delay(1000);, especifica o intervalo, em milésimos de segundos (milissegundos), no qual o programa fica parado antes de avançar para a próxima linha. Quanto maior esse número, mais tempo o programa vai esperar para passar para a próxima linha.
O comando digitalWrite(5, LOW);, apaga o LED, desligando o pino 5, e depois ocorre uma nova parada (delay) no programa. Após essa espera, o processo é então reiniciado, voltando para o início do loop().
Você reparou que todo comando termina com um ponto e vírgula “;“? Ele é muito importante na programação porque define que o comando acabou ali. Se está faltando um “;” o programa não irá funcionar de jeito nenhum!
Carregando o programa no robô MSR-I

Quando o código estiver pronto para ser carregado na placa, desative os motores do robô retirando os conectores de ligação entre o motor e a palca de controle, assim iremos evitar que o robô saia andando enquanto ainda estamos programando o MSR-I e evite qualquer dano causado por uma queda, agora ligue o robô e utilize o cabo USB, que acompanha o kit, para conectar a placa de controle do robô MSR-I ao seu computador.

Com a placa de controle do MSR-I conectada, entre no menu ferramentas da IDE Arduino, escolha o modelo da placa como “Arduino Nano” e a porta na qual a mesma está conectada, que no caso do sistema Windows, será COM seguido de algum número, ex: COM3, COM4 ou COM5, etc. Caso não apareça nenhuma porta, teste com outras entradas USB ou até mesmo em outro computador.


Então clique no botão de checagem. Isso irá verificar se existe algum erro no código e gerar o arquivo de programa necessário para carregar na placa.

Se estiver tudo OK, clique no botão carregar. Isso irá gravar o programa na placa.

Caso não apareça nenhum erro, você deverá ver o LED piscando em um intervalo de 1 segundo.

Possíveis erros
Caso o projeto não funcione, verifique alguns dos possíveis erros:
Na hora da checagem, apareceu alguma mensagem em vermelho? Verifique o código e caso não encontre o problema, copie e cole novamente o código na IDE Arduino e tente mais uma vez;
Verifique se o robô esta ligado;
Verifique se o cabo USB esta bem conectado;
Verifique se o código carregou na placa através da IDE Arduino.
Desafios
Veja abaixo alguns desafios que você pode tentar resolver e melhorar seus conhecimentos!
Troque o LED do pino (D5) por outro de pino diferente (D6, D7 ou D8);
Utilize os outros LED's disponiveis na placa de controle MSR-I para fazer programas que utilizem todos eles;
Mude o intervalo de tempo que o LED pisca mudando o valor na programação na linha delay(1000); por exemplo: delay(150);
Faça os 3 LED's do MSR-I ligarem de forma alternada.
