9+3 são 12, e vai um…
Hoje vamos aprender como funcionam os blocos da aba Matemáticas.
Faltam-te mãos para fazeres as contas pelos dedos? Deixa que o bitbloq faça o trabalho por ti! Vejamos em que consistem os blocos matemáticos.
Para realizar os exemplos de hoje, necessitarás:
- 1 x ZumBloq LED
- 1 x ZumBloq Potenciómetro
- 1 x ZumBloq Buzzer
- 1 x ZumBloq Botão
- 1 x ZumBloq Sensor de luz
- 1 x ZumBloq Joystick
- 1 x ZumBloq Miniservo
- 1 x ZumBloq LCD
- Uma placa controladora ZUM BT 328 ou compatível com Arduino UNO
- Um cabo USB
O bloco número
Este é um dos blocos que vais mais utilizar no bitbloq. Este bloco permite escrever um valor numérico, por exemplo, para comparar o seu valor num bloco se…executar, ou inclusivamente, para atribuir um elemento a um pino diretamente ou estabelecer um tempo, realizar operações. Este bloco tem uma grande quantidade de aplicações.
Exemplo com o bloco número
Fazer com que o buzzer soe durante 300 ms
Usámos o bloco número para fazer com que o buzzer soe durante 300 ms. A nível interno, o bloco número é conhecido internamente como um número inteiro. Isto significa que não tem decimais. Lembra-te disto, pois é importante quando estiveres a realizar operações.
O bloco array
Lembras-te como usávamos este bloco com o joystick? Um array não é mais do que um vetor (conjunto de valores) que agrupa três variáveis individuais. Tendo como exemplo, temos as coordenadas X,Y e Z do botão do nosso joystick, as horas, minutos e segundos de um relógio, etc. Existe algo muito importante que deves ter em conta quando trabalhares com vetores. O primeiro elemento de um vector não corresponde ao índice 1, mas sim ao índice 0. Isto significa que se quiseres aceder ao primeiro elemento de um vector, necessitas de colocar 0 em vez de 1. Se quiseres aceder ao segundo valor, um 1 em vez de um 2, e assim por diante. No seguinte esquema, vais entender melhor:
Vamos a ver um exemplo que use o bloco array:
Exemplo com o bloco array
Mostrar os valores do Joystick no ecrã LCD
Neste caso verás os valores X, Y e o botão do Joystick,no ecrã do teu LCD. Usando o bloco array, terás esta informação armazenada de forma ordenada e será sempre muito fácil recuperá-la.
O bloco aleatório entre…e…
Este bloco devolve um valor aleatório dentro de um intervalo, definido por nós.
Por vezes, pode ser muito útil termos valores aleatórios. Porque não tentas criar um jogo que use este bloco? Ou talvez queiras que o teu robot dance ou improvise os seus movimentos. Existem tantas possibilidades!
Os blocos mapear
Estes blocos servem para alterar os limites de um componente, para adaptá-lo a outra escala. Por exemplo, o potenciómetro devolve um número inteiro entre 0 e 1023, o miniservo, entre 0 e 180 e um LED, entre 0 e 255. Se queremos utilizar um potenciómetro com um miniservo, de forma a que ao mover o potenciómetro possamos mover o miniservo entre 0 e 180 graus, o ideal será utilizar o bloco mapear para sincronizar ambas escalas. O primeiro bloco, permite-nos mapear uma variável que vá do 0 a 1023, na proporção que desejarmos. O segundo bloco permite-nos mais liberdade, sendo possível selecionar tanto o intervalo da variável de entrada, como o intervalo da variável de saída. Vejamos porque é tão útil mapear:
Exemplo com o bloco mapear
Mapear o potenciómetro para ajusta-lo ao intervalo do miniservo (0 – 180 graus)
Desta forma estamos dividindo o intervalo do potenciómetro, de 0 a 1023, em 180 partes, de forma que, aproximadamente, para cada 6 valores do potenciómetro, avançaremos um grau no miniservo. Sem realizarmos este mapeamento, não era possível controlar de forma correta o miniservo com o potenciómetro. Este programa é equivalente ao anterior , mas vamos usar o bloco avançado de mapeamento:
Os blocos de operação +,-,X,/,^
Estes blocos permitem realizar operações matemáticas básicas, como a soma, a subtração, a multiplicação, a divisão e o exponencial. Podes usar dentro do bloco, números ou realizar também operações com variáveis.
Exemplo com os blocos de operações
Utilizar o operador soma para que se ilumine um LED, quando a soma valor detetado pelo sensor de luz + 20 unidades seja menor que 100.
Outros blocos de operações matemáticas
Existe outro bloco que nos permite realizar operações como a raiz quadrada de um número, o seu logaritmo neperiano ou em base 10, etc. Vejamos um exemplo:
Exemplo com outros blocos de operações matemáticas
Criar um programa que devolva o logaritmo cm base 10 de uma variável. Em alguns programas pode ser útil realizar alguma operação matemática para modificar certos dados. Por exemplo, podemos querer que o programa calcule o logaritmo em base 10 do valor de uma variável.
Desta forma iremos obter o logaritmo em base 10, do valor do potenciómetro em cada momento.
Bloco resto de…
Lembras-te como se fazem as divisões à mão? Se sim, recordas-te que quando divides, em muitas ocasiões sobrava um resto, e tinhas que continuar a dividir, obtendo um número decimal. Este bloco devolve-te o resto de uma divisão. Mas para que é que eu quero usar o resto de una divisão? Observa o exemplo seguinte:
Exemplo com o bloco resto de …
Criar um programa que devolva o valor do resto, da divisão um número aleatório entre 2 quando pressionemos um botão. Se o número for par (o resto for igual a zero), acender-se-a um LED. Se o número for ímpar (resto igual a 1), soará o buzzer.
Podes confirmar se um número é par ou ímpar dividindo-o por 2. Se dividi-lo, o resultado for um resto igual a zero, o número é par. Se o resto for um, o número é ímpar. Como podes ver, usámos também o bloco aleatório para gerar una serie de números à sorte, entre 0 e 2000. Estes são os blocos matemáticos. Pode parecer-te que alguns não são assim tão úteis, ou pensar que nunca vais necessitar de realizar operações assim tão complicadas. Mas à medida que te tornares cada vez mais experiente e programes como um autentico mestre, desejarás que existam muitos mais blocos deste tipo… Verás!