Neste tutorial, vamos explorar as funções e detalhes de cada um dos comandos de programação presentes na nossa extensão para Microbit. Para facilitar o controle dos blocos EletroBlocks através da programação com Microbit, criamos uma extensão específica que pode ser adicionada ao ambiente de programação da Microbit.
Se você ainda não configurou o seu ambiente de programação, clique aqui para ver o passo a passo de como preparar o seu ambiente e deixá-lo pronto para começar a criar!
Recomendamos que você esteja familiarizado com o bloco controlador programável. Caso não esteja, clique aqui. Também é aconselhável que você já tenha criado seu primeiro projeto com o KIT EletroBlocks programável. Clique aqui para acessar o tutorial.
Leitura de Sinais
Estes comandos de programação são capazes de ler sinais recebidos dos blocos EletroBlocks conectados às portas de entrada do bloco controlador programável, bem como nas portas auxiliares A, B e C.
Leitura Digital
Este comando é recomendado para ler sinais simples de LIGADO/DESLIGADO ou ATIVO/INATIVO. O valor mínimo de leitura do sinal digital é 0 (zero) e o valor máximo é 1.
O comando de programação LEITURA DIGITAL converte níveis de sinais maiores que 1 para 1. Por exemplo, ao ler um sinal com nível 542, o sinal digital lido será 1.
Para verificar se o bloco interruptor conectado à porta 01 do bloco controlador programável está na posição LIGADO (1) ou DESLIGADO (0), você pode realizar uma LEITURA DIGITAL na entrada 01. O resultado dependerá do status do bloco interruptor: quando estiver LIGADO, o sinal digital 1 será enviado; quando DESLIGADO, o sinal digital 0 será enviado.
Para visualizar o sinal lido, você pode enviá-lo diretamente para o display da Microbit usando o comando “mostrar número” encontrado no grupo de comandos (BÁSICO). Alternativamente, você pode usar o serial monitor para uma monitorização mais detalhada. Caso não saiba utilizar o serial monitor, clique aqui para ver nosso conteúdo explicativo.
Leitura Analógica
Este comando é recomendado para leituras mais detalhadas, permitindo entender o NÍVEL do sinal recebido, além do status de LIGADO/DESLIGADO. O valor mínimo de leitura do sinal analógico é 0 (zero) e o valor máximo é 1055.
Para receber o NÍVEL de sinal que um bloco potenciômetro está enviando para a porta de entrada 02 do bloco controlador programável, basta utilizar o comando LEITURA ANALÓGICA na entrada 02.
O resultado da leitura dependerá do status do bloco potenciômetro: quando desligado, o nível de sinal será 0 (zero); à medida que o potenciômetro é girado, o nível de sinal aumenta até o máximo de 1055.
Você pode visualizar este sinal através da matriz de LEDs da Microbit utilizando o comando “mostrar número” encontrado no grupo de comandos (BÁSICO).
Para leituras analógicas, por se tratar de uma leitura dinâmica e muitas vezes simultânea, recomendamos a visualização através do serial monitor, esse recurso permite que a visualização do sinal seja feita de maneira mais precisa. Caso não saiba utilizar o serial monitor, clique aqui para ver nosso conteúdo explicativo.
Envio de Sinais Simples
Estes comandos de programação permitem enviar sinais da Microbit para os blocos EletroBlocks conectados às portas de saída do bloco controlador programável e também nas portas auxiliares A, B e C.
Gravação digital
Este comando é recomendado quando você precisa enviar um comando simples de LIGA ou DESLIGA para uma das portas de saída do bloco controlador programável EletroBlocks. O valor mínimo é 0 (zero) e o valor máximo é 1 (um).
• Valor 0 (zero): Envia o nível MÍNIMO de sinal.
• Valor 1 (um): Envia o nível MÁXIMO de sinal.
Para entender melhor, veja o exemplo usando um bloco buzzer:
• Enviar o comando GRAVAÇÃO DIGITAL NA SAÍDA 01 PARA 1 liga o buzzer na intensidade máxima.
• Enviar o comando GRAVAÇÃO DIGITAL NA SAÍDA 01 PARA 0 desliga o buzzer.
Se você quiser controlar o buzzer com diferentes intensidades, precisará usar a gravação ANALÓGICA.
Gravação analógica
Este comando permite enviar sinais variando de 0 a 1055, proporcionando maior controle sobre o NÍVEL do sinal enviado. A gravação analógica é útil quando você deseja que um bloco opere em intensidades variadas, em vez de apenas LIGADO ou DESLIGADO.
Por exemplo, você pode controlar a velocidade de um motor usando uma gravação de sinal analógico:
No exemplo de circuito acima, um motor CC conectado na porta de saída 02 do bloco controlador programável recebe três diferentes níveis de sinal com intervalos de 2 segundos entre cada nível, permitindo observar como os níveis de sinal influenciam a velocidade do motor.
É possível gravar sinais analógicos enquanto realiza leitura de sinais analógicos simultaneamente. No próximo exemplo, o sinal analógico enviado para a saída 02 do bloco programável corresponde ao nível de sinal analógico recebido na porta 01, manipulado e enviado pelo bloco potenciômetro.
MOTORES
Para facilitar a manipulação de motores do KIT EletroBlocks programável, criamos comandos de programação em nossa extensão que permitem enviar sinais adequados de maneira simples.
Motor CC
O bloco motor CC (motor de corrente contínua) pode girar nos sentidos horário e anti-horário, com intensidades diferentes, de acordo com o nível de sinal recebido. Também é possível usar o nível de sinal recebido para alterar o sentido de giro do motor.
Para utilizar este comando de programação, é necessário que o bloco motor CC esteja configurado na posição central, permitindo que ele interprete corretamente os sinais recebidos. Com este comando, você pode alternar a intensidade e o sentido de giro do motor conectado a uma das portas de saída do bloco controlador programável. É possível utilizar sinais de entrada para manipular diretamente o motor CC, basta adicionar no espaço reservado o sinal de entrada desejado.
Se o motor CC estiver configurado de outra forma, ele receberá sinais analógicos ou digitais para girar no sentido configurado. Nesse caso, recomenda-se usar os comandos de gravação digital ou gravação analógica para interagir com o motor CC.
Servo Motor
O motor SERVO EletroBlocks é capaz de se mover de maneira precisa entre os ângulos 0 e 180. Para utilizar os comandos de programação para controlar a posição do servo motor, certifique-se de que ele está configurado na posição P (programação). Caso contrário, o bloco motor SERVO estará apto a receber sinais diretos de outros blocos.
Servo motor configurado para receber sinais diretos de outros blocos:
Quando o bloco servo motor estiver configurado para receber sinais diretos dos outros blocos EletroBlocks, não será possível controlá-lo por meio da programação da Microbit. Dessa maneira, o bloco servo motor irá interagir com o nível de sinal recebido pelos blocos controladores e fará uso de um filtro próprio para definir o ângulo de posicionamento. Você pode usar o bloco interruptor, por exemplo, para movimentar o servo motor no ângulo mínimo e máximo de acordo com a manipulação do interruptor.
Servo motor configurado para receber sinais programados:
Neste caso, é possível utilizar o comando de programação para definir a posição exata do servo motor conectado a uma das portas de saída do bloco controlador programável. Este bloco de programação recebe valores entre 0 e 180, correspondendo ao ângulo mínimo e máximo do motor servo EletroBlocks.
Para manipular a posição de um servo motor utilizando um sinal de entrada analógico, é necessário que o sinal passe por um filtro, pois o valor mínimo de leitura analógica é 0 (zero) e o máximo é 1055. Por exemplo, se usarmos o sinal enviado por um bloco potenciômetro diretamente para controlar um motor servo, ao girar o potenciômetro para a posição máxima, enviaríamos um sinal de 1055 para um bloco motor servo que recebe sinais com nível máximo de 180.
Podemos usar o comando de programação matemático MINIMO e MAXIMO para definir os níveis de saída mínimo e máximo de acordo com os sinais de entrada. Com este código, definimos que quando o potenciômetro estiver enviando nível de sinal analógico máximo (1055), transformamos este nível de sinal para 180, correspondendo ao ângulo máximo do bloco servo motor. Quando o potenciômetro estiver enviando nível de sinal analógico mínimo (0), transformamos este nível de sinal para 0, correspondendo ao ângulo mínimo do bloco servo motor.
Inserindo este filtro no comando de programação do servo motor, temos como resultado final um código que controla o motor servo conectado na saída 02 do bloco controlador programável, de acordo com uma leitura analógica feita na entrada 01. Este mesmo exemplo funciona para outros tipos de leitura analógica, como o nível de luz do ambiente, sendo enviado pelo sensor da própria microbit:
SENSOR DE COR e LED RGB.
Sensor de cor:
LED RGB:
Os blocos LED`s RGB EletroBlocks possuem características específicas e por isso dependem da extensão EletroBlocks para funcionarem de maneira correta. Além de serem capazes de exibirem diferentes cores, você também pode combinar diferentes unidades do LED R.G.B e então criar uma "faixa" ou "strip" - que unifica diferentes LED's. Dentro da faixa de LEDs criada ainda é possível controlar individualmente cada um dos LED's presentes na mesma.
Para entender como os comandos de programação específicos para o LED RGB EletroBlocks funciona, clique aqui e veja o conteúdo específico sobre este assunto.