Tinkercad: Arduino e programação em blocos 2

Vimos no artigo inicial sobre Tinkercad | Simulador de componentes eletrônicos as características do aplicativo e como criar o primeiro circuito eletrônico. Neste artigo será abordada a utilização do Tinkercad com Arduino e programação em blocos.

Introdução

Cada vez mais tem se utilizado a Eletrônica integrada à programação. E com as facilidades do Arduino, tem-se aberto diversas possibilidades na área educacional. Cada vez mais cedo, crianças e adolescentes têm conhecido o pensamento computacional e tendo sua criatividade estimulada para desenvolver projetos da área de robótica.
Para facilitar a introdução à programação principalmente para crianças, têm-se utilizado um formato visual, baseado em Scratch. No Scratch é possível desenvolver jogos e atividades interativas, com sons e animações, programando através de blocos coloridos ordenados de forma lógica para que tudo aconteça.

Tela do software Scratch
Scratch – Programação em Blocos

O estilo Scratch revolucionou o ensino da programação, de forma que foram desenvolvidas integrações com a plataforma Arduino, como o Scratch For Arduino ou S4A, Ardublock e Snap4Arduino.
Você também pode dar os primeiros passos na programação utilizando a linguagem em blocos. O Tinkercad proporciona que você programe uma placa Arduino através deste tipo de linguagem.

Programação em blocos

Apesar da forma mais conhecida de se programar um Arduino ser a linguagem Wiring (baseada em C/C++), existem diversas outras formas de realizar a programação. O Tinkercad permite duas formas de se programar: em texto e em blocos, e até mesmo ambas de forma simultânea.
A seguir vamos abordar os recursos básicos para programação em blocos.

Recursos para a programação em blocos

Para habilitar os recursos de programação, deve-se arrastar para a área de trabalho uma plataforma programável. No caso, localize o Arduino Uno R3 e o arraste até o centro da tela.

Arduino UNO no Tinkercad
Tinkercad – Arduino UNO

Clique no Botão Código, localizado na parte superior (ao lado de Iniciar simulação).

Seta mostrando a posição do botão "código" no Tinkercad
Tinkercad – Botão “Código”

Serão abertas duas telas extras, como vistas na próxima figura.

Imagem mostrando a posição das ferramentas de programação em blocos no Tikercad
Ferramentas de programação em blocos no Tinkercad

A tela exibida na imagem anterior tem alguns destaques importantes para a programação:

  1. Blocos: onde os seis tipos de blocos são disponibilizados: saída, entrada, notação, controlar, matemática e variáveis. Para cada tipo são associados um conjunto de comandos (4).
  2. Download code: Serve para baixar o código com extensão *.ino, o mesmo utilizado na IDE Arduino. Você pode utilizar o código em uma placa real.
  3. Select device: Serve para escolher qual placa Arduino vai receber a programação. Podemos usar mais de uma placa na mesma simulação.
  4. Comandos: os comandos ou instruções relacionados aos seis tipos de blocos mostrados na parte superior. Para utilizar, basta arrastar para a área de programação.
  5. Área de programação: Para onde vão os blocos de comandos. Devem ser encaixados de forma a formar uma estrutura a ser executada.
  6. Botões de atalho: Auxiliam na visualização do código em blocos: zoom (+), zoom (-) e de centralização da estrutura de blocos.
  7. Lixeira: Para remover um bloco ou um conjunto de blocos da área de programação, basta arrastá-los para o ícone Lixeira.
  8. Monitor Serial: Área para envio/escrita de informações via serial. Ao clicar serão mostrados recursos extras logo abaixo da área de programação.

Os tipos básicos de blocos são:

  • Saída: comandos relacionados à informações de saída, ou seja, sinais que o Arduino manda para o mundo externo. Dentre estes comandos, estão o comando do LED incorporado ao Arduino (LED L, ligado no pino 13); definição de pinos com nível alto (5V) ou baixo (0V); definição de valores analógicos (0 a 255) aos pinos PWM (marcados na placa com sinal de ~); reprodução de sons em alto-falante; mensagens de texto no Monitor Serial e definição de cores para LEDs RGB (sigla para Red (vermelho), Green (verde) e Blue (azul)).
  • Entrada: comandos relacionados à informações de entrada, ou seja, sinais que o Arduino recebe do mundo externo. Dentre estes comandos, estão o comando para leitura de pino digital (recebe apenas sinal ALTO (5V) ou BAIXO (0V)); leitura de pino analógico (recebe valores de 0 a 1023); leitura de posição do servo motor (0 a 180º); número de caracteres seriais disponíveis; leitura do serial; leitura do sensor ultrassônico (já converte o valor da distância em centímetros ou polegadas); leitura de sensor de temperatura (já converte o valor da temperatura em graus Celsius ou Fahrenheit).
  • Notação: Permite inserir um comentário, ou seja, você pode escrever palavras/frases em um bloco ou em uma linha sem que sejam interpretados pelo programa. É uma espécie de lembrete para que você associe o que aquele trecho de programação está realizando.
  • Controlar: Realiza controle de tempo, repetições ou verificações de condições. Isto permite que comandos sejam realizados somente após certo tempo; sejam repetidos determinado número de vezes; que se repitam enquanto uma condição for satisfeita; que aconteçam somente após uma condição for verdadeira; ou que se repitam conforme uma contagem de tempo.
  • Matemática: Valores numéricos; formas de comparação (menor que, menor ou igual a, igual a, diferente de, maior ou igual a, maior que); geração de valores aleatórios; mapeamento de pino para uma determinada faixa de valores; restrição de valores para uma determinada faixa; estados lógicos (ALTO ou BAIXO). Estes blocos são colocados dentro de comandos de controle.
  • Variáveis: É possível criar espaços para armazenar valores temporários, como por exemplo de leitura de sensores, para depois serem comparados para tomada de decisões (blocos Controlar). É possível ter várias variáveis no programa, mas é necessário que cada variável possua um nome diferente.
