Já vimos sobre o Tinkercad e os primeiros passos para desenvolver circuitos eletrônicos, como usá-lo para programar um Arduino Uno R3 em blocos e em texto. Neste artigo você apreenderá a simular a plataforma BBC Micro:bit no Tinkercad.
Introdução
A plataforma BBC micro:bit é uma plataforma microcontrolada que possui vários periféricos integrados. Dentre eles, temos uma matriz de LEDs, sensores, botões e pads de entrada e/ou saída de informações.
Temos duas versões do micro:bit, sendo a v2 a mais recente. Para saber mais sobre as diferenças entre v1 e v2, veja este artigo aqui.
Esta plataforma é programável, suas linguagens mais conhecidas são:
- Blocos, através do site Makecode (Microsoft);
- JavaScript, através do site Makecode (Microsoft);
- Python
No Tinkercad podemos realizar a programação em blocos ou em texto (Python). E neste artigo faremos os exemplos em programação em blocos, tendo a possibilidade de converter para programação em Python.
Há duas versões disponíveis do micro:bit, como vistas na próxima imagem:
A primeira, chamada apenas de micro:bit, é a mesma versão v1, com três portas de entrada/saída disponíveis (0, 1 e 2) além dos periféricos já inclusos . Já a versão micro:bit com corte parcial possui número maior de pinos de entrada/saída (0, 1, 2, 5, 8, 11, 13, 14, 15 e 16). O corte parcial em uma placa real faz-se com uso de um shield de expansão, colocado na parte de baixo da placa.
Programação em blocos na plataforma BBC micro:bit
Para utilizar os recursos de programação, deve-se arrastar para a área de trabalho a plataforma BBC micro:bit. Faremos uso da versão mais simples.
Ao arrastar o micro:bit para a área de trabalho, temos a opção de escolher a cor da placa. Dentre as cores disponíveis, temos vermelha (red), amarela (yellow), verde (green) e azul (blue). Escolha sua cor preferida no menu suspenso.
Clique no botão Código, localizado na parte superior, para acessar a área de programação. Será aberto um menu especial à direita da tela.
A tela exibida na imagem anterior tem alguns destaques importantes para a programação:
- Blocos: onde os seis tipos de blocos são disponibilizados: básico, saída, entrada, 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 *.hex, o mesmo utilizado em uma placa real. Ao conectar uma placa ao computador, é gerado um disco removível (como pen drive). O arquivo *.hex é arrastado para este disco e o micro:bit começa a rodar o programa..
- Select device: Serve para escolher qual placa micro:bit 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.
Os tipos básicos de blocos disponíveis são:
- Básico: blocos para recursos básicos do micro:bit, como mostrar ícones prontos na matriz de LED, limpar tela, controle quando aperta botão A ou B, dentre outros.
- 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 os comandos relacionados à matriz de LEDs; definição de pinos com nível alto (3V) ou baixo (0V); definição de valores analógicos (0 a 255) aos pinos 0, 1 e 2 (PWM); controle de servomotor; envio de caracteres via rádio.
- Entrada: comandos relacionados à informações de entrada, ou seja, sinais que o micro:bit recebe do mundo externo. Dentre estes comandos, estão o comando para leitura de pino digital (recebe apenas sinal ALTO (3V) 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; aceleração dos eixos x, y ou z; rotação; nível de luz; temperatura; dentre outros.
- 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. Em destaque, temos no início, que executa comandos quando ligamos a placa; e para sempre, que executa repetidamente os comandos até que a simulação seja interrompida.
- 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.
Exemplo 1: Animação na tela
Uma das possibilidades mais interessantes no micro:bit é a utilização da matriz de LED com animações. Faremos um exemplo mostrando uma mensagem inicial e depois com comandos de botão. O código inicial encontra-se na próxima figura:
Este código consiste em mostrar uma carinha feliz quando a placa é ligada. Não há nenhum tipo de repetição ou mudança durante execução.
Remova o comando mostrar ícone de no início. Arraste para dentro de no início o comando mostrar sequência de caracteres. Escreve no lugar de Hello a frase Bem-vindo!
Não faremos uso do bloco de controle Para sempre. Você pode arrastá-lo para a lixeira ou mover para a lateral esquerda. No lugar dele, vamos usar dois blocos de entrada (localizados no menu Entrada) no botão A. No primeiro bloco vamos manter o A e no segundo usamos o menu suspenso para alterar para B. Também há a opção A+B, para realizar comandos quando os dois botões estiverem apertados ao mesmo tempo.
Dentro destes blocos de controle, vamos usar o comando mostrar ícone. Por padrão, ele vem com o ícone de carinha feliz. Para alterar o ícone, clique no menu suspenso e escolha as opções desejadas, que neste artigo serão ícones de setas para a esquerda e direita. Ao apertar o botão A, será mostrada uma seta para a esquerda. Ao apertar o botão B, será mostrada uma seta para a direita.
Para verificar o funcionamento do código, clique no botão Iniciar simulação.
Quando começa a simulação, um cabo USB é conectado à placa e são mostradas algumas opções de simulação:
- Temperatura: você pode realizar a variação de temperatura da placa, caso o seu código tenha os comandos necessários para leitura. A temperatura varia entre -5°C e 50°C no Tinkercad.
- Luminosidade: da mesma forma que a temperatura, também é possível variar a luminosidade, que varia entre 0 a 255.
- Posição: o BBC micro:bit possui um acelerômetro, que detecta a posição da placa nos eixos X, Y e Z. Variando a posição da placa, sacudindo e afins, podemos ler estas posições e realizar comandos condicionais.
Neste código, apenas faremos interações com os botões A e B. Será mostrada a mensagem inicial e em seguida a tela se apaga, aguardando que algum botão seja pressionado.
Um código Python equivalente aos blocos pode ser visto caso você pare a simulação, selecione o botão Código e escolha a opção Blocos + Texto ou até somente Texto.
Exemplo 2: uso de servomotor e micro:bit com corte parcial
Neste exemplo faremos uso do micro:bit com corte parcial. Escolha a placa e arraste para a área de trabalho. Também é possível alterar a cor da placa.
Procure a opção Micro servo. Utilizei a versão azul, porém pode ser utilizada a versão preta. Arraste para a área de trabalho. Em seguida, realize as conexões conforme próxima imagem:
- Fio marrom (pino à esquerda): GND (solo)
- Fio vermelho (pino central): 3V (potência)
- Fio laranja (pino à direita): P11 (sinal)
Os blocos de comando utilizados para este código são:
- Mostrar ícone, em no início;
- Em para sempre:
- Mostrar sequência de caracteres com mensagem anti-horario;
- Girar servo no pino P11 (mudar P0 para P11) em 180 graus;
- Aguardar 2s (mudar de 1s para 2s);
- Mostrar sequência de caracteres com mensagem horario;
- Girar servo no pino P11 em 0 graus;
- Aguardar 2s
OBS: Você encontra estes comandos na opção Blocos de saída, exceto aguardar 1s, que está nos Blocos básicos ou de controle.
A programação completa é vista na Figura a seguir:
O código consiste em mostrar um ícone inicial na matriz de LED e repetir para sempre mensagens na matriz, seguidas de movimentos do servo (para 180° e para 0°).
Para verificar o funcionamento do código, clique no botão Iniciar simulação.
Considerações finais
Neste artigo vimos dois exemplos iniciais utilizando programação em blocos para o BBC micro:bit: uma interação entre botões para mostrar ícones na matriz de LED e outra com servomotor, sendo o primeiro com a placa padrão micro:bit e a segunda com a versão de corte parcial.
Os blocos, separados por tipos e formatos, se encaixam de forma a impedir erros e podem ser um grande passo para se iniciar em programação. Lembrando que podemos converter e utilizar a programação Python para o micro:bit também.
Após as simulações, você poderá adquirir a sua placa individual ou o Kit BBC Micro:Bit que inclui o cabo USB e um conjunto de baterias para operação sem fio.
Gostou de conhecer mais sobre o aplicativo Tinkercad? É uma alternativa bastante interessante pela variedade de plataformas programáveis, acessórios e linguagens de programação. Deixe seu comentário logo abaixo se gostou do artigo. E, não esqueça de nos seguir no Instagram