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.
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.
Clique no Botão Código, localizado na parte superior (ao lado de Iniciar simulação).
Serão abertas duas telas extras, como vistas na próxima figura.
A tela exibida na imagem anterior tem alguns destaques importantes para a programação:
- 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).
- 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.
- Select device: Serve para escolher qual placa Arduino vai receber a programação. Podemos usar mais de uma placa na mesma simulação.
- 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.
- Área de programação: Para onde vão os blocos de comandos. Devem ser encaixados de forma a formar uma estrutura a ser executada.
- Botões de atalho: Auxiliam na visualização do código em blocos: zoom (+), zoom (-) e de centralização da estrutura de blocos.
- Lixeira: Para remover um bloco ou um conjunto de blocos da área de programação, basta arrastá-los para o ícone Lixeira.
- 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.
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.
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:
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.
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.
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.
Após as modificações, oculte a parte do código e inicie a simulação.
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.
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.
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):
Sendo:
- 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.
- 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.
- 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.
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.
TINKERCAD TEM COMO LIGAR E DESLIGAR VIA SERIAL MONITOR USANDO OS BLOCOS??
EXEMPLO.: APERTA 1 NO SERIAL MONITOR LIGA E DEPOIS APERTA 0 DESLIGA.
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