GIF mostrando os tipos básicos de blocos de programação no Tinkercad
Tipos básicos de blocos de programação no Tinkercad

A seguir, dois exemplos de programação em blocos.

Exemplo 1: O pisca-pisca

O primeiro programa para se testar uma placa Arduino é o Blink, que nada mais é que um pisca-pisca de um em um segundo. Este código está disponível assim que a opção de programação em blocos é escolhida.

Exemplo de programação em blocos - Pisca-Pisca
Programação em Blocos: Pisca-Pisca

Onde LED incorporado é o LED ligado ao pino 13 do Arduino Uno R3, que está representado na placa com a letra L. O código faz com que este LED esteja em nível alto (LED acende), aguarda um segundo, coloca o LED em nível baixo (LED apaga) e aguarda mais um segundo, até que a simulação seja parada. O interessante é poder testar o código sem precisar de nenhum elemento extra.

Clique no botão Código para ocultar a área de programação.Clique em Iniciar simulação e olhe para o LED L, próximo ao símbolo Arduino na placa:

GIF mostrando a simulação do programa pisca-pisca
Simulando o Pisca-Pisca

Repare que ao início da simulação, o cabo USB entra na porta do Arduino e o LED começa a piscar de um em um segundo, conforme os blocos selecionados. Para parar a simulação, basta apertar o botão Parar simulação (verde).
Vamos fazer um circuito eletrônico usando um LED externo verde, um resistor de 220Ω e uma placa de ensaio (protoboard). Para isto, arraste os itens necessários para a área de trabalho, próximos ao Arduino Uno. Caso necessário, você pode usar o recurso de scroll do mouse para aumentar ou diminuir o zoom.

Onde:

  • Fio verde conecta o pino 6 do Arduino ao anodo do LED;
  • Resistor 220Ω está entre terminal catodo do LED e um fio preto que vai para um dos GNDs do Arduino.

Para mudar a cor do LED, clique sobre o LED vermelho. Será mostrada uma pequena janela com um menu suspenso. Escolha a cor verde. Você pode escolher qualquer cor disponível no menu, a cor verde é apenas uma sugestão para experimentar mudanças nos elementos.

Imagem mostrando a seleção de cor dos leds no Tinkercda
Tinkercad – Opções de cores de LEDs

OBS: Caso tenha dúvidas sobre como montar um circuito eletrônico, consulte o artigo Tinkercad | Simulador de componentes eletrônicos que você terá um passo-a-passo completo.
Clique novamente no botão Código para realizar modificações. Delete o conjunto de blocos existente, arrastando para o ícone Lixeira. Selecione os blocos de “saída” e de “controlar“, conforme a figura a seguir.

Imagem motrando a modificação do codigo do pisca-pisca
Modificado do Código do Pisca-Pisca

Arraste os blocos e realize a mudança do pino para 6 (padrão é 0). Para mudança dos valores, acesse o menu suspenso. Também mude os valores de aguardar, sendo o segundo bloco para 2s e o quarto bloco para 500 milissegundos. Por fim, altere o terceiro bloco, definindo o pino 6 como BAIXO (padrão é ALTO) pelo menu suspenso.

GIF mostrando a adição de blocos de programação
Adicionando blocos de programação

Após as modificações, oculte a parte do código e inicie a simulação.

GIF mostrando a simulação da programação para piscar o LED verde
Simulação do programa de piscar o LED verde

Perceba que o LED L na placa não acende mais, pois o código não contém mais LED incorporado, mas sim pino 6. E que o LED vinculado ao pino 6 se mantém aceso por 2s e apagado por meio segundo.

Caso o funcionamento do circuito não esteja de acordo com o esperado, verifique se as conexões estão corretas e se os blocos utilizados estão na ordem correta, conectados e configurados. Lembrando que você pode modificar os blocos como bem preferir, colocando o LED em outro pino, mudando os tempos de acender e apagar, ou até mesmo inserindo mais LEDs. Experimente!

