Kit Iniciante Robótica - 5. Olá Mundo




Existe uma tradição no mundo da programação onde uma das primeiras coisas que um iniciante faz quando está aprendendo uma nova linguagem é imprimir a mensagem "Hello World!" ou "Olá Mundo", em português. Entretanto, com Arduino essa tradição é um pouco diferente: ao invés de imprimir essa mensagem, o que a maioria das pessoas fazem ao pegar um Arduino na mão pela primeira vez é piscar um LED! Chegou a sua vez de fazer isso.

julieta-blink.gif

Por mais simples que este experimento possa ser, ele é fundamental para o uso desse material. Ao passar o código deste experimento para a placa você saberá se o driver está instalado corretamente, se a placa escolhida é de fato a que será utilizada, além de conseguir enxergar algumas palavras-chave fundamentais para qualquer código com Arduino, como o setup( ) e o loop( ). Uma dica importante: o código que iremos escrever é o que chamamos de case sensitive, ou seja, o programa irá diferenciar se você escrever com letras maiúsculas ou minúsculas. Dessa forma, escrever "ASSIM" é difernete de escrever "assim".


Fazendo o LED da placa piscar


Abra a IDE do Arduino e abra o exemplo Exp1_HelloWorld. Para isso, acesse: Arquivo->Exemplos->RoboCore Falcon Robot->Exp1_HelloWorld, como mostra a figura abaixo:


Feito isto, o código do programa irá aparecer na tela do ambiente de desenvolvimento. Após carregar o código para sua Julieta você deve observar o LED dela piscando rapidamente, exatamente duas vezes por segundo.
É interessante que você analise o programa para tentar compreendê-lo. Para tanto, abaixo você encontra todo o código, assim como você deve ver na tela da IDE:



Entendendo o Código


Para iniciar o entendimento do código, observe o que são e como são feitos os comentários em um código de linguagem C. Os comentários são anotações que o programador faz no código como referência. Isso significa que eles não exercem nenhuma lógica e são completamente desconsiderados pelo compilador. Para fazer um comentário que irá se desenvolver por mais de 1 linha, deve-se usar as notações: /* e */. O primeiro (/*) indica onde começam os comentários e o segundo (*/) indica onde os comentários acabam.
Se você deseja fazer um comentário de uma única linha, pode utilizar a notação //. Tudo o que estiver na mesma linha e após essa notação, será considerado um comentário.


Comentários são algo que você deve utilizar com frequência quando estiver programando, seja para Arduino ou para qualquer outra linguagem. Eles servirão como um dirário onde você explica o que cada linha de código executa ou até mesmo explica a lógica de como chegou naquilo.
Entendido o que é um comentário, e se você observar o código mais a fundo, poderá ver que o código está escrito em apenas 9 linhas. Veja se você consegue identificar quais são estas 9 linhas, que de fato desempenham comandos no código.

A Estrutura Básica de um Código Arduino

Todo programa Arduino possui uma estrutura básica que deve ser respeitada sempre. A principal regra é que todo código Arduino deve possuir as funções setup() e loop()!. Além disso, uma ordem deve ser sempre respeitada:


Ao longo dos experimentos dessa apostila você irá conhecer cada uma dessas estruturas.

Saídas Digitais

A Julieta possui um LED conectado no pino 13. Para controlar esse LED, deve-se utilizar a função digitalWrite(pino, HIGH/LOW). digitalWrite(13, HIGH); coloca 5V no pino 13. Nesse caso, o LED acende. digitalWrite(13, LOW) coloca 0V no pino 13. Apagando o LED.
Entretanto, antes que se possa acender ou apagar o LED, é necessário configurar o pino como saída. Para isso foi utilizada a função pinMode(13, OUTPUT) que configura o pino 13 como uma saída digital.

Pausando o Programa

A placa Julieta trabalha com um clock de 16MHz. Isso significa que ela executa 16 milhões de operações por segundo. A função digitalWrite() leva menos de 4us para ser executada. Portanto, para que seja possível ver o LED piscar, é necessário pausar o fluxo de programa. Para fazer isso foi utilizada a função delay(tempo_ms).
Essa função faz o programa aguardar durante o tempo determinado entre parênteses. Neste caso, foram programados 250 milessegundos de pausa: delay(250).


Indo Além


Experimente modificar o tempo da função delay() para alterar a velocidade com que o LED pisca. Qual é a velocidade mais alta que você ainda consegue ver? 10ms? 20ms?

Você consegue modificar o padrão do pisca-pisca para se parecer com um batimento cardíaco? (Dica: talvez seja necessário adicionar uma segunda sequência de pisca-pisca ao loop()).


Solucionando Problemas


Meu código não está sendo carregado!

  • Tenha certeza que o cabo USB está totalmente conectado no robô e no computador onde você está fazendo o código.
  • Verifique novamente se a Porta COM foi selecionada corretamente no Menu Ferramentas. Um bom teste para verificar isso é desplugar a placa do computador e verificar quais das portas COM some e reaparece quando você reconecta o cabo à usb.
  • Verifique se a placa selecionada é a "Arduino/Genuino UNO" no Menu Ferramentas.

Meus motores não estão girando!

  • Ainda bem! Porque esse código não tem nenhum comando para que seus motores possam girar. Ele apenas pisca o LED da placa.
Parabéns! Você acaba de superar a primeira etapa dessa jornada. Avance para o próximo capítulo!