9+3 son 12, me llevo una…
Hoy vamos a aprender como funcionan los bloques de la pestaña Matemáticas.
¿Te faltan manos para hacer cuentas? ¡Haz que bitbloq haga el trabajo por ti! Veamos en que consisten los bloques matemáticos:
Para realizar los ejemplos de hoy, necesitarás:
- 1 x ZumBloq LED
- 1 x ZumBloq Potenciómetro
- 1 x ZumBloq Zumbador
- 1 x ZumBloq Pulsador
- 1 x ZumBloq Sensor de luz
- 1 x ZumBloq Joystick
- 1 x ZumBloq Miniservo
- 1 x ZumBloq LCD
- Una placa controladora ZUM BT 328 o compatible con Arduino UNO
- Un cable USB
El bloque número
Este es uno de los bloques que más usaras en bitbloq. Este bloque te permite escribir un valor numérico, por ejemplo para comparar su valor en un bloque si…ejecutar, o incluso para asignar un elemento a un pin directamente o establecer un tiempo,realizar operaciones…este bloque tiene una gran cantidad de usos.
Ejemplo con el bloque número
Hacer que el zumbador suene durante 300 ms
Hemos usado el bloque número para hacer que el zumbador suene durante 300 ms. A nivel interno, el bloque número es un número conocido como de tipo entero. Esto significa que no tiene decimales. Recuérdalo ya que es importante cuando estés realizando operaciones.
El bloque array
¿Recuerdas cómo usábamos este bloque junto con el joystick? Un array no es más que un contenedor o vector que agrupa tres variables individuales. Cómo por ejemplo las coordenadas X,Y y del botón de nuestro joystick, las horas, minutos y segundos de un reloj, etc.
Hay algo muy importante que debes tener en cuenta cuando trabajes con vectores. El primer elemento de un vector no corresponde al índice 1, sino al índice 0. Es decir si quieres acceder al primer elemento de un vector, pondrás un 0 en vez de un 1, si quieres acceder al segundo, un 1 en vez de un 2, etc, en el siguiente esquema lo entenderás mejor:
Vamos a ver un ejemplo que use el bloque array:
Ejemplo con el bloque array
Mostrar los valores del Joystick por la pantalla del LCD
En este caso verás los valores X,Y además del botón del Joystick, por la pantalla de tu LCD. Usando el bloque array tendrás está información almacenada de forma ordenada y será siempre muy fácil recuperarla.
El bloque aleatorio entre… y …
Este bloque nos devuelve un valor aleatorio dentro de un intervalo que definamos.
En ocasiones puede ser de gran utilidad tener un valor aleatorio. ¿Por qué no intentas crear un juego de Simon dice usando este bloque? O a lo mejor deseas que un robot baile o improvise sus movimientos… hay muchas posibilidades.
Los bloques mapear
Estos bloques sirven para cambiar el rango de un componente y adaptarlo a otra escala. Por ejemplo, el potenciómetro devuelve un entero entre 0 y 1023, el miniservo, entre 0 y 180 y un LED, entre 0 y 255. Si queremos utilizar un potenciómetro junto a un miniservo, de forma que al mover el potenciómetro podamos mover el miniservo entre 0 y 180 grados, lo ideal será utilizar el bloque Mapear para sincronizar ambas escalas.
El primer bloque, nos permite mapear una variable que vaya de 0 a 1023 al rango que deseamos. El segundo bloque nos permite más libertad, pudiendo seleccionar tanto el rango que tiene la variable de entrada, como el rango de la salida. Veamos porque es tan útil mapear:
Ejemplo con el bloque mapear
Mapear el potenciómetro para ajustarlo al rango del miniservo (0 – 180 grados)
De esta forma estamos dividiendo el rango del potenciómetro, de 0 a 1023, en 180 partes, de forma que, aproximadamente, cada 6 valores del potenciómetro, avanzaremos un grado en el miniservo. Si no realizáramos este mapeo no podríamos controlar de forma correcta el miniservo con el potenciómetro.
Este programa es equivalente a este otro usando el otro bloque avanzado de mapeo:
Los bloques de operación +,-,X,/,^
Estos bloques te permiten realizar operaciones matemáticas sencillas, como la suma, la resta, la multiplicación, la división y el exponencial.
Puedes usar dentro del bloque números o realizar también operaciones con variables.
Ejemplo con los bloques de operaciones
Utilizar el operador suma para que se encienda un LED cuando la suma del valor detectado por el sensor de luz más 20 unidades sea menor que 100.
Otros bloques de operaciones matemáticas
Hay otro bloque que nos permite realizar operaciones como la raíz cuadrada de un número, su logaritmo neperiano o en base diez, etc. Veamos un ejemplo:
Ejemplo con otros bloques de operaciones matemáticas
Hacer un programa que devuelva el logaritmo en base 10 de una variable. En algunos programas puede resultar útil realizar alguna operación matemática para modificar ciertos datos. Por ejemplo, podemos querer que el programa calcule el logaritmo en base 10 del valor de una variable.
De esta forma obtendremos el logaritmo en base 10 del valor del potenciómetro que tengamos en cada momento.
Bloque resto de…
¿Recuerdas como se hacían las divisiones a mano? Si te acuerdas bien cuando dividías en muchas ocasiones te quedaba un resto, y tenías que seguir dividiendo saliéndote un número con decimales. Pues bien, este bloque te devuelve el resto de una división. ¿Para que quiero usar el resto de una división? Observa el siguiente ejemplo:
Ejemplo con el bloque resto de …
Hacer que el programa devuelva el valor del resto de dividir un número aleatorio entre 2 cuando presionemos un pulsador. Si el número es par (es decir, el resto es igual a cero), se encenderá el LED. Si el número es impar (resto igual a 1), sonará el zumbador.
Se puede averiguar si un número es par o impar dividiendo dicho número entre 2. Si al dividirlo el número tiene un resto igual a cero. El número será par. Si el resto por el contrario es un uno, el número será impar. Como puedes ver hemos usado también el bloque aleatorio para generar una serie de números al azar entre 0 y 2000.
Estos son los bloques de matemáticas. Puede que algunos no te parezcan demasiado útiles, o pienses que nunca vas a necesitar realizar operaciones tan complicadas. Pero conforme seas más y más experto y programes como un auténtico maestro desearas que haya muchos más… ¡Te lo aseguro!