Exemplo 2: Usando um sensor de temperatura

Neste exemplo faremos uso do Monitor Serial para mostrar valores relativos à temperatura. Para isto, serão necessários: um sensor de temperatura modelo TMP36, bem como a placa Arduino e uma placa de ensaio. Monte o circuito como demonstrado a seguir.

Imagem mostrando a montagem dos componentes Arduino UNO e sensor de temperatura TMP36
Montagem dos componentes: Arduino UNO e sensor de temperatura TMP36

Onde:

  • Fio vermelho conecta o pino à esquerda do sensor (potência) ao 5V do Arduino;
  • Fio amarelo conecta o pino central do sensor (vout) ao pino A0 do Arduino;
  • Fio preto conecta o pino à direita do sensor (GND) à um dos GNDs do Arduino.

A programação para este circuito encontra-se na próxima imagem.

Imagem mostrando a programação em blocos para o circuito Arduino + sensor de temperatura modelo TMP36
Programação em blocos para o circuito Arduino + sensor de temperatura modelo TMP36

O bloco “repetir” possui diversas variações. Escolha a opção que possui enquanto, que faz com que todas as instruções DENTRO deste bloco ENQUANTO uma condição for satisfeita.
Repare que a condição possui um formato de losango. Você encontra esse formato de blocos no conjunto Matemática (opção marcadas com círculos):

Imagem mostrando as diferentes Ações do bloco repetir
Ações do bloco repetir

Sendo:

  1. Condição de comparação entre dois números, entre um número e uma variável, entre duas variáveis etc. Você pode encaixar dentro do espaço circular a entrada de informação, digitar um número e assim sucessivamente. Dentre as comparações possíveis, temos: menor (<); menor ou igual (≤); igualdade (=); diferente (≠); maior (>); maior ou igual (≥). Para este código, queremos uma repetição infinita, então a condição é 1 = 1.
  2. Onde há duas condições como em (1). Você pode optar por E (duas condições verdadeiras) ou OU (uma ou outra podem ser válidas). Monte as condições arrastando blocos de losango para dentro dos espaços.
  3. Condição de negação, ou seja, as condições dentro do espaço precisam ser falsas para que sejam executados os comandos.

Os blocos seguintes imprimem informações na serial, ou seja, serão mostrados valores na tela. O primeiro bloco lê a informação do sensor de temperatura em A0 (onde realizamos a conexão do pino vout) e exibe em graus Celsius (°C). O segundo bloco complementa a informação do sensor, inserindo *C e indo para a próxima linha.
Por último, há um comando de controle de tempo, ou seja, ele aguarda 1s. Após este tempo, o programa vai verificar se a condição de repetir ainda é válida. Se for, todas as instruções serão refeitas. Neste código em específico, será repetido tudo até parar a simulação.

Após as modificações, oculte a parte do código e inicie a simulação.

GIF mostrando a simulação do circuito Arduino + sensor de temperatura modelo TMP36
Simulação do circuito Arduino + sensor de temperatura modelo TMP36

Perceba no gif que ao iniciar a simulação nada acontece. Ao clicar no sensor, há uma barra de rolagem, simulando a temperatura sobre o sensor, que pode variar de -40ºC a 125ºC. Clique no botão Código e em seguida, Monitor Serial que está na parte inferior. Os valores aparecem linha após linha. Ao mexer na barra de rolagem do sensor, repare que as temperaturas mostradas são as mesmas.

Considerações finais do Tinkercad – Programação em blocos

Neste artigo vimos dois exemplos iniciais utilizando programação em blocos: um pisca-pisca com um LED e um sensor de temperatura. Os blocos, separados por tipos e formatos, se encaixam de forma a impedir erros e podem ser um grande passo para se entender a lógica de programação, para depois partir para códigos mais complexos.

Gostou de conhecer mais sobre o aplicativo Tinkercad? É bastante importante experimentar e conhecer as possibilidades da programação em blocos para os primeiros passos na programação.


Se você tiver dúvidas, sugestões ou experiências para compartilhar, fique a vontade para deixar um comentário abaixo. E para não perder nenhum conteúdo como este, não deixe de nos seguir no Instagram.

Faça seu comentário

Acesse sua conta e participe

2 Comentários

  1. TINKERCAD TEM COMO LIGAR E DESLIGAR VIA SERIAL MONITOR USANDO OS BLOCOS??
    EXEMPLO.: APERTA 1 NO SERIAL MONITOR LIGA E DEPOIS APERTA 0 DESLIGA.

    1. Olá,

      Até onde consegui levantar informações é possível utilizar a entrada serial por blocos, mas não consegui localizar um jeito de fazer o código aguardar a leitura serial.

      Abraços!
      Vinícius – Equipe MakerHero