Quantcast
Channel: DIWO » bitbloq
Viewing all 53 articles
Browse latest View live

Piruru piii… Programando el zumbador

$
0
0

¿Qué es un zumbador?

El zumbador o buzzer, es un componente capaz de producir sonidos a diferentes frecuencias. Son utilizados en multitud de sistemas para producir señales o avisos, como en despertadores, timbres, temporizadores de electrodomésticos (como el de un horno), etc.

Zumbador150

Poniendo en marcha el zumbador

Vamos a descubrir cómo funciona el zumbador. Lo primero, conectamos este componente tal y como muestra la imagen.

En la pestaña Componentes seleccionamos el bloque Sonar el zumbador. Lo colocamos en el Bucle principal (Loop) y seleccionamos la nota y la duración que queremos que tenga el sonido. Para el ejemplo, hemos seleccionado las notas Do, Re, Mi, Fa, Sol, La, Si.

Te habrás dado cuenta de que el zumbador suena continuamente. Recuerda que el Bucle principal (Loop) ejecuta el programa de forma indefinida, por lo que si queremos que solo se reproduzca una vez, deberemos colocarlo en el Setup.

Un pasito más allá

Vamos a controlar que el zumbador suene cuando nosotros queramos utilizando un pulsador.

Una vez conectados los componentes, vamos a la pestaña Control y seleccionamos el bloque Si… ejecutar para programar que el zumbador suene únicamente si el botón está pulsado.

Además, fíjate que en este segundo ejemplo hemos utilizado un bloque diferente para hacer sonar el zumbador. Este bloque se encuentra en la pestaña Componentes, en el apartado Avanzados, y te permite introducir un valor de frecuencia en lugar de una nota para componer melodías más elaboradas.

Melodia-zumbador

La primera parte de este bloque Avanzado, se puede programar de varias formas. Podemos indicarle el número de pin en el que está conectado nuestro zumbador, o bien utilizar el bloque Componentes -> Avanzado -> Variable componentes y elegir el nombre del zumbador.

OpcionesZumbador-01

No esperes más y prueba a programar tus melodías favoritas. En este post encontrarás varias partituras para empezar e, incluso, un traductor de notas a frecuencias. ¡Dale caña!

Aún hay más

    A continuación te proponemos algunas ideas para seguir practicando:
  • Mejora tus luces navideñas, añadiendo ahora una melodía navideña acorde con el ritmo de parpadeo.
  • Construye tu propio telégrafo, utilizando un LED, un pulsador y el zumbador.

Pronto te darás cuenta que añadir sonido a tus creaciones te será muy útil y además… ¡es uno de los componentes más divertidos! A partir de ahora vamos a poder diseñar proyectos mucho más creativos, sorprendentes y… ¡ruidosos!


O blanco o negro. El sensor infrarrojo.

$
0
0

¿Qué es un sensor infrarrojo?

El sensor infrarrojo o IR es un dispositivo que emite una luz infrarroja detectando la cantidad de luz reflejada. De esta forma es capaz de diferenciar entre blanco y negro. Hay muchos tipos de sensores infrarrojos, como los del mando de la televisión, detección de objetos e incluso para medir las pulsaciones de una persona.

El sensor infrarrojo que vamos a utilizar es digital y devuelve un 1 cuando detecta blanco y un 0 cuando detecta negro.

ir-animado_web

Calibrando el sensor infrarrojo

Antes de empezar a utilizar nuestro sensor infrarrojo debemos calibrarlo para que sea capaz de detectar de forma correcta qué es blanco y qué es negro. Sigue el siguiente vídeo para realizar el proceso:

¡Cierra la puerta que hace frío! Programando una alarma para una puerta

No sé si has estado en Burgos, pero en invierno se pasa mucho frío. Solucionemos el problema con una alarma para la puerta que avise cuando ésta está abierta.


conexion_alarma_de_puerta_2

Queremos que cuando el sensor infrarrojo detecte que la puerta está abierta, es decir, detecte negro, el zumbador comience a sonar. Para ello deberemos utilizar el bloque si…ejecutar.

programacion_alarma_puerta_3

Como ves, el programa es muy sencillo. Si el sensor IR detecta negro, o lo que es lo mismo, 0, el zumbador sonará hasta que vuelva a detectar blanco o 1. De esta forma podemos controlar que nuestra puerta siempre esté cerrada para no perder calor.

El bloque verde es un comentario. Los comentarios son mensajes que se usan dentro de los programas para que sea más fácil comprenderlos. No se ejecutan en la placa, son solo para que tú o cualquier otra persona tengáis más claro cómo funciona. Podrás encontrar el bloque de comentarios dentro de la pestaña Código. ¡Úsalos siempre que los necesites!

Mi problema con los cuadros. Utilizando dos sensores infrarrojos.

Voy a contarte un secreto, en mi casa no soporto tener cuadros torcidos. Cada vez que camino por el pasillo acabo recolocando todos los cuadros. Pero es peor el remedio que la enfermedad. Cada vez que los toco ¡acaban aún más torcidos! Mi médico ha dicho que me relaje, que la vida está llena de imperfecciones, pero yo no me conformo y he decidido crear un sistema para tener los cuadros siempre rectos. Para ello utilizo dos sensores infrarrojos, uno colocado en la pared y otro en el marco del cuadro. Cuando los sensores están frente a frente y totalmente alineados se detectan entre ellos y el LED se enciende. En el momento que uno de ellos se tuerce suena una alarma y se apaga el LED. ¡Eureka! ¡Nunca más tendré los cuadros torcidos!

Vamos a realizar las conexiones. Necesitarás un LED, un zumbador y los dos sensores infrarrojos:


conexion_dos_IR

Queremos que, al encontrarse los sensores frente a frente, un LED indique que el cuadro está recto. En caso contrario el LED se apagará y el zumbador sonará. Para poder decir que los dos sensores deben ser igual a 1, es decir, detectarse entre ellos, hemos usado el bloque de lógica “y” que encontrarás en la pestaña Lógica.

2_rectificador_cuadros_ir_comentario

De esta forma si el primer sensor infrarrojo es igual a 1, es decir, está detectando la luz del otro sensor “y” el segundo sensor infrarrojo es también igual a 1, la condición se cumplirá y el LED se encenderá. El bloque lógico “y” y sus variantes te permitirán hacer programas más avanzados, por lo que los utilizaremos a menudo.

Aún hay más

    A continuación te proponemos algunas ideas para seguir practicando:
  • Crea tu propio robot o usa un PrintBot para programar un siguelíneas.
  • Puedes hacer un robot aspirador que detecte cuándo se va a salir por el borde, pare y retroceda evitando la caída. ¡Tu mesa deberá ser blanca!
  • Haz un pequeño recortable para la noche de Halloween.

El sensor infrarrojo es muy sencillo de manejar pero de gran utilidad. Práctica con él y muy pronto se te ocurrirán un montón de ideas nuevas para utilizarlo. ¿Tienes ganas de conocer más sensores? ¡Solo acabamos de empezar!

Programando el potenciómetro con bitbloq 2

$
0
0

¿Qué es un potenciómetro?

Un potenciómetro es una resistencia variable, es decir, un componente que permite regular la intensidad de la corriente eléctrica de un circuito. Se utilizan en muchos dispositivos, como en lámparas para regular la intensidad de luz o en equipos de música para ajustar el volumen.

Como todos los sensores analógicos, el potenciómetro devolverá valores entre 0 y 1023.

Modificando la velocidad de parpadeo

¿Recuerdas cuando hicimos parpadear un LED cambiando los tiempos de espera? En este ejemplo modificaremos la velocidad de parpadeo utilizando el potenciómetro.

Conecta un LED y un potenciómetro a tu placa.

En el Bucle principal (Loop), declaramos la variable tiempo_parpadeo como el valor que devuelve el potenciómetro. En la pestaña Control -> Avanzados, elegimos el bloque Esperar que nos permitirá introducir la variable tiempo_parpadeo como el tiempo de espera entre el encendido y el apagado del LED.

Modificando el tono del zumbador

Vamos a variar la nota que emite el zumbador utilizando el potenciómetro. Antes de empezar a programar, conectamos los componentes:

Recordemos que el potenciómetro puede tener valores de entre 0 y 1023, pero en este caso queremos que las frecuencias sigan una escala de 200 a 500 Hz, escala muy próxima a las notas más utilizadas. Para ello, vamos a utilizar un nuevo bloque llamado Mapear.

¿Qué es mapear?

Mapear es convertir un rango de valores en otro distinto.

En el ejemplo anterior, variábamos el parpadeo del LED entre 0 y 1023 milisegundos. Pero… ¿y si quisiéramos controlar el parpadeo del LED entre 0 y 10 segundos? La solución es utilizar el bloque Mapear, que transformará la escala de 0 a 1023 a una nueva de 0 a 10.


En el caso del zumbador deberemos trasformar o mapear la escala de 0-1023 a una nueva de 200-500.

Seleccionamos el bloque avanzado del zumbador, que nos va a permitir introducir frecuencias y en la pestaña Matemáticas, opción Avanzados, elegimos el bloque Mapear.

recuerda CONSEJO: Cuanto más grande sea el rango a mapear, más variará el valor con cada pequeño giro del potenciómetro, es decir, menos resolución tendremos, por lo que no podremos hacer ajustes muy precisos.

Aún hay más

El potenciómetro puede ser de mucha utilidad para controlar distintos valores y elementos en nuestros proyectos. Desde variar la intensidad o el tiempo de parpadeo de una luz, a variar el sonido de un zumbador o incluso seleccionar distintos modos en una máquina.

Ve hacia la luz robotín… programando el sensor de luz

$
0
0

¿Qué es un sensor de luz?

Un sensor de luz es una resistencia que modifica su valor cuando hay más o menos luz.

El sensor de luz del ZUM Kit devuelve valores comprendidos entre 0 (máxima oscuridad) y 800 (máxima iluminación). Recuerda que al tratarse de un componente analógico deberá conectarse en los pines A0, A1, A2, etc.

sensolr-sol

Son muy utilizados para controlar luces automáticamente; para detectar objetos y evitar, por ejemplo, que se cierre la puerta del ascensor; en lectores de códigos de barras, etc.

Encender un LED de emergencia

Imaginemos que nos piden colocar un sistema de iluminación sobre la puerta de entrada de una casita de campo. Necesitan que dicha luz se encienda solo cuando está oscuro, es decir, cuando empieza a anochecer o está muy nublado.

Lo primero que debemos hacer es conectar los componentes:


En primer lugar tendremos que probar qué cantidad de luz es poca y programar que cuando sea inferior, el LED se encienda. De lo contrario, será de día y querremos que el LED se apague.

ilustracion_if_pulsado_2r SensorLuzLed

Aún hay más

    A continuación te proponemos algunas ideas para seguir practicando:
  • Todas las noches la misma historia. Que si “hay monstruos en la habitación”, que si “está muy oscuro y me da miedo”… tu sobrino siempre se despierta a mitad de la noche aterrorizado por la oscuridad y el acecho de los monstruos nocturnos. Pero tú tienes la solución. Con ayuda de tus conocimientos de electrónica y programación, diseñas un sistema que cuando detecta que hay poca luz, enciende una lámpara. Instalado en la habitación del pequeño Luis, solucionaremos el problema.
  • Continuando con tu proyecto navideño, añade ahora el sensor de luz para que desconecte automáticamente los villancicos y los LED cuando oscurece. Así puedes disfrutar de una verdadera Noche de Paz.
  • Piensa cómo programarías un despertador automático que, con ayuda del zumbador y el sensor de luz, emita sonido cuando comienza a amanecer.

En las siguientes lecciones, verás cómo existen muchos proyectos que incluyen este componente y consiguen un resultado sorprendente. Así que ya sabes… ¡ve hacia la luz! digo… ¡continúa con el curso!

Bucles, bucles, bucles, bucles, bu… los bucles de control

$
0
0

¿Qué es un bucle de control?

Un bucle de control es una parte del programa que se repite mientras se cumpla una condición. Por ejemplo, mientras llueva no saldré a la calle y leeré un buen libro. Existen varios tipos de bloque de control que nos serán útiles en distintas ocasiones. Vamos a aprender a utilizarlos.

while

El bucle Mientras

El bucle Mientras o While repite una serie de acciones mientras una condición sea verdadera. Cuando la condición deja de ser verdadera, el programa continuará con el siguiente bloque. Encontrarás el bloque en la pestaña Control.

¿Recuerdas mi problema con los cuadros? Bueno, he de confesarte otra cosa, no es mi único problema. En realidad no me gusta mucho la luz… ¡soy un vampiro! Adoro sobrevolar noches tormentosas buscando algo a lo que hincarle el diente. Mi problema es que soy muy despistado y muchas veces me sorprende el amanecer muy lejos de casa… Por ello he decidido crear un dispositivo que me avise cuando haya demasiada luz, así podré esconderme rápidamente. Usaré un sensor de luz y un zumbador a modo de alarma.


conexion_while_3

El programa será muy sencillo. Mientras la luz sea mayor que 100, el zumbador sonará cada medio segundo. En caso de que la luz sea menor, el zumbador dejará de sonar.


programa_alarma_luz_3

Puedes modificar el programa para que la sensibilidad de la alarma sea personalizable. Vamos a controlar la sensibilidad mediante el potenciómetro y el bloque mapear.


programa_alarma_luz_potenciometro

Declaramos una variable sensibilidad donde mapeamos entre 0 y 800. Si la luz es mayor que nuestra sensibilidad, el zumbador emepezará a sonar. Como estamos dentro del bucle no pasaremos por la declaración de la variable, por lo que es importante volver a almacenar el valor del potenciómetro dentro del bucle o el zumbador sonaría indefinidamente.

El bucle Contar

El bucle Contar o For repite una serie de acciones un número concreto de veces.

Para utilizar el bloque For debemos configurar una serie de opciones. En primer lugar debemos seleccionar qué variable vamos a usar para realizar la cuenta. Dicha variable deberemos crearla previamente como una variable global. No te preocupes por su valor inicial, el bloque For cambiará dicho valor para realizar su cuenta. En segundo lugar debemos decir desde qué número hasta qué número queremos contar. Por último, selecciona si quieres que la cuenta la realice sumando, o al reves, restando.

programa_for_parpadeo_incremental

Copia el programa de arriba y cárgalo en tu placa, ¿qué esta sucediendo? Si te das cuenta el LED parpadea cada vez más lento. Hemos creado la variable contador para utilizarla con el bucle. Tal como lo hemos configurado, el bucle for repetirá el parpadeo de 0 a 5000 veces. Lo más importante es que la variable contador, que también utilizamos en los bloques esperar, irá aumentando su valor en cada repetición, consiguiendo que el LED parpadee cada vez más lento.

Aún hay más

    A continuación te proponemos algunas ideas para seguir practicando:
  • Crea una alarma de todo va bien, de forma que suene un pitido de forma ininterrumpida cada diez segundos indicando que todo va bien.
  • Modifica el programa del bloque contar, de forma que con el bloque del zumbador avanzado toques distintas frecuencias entre 100 y 1000.
  • Conecta a tu placa todos los LED que tengas por casa y colócalos en fila. Enciéndelos de uno en uno y a continuación apágalos. Modifica lo anterior para hacer distintos juegos de luces.

Los bucles de control son, junto a las sentencias condicionales, fundamentales para conseguir programar cualquier cosa que te propongas. ¡Enhorabuena! ¡Empiezas a ser un gran programador!

La potencia sin control… el miniservo

$
0
0

¿Qué es un servomotor?

Un servomotor es un pequeño motor que es capaz de girar entre 0 y 180 grados. Lo interesante de los servomotores es que nosotros decidimos a qué posición o ángulo deben moverse. Durante el curso llamaremos a los servomotores miniservos para diferenciarlos de los servos de rotación continua, capaces de girar más de 180 grados.

transportador_miniservo-675x408
OJO

IMPORTANTE: Si utilizas muchos motores y el puerto USB puede que no haya suficiente energía para alimentarlos a todos. Siempre que utilices servomotores recuerda alimentarlos mediante el portapilas. Recibirán mucha más energía a la hora de moverse.

Manejando el miniservo

Vamos a hacer un pequeño ejercicio para averiguar cómo funciona el miniservo. Para ello ponle uno de sus cabezales y conéctalo a un pin digital. No te preocupes por la opción de Oscilador, le dedicaremos un post más adelante.

Queremos mover el miniservo a los ángulos 0º, 45º, 90º, 135º, 180º. Para ello utilizamos el bloque Mover y escribimos el ángulo al que deseamos que se desplace.

miniservo_ejemplo1 conexion_servomotor
OJO

IMPORTANTE: Pon siempre un bloque Esperar tras mover un miniservo ya que si realizas cambios de dirección a gran velocidad puedes llegar a quemarlo. Una pequeña espera después de cada movimiento protegerá al miniservo de movimientos bruscos.

Controlando el miniservo utilizando un potenciómetro

Ahora que sabemos cómo utilizar el miniservo, vamos a probar a controlar su posición utilizando un potenciómetro

conexion_miniservo_potenciometro

¿Recuerdas el bloque mapear? Utilizamos el bloque mapear siempre que tenemos la necesidad de convertir una escala en otra distinta. Por ejemplo, en el caso del potenciómetro, éste da valores entre 0 y 1023, mientras que el miniservo solo puede moverse entre valores de 0 y 180. La solución más sencilla es mapear el valor del potenciómetro de 0-1023 a 0-180 para poder controlar correctamente el miniservo.

miniservo_ejemplo_2

Para realizar este programa deberás utilizar el bloque genérico del miniservo. Lo encontrarás en Componentes->Avanzados. En el primer hueco deberás poner el número de pin al que has conectado el miniservo o, tal como hemos realizado en otras ocasiones, la variable que almacena dicho número. En avanzados encontrarás dichas variables. ¡Mueve ahora el potenciómetro! Podrás controlar grado a grado la posición del miniservo.

Aún hay más

    A continuación te proponemos algunas ideas para seguir practicando:
  • Con el sensor de luz y el miniservo crea un medidor analógico de luz de forma que el miniservo se mueva a un ángulo u otro dependiendo de la luz recibida.
  • Crea un buscaluz para que tu placa solar busque siempre el ángulo ideal para absorber los rayos del sol.
  • Crea un semáforo con barrera utilizando varios LED y un miniservo.

Los miniservos son ideales para crear multitud de máquinas y robots. Con los miniservos podrás controlar a qué ángulo se moverá un brazo, un engranaje, o cualquier otro mecanismo. Usa miniservos y controlarás tus inventos con total precisión.

¡Muévete! El servo de rotación continua

$
0
0

¿Qué es un servo de rotación continua?

Un servo de rotación continua es un motor cuyo circuito electrónico nos permite controlar la dirección de giro. A diferencia del miniservo, no se detiene en una posición, sino que gira continuamente.

Son muy utilizados en robótica y en muchas aplicaciones electrónicas, como en lectores de DVD, escaleras mecánicas, ascensores, etc.

En general, usaremos los servos de rotación continua para generar movimiento.

Programando un ascensor

Vamos a imaginar que tenemos que programar un ascensor que baje, se pare unos segundos y luego vuelva a subir y pararse. Este ejemplo supone programar un servo de rotación continua para que gire en sentido horario, se detenga y finalmente, gire en sentido antihorario.

condicionales

Para comenzar a programar el movimiento, vamos a la pestaña Componentes y seleccionamos el bloque Girar servo que nos va a permitir seleccionar el sentido de giro, horario o antihorario.

Para detener el servo, volvemos a la pestaña Componentes y seleccionamos el bloque Parar servo.

Finalmente, para que gire en el otro sentido, seguimos el mismo procedimiento, pero seleccionamos el sentido contrario. En nuestro ejemplo, sentido antihorario.

Como ves, programar los servos de rotación continua es muy sencillo. Si has hecho todo bien, tu servomotor girará en sentido horario dos segundos, se detendrá durante otros dos segundos, volverá a girar en sentido antihorario dos segundos, y finalmente, se detendrá durante otros dos segundos.

Aún hay más

    A continuación te proponemos algunas ideas para seguir practicando:
  • Prueba a montar tu propio robot utilizando materiales que tengas por casa (por ejemplo cartón o latas de refrescos), incorporando dos servos conectados a dos ruedas. Programa tu robot para que se mueva, gire y se detenga. Añádele todos los componentes que quieras, LED, botones, zumbador, etc. ¡Ya podrás presumir de haber diseñado y programado tu primer robot!
  • Ahora que has aprendido a usar el servo continuo, te invitamos a que practiques construyendo tu propio zoótropo, un proyecto muy divertido que estamos seguros que te encantará.

Buen trabajo. Ya sabes utilizar un montón de componentes y ahora, además, ¡puedes mover cosas! Continúa practicando, probando ideas, creando inventos y verás como cada vez se te van a ir ocurriendo más proyectos interesantes.

Yo soy yo y mis circunstancias. La máquina de estados.

$
0
0

¿Qué es una máquina de estados?

Una máquina de estados es un programa que reacciona de una forma u otra dependiendo no solo de lo que está sucediendo, sino también de su estado anterior.

Es por tanto, un programa que no solo depende de sus entradas y salidas, también tiene memoria, estados que influyen en su comportamiento. Por ejemplo, imagina que queremos crear un programa para que, si tienes hambre, comas. Si solo depende de que tengas hambre, comerás inmediatamente lo primero que encuentres. Sin embargo, si hacemos el mismo programa con una máquina de estados, el proceso será más complejo. Si tienes hambre quieres comer, pero al mediodía te has comido una pizza, y ahora debes comer algo más sano, además, todavía no ha llegado la hora de la cena. ¡Lo mejor será comer verdura!


maquina-estados-pizza

Las luces de navidad. Nuestra primera máquina de estados

Este año he tenido mucho tiempo libre, así que he decidido comprar un montón de LED para crear las luces de mi árbol navideño. Me he fijado en luces ya hechas y, normalmente, tienen tres estados: los LED apagados, los LED que parpadean al mismo tiempo y los LED que parpadean alternativamente. Voy a basarme en ese comportamiento de forma que cada vez que presione el pulsador pasaré al siguiente modo de luz.


esquema_conexiones_m_estados

En un programa con una máquina de estados hay siempre dos partes. Una es la ejecución de cada estado y la otra el cambio entre estados.

Ejecución de cada estado

Queremos que nuestras luces tengan tres modos de programación o estados: LED apagados, parpadeo simultáneo y parpadeo alternativo. Lo primero es declarar una variable global estado que nos permitirá almacenar el estado actual.

variable_estados


ejecucion_estados

Queremos que los LED se comporten de una forma u otra según el valor que tenga la variable estado. Para ello utilizaremos la función Comprobar cual es el valor de.

En el primer estado, el número 0, se apagan ambos LED. El segundo estado o estado 1 los hace parpadear al mismo tiempo, mientras que el tercer estado o estado 2 los hace parpadear alternativamente.

Carga el programa modificando el valor inicial de la variable estado. Comprobarás como el programa ejecuta un estado u otro según su valor.

Cambio entre estados

Queremos que cada vez que presionemos el pulsador pasemos al siguiente estado.

A veces, cuando presionas un pulsador tu programa puede detectar varias pulsaciones y comportarse de forma incorrecta. Es lo que se conoce como efecto rebote. Para evitarlo utilizamos un bucle Mientras con una pequeña espera dentro. De esta forma el programa no avanzará hasta que el botón deje de pulsarse.

Para cambiar de estado, cada vez que presionemos el pulsador sumaremos 1 a la variable estado. Sin embargo, si estamos en el estado 2 y presionamos de nuevo el botón pasaremos al valor 3, 4, 5, etc. Para poder volver al estado inicial debemos resetear la variable estado. Por ello utilizamos un Si…ejecutar…de lo contrario… En el caso de que el estado sea menor que 2, aumentaremos el valor del estado en 1, pasando al siguiente estado, en caso de que sea 2 o mayor, resetearemos la variable a 0. Añade estos bloques antes de tu bloque Comprobar el valor de… y carga el programa. ¡Acabas de crear tus propias luces programables!

2_incremento_programa

Aún hay más

    A continuación te proponemos un par de ideas para seguir practicando:
  • Construye un semáforo y prográmalo en Bitbloq 2 utilizando una máquina de estados y un botón para solicitar que se ponga en verde.
  • Crea tu propia jukebox cambiando de canciones mediante una máquina de estados, un zumbador y un pulsador.

Las máquinas de estados son muy utilizadas en muchos ámbitos. Desde los distintos programas de tu lavadora o el horno, a máquinas industriales, móviles y ordenadores. Cuanto más practiques más fácil será utilizarlas así que ¡no lo dudes y ponte a programar!


¡Novedades! Programa código Arduino con Bitbloq 2

$
0
0

Programando con código en Bitbloq 2

Bitbloq 2 tiene un montón de novedades, entre ellas ¡su propia IDE de Arduino! A partir de ahora podrás programar tus placas controladoras usando tanto bloques como código. La programación en bloques es un medio excelente para aprender a programar creando proyectos rápidamente y en poco tiempo. Sin embargo, habrá momentos en los que necesites ir un paso más allá y crear programas más complejos utilizando tu propio código.


Por ello hemos desarrollado una IDE o entorno de programación de Arduino dentro de Bitbloq 2. Para acceder a ella, dentro de la pestaña Software, clica sobre Código y podrás ver el código que los bloques han generado. Si quieres escribir tú mismo dicho código clica sobre Editar código. Recuerda que puedes utilizar las librerías propias de Arduino o, incluso, las tuyas. Para ello añade tu librería dentro la carpeta de tu ordenador: Arduino/libraries.

OJO

RECUERDA: Puedes pasar de programar en bloques a editar el código creado, pero recuerda que tras editar el código, no podrás volver a la programación por bloques. Asegúrate de que realmente deseas programar en código o crea una copia de tu proyecto en Archivo->Crear una copia.

El editor de código de Bitbloq 2 incluye numeración de filas, resaltado de sintaxis y autocompletado de código; por lo que programar en Arduino será más fácil que nunca. ¿Te animas a aprender código Arduino? Sigue este curso y pronto serás un experto.

Abre los ojos. El sensor de ultrasonidos.

$
0
0

¿Qué es un sensor de ultrasonidos?

Un sensor de ultrasonidos es un componente que utiliza ondas de alta frecuencia para saber la distancia a un objeto. Este tipo de sensores tienen dos partes, una es el emisor que emite la señal y la otra el receptor que recibe la señal si ésta rebota sobre algún obstáculo cercano.

Este sistema es el mismo que utilizan los murciélagos para orientarse y se aplica de forma similar en robótica para detectar obstáculos y medir distancias.

Vaya, cuántos cables… ¿Cómo se conecta el sensor de ultrasonidos?

El sensor de ultrasonidos tiene cuatro pines marcados como: GND, ECH, TRI, VCC. El TRI (Trigger) es el encargado de ordenar al sensor que emita la onda y el ECH (Echo) la recibe. En función del tiempo que transcurre entre la emisión y recepción de la señal, nuestra placa calcula la distancia. Estos dos cables deben ir conectados a un pin de señal, que en tu placa ZUM son de color blanco. Los otros dos cables, GND y VCC, se conectan a cualquier pin negro y rojo respectivamente.

Comprobemos cómo funciona

Podemos visualizar la distancia a un objeto utilizando el puerto serie. El sensor de ultrasonidos siempre nos devolverá la distancia en centímetros.

Sensor de aparcamiento

¡Qué desastre! acabo de sacarme el carnet de conducir y el tema de aparcar aún no lo tengo dominado. Se que aparcar “de oído” no es lo correcto, pero soy incapaz de calcular bien las distancias. Si tuviera algún sistema que me informara antes de golpear al vehículo de atrás…

Vamos a diseñar un sistema que avise al conductor de la distancia que le separa de otros objetos para facilitar las maniobras de estacionamiento. Para ello, programamos que cuando la distancia a un objeto sea menor de 50 cm, el zumbador comience a emitir un pitido intermitente, que irá pitando con más frecuencia cuanto más se vaya aproximando.
Primero creamos la variable tiempo como el valor de la distancia devuelto por el sensor de ultrasonidos y lo multiplicamos por 10. Esto nos permitirá percibir mejor cómo varía el intervalo entre pitidos del zumbador.

Aún hay más

    A continuación te proponemos algunas ideas para seguir practicando:
  • Con un sensor de ultrasonidos y un zumbador, podemos diseñar un theremín electrónico, un instrumento muy peculiar. Simplemente piensa en la manera de relacionar la distancia detectada con la frecuencia emitida. Si necesitas inspiración, aquí tienes un ejemplo para Arduino.
  • Si dispones de un PrintBot u otro robot similar, ya puedes programar ¡un robot esquiva obstáculos!

Programar un robot capaz de resolver un laberinto, esquivar obstáculos, avisarte cuando hay algún objeto cerca… Este componente nos va a dar mucho juego al incorporarlo en nuestros robots, permitiendo un comportamiento mucho más autónomo. ¿Se te ocurren más ideas originales? ¡Compártelas con nosotros!

Las funciones sin retorno

$
0
0

¿Qué es una función?

Una función es un fragmento de programa diseñado para ser reutilizado en múltiples ocasiones. Normalmente una función realiza una o varias tareas pudiendo al terminar devolver un valor (funciones con retorno) o no devolver nada (funciones sin retorno).

Nuestra primera función. Reutilizando una melodía.

Imagina que queremos tocar una pequeña melodía varias veces en distintos momentos del programa y encender un LED presionando un pulsador. Normalmente deberíamos repetir todos los bloques de la melodía cada que vez que queramos usarla. Al final tendríamos un programa largo y difícil de entender y modificar. ¿Por qué no reutilizar siempre los mismos bloques? Vamos a crear una función que contenga la melodía para más tarde utilizarla siempre que la necesitemos. Para ello utilizaremos un zumbador, un botón y un LED.


esquema_conexion

Creando la función

Para poder utilizar una función, primero hay que crearla dentro de la zona Variables globales, funciones y clases. Para ello utiliza el bloque Declarar función dentro de la pestaña Funciones

.

declarar_funcion

Llamando a la función

Una vez creada la función, es necesario llamarla dentro del programa. A pesar de que tienen bloques dentro, las funciones no se ejecutan a no ser que las llames. Para llamar a una función utiliza el bloque Ejecutar función.

2_sin_funcion ejecutar_funcion

A la izquierda tienes el programa sin funciones y a la derecha con ellas. Como puedes ver, el programa es mucho más corto usando funciones, siendo mucho más rápido y fácil el crearlo. Además, si por alguna razón quieres modificar la melodía, solo tendrás que cambiarla en la función y no en cada parte del programa.

Personalizando funciones. Los argumentos

Imagina ahora que queremos utilizar en el programa la misma melodía, pero en cada sitio con una duración diferente. Las notas en la función son siempre las mismas, ¿cómo podríamos realizarlo? Los argumentos son variables que solo existen dentro de una función y cuyo valor definimos cuando la llamamos. Si utilizamos el bloque avanzado Crear función con los siguientes argumentos podremos crear un argumento llamado tiempo que establezca cuánto ha de durar cada nota.

funcion_parametros

Una vez que tenemos creada nuestra función con argumentos solo tenemos que llamarla. Para ello utilizaremos el bloque avanzado Ejecutar función con los siguientes argumentos.

ejecutar_funcion_parametros

En el caso de que pulsemos el botón, la melodía se ejecutará con un tiempo de 2000 ms cada nota. En el caso contrario, cada nota durará 500 ms. De esta forma podemos reutilizar el mismo fragmento del programa todas las veces que queramos adaptándolo a cada situación.

Aún hay más

    A continuación te proponemos algunas ideas para seguir practicando:
  • Crea una melodía completa separando una función para cada compás.
  • Modifica el programa anterior y añade otro argumento para controlar el tiempo de pausa entre notas. Para ello necesitarás utilizar el bloque coma dentro de avanzados.
  • Crea una función a la que le pases como parámetros el número de veces que deseas hacer parpadear un LED y el tiempo de parpadeo. Necesitarás utilizar un bucle de control for.

A la hora de programar, es más importante el programar bien que el tener una gran cantidad de bloques. Las funciones te permitiran reutilizar muchas parte de tu programa de una forma muy inteligente. Ahorrandote errores, tiempo y esfuerzo. ¿Quieres descubrir todo lo que son capaces de hacer? ¡Lo veremos en la siguiente entrada!

¡Elemental, querido Watson! La lógica booleana

$
0
0

¿Lógica boole… qué?

A los robots no les gusta la ambigüedad. Necesitan saber qué hacer, cuándo y cómo. Por lo tanto, para facilitar sus decisiones, normalmente se utiliza la llamada lógica booleana, que se basa en preguntas que solo tienen dos respuestas posibles: sí/no o verdadero/falso.

Si contamos con varios datos de tipo booleano, estos se pueden combinar en expresiones lógicas mediante los operadores: and, or y not.

La lógica booleana es la base de cualquier aparato digital, desde circuitos electrónicos básicos, hasta tu móvil u ordenador, y se denomina así en honor a George Boole, matemático inglés del siglo XIX, que fue el primero en definirla.

Para entenderlo mejor…

En mi restaurante vegetariano favorito el cocinero es un simpático robot. Parece muy simplón, pero lo cierto es que este robot Chef es capaz de preparar platos complejos utilizando los ingredientes que elige cada cliente. Gracias a los operadores booleanos, es capaz de combinar varias condiciones a la vez y cocinar el plato perfecto a gusto del cliente.

Veamos cómo este robot cocinero utiliza los operadores booleanos para preparar una ensalada.

  • Operador AND

    Lechuga Y Tomate Y Cebolla

    Utilizaremos el operador AND cuando tenemos una situación en la que queremos que varias condiciones se cumplan. Por ejemplo, hay personas a las que les gusta que la ensalada lleve lechuga, tomate y cebolla.

    AND

  • Operador OR

    Lechuga O Tomate O Cebolla

    Utilizaremos el operador OR cuando tenemos una situación en la que nos basta con que una sola de nuestras condiciones se cumpla. Por ejemplo, hay personas a las que les da igual. Les gusta la ensalada de tomate, de lechuga o de cebolla. No necesitarán que la ensalada lleve los tres ingredientes, les basta cualquiera de ellos o cualquier combinación.

    OR

  • Operador NOT

    Lechuga Y Tomate NO Cebolla

    Utilizaremos el operador NOT cuando queremos que no se cumpla una condición. Por ejemplo, hay personas a las que les gusta la lechuga y el tomate, pero odian la cebolla. Por lo tanto, tomarán la ensalada de lechuga y tomate, pero sin cebolla.

    NOT

Practica con un ejemplo en Bitbloq

Vamos a construir el siguiente programa para observar qué sucede en cada una de las siguientes situaciones:

Ejemplo

  • ¿Qué LED se enciende si hay poca luz ambiente?

  • ¿Qué LED se enciende si pulso el botón y hay mucha luz?

  • ¿Qué LED se enciende si pulso el botón y además hay poca luz?

SOLUCIÓN:

Observa que el led_1 se encenderá al pulsar el botón O cuando haya poca luz, mientras que el led_2 se encenderá al pulsar el botón Y cuando haya poca luz, por lo tanto:

  • Si solo pulso el botón, se encenderá el led_1 porque con solo cumplir una de las dos condiciones es suficiente.

  • Si pulso el botón y además hay mucha luz, solo se encenderá el led_1, porque se sigue cumpliendo una de las dos condiciones.

  • Si pulso el botón y además hay poca luz, se encenderán los dos, el led_1 y el led_2 porque al led_1 le es suficiente con cualquiera de las dos condiciones y el led_2 requiere que se cumplan las dos.

Como veis, la lógica booleana nos va a permitir crear programas capaces de realizar acciones en base a varias condiciones. Ahora podremos elaborar condiciones complejas que permitirán a nuestros robots realizar un comportamiento mucho más autónomo.

Visualizando el mundo. La pantalla LCD y Bitbloq 2

$
0
0

¿Qué es una pantalla LCD?

Una pantalla LCD o Liquid Cristal Display es un tipo de pantalla en la que, al programarla, se activan una serie de píxeles para representar letras, números u otras formas. Existen muchos tipos de pantallas LCD y se usan en una gran cantidad de aparatos como despertadores, indicadores de estaciones, relojes, calculadoras, etc.

Cómo conectar la pantalla LCD

El LCD es un componente un poco especial ya que tiene sus cuatro cables separados. Dale la vuelta a tu pantalla LCD y asegúrate que el interruptor está en la posición IIC (también conocido como protocolo I2C), verás una pequeña placa o circuito donde te indica el nombre de cada conexión. Dos de los cables son la tensión VCC (que puedes conectar a cualquier pin rojo de tu placa) y la masa o tierra GND (que también puedes conectar a cualquier pin negro). Los otros dos, SDA y SCL deberás conectarlos siempre a los pines azules de señal A4 y A5 respectivamente.

Conecciones

OJO

IMPORTANTE: Puede que, tras programar tu pantalla, ésta no muestre ningún carácter o éstos no se visualicen bien. Asegúrate de que el interruptor situado en la parte trasera de tu LCD está en la posición IIC y vuelve a cargar el programa. En caso de que los caracteres no se visualicen con suficiente claridad, puedes ajustar el contraste de la pantalla girando con un destornillador el pequeño potenciómetro situado al lado del interruptor.

1, 2, 1, 2, probando, probando… Mandando mensajes por pantalla

Vamos a mostrar mensajes a través de la pantalla LCD. En la pestaña Componentes encontrarás distintos bloques para configurar el LCD. Escribiremos nuestro nombre, para ello utiliza el bloque Escribir en el LCD.

programacion_hola_mundo_1

Como puedes comprobar, el programa escribe tu nombre varias veces a lo largo de toda la pantalla. Esto puede ser útil en ocasiones, pero realmente nosotros queremos escribir nuestro nombre una sola vez. Para ello debemos decirle en qué posición del LCD queremos empezar a escribir utilizando el bloque Escribir en el LCD empezando en la posición.

programacion_hola_mundo_1_2

Las pantallas LCD suelen estar divididas en celdillas en donde se representa un carácter como un número o letra. A mayor número de celdillas, mayor número de caracteres podrás representar. En este momento, Bitbloq 2 soporta pantallas de mínimo 16 columnas por 2 filas utilizando el protocolo de doble canal o IIC. Es importante que tengas en cuenta una cosa, las filas y columnas de tu LCD no empiezan por el número 1, sino por el 0. De esta forma la primera posición o celdilla no es la columna->1 y la fila ->1, sino la columna->0 y fila->0.

LCD-2-lineas

Prueba a cambiar la posición de tu nombre a lo largo de la pantalla. ¿Qué ocurre cuando el mensaje no cabe en una sola línea?

Dime que vales. Mostrando el valor de un sensor.

Vamos a mostrar a través del LCD el valor del sensor de luz. Para ello debemos utilizar el bloque avanzado del LCD. Lo encontrarás en Componentes->Avanzados.

programacion_sensor_luz_lcd_2

En primer lugar agrega el bloque Borrar LCD para evitar que el LCD sobrescriba valores anteriores de tu sensor y salgan cifras incorrectas. A continuación, puedes poner en la primera fila un texto para aclarar que se está mostrando. En la segunda fila utiliza el bloque avanzado para mostrar el valor del sensor de luz. Pon un bloque esperar para controlar la frecuencia a la que se muestra cada nuevo valor.

Aún hay más

    A continuación te proponemos un par de ideas para seguir practicando:
  • Modifica el programa anterior para que se encienda la iluminación del LCD cuando sea de noche, y se apague cuando sea de día. Utiliza el bloque Encender la luz del LCD.
  • Utilizando el sensor de ultrasonidos, haz un medidor de distancia que muestre por el LCD la distancia en centímetros a un objeto.
  • Utiliza un pulsador para hacer un contador que muestre por el LCD cuantas veces se ha pulsado. Puedes utilizarlo para contar cualquier cosa, como personas u objetos.

Ahora que ya sabes cómo utilizar tu LCD seguro que se te ocurren un montón de ideas y proyectos con los que utilizarlo. Siempre que necesites que tu programa se comunique con quién lo está utilizando, el LCD será tu mejor aliado.

Divide y vencerás. Las funciones con retorno.

$
0
0

¿Qué es una función con retorno?

Una función con retorno es un fragmento de código diseñado con el objetivo de ser lo más reutilizable posible y que, tras ejecutarse, devuelve un valor numérico, textual, lógico o de otros tipos que será utilizado por el programa principal. Las funciones con retorno son ampliamente usadas ya que permiten, junto con el uso de argumentos, crear fragmentos de código que pueden ser usados en múltiples programas sin necesidad de reescribirlos en cada situación.

La suma del cuadrado de los catetos. Creando una función con retorno.

He de reconocer una cosa, no soy bueno con las matemáticas. Al comprar nunca sé cuánto cambio me deben dar, y cuando divido una cuenta entre amigos sospecho que siempre acabo pagando de más. Esto en la escuela era un problema. Hubo un año, el año mundial de Pitágoras, en el que no hacíamos más que calcular valores de hipotenusas, catetos y más catetos. Al final me liaba tanto que el único cateto que hallaba era yo. “En un triángulo rectángulo, el cuadrado de la hipotenusa es igual a la suma de los cuadrados de los catetos”. Nunca lo olvidaré. ¡Pero ahora sé programar, así que voy a solucionar mi problema con los triángulos de una vez por todas! Para ello crearé un programa al que le introduzca el valor de los catetos y me muestre por puerto serie el valor de la hipotenusa. Así nunca más hará falta calcular el valor de una hipotenusa a mano y, probablemente, el mundo sea un lugar un poco mejor.

En primer lugar es necesario definir la función:

ejemplo 1

La función necesita dos argumentos numéricos: cateto_A y cateto_B. Puedes utilizar dos parámetros dentro de una función en vez de uno utilizando el bloque coma, que encontrarás dentro de Funciones->Avanzados.

Una vez creada ya podemos utilizarla dentro del programa principal (loop):

ejemplo1_principal

La único que hacemos dentro del programa principal es llamar a la función paśandole como argumentos el valor de los catetos de nuestro triángulo y mostrarlo por el puerto serie. Prueba el programa con distintos valores y comprueba que el resultado de la operación es siempre correcto.

Sin embargo, esta forma de introducir el valor de los catetos es muy lenta. ¿Por qué no intentamos introducir los valores mediante el puerto serie? Podremos reutilizar la función del teorema de Pitágoras, solo tendremos que modificar el bucle principal.

Aún hay más

    A continuación te proponemos algunas ideas para seguir practicando:
  • Amplia el programa anterior con más funciones para calcular cosas como la velocidad, la gravedad o una fuerza.
  • Utiliza un potenciómetro, un botón y el puerto serie para introducir el valor de cada cateto y mostrar su hipotenusa. Necesitarás utilizar una máquina de estados.
  • Crea funciones para tu PrintBot que reutilicen acciones como avanzar, retroceder o comprobar el valor de un sensor e incorpora sonidos para hacerlas más atractivas.

Puedes practicar más viendo el siguiente vídeo:



Las funciones son de gran importancia en programación, ya que nos permiten simplificar los programas y hacerlos mas comprensibles. Si divides tu código en funciones bien programadas podrás reutilizar esa misma función en otros programas, agrupándolas en librerías donde podrás reutilizarlas siempre que las necesites. A partir de ahora tus programas serán mucho más profesionales ¡No lo dudes y utiliza funciones siempre que lo necesites!

¿Y tú? ¿controlas? El joystick

$
0
0

Qué es un joystick

El joystick o palanca de mando es un componente que nos va a permitir controlar multitud de aparatos, puesto que es capaz de girar 360 grados y de devolver la posición en la que se encuentra.

Si le quitamos el capuchón veremos que está compuesto por dos potenciómetros y un pulsador. Con uno de los potenciómetros podremos medir la posición en el eje X y con el otro, el eje Y.

Entonces… ¿es digital o analógico?

Podremos utilizar nuestro joystick como componente digital (pulsador) y/o como componente analógico (potenciómetros), por lo tanto, es las dos cosas.

joystick-conexion

Para entender cómo conectarlo, observa que del joystick salen 3 cables de conexión:

  • Los 2 primeros, XVG y YVG, corresponden a los dos potenciómetros. Transmiten la señal analógica y nos indican la posición del eje X e Y respectivamente. Debemos conectarlos a cualquier pin analógico, por ejemplo al A1 y A2.

  • El último cable de conexión, KVG, corresponde al pulsador. Es el que transmite la señal digital y nos indica si estamos pulsando o no. Lo conectaremos a cualquier pin digital, por ejemplo al 5.

Una serie de datos importantes, los arrays

¿Recuerdas qué es una variable?, ¿ese valor que guardamos y que podemos recuperar cuando queramos?

Pues la variable joystick nos va a guardar el valor de la coordenada X, de la Y y el estado del pulsador… ¡tres valores! Se trata de un tipo de variable especial que se denomina array y que es capaz de almacenar varios valores en posiciones sucesivas.

Para entenderlo mejor, vamos a imaginar que nuestro array fuera un tren, en el cual cada vagón fuera un valor. Esos valores deben ser siempre del mismo tipo, por ejemplo número de espárragos. En el vagón 0 habría un determinado número de espárragos, en el 1 otro valor, en el 2 otro, etc.

Para conocer uno de los valores, bastará con escribir el nombre de la variable y la posición a leer. En nuestro caso el valor de X se guarda en la posición 0, el de Y en la 1 y el estado del pulsador en la 2.

Izquierda, derecha, arriba, abajo…

Vamos a programar que se enciendan distintos LED en función de la posición a la que movamos el joystick y que suene el zumbador si lo pulsamos. Para ello, colocamos cuatro LED en forma de cruz y un zumbador en el centro.

Lo primero que tendremos que hacer es declarar la variable joystick, que como ya sabemos, nos va a guardar los valores necesarios para saber la posición. A continuación, debemos programar las condiciones para que se encienda/apague cada LED. La primera parte de la programación, que corresponde con los LED izquierdo y derecho, es la siguiente:

Ejemplo

Puesto que el valor del potenciómetro va de 0 a 1023, programamos que el LED derecho se encienda cuando el valor sea mayor que 600, y el izquierdo cuando el valor sea menor que 400. De esta forma, si el potenciómetro está en su posición de reposo (entre 400 y 600), ningún LED se encenderá.

La segunda parte de la programación, que corresponde con los LED superior e inferior, es la siguiente:

Ejemplo

La tercera y última parte de la programación, con la que programamos que el zumbador emita un pitido cuando pulsamos el joystick, es la siguiente:

Ejemplo

Observa el siguiente vídeo para entender cómo funciona esta programación:

Aún hay más

A continuación te ofrecemos algunas ideas para que sigas practicando:

  • Crea un programa que muestre la posición del joystick por el puerto serie.

  • Elige un tono distinto para cada posición del joystick y programa un juego en que haya que repetir el orden.

  • Construye un vehículo que puedas controlar utilizando el joystick y los dos servos.


Creando melodías con Bitbloq 2

$
0
0

Hey Ho Let´s go!

¿Recuerdas el zumbador?

Es uno de los componentes más divertidos y no solo porque es capaz de hacer ruido, con él también vamos a poder crear melodías complejas. En este post os vamos a mostrar cómo se hacen, y de regalo… ¡unas cuantas melodías! Las encontrarás en la sección de descargas.

Notas musicales y frecuencias

Recordemos que en los bloques básicos del zumbador tenemos las siete notas básicas de nuestro sistema musical:

Do – Re – Mi – Fa – Sol – La – Si

Pero… ¿qué pasa si queremos componer una melodía que requiera más notas musicales, como bemoles (♭) o sostenidos (#)?

Las notas musicales son vibraciones del aire a una frecuencia determinada. En los bloques básicos, cada nota musical ya viene asociada a su valor de frecuencia para facilitarnos su utilización. Aún así, si queremos conocer su valor podemos cambiar la visualización en Bitbloq al formato código:

Como podemos comprobar, el valor de la frecuencia de la nota do es 261, el de la nota re es 293, el de la nota mi es 329, el de la nota fa es 349, etc.

Sin embargo, recordemos que el bloque avanzado del zumbador nos permite elegir el valor de la frecuencia, lo que nos va a permitir ampliar las posibilidades de nuestras composiciones.

¿Y cómo sabremos a qué frecuencia corresponde una nota musical concreta?

Podemos calcular la frecuencia de una nota cualquiera multiplicando una frecuencia de referencia por la raíz duodécima de 2 elevado al número de semitonos que separa la nota que estamos buscando… ¡menudo lío! Para ayudar en esta ardua labor, hemos creado este traductor de notas a frecuencias:


Escribe una serie de notas   



También puedes introducir las notas en formato anglosajón, seguidas del número que indica tonos más graves o agudos:

C - D - E - F - G - A - B

El tiempo y la organización también importan

Uno de los elementos esenciales para reproducir una melodía es la duración, es decir, el tiempo que se mantiene un sonido determinado de la pieza musical.

La duración de cada nota se representa por medio de figuras musicales. La figura que representa la unidad es la redonda y sirve como referencia para conocer el valor del resto, puesto que cada nota tiene la mitad de duración que la anterior. Si la redonda dura 1 segundo, la blanca durará 1/2 segundo, la negra 1/4 segundo, etc.

En notación musical, también es importante el puntillo, un signo de prolongación con forma de punto que se coloca a la derecha de la figura y que aumenta la mitad del valor de la misma.

Además, cada figura musical cuenta con su correspondiente figura de silencio que representa su misma duración. También tienen su representación gráfica y se consideran como una nota que no se ejecuta.

Hay melodías muy largas, que nos generarían un código muy largo. Al igual que las barras de compás, que se utilizan para organizar una partitura podemos organizar nuestro código utilizando funciones y dividir la canción en compases.

Sabiendo todo esto, ya estamos preparados para programar nuestras primeras melodías.

Chan chan chaaaaaaaan...

Aquí tienes la partitura de una melodía y cómo sería su programación en Bitbloq.

  • Vamos con el primer compás:

    Observa la secuencia de notas:

    RE, FA, RE, RE, SOL, RE, DO, que nuestro traductor de frecuencias traduce en: 294, 349, 294, 294, 392, 294, 262.

    Para el cálculo de la duración y los silencios, hemos establecido que la blanca dure 1000 ms, de manera que la negra durará 500 ms, la corchea 250 ms y la semicorchea 125 ms.

    Primero, crearemos las variables globales que nos van a permitir establecer la duración de las notas y las pausas.

    Por lo tanto, el código en Bitbloq será el siguiente:

    Sigue el mismo sistema para el resto de compases.

  • Segundo compás:

  • Tercer compás:

  • Cuarto compás:

  • recuerda

    RECUERDA: declarar las funciones y las variables globales, dentro de la zona Variables globales, funciones y clases, y ejecutarlas en el Bucle principal(Loop).

    ¿Quieres más?

    Buscando en Internet podrás encontrar millones de partituras que podrás adaptar a tu placa y a tu zumbador.
    Te animamos a que crees tus propias melodías y las compartas con la comunidad. Por nuestra parte, hemos recopilado unas cuantas que puedes descargar, modificar y compartir cuanto quieras.

    ¡Disfrútalas!

Para muestra… ¡cinco botones!

$
0
0

¿Qué es la botonera?

La botonera es un componente formado por un conjunto de botones o pulsadores. Con este componente vamos a poder programar que cada botón ejecute una acción determinada, e incluso activar o desactivar otros componentes.

La botonera que incluye el Zum Extensión Kit, está compuesta por cinco botones denominados: A, B, C, D y E.

botonera-componente

Cinco botones, entonces… ¿cómo la conectamos?

A diferencia del pulsador, la botonera es un componente analógico, puesto que nuestra placa, lo que recibe es un valor determinado de tensión, diferente para la pulsación de cada botón. Por lo tanto, conectaremos la botonera a cualquier pin analógico, por ejemplo al A1.

Introduzca la contraseña

Vamos a imaginar que queremos programar un sistema que permita abrir una caja fuerte solo si introducimos la contraseña correcta.

Para ello, vamos a programar que, solo al pulsar los botones de la la botonera en un orden determinado, el zumbador emita un sonido de confirmación, y el miniservo se mueva abriendo la caja. En caso contrario, no se abrirá.

Comenzamos conectando la botonera, el zumbador y el miniservo a nuestra placa:

Para resolver este ejercicio, primero programaremos una máquina de estados, comenzando con la declaración de una variable global que denominaremos estado y que igualaremos a 0.

En la parte de Instrucciones iniciales (Setup), programamos que al iniciar el programa, el miniservo se coloque en una posición concreta, por ejemplo 10 grados, imaginando que esta posición corresponde a la caja fuerte cerrada.

A continuación, programamos la lectura de la botonera. Para ello utilizamos el bloque Texto → pestaña AvanzadosCarácter, y escribimos la letra del botón correspondiente (A, B, C, D o E), en mayúsculas.

Finalmente, debemos seleccionar qué queremos que haga cada botón. En este caso, establecemos que los cambios de estado sucedan con la pulsación de una secuencia concreta de botones. Para facilitar esta programación, podemos ir comprobando que con la pulsación de cada botón de la secuencia, se produce el cambio de estado.

Si dicha secuencia es correcta, el miniservo girará, abriendo nuestra caja fuerte.

Aún hay más

Con la botonera vamos a poder programar multitud de proyectos interesantes. A continuación te proponemos algunas ideas para seguir practicando:

  • Elabora un sistema que te permita encender cinco LED distintos en función del botón que pulses.

  • Incorpora un zumbador a tu placa y programa un teclado electrónico, de manera que al pulsar cada botón, suene una nota diferente (eso sí, este teclado electrónico solo contará con cinco notas).

  • Piensa en distintas funciones de una casa domótica (por ejemplo: encender y apagar una luz, abrir y cerrar una puerta, activar y desactivar una alarma, etc.) y programa dichas funciones para cada botón de tu botonera.

La botonera es un componente muy útil cuando se quieren ejecutar o controlar diferentes acciones. Utiliza tu imaginación y programa todo lo que se te ocurra utilizando este componente.

Utiliza un relé con tu placa Arduino

$
0
0

¿Qué es un relé?

Cuando estamos desarrollando nuestros “inventos” a menudo sentimos la necesidad de poder encender y apagar aparatos eléctricos de nuestro entorno. Por ejemplo, imaginemos que queremos bajar o subir las persianas utilizando un motor eléctrico, necesitaríamos activar o desactivar dicho motor, que habitualmente funciona a 220V. También podríamos querer hacer que nuestra lámpara nocturna fuera de verdad una lámpara y poder encender y pagar la lámpara de nuestra mesilla.

Para poder realizar esto necesitaríamos un interruptor que pudiéramos activar y desactivar desde nuestra placa Zum. Pues bien, ese interruptor se llama relé.

Si buscamos en Wikipedia leemos:

El relé (en francés, relais, “relevo”) o relevador es un dispositivo electromagnético. Funciona como un interruptor controlado por un circuito eléctrico en el que, por medio de una bobina y un electroimán, se acciona un juego de uno o varios contactos que permiten abrir o cerrar otros circuitos eléctricos independientes. Fue inventado por Joseph Henry en 1835.

.

rele-doble-arduino
¿Qué quiere decir esto? Quiere decir que si activamos el relé, poniendo a 5 Voltios el pin de control dejará pasar la corriente (se cierra el circuito interruptor), mientras que si la tensión es 0 Voltios se interrumpirá la corriente.

Cuando compremos un relé deberemos tener en cuenta el voltaje del aparato eléctrico que deseemos controlar ya que existen relés para 12 Voltios, 24 V, 110 V, 220 V, etc. Es importante que también tengas en cuenta de que lo que estás haciendo es peligroso, y por lo tanto hay que realizarlo con las medidas de seguridad adecuadas y nunca por niños que no estén acompañados por adultos.

¿Cómo se conecta?

Veamos cómo conectar el relé a nuestra placa y al aparato eléctrico que queramos controlar. En este caso, estamos utilizando un componente que tiene dos relés, pero sólo utilizaremos uno de ellos.

relee_arduino-conexion

Como podemos observar, el relé tiene tres pines:

  • Tierra o GND, que deberá conectarse a uno de los pines marcados como GND.
  • Tensión, o VCC, que deberá conectarse a uno de los pines marcados como 5 Voltios.
  • Señal, o Sgn, que es un pin digital a través del cuál indicamos si el relé estará abierto o cerrado. Lo conectamos a cualquiera de los pines digitales.

Por otro lado conectaremos el cable del aparato eléctrico que queramos controlar. Habitualmente los aparatos eléctricos tienen 2 o 3 cables:

  • Un cable de color negro o fase L (es por donde llega la energía)
  • Otro azul o neutro N (por donde la energía regresa a la fuente)
  • Hay aparatos eléctricos que además incluyen un cable de color amarillo/verde o toma a tierra TT

Pues bien, nosotros debemos conectar al relé el cable de fase. Entonces el relé funcionará igual que si estuviéramos usando un interruptor, sólo que en lugar de encenderlo y apagarlo con la mano lo haremos a través de la placa controladora.

A continuación incluimos el esquemático. Como puedes ver, dado que sólo conectamos un relé, sólo aparece el que estamos utilizando. Esperamos que os ayude a realizar las conexiones entre componentes.

¿Cómo controlamos el relé?

Para abrir o cerrar el circuito del relé simplemente tendremos que poner el pin de señal a 5 o a 0 Voltios.

Programándolo en Bitbloq

Seguimos los siguientes pasos:

Para la programación en Bitbloq no debemos conectar nada en la pestaña de Hardware, ya que el componente relé no está incluido entre los componentes disponibles.

A la hora de programarlo debemos ir a Componentes>>Avanzados

componentes_avanzados

Escogemos el bloque Escribir en el pin digital … el valor digital … Supongamos que hemos conectado la señal del relé al pin digital 2. Entonces, para activarlo pondríamos el bloque del siguiente modo:

digitalWrite_5_HIGH

En el caso de querer desactivarlo modificaremos el bloque del siguiente modo:

digitalWrite_5_LOW

Por ejemplo, si tuviéramos conectado al relé una lámpara de mesilla que queremos encender cuando hay poca luz podríamos hacer un programa como el siguiente:

lampara_nocturna

Programándolo con código Arduino

La programación en Arduino es igualmente sencilla. Si por ejemplo queremos activar el relé lo haremos del siguiente modo:

const int rele = 2;

/***   Setup  ***/
void setup() {
    pinMode(rele,OUTPUT);
}

/***   Loop  ***/
void loop() {
    digitalWrite(rele, HIGH);
}

Ya estás listo para controlar los electrodomésticos de tu casa. Con precaución puedes hacer cosas realmente interesantes. Por ejemplo, te proponemos que realices un montaje para controlar de manera independiente dos luminarias en casa. Para ayudarte aquí tienes el esquemático. ¡Mucha suerte!

¡Construye un coche teledirigido con el Zum Kit Junior!

$
0
0

Descripción

¿Alguna vez has tenido un coche teledirigido?, ¿y no has pensado en personalizarlo o crearte uno propio?

Con esta entrada aprenderás a construir tu propio coche teledirigido de forma sencilla utilizando los componentes del Zum Kit Junior.

Instrucciones

Material necesario

Para llevar a cabo este proyecto necesitarás:

  • Placa controladora
  • Cable USB
  • Dos servos de rotación continua
  • Dos botones
  • Material reciclado (cartón, briks, etc) o cartulina.
  • Material de papelería (tijeras, pegamento, celo, etc.)

Montaje

Para el montaje necesitarás utilizar distintos materiales de papelería (tijeras, celo, etc) y reciclable que tengas por casa como por ejemplo cajas de cereales o de galletas, cartón, cartulinas, rotuladores de colores… ¡todo lo que se te ocurra!

Lo primero que debes hacer es construir el mando. Para ello, puedes introducir los botones del kit en una caja pequeña. Tendrás que recortar dos agujeros para dejar al descubierto los botones y poder pulsarlos. Después, puedes decorarla utilizando goma eva, rotuladores de colores, cartulinas, pegatinas, etc.

Mando_decorado

El siguiente paso es conectar los componentes a la placa usando los cables del kit. En el caso de los componentes que vamos a utilizar, pueden estar conectados a cualquier puerto ya sea letra (A, B) o número (1, 2, 3, 4). Lo más aconsejable es que uses puertos enfrentados para los servos de rotación continua como el 1 y 4 ó 2 y 3 ya que harán de ruedas para el coche. Para los botones puedes usar cualquiera de los restantes.

Conexiones

Una vez conectados, debes colocar los cables y el portapilas pegados a nuestra placa para que molesten lo menos posible.

Por último, debes crear la carcasa para el coche. Al igual que con el mando, se puede recurrir a los materiales que tengas por casa como cartulinas, cajas de galletas, rotuladores de colores, pegatinas, etc.

Es importante añadir un tercer punto de apoyo para que nuestro coche se mantenga, y para ello, se puede añadir algo un tapón o un trozo de cartón doblado en la parte de abajo del coche.

Coche

Coche_abajo

Programación

Tras hacer el montaje comenzaremos a realizar la programación. Lo primero que debes hacer es ir a Bitbloq.

Dentro de la pestaña de Hardware, debes arrastrar los mismos componentes del Zum Kit Junior que utilizaste en el montaje y conectarlos a los mismos puertos.

Hardware bitbloq

En la pestaña Software debes utilizar dos condicionales para programar que cuando se pulse el botón izquierdo gire el servo derecho y cuando no esté pulsado se pare. De esta forma, el coche girará a la izquierda.

software 1

A continuación, se debe realizar la misma programación para el botón derecho, pero esta vez, al pulsar el botón derecho girará el servo izquierdo, consiguiendo que el coche gire a la derecha.

software 2

¡Y ya tienes tu propio coche teledirigido!

Si tienes amigos que tengan el Zum Kit Junior, puedes animarles a hacer su propio coche y así podréis echar carreras.

Y si te atreves y quieres más, puedes añadir a tu coche LEDs y sonidos utilizando el componente LED doble y el zumbador integrado en la placa.

Botones de colores

$
0
0

En esta actividad vamos a diseñar y programar una sencilla aplicación para tablets o smartphones que les ayudará a aprender los colores en inglés: la app está compuesta de varios botones y, al pulsarlos, lee en voz alta el nombre de los colores. Con este proyecto aprenderán a usar los componentes Contenedor, Botón y Texto a voz de Bitbloq Apps y a programar eventos.

Material necesario

  • Ordenador con acceso a Internet.
  • Dispositivo Android o iOS con la aplicación Bitbloq Pocket instalada.

Instrucciones

Diseño

Comenzamos pidiendo al alumnado que acceda a la web de Bitbloq y seleccione la herramienta Bitbloq Apps. A continuación, vamos explicando los siguientes pasos:

1. En la pestaña Diseño, seleccionar y arrastrar un componente Contenedor vertical a la parte central de la pantalla del dispositivo que aparece en el espacio de trabajo.

2. Configurar dicho contenedor para que tenga el número de elementos que se quiera y centrarlo.

 

APA1C1

 

3. Seleccionar y arrastrar tantos componentes Botón al interior de cada uno de los huecos del contenedor.

 

APA1C2

 

4. Configurar cada botón utilizando las opciones de su menú de propiedades. En este caso, cambiamos el color del relleno al que corresponda, el texto al nombre de ese color en inglés y el color del texto para que coincida con el del relleno.

 

APA1C3

 

5. Para finalizar el diseño, seleccionar y arrastrar un componente Texto a voz de la categoría Multimedia. En su panel de propiedades, cambiamos el idioma a Inglés. Este tipo de componente se añade como no visible en el listado de la izquierda de la pantalla.

Programación

Una vez realizado el diseño, explicamos cómo programar su funcionamiento:

1. En la pestaña Bloques, programar que cuando se haga clic sobre uno de los botones, lea el texto correspondiente al nombre del botón, cambie el color del texto a blanco durante un segundo para que sea visible, y finalmente, vuelva a cambiar al color que tenía inicialmente.

 
APA1C4

 

2. Repetimos la programación para cada uno de los siete botones, cambiando los valores correspondientes.

Recomendamos a nuestro alumnado ir probando el funcionamiento de la programación cada poco tiempo utilizando el modo Previsualización web.

 

APA1C5

 

Finalmente, les indicamos que:

    • Seleccionen la opción que permite probar la aplicación En tu dispositivo móvil y que sigan los pasos que se indican. Para ello, deben tener instalada en su dispositivo la aplicación Bitbloq Pocket, disponible para Android o iOS.
    • O bien, que seleccionen la opción Exportar archivo instalable, que permite descargar o instalar la aplicación en el dispositivo para que la instalen y puedan utilizarla cuando quieran.

Otras ideas

A continuación, te proponemos algunas ideas de aplicaciones similares para seguir practicando:

      • Aplicación en la que trabajar otro vocabulario en inglés, añadiendo una imagen de fondo a los distintos botones.
      • Aplicación en la que se pueda cambiar el color de la pantalla o de otros componentes utilizando los botones.
      • Aplicación con un botón y otro botón No en la que, al pulsar cada botón, responda de forma graciosa con el componente Texto a voz.
      • Aplicación de notas con el componente Entrada de texto junto con un botón que active su lectura con el componente Texto a voz.

 


Disfruta de Bitbloq Apps con el Plan Docente

La versión beta de Bitbloq Apps está disponible solo para usuarios del Plan Docente. ¡Suscríbete ya y empieza a disfrutar de todas sus ventajas!

      • Sistema de gestión del aula completo e intuitivo para un número ilimitado de alumnos y clases simultáneas.
      • Acceso del alumnado a un espacio personal con sus ejercicios mediante códigos, sin descargas ni registros.
      • Itinerarios formativos. (Próximamente)
      • Funcionalidades exclusivas, add-ons gratis y acceso prioritario a las novedades.
      • Acceso gratuito para ti y tus alumnos a programar placas como Arduino UNO.
      • Asistencia directa del equipo de Bitbloq.

 

Descubre más>

 

Viewing all 53 articles
Browse latest View live