Sie sind auf Seite 1von 117

Robótica

Un robot...
La palabra robot está a la orden del día y
muchas veces al escucharla nos imaginamos
una máquina con forma humana que camina,
habla, gesticula… pero en realidad es algo
mucho más sencillo.
Un robot es una máquina automática
programable que es capaz de interpretar
información del medio físico para modificar
su conducta. Tiene la capacidad de interactuar
con el entorno y, en función de ello, realizar
unas funciones u otras.
Todo robot tiene básicamente tres
grupos de componentes:

Sistema de control, como una placa


controladora.

Sensores, capaces de interpretar


información.

Actuadores, que producen el efecto


programado.
Podríamos decir que los sensores son
los sentidos del robot. Éstos
transmiten información a su sistema
de control que permite alterar la
función que realiza mediante los
actuadores.

Además un robot necesitará una


fuente de energía para funcionar y una
estructura física para sostener los
elementos que lo componen y realizar
sus funciones.
Veamos algunos ejemplos de robots: los
limpiaparabrisas de un coche moderno pueden ser
robotizados para detectar la cantidad de lluvia y
modificar la velocidad de su movimiento o una
aspiradora puede ser un robot si se mueve sola por la
casa detectando obstáculos e incluso trazando en su
memoria un mapa de la casa para mejorar su recorrido
en el futuro.

Antes de seguir hablando de robots es importante


explicar los dos tipos de sistema de control que
podemos utilizar:

Sistema de control en lazo abierto: tras recibir una señal de


entrada y activarse produce una señal de salida
independiente. El sistema no tiene ningún control para
reorganizar el proceso.

Un ejemplo claro sería un microondas que calienta mientras


esté encendido, independientemente de que la leche esté fría,
caliente o hirviendo.

Sistema de control en lazo cerrado: aquél en el cual el


sistema produce una señal de salida tras recibir una señal de
entrada y se produce una retroalimentación de información a
la señal de entrada en función de cómo se está produciendo la
señal de salida y el entorno de la misma. El sistema puede
reorganizar sus funciones para apagarse o modificar su
acción.

En este caso podríamos entenderlo mejor si pensamos en un


climatizador que mide la temperatura ambiente y enfría o
calienta hasta que la misma sea igual que la que está
programada. El sistema informa a la entrada del estado
ambiental para que enfríe más, deje de enfriar, caliente, etc.
Con un sistema de lazo cerrado podríamos
estar hablando de un robot, si bien no todo el
mundo está de acuerdo pues no está muy
definido cuando una máquina es o deja de ser
robot.
Podríamos definir robot como una máquina que
interactúa con el entorno y además ayuda al ser
humano en labores tediosas o peligrosas o
incluso en su misión de divertirse y pasárselo
bien (¡printbots!).

Es muy sencillo e importante entender la


lógica de actuación de un robot para poder
programarlo y que realice aquello que
necesitamos.

Un robot realiza tareas cuando el sistema de


control se lo ordena y en caso de que no
indique lo contrario el robot seguirá
realizando la misma acción sin modificarla.
El sistema de control es el encargado de
decir “sigue” o “para” o incluso “ahora haz
esta otra cosa”. Pero, ¿por qué el sistema de
control modifica las acciones del robot?

Puede suceder por dos razones:

1. La programación está preparada para que


así sea. Por ejemplo un robot programado
para encender un LED durante dos segundos
en una situación concreta y posteriormente
apagarlo.

2. Un sensor envía información al sistema de


control y éste produce un cambio en la línea de
actuación. Por ejemplo, un robot que cuando
detecta que hay muy poca luz enciende sus
luces.
Ahora que ya sabemos un poquito más sobre robots vamos a conocer
algunos de los sensores que podemos incorporarles:

Sensor de infrarrojos:
Detecta la diferencia entre
Sensor de luz: Detecta la colores claros y oscuros. En
cantidad de luz que hay en el ocasiones son digitales para
entorno. diferenciar entre blanco y
negro.

Sensor de temperatura y
humedad: Es capaz de Sensor de sonido: Detecta el
detectar la temperatura y sonido o ruido ambiental.
humedad del ambiente.

Pulsador: Botón que permite Potenciómetro: Permite


el paso de corriente eléctrica regular el paso de corriente
al pulsarlo y no la permite al eléctrica, pudiendo ampliar o
soltarlo (cierra y abre el reducir el voltaje de la
circuito). misma.

Joystick: Dispositivo que


Sensor de color: Detecta el incorpora potenciómetros y
color de los objetos en pulsadores para regular
función de la luz que reflejan. movimientos en dos
direcciones.

Sensor de ultrasonidos: Detecta la


distancia a la que se encuentran los
objetos emitiendo una onda
ultrasónica y calculando el tiempo
que tarda en regresar tras rebotar
con algún objeto.
Y… ¿qué ocurre con los actuadores?

LED: Sólo deja pasar la


Zumbador: Emite sonido en
corriente eléctrica en un
la frecuencia elegida,
sentido y la bloquea en el
pudiendo reproducir notas
contrario. Cuando deja pasar
musicales, melodías, etc..
corriente emite luz.

Motor eléctrico o servo de


rotación continua: Servo: Transforma la
Transforma la corriente corriente eléctrica en
movimiento circular y puede
eléctrica en movimiento detenerse en un ángulo
circular. concreto.

Pantalla LCD: Permite mostrar información como


imágenes o texto.
¿CÓMO PIENSA UN ROBOT?
Piensa (procesa) las cosas de una en una, no puede hacer dos cosas a
la vez.

Piensa y repite acciones muy rápido, tanto que a veces no podemos ni


ver lo que está haciendo y hay que decirle que espere un poco.

Nunca hace nada que no le hayas dicho. Hay que programar todo lo
que quieras que haga y darle las órdenes de una en una.

Normalmente, cuando un robot acaba su lista de órdenes, vuelve a


empezar de nuevo, repitiendo su programación una y otra vez.
Introducción al proyecto Arduino y
Bitbloq 2
[1.1] ¿Cómo estudiar este tema?

[1.2] ¿Qué es el conocimiento libre? ¿En qué se diferencia de


gratis?

[1.3] ¿Qué es el proyecto Arduino?

[1.4] Elementos fundamentales de una placa controladora

[1.5] Primeros pasos con Bitbloq 2: Instalación y puesta a punto

TEMA
Bitbloq y Arduino

Ideas clave

1.1. ¿Cómo estudiar este tema?

Deberás comprender y ser capaz de debatir con argumentos las Ideas clave. Lee cada
uno de los apartados y los enlaces que se incluyen. Es fundamental que no te limites a
lo que está escrito en este documento y que profundices a través de los enlaces y veas
los vídeos adjuntos.

Al final de este tema deberías seas capaz de argumentar a favor o en contra del valor del
conocimiento libre para la educación. Entenderás qué es una placa controladora, qué es
un sensor y un actuador, y cuáles son sus partes fundamentales.

Este tema es una introducción al hardware y software libre, utilizando el proyecto


Arduino como caso de éxito de este tipo de proyectos. Es fundamental que al final del
tema entiendas:

¿Qué significa libre y por qué es diferente de gratis?


¿Qué es el proyecto Arduino?
¿Cuáles son los elementos fundamentales de una placa controladora?
¿Qué significa programar una placa controladora?
¿Por qué Bitbloq 2? La utilidad de la programación por bloques.

1.2. ¿Qué es el conocimiento libre? ¿En qué se diferencia de


gratis?

Se acostumbra a llamar a un producto libre cuando su autor otorga cuatro libertades


fundamentales

Libertad para estudiarlo, entenderlo y asimilarlo.


Libertad para compartirlo (incluso venderlo) tal y como es.
Libertad para derivar de él otros productos, mejorarlo y evolucionarlo.
Libertad para distribuir sus derivados (incluso con fines lucrativos).

TEMA 1 – Ideas clave


Bitbloq y Arduino

Contrariamente, gratis quiere decir que no debemos pagar nada por él, pero
que algo sea gratis no nos otorga estas libertades. Por ejemplo, si nos regalasen un
móvil, este sería gratis, pero no libre, ya que no tenemos acceso a los planos y, por lo
tanto, no podemos estudiarlo o modificarlo. No tenemos acceso al conocimiento.

Este curso, por ejemplo es libre, ya que todos los materiales didácticos
están publicados con una licencia libre (Creative Commons - Attribution - Share
Alike), lo que permite usarlos en cualquiera de los modos contemplados por la
licencia: cualquiera de vosotros podría modificar estos apuntes y usarlos
para dar sus propios cursos. Sin embargo, no es gratis por razones obvias.

Es inherente que la ciencia y la cultura sean libres, sin embargo, algunos


modelos económicos actuales pretenden especular con ellas, cerrando el conocimiento
y protegiéndolo para que solo ellos lo puedan usar. Esta especulación daña el
conocimiento y busca convertir la educación en un negocio por encima de
un recurso social accesible a todos por igual. Así lo defiende el Artículo 27 de la
Declaración Universal de los Derechos Humanos:

«Toda persona tiene derecho a tomar parte libremente en la vida cultural de la


comunidad, a gozar de las artes y a participar en el progreso científico y en los
beneficios que de él resulten».

Para saber más...

Profundiza con los siguientes recursos:

Conocimiento Libre (Wikipedia): http://es.wikipedia.org/wiki/Conocimiento_libre


Charla TED. Michael Nielsen sobre el conocimiento libre:
http://www.ted.com/talks/michael_nielsen_open_science_now?language=es
Charla TED. Juan González, Yo Maker (sobre el Patrimonio Tecnológico de la
Humanidad): http://tedxtalks.ted.com/video/Yo-Maker-Juan-Gonzalez-Objiuan

1.3. ¿Qué es el proyecto Arduino?

La familia electrónica Arduino conforma un proyecto libre cuyo objetivo es el de


democratizar el uso y aprendizaje de la electrónica, haciéndola accesible a cualquier
persona, independientemente de sus conocimientos previos.

TEMA 1 – Ideas clave


Bitbloq y Arduino

Arduino™ es además una marca registrada de electrónica libre, creada por la


empresa Arduino en 2004. Utilizando microprocesadores de la marca Atmel crearon
varios modelos de placas controladoras muy fáciles de programar gracias al entorno de
desarrollo creado por la misma empresa y conocido como Arduino IDE. Muy
rápidamente se creó una vasta comunidad de usuarios, formada por cientos de
miles de personas que contribuyeron al proyecto creando bibliotecas para
trabajar con una gran variedad de periféricos.

Consulta la oficial de Arduino ™ y el entorno de desarrollo Arduino IDE:


http://www.arduino.cc/
http://arduino.cc/en/main/software

Por su naturaleza libre (diseñado para que cualquiera pueda usarlo,


entenderlo, aprenderlo, modificarlo, y redistribuirlo) surgieron además
empresas que realizaron modificaciones a las placas, adaptándolas a otras necesidades,
y creando nuevos periféricos que pudieran usarse con ellas. Esta proliferación de
usuarios y empresas es la que ha conseguido que la familia Arduino sea la más
extendida en el mundo educativo y DIY (Do It Yourself, hazlo tú mismo).

En esta asignatura no hablaremos de la empresa Arduino™ sino de la comunidad,


productos y recursos educativos que se han generado a su alrededor. Esta
comunidad está formada por miles de usuarios y compañías distribuidas por todo el
mundo gracias a aquella iniciativa libre de sus fundadores.

El proyecto Arduino se fundamenta en los siguientes pilares

Todos los productos y conocimientos generados son libres, por lo que


cualquiera puede acceder a ellos en el modo que mejor se adapte a sus necesidades.
El proyecto no se limita al hardware, sino que junto a la placa controladora, se
ofrece un software, también libre, que permite programar de un modo muy
sencillo la placa.
Se desarrollaron una serie de bibliotecas, perfectamente documentadas,
para facilitar la programación.
Cualquier persona o empresa puede contribuir al proyecto,
incrementando el patrimonio del mismo y haciéndolo entre todos mucho
mejor de lo que la propia empresa Arduino habría podido lograr por sus propios
medios.

TEMA 1 – Ideas clave


Bitbloq y Arduino

Se buscan precios justos, de manera que la tecnología sea accesible sin que el
coste sea una barrera.

Todos estos aspectos rompen con el modelo empresarial basado en las


patentes y en la protección del conocimiento, otorgando al proyecto un valor
diferencial que hicieron que Arduino se convirtiera, de facto, en el estándar de las
placas controladoras usadas para educación y proyectos DIY. Debido a ello existen
decenas empresas que comercializan de placas derivadas o bien las placas originales
buscando precios más competitivos.

Para saber más...

Profundiza con los siguientes recursos:

Charla TED. Massimo Banzi (fundador de Arduino) sobre Arduino y el Hardware


Libre:
http://www.ted.com/talks/massimo_banzi_how_arduino_is_open_sourcing_imag
ination?language=es
Charla TED. Andy Standford: La innovación empieza en casa (Inglés):
http://tedxtalks.ted.com/video/TEDxWarwick-Andy-Stanford-Clark?language=es
El proyecto Arduino (Wikipedia): http://es.wikipedia.org/wiki/Arduino
Página oficial empresa Arduino TM (Inglés): http://arduino.cc/

1.4. Elementos fundamentales de una placa controladora

¿Qué es una placa controladora?

Una placa controladora es un dispositivo que almacena un programa, y que


mediante periféricos de entrada (sensores) y salida (actuadores), interactúa con el
entorno que la rodea.

La placa es la encargada de leer información de los periféricos, así como transmitirla a


estos de forma que estos se comporten como deseamos en cada momento.

TEMA 1 – Ideas clave


Bitbloq y Arduino

El elemento fundamental de una placa controladora es el microcontrolador. Es


el encargado de controlar el sistema, como un cerebro. La placa recibe información del
entorno a través de los sensores que se conectan, tal como hacen nuestros sentidos. A
su vez actúa sobre su entorno mediante los actuadores.

Para que el microcontrolador pueda leer la información de los sensores y actuar a


través de los actuadores debemos darle una serie de órdenes, es decir,
programarla. El programa es la serie de instrucciones que definen el comportamiento
de la placa controladora. Ésta obtiene información a través de los sensores y realiza las
acciones dictadas por el programa en función de dicha información.

Placa
SENSORES IN OUT ACTUADORES
controladora

Definiciones

Microcontrolador: El microcontrolador (o simplemente micro) es el circuito


integrado más importante y complejo de un sistema informático. Es un elemento
programable, capaz de realizar operaciones matemáticas a una velocidad
extraordinaria.

Sensor: Dispositivo capaz de leer condiciones del entorno y transformarlas en


señales eléctricas.

Actuador: Dispositivo capaz de transformar señales eléctricas en un proceso físico,


como luz, sonido o movimiento con la finalidad de realizar un cambio.

Fotografía de detalle del microcontrolador.

TEMA 1 – Ideas clave


Bitbloq y Arduino

Pines digitales y pines analógicos

Los pines son las entradas y salidas de casi toda la información que pasa por la placa.
Sirven para conectar los periféricos (sensor o actuadores) con los que vamos a crear
nuestros proyectos.

1- Pines digitales: Pueden funcionar como entradas (conectando un sensor) o como


salidas (conectando un actuador).

En el caso de conectar un sensor, este mandará un valor de 0 Voltios (LOW o 0


lógico) o 5 Voltios (HIGH o 1 lógico), dicho valor será leído por el microcontrolador.

En caso de conectar un actuador, será el micro el que escriba el valor de 0


Voltios o 5 Voltios, encendiendo o apagando el actuador correspondiente. Dado que
sólo pueden leerse o escribirse dos valores se suele decir que escriben 0 o 1, TRUE o
FALSE, LOW o HIGH. En cualquier caso, siempre se refiere a los valores de 0
Voltios o 5 Voltios.

En las placas de la familia Arduino UNO o ZUM BT 328 existen 14 pines, numerados
del 0 al 13.

2- Pines analógicos: Los pines analógicos en las placas de la familia Arduino solo se
utilizan como entradas, es decir, sólo podremos conectar sensores. En lugar de poder
leer 0 Voltios o 5 Voltios, por ejemplo, podrían leer un valor de 3 Voltios. Estas lecturas
se traducen al microcontrolador con un valor entre 0 y 1023. Es decir, si lee 0 Voltios,
al micro llegaría un 0. En cambio, si lee 5 Voltios llegaría 1023. En las placas Arduino
UNO o ZUMBT 328 existen 6 pines analógicos numerados del 0 a 5.

TEMA 1 – Ideas clave


Bitbloq y Arduino

ZUM BT 328 - Placa de la familia Arduino optimizada para robótica.

Las placas controladoras de la familia Arduino pueden comunicar también con el


exterior usando el puerto USB o bluetooth. Estos sirven para:

Cargar el programa. Una vez que el programa está listo necesitamos cargarlo en
la memoria del microprocesador, esto se hace bien mediante un cable USB o
mediante bluetooth.

Comunicar con la placa. Una vez que el programa está cargado, podemos enviar
comandos a la placa usando tanto el cable USB como el bluetooth.

Finalmente la placa tiene el conector de alimentación, que para la ZUM BT 328 admite
entradas entre 6 y 17 Voltios y el interruptor de encendido y apagado.

1.5. PrimerospasosconBitbloq2: Instalación y puesta a punto

Antes de empezar a programar con Bitbloq 2 debemos asegurarnos de que tenemos


todo lo necesario para que este funcione correctamente en nuestro ordenador.

Conecta tu placa al ordenador con el cable USB y abre Bitbloq2 con tu navegador
Google Chrome.

TEMA 1 – Ideas clave


Bitbloq y Arduino

Selecciona y arrastra tu placa hacia el recuadro blanco. Si tienes una placa distinta a
la que aparece en el listado compatible con la familia UNO, utiliza la placa Arduino
UNO.

Pulsa sobre el botón Cargar, aparecerá un cuadro de diálogo pidiéndote descargar la


aplicación Web2board.

Selecciona tu sistema operativo y se bajará un archivo a tu ordenador.

Si estás utilizando Windows, descomprime el archivo descargado y ejecuta el archivo


web2board.exe. En el caso de que estés utilizando Linux descomprime el archivo y
ejecuta el archivo Web2Board.

Una vez que hayas instalado el programa Web2board es recomendable que reinicies el
ordenador.

Tras reiniciar el ordenador abre Bitbloq2 selecciona tu placa y pulsa sobre el botón
Cargar. Se empezará a cargar el programa a tu placa. Tras un momento aparecerá en
pantalla el mensaje que te indicará que todo ha funcionado correctamente: Programa
subido con éxito.

Si no funciona correctamente, puede ser debido a que:

El programa Web2board no está instalado correctamente.


Estás utilizando un navegador web distinto a Google Chrome.
El botón de encendido de tu placa ZUM está en la posición de apagado.
Si hay un error de compilación, es la programación la que contiene algún error.

TEMA 1 – Ideas clave


Bitbloq y Arduino

+ Información

No dejes de leer...

El conocimiento libre: una responsabilidad educativa

El conocimiento constituye uno de los temas filosóficos por excelencia, contando


incluso con una rama dedicada exclusivamente a su estudio y comprensión, la
epistemología. A menudo se ha concebido como algo estático, limitándolo a la mera
descripción de objetos. Sin embargo, en el ámbito educativo se entiende que el
conocimiento debe ir más allá de la mera descripción, proporcionando explicaciones de
los hechos a través de la experiencia, única forma que se convierta en aprendizaje y
repercuta en nuestras vidas. Además, el conocimiento necesita actualizarse, crecer,
multiplicarse, y para ello ha de compartirse y evitar que se atrofie.

Accede a la página desde el aula virtual o a través de la siguiente dirección web:


http://www.redalyc.org/articulo.oa?id=201024390016

No dejes de ver...

Educando en tecnología

Intervención de Alberto Valero,


Director de Robótica Educativa de
BQ, dentro de la mesa redonda
«Retos de la educación en el futuro
mundo digital y globalizado».

Accede al vídeo desde el aula virtual o a través de la siguiente dirección web:


https://www.youtube.com/watch?v=_MlUApHOC1U

TEMA 1 – + Información
Bitbloq y Arduino

Patentes y el conocimiento libre

Turno de debate de la mesa redonda


«Retos de la educación en el futuro
mundo digital y globalizado».

Accede al vídeo desde el aula virtual o a través de la siguiente dirección web:


https://www.youtube.com/watch?v=YHk57gRrK0I

Aprende a jugar, juega a aprender

Intervención de Alberto Valero


dentro del Foro de Nuevas
Tecnologías de la Información y la
Comunicación (GCTIC).

Accede al vídeo desde el aula virtual o a través de la siguiente dirección web:


https://www.youtube.com/watch?v=EJtxqB99YV8

TEMA 1 – + Información
Bitbloq y Arduino

Actividades

Foro: ¿Qué papel tiene la comunidad educativa en la generación


de conocimiento?

Participa a modo de foro y comparte tus opiniones con tus compañeros.

TEMA 1 – Actividades
Bitbloq y Arduino

Test

1. ¿Cuántos pines digitales tiene una placa controladora ZUM BT 328 o Arduino UNO?
A. 5.
B. 14.
C. 13.
D. 4.

2. ¿Puede un sensor digital devolver un valor de 3 Voltios?


A. Sí.
B. No.

3. ¿Los pines analógicos sirven como entradas y como salidas?


A. Sí.
B. No.

4. Un LED puede estar encendido o apagado, ¿es un periférico digital o analógico?


A. Digital.
B. Analógico.

5. Un periférico que me informa de la cantidad de luz, ¿es un sensor o un actuador?


A. Sensor.
B. Actuador.

6. Un periférico que me dice la cantidad de luz, ¿sería un componente analógico o


digital?
A. Analógico.
B. Digital.

7. Una placa controladora libre, ¿es siempre gratuita?


A. Sí.
B. No.

TEMA 1 – Test
Bitbloq y Arduino

8. Cualquier empresa de placas controladoras basadas en la familia Arduino, ¿debería


publicar los planos?
A. Sí, siempre.
B. Solo si no ha hecho ningún cambio.
C. No, no es necesario publicar los planos.

9. Una empresa que comercializa una placa de la familia Arduino, ¿debe pagar a la
empresa Arduino™ por derechos de autor?
A. Sí.
B. No.

10. ¿Puedo fabricarme de forma legal placas Arduino a partir de los planos?
A. Sí, pero solo si informo a la empresa Arduino™.
B. Sí, pero no puedo ponerle el nombre Arduino porque es una marca registrada.
C. Sí, en cualquier caso.
D. No, en ningún caso porque tienen derechos de autor.

TEMA 1 – Test
Los algoritmos, bitbloq 2 y nuestro
primer Hola Mundo
[2.1] ¿Cómo estudiar este tema?

[2.2] Los algoritmos

[2.3] Primeros pasos con bitbloq 2

[2.4] 'Hola Mundo': encender un LED

[2.5] Parpadeando LEDs

TEMA
Bitbloq y Arduino

Ideas clave

2.1. ¿Cómo estudiar este tema?

Lee las Ideas clave y sigue cada uno de los tutoriales y vídeos que se indican. Al final
del tema debes ser capaz de programar tu placa controladora y realizar programas
sencillos utilizando LEDs.

En este tema pondremos a punto el primer entorno de desarrollo con el que


trabajaremos, bitbloq 2 (http://bitbloq.bq.com/). Aprenderás todo lo necesario para:

Poner en funcionamiento bitbloq 2.


Enternder qué es un algoritmo y cómo realizarlos
Realizar el primer programa de ejemplo
Entender cómo funciona la programación con bitbloq 2
o Guardar proyectos
o Publicar proyectos
o Verificar proyecto
o Cargar programa en la placa controladora
Realizar programas sencillos utilizando LEDs

2.2. Los algoritmos

Un algoritmo es un conjunto de instrucciones muy concretas que hay que seguir en


orden para realizar una tarea. Algunos ejemplos muy sencillos son: seguir paso a paso
una receta de cocina, un manual de instrucciones, poner una lavadora, etc.

Una forma sencilla de representar un algoritmo es mediante diagramas de flujo, que


nos ayudan a visualizar de forma gráfica un proceso.

TEMA 2 – Ideas clave


Bitbloq y Arduino

Los elementos fundamentales para construir diagramas de flujo son:

Representa el inicio y el final del proceso.

Representa el proceso o acción que se ejecuta a partir de


unos datos, que pueden ser de entrada, salida o resultado de
algún proceso anterior.

Representa los datos de entrada y los datos de salida.

Representa una condición o pregunta que puede tener varios


caminos: sí/no, verdadero/falso, mayor que/menor que,
igual a/diferente a, etc.

Indican el sentido de los procesos.

Cada vez que te enfrentes a un problema, plantéate estas dos preguntas: ¿qué tengo que
hacer? Y ¿cómo puedo hacerlo? En el ejemplo de abajo, representamos el diagrama de
una programación que nos permite encender un LED cuando el botón está pulsado y
apagarlo cuando dejamos de pulsarlo.

INICIO

APAGAR LED

NO
PULSADOR ¿Pulsado?

SI

ENCENDER
LED

TEMA 2 – Ideas clave


Bitbloq y Arduino

2.3. Primeros pasos con bitbloq 2

Antes de empezar a programar tu placa controladora es importante asegurarse que


ponemos bien en marcha bitbloq 2 y que este funciona correctamente en nuestro
ordenador. Tan solo tendrás que seguir estos pasos:

1. Conecta tu placa al ordenador con el cable USB.


2. Abre bitbloq 2 (http://bitbloq.bq.com/) en tu navegador Chrome
(https://www.google.es/chrome/browser/desktop/index.html).
3. Pulsa en Verificar y verás cómo compila el programa (aunque esté vacío). Te debe
aparecer la notificación: 'Código compilado con éxito'.
4. Pulsa ahora en Cargar y verás cómo salta automáticamente la instalación de la
extensión que necesitas. Una vez se haya instalado, vuelve a pulsar Cargar.

Si todo va bien, bitbloq 2 encontrará automáticamente el tipo de placa y el puerto


donde la has conectado.

Para ampliar este apartado y aprender a resolver problemas consulta la página web
«Antes de empezar con bitbloq 2»:
http://diwo.bq.com/antes-de-empezar-2/

TEMA 2 – Ideas clave


Bitbloq y Arduino

2.4. 'Hola Mundo': encender un LED

Para el primer programa vas a necesitar:

1. Una placa controladora ZUM BT 328 o compatible con Arduino UNO.


2. 1 x ZumBloq LED.
3. Un cable USB.
4. Un ordenador con acceso a Internet.

TEMA 2 – Ideas clave


Bitbloq y Arduino

Encender un LED

Es uno de los ejemplos de programación más sencillos. Necesitas conectar la placa


controladora al ordenador con el cable USB. A su vez, conecta el LED a la placa
controladora. Al conectar cualquier componente es muy importante que te asegures de
que los colores de los cables coinciden con los colores del pin al que lo vamos
a conectar: el negro con el negro, el rojo con el rojo y el amarillo o blanco con el
amarillo.

El LED es un componente digital, ya que admite solo dos estados: apagado y


encendido. Todos los componentes, ya sean sensores o actuadores que
tengan solo dos estados, serán digitales, otro ejemplo es el botón (pulsador), que
puede estar pulsado o no pulsado.

Los pines digitales se corresponden con la ristra larga de pines de la placa, van del 0 al
13, aunque no se recomienda usar los pines 0 y 1, ya que son los mismos que se usan
para la comunicación de la placa con el ordenador y, por ello, podría darse un
comportamiento inesperado o que nuestros programas no carguen correctamente.

Seguimos los siguientes pasos para resolver el problema.

Conectamos el LED a un PIN digital y lo conectamos en el programa tal y como se


muestra en el siguiente esquema:

TEMA 2 – Ideas clave


Bitbloq y Arduino

Ahora nos dirigimos a la pestaña software y, desde la pestaña componentes,


seleccionamos el bloque de Encender/Apagar el LED. Arrastramos el bloque dentro de
la zona Bucle Principal (loop).

Hacemos clic en Verificar, para comprobar que todo está bien y, posteriormente, en
Cargar para programar la placa controladora.

Tras programar la placa controladora, si todo ha ido bien, el LED conectado en el pin
digital número 13 debería estar encendido.

Apagar un LED

A continuación, vamos a programar nuestra placa controladora para que haga lo


contrario, es decir, para que apague el LED. No olvides programar de nuevo la placa al
hacer los cambios pulsando sobre Cargar.

Para ampliar este apartado por favor estudia el tutorial 'Programando un LED en
bitbloq 2':
http://diwo.bq.com/programando-un-led-en-bitbloq-i/

2.4. Parpadeando LEDs

Haciendo parpadear un LED

La secuencia de acciones para que parpadee un LED (con una espera de 1 segundo) es:

ENCENDER – ESPERAR 1 SEG. – APAGAR – ESPERAR 1 SEG. – ENCENDER – etc.

TEMA 2 – Ideas clave


Bitbloq y Arduino

Para ello deberás utilizar el bloque esperar.

Este bloque hace que el programa espere un tiempo determinado. Para indicar el
tiempo, en milisegundos. Si quieres utilizar el bloque esperar junto con una variable
encontrarás el bloque avanzado dentro de Control->Avanzados.

El programa quedaría entonces del siguiente modo:

Si hemos programado la placa correctamente, nuestro LED debería: encenderse


durante un segundo, apagarse durante un segundo, encenderse de nuevo durante un
segundo, etc. Y así hasta el infinito, pues el programa se ejecutará en bucle.

Haciendo parpadear dos LEDs

Conectamos dos LEDs a nuestra placa controladora e indicamos en la pestaña


hardware a que pines han sido conectados.

Para hacer el programa, hay que tener en cuenta que esta vez hemos conectado dos
LEDs. Cada LED tiene un nombre específico generado automáticamente o nombrado
por nosotros. Este nombre nos permitirá seleccionar en el bloque sobre que LED
queremos actuar.

TEMA 2 – Ideas clave


Bitbloq y Arduino

Como podemos observar, tras programar la placa ambos LEDs se encienden y


permanecen encendidos. ¿Cómo hacemos que parpadeen ambos simultáneamente?

La solución es:

Si hemos programado la placa correctamente, los dos LEDs deberían encenderse y


apagarse al unísono.

Es importante que recuerdes una cosa: la placa controladora solo puede hacer una cosa
a la vez por lo que las acciones que programes solo pueden ir una detrás de otra.
Cuando no hay un tiempo de espera, estas acciones pasan tan rápido que parece que
tengan lugar simultáneamente. Es por ello que, en la programación que acabamos de
hacer, un bloque está a continuación del siguiente.

Una vez dominada la materia, continúa por tu cuenta con el siguiente tutorial. Lo
necesitarás para resolver el último ejercicio del tema.

Programando con variables en bitbloq: http://diwo.bq.com/programando-con-


variables-en-bitbloq/

TEMA 2 – Ideas clave


Bitbloq y Arduino

+ Información

No dejes de leer…

Scratch: Programando para todos

Resnick, M., Maloney, J. Monroy-Hernandez, A., Rusk, N., Eastmond, E. and Brennan,
K. (2009). Scratch: Programming For All. Communications Of The Acm 52 (11): 60-67.

bitbloq 2 es un entorno de desarrollo basado en Scratch. Scratch fue el primero en


proponer la programación por bloques como el paradigma más adecuado para que los
niños se iniciasen en el mundo de la programación. Mientras Scratch se utiliza para
programar videojuegos o animaciones en pantalla, bitbloq 2 sirve para programar
placas controladoras y, por ello, son dos complementos perfectos para aprender
programación desde pequeños.

Accede al artículo desde el aula virtual o a través de la siguiente dirección web:


http://web.media.mit.edu/~mres/papers/Scratch-CACM-final.pdf

No dejes de ver…

Enseñemos a los niños a codificar

Mitch Resnick, del MIT Media Lab, dice que


la codificación no es solo para genios
informáticos, sino que es para todos. En una
charla divertida y llena de demostraciones,
Resnick describe los beneficios de enseñar a
los niños a codificar, para que puedan hacer
algo más que 'leer' las nuevas tecnologías,
sino también crearlas.

Accede al vídeo desde el aula virtual o a través de la siguiente dirección web:


http://www.ted.com/talks/mitch_resnick_let_s_teach_kids_to_code?language=es

TEMA 2 – + Información
Bitbloq y Arduino

Bibliografía

Resnick, M., Maloney, J., Monroy-Hernandez, A., Rusk, N., Eastmond, E. y Brennan, K.
(2009). Scratch: Programming For All. Communications Of The Acm 52 (11): 60-67.
Recuperado de: http://web.media.mit.edu/~mres/papers/Scratch-CACM-final.pdf

TEMA 2 – + Información
Bitbloq y Arduino

Actividades

Trabajo: Parpadeo en modo alternativo

Realiza un programa en el que dos LEDs parpadeen de modo alternativo.

TEMA 2 – Actividades
Sentencias condicionales.
Entradas digitales (el pulsador)
[3.1] ¿Cómo estudiar este tema?

[3.2] Las variables

[3.3] El pulsador

[3.4] Sentencias condicionales: Si … entonces … de lo contrario

TEMA
Bitbloq y Arduino

Ideas clave

3.1. ¿Cómo estudiar este tema?

Lee las Ideas clave y sigue cada uno de los tutoriales y vídeos que se indican, al final
del tema debes ser capaz de programar tu placa controladora y realizar las actividades
propuestas.

En este tema continuamos trabajando con bitbloq 2. Introduciremos los siguientes


conceptos mediante ejemplos:

Las variables.
Lectura de entradas (sensores) digitales.
Sentencias condicionales.
Aplicaciones con sentencias condicionales y entradas digitales.

3.2. Las variables

¿Qué es una variable y para qué sirve?

Una variable es como una 'caja' donde guardaremos un dato, un valor que podremos
ver y recuperar más adelante durante el resto del programa. Si no guardamos un dato
en una variable no podremos reutilizarlo, ya que el programa no lo recordará. Además,
como veremos más adelante, en cualquier momento podremos cambiar el valor
guardado en la variable.

TEMA 3 – Ideas clave


Bitbloq y Arduino

Declarando variables

Al declarar una variable lo que hacemos es crear esa 'caja' y guardar por primera vez un
dato en ella. En bitbloq 2 el dato que guardemos puede ser de tipo número o de tipo
texto. Al declarar la variable defines de qué tipo es, por ejemplo: si lo primero que
guardaste es un número, esa variable siempre va a servir para guardar números (¡no
mezcles tipos!).

Puedes renombrar como quieras una variable. Esta cualidad te servirá para identificar
en todo momento tu 'caja'. Aquí hay ejemplos de declaración de variables:

Usando variables

En bitbloq tienes bloques para 'mirar la caja' (mira el valor que hay guardado en ese
momento en la variable) y bloques para guardar un nuevo valor en ella (borrando el
anterior).

Para profundizar consulta el tutorial 'Programando variables en bitbloq 2':


http://diwo.bq.com/programando-con-variables-en-bitbloq-2/

TEMA 3 – Ideas clave


Bitbloq y Arduino

3.3. El pulsador

Pulsador o botón
Es un dispositivo digital de entrada que se activa cuando se pulsa con el dedo,
permitiendo que circule por él la corriente y se desactiva cuando se deja de pulsar.

Es un tipo de interruptor y se encuentra en numerosos dispositivos que utilizamos a


diario:

Timbres de puerta.
Batidoras.
Calculadoras.
Teléfonos.
Lavadoras y otros electrodomésticos.

El pulsador es un dispositivo de entrada del ZUM Kit que puede devolver dos estados: 1
y 0. Es decir: pulsado y no pulsado.

El pulsador te permitirá controlar el comportamiento de muchos experimentos de una


forma muy sencilla.

Para los siguientes ejemplos necesitarás:

Un ZumBloq pulsador y ZUMBloq LED.


Una placa controladora ZUM BT 328.
Un cable USB.

3.4. Sentencias condicionales: Si … entonces … de lo contrario …

Encender un LED al pulsar el pulsador

Antes de conectar el pulsador, debes recordar qué tipo de sensor es: ¿analógico o
digital? El pulsador solo puede dar dos valores: 1 (pulsado) y 0 (no pulsado), por lo que
es un sensor digital e irá conectado a los pines digitales de la placa, tal y como puedes
ver en el esquema de conexión.

TEMA 3 – Ideas clave


Bitbloq y Arduino

Queremos que, al presionar nuestro pulsador, el LED se encienda. Es decir:

Si el pulsador está presionado entonces el LED se enciende

Por tanto, tenemos que usar el bloque Si… ejecutar, el programa quedará del
siguiente modo:

Como puedes ver, en el programa hemos declarado una variable que se llama mi_boton.

Observa que: Al ejecutar este programa el LED comienza apagado, pero cuando se
pulsa el pulsador el LED se enciende. Sin embargo, al soltar el pulsador el LED no se
apaga... ¿por qué? Porque mi programa no le ha dicho al LED que se apague.

TEMA 3 – Ideas clave


Bitbloq y Arduino

En el siguiente ejemplo enseñaremos cómo debemos programar para que se apague


pero, como ya hemos dicho, es importante entender que el programa SOLO hace lo que
le decimos y no 'lo que queríamos decirle'.

Veamos ahora cómo podemos programar la placa para que el LED se apague al dejar de
presionar el pulsador.

Encender un LED al pulsar el pulsador y apagarlo al soltarlo

Ya hemos conseguido encender el LED cuando pulsamos el pulsador. Ahora vamos a


hacer que se apague cuando dejamos de pulsarlo. Lo que tenemos que hacer es lo
siguiente:

TEMA 3 – Ideas clave


Bitbloq y Arduino

Una vez que entiendas bien tus programas puedes leer directamente el valor del botón
en el condicional:

Para profundizar por favor consulta los siguientes tutoriales:


Programando los bloques de control - El bloque Si… ejecutar:
http://diwo.bq.com/si-tu-me-dices-ven-sentencias-condicionales-y-el-pulsador/

TEMA 3 – Ideas clave


Bitbloq y Arduino

Actividades

Trabajo: Botones y LED

Realiza un programa que al mantener el botón pulsado haga parpadear el LED y al


soltarlo lo apague. El programa deberá poder regular el tiempo de parpadeo del LED de
forma que el primer parpadeo sea medio segundo, el segundo parpadeo un segundo, el
tercero dos segundos, etc.

TEMA 3 – Actividades
Componentes analógicos
[4.1] ¿Cómo estudiar este tema?

[4.2] El sensor de luz

[4.3] Ejemplo - Farola nocturna

TEMA
Bitloq y Arduino

Ideas clave

4.1. ¿Cómo estudiar este tema?

Lee las Ideas clave y sigue cada uno de los tutoriales y vídeos que se indican, al final
del tema debes ser capaz de programar tu placa controladora y realizar las actividades
propuestas.

En este tema introduciremos los siguientes conceptos mediante ejemplos:

Sensores analógicos
Lectura de entradas analógicas
Cambio de escala mediante la función mapear
Aplicaciones con sentencias condicionales y entradas analógicas
Actuadores 'analógicos': el miniservo

4.2. El sensor de luz

El sensor de luz (también llamado fotorresistencia o sensor


fotoeléctrico), es un sensor que tal y como su nombre indica,
detecta luz. Una fotorresistencia responde a los cambios en la
intensidad de la luz y modifica su resistencia cuando ésta varía.
Cuanto mayor sea la intensidad de la luz, más baja será la
resistencia al paso de la corriente.

Normalmente un sensor analógico devuelve valores comprendidos entre 0 y 1023, sin


embargo el sensor de luz del ZUM Kit devuelve valores comprendidos entre 0 (cuando
la oscuridad es total) y 800 (a plena luz del sol en un día despejado).

Se trata de un componente analógico, ya que devuelve un rango de valores, a diferencia


de los sensores digitales, que solo pueden devolver dos valores, como en el caso del
pulsador ('pulsado' o 'no pulsado'). Por ello, deberá conectarse en los pines analógicos,
numerados como A0, A1, A2, etc.

TEMA 4 – Ideas clave


Bitloq y Arduino

Este sensor es un dispositivo de entrada, porque sirve para ingresar datos en el


programa a diferencia de un LED o un zumbador, que son dispositivos de salida.

4.3. Ejemplo - Farola nocturna

Encender un LED cuando el sensor de luz detecte poca cantidad de luz.

Antes de conectar el sensor de luz recordamos que, al tratarse de un componente


analógico, debe conectarse en uno de los pines analógicos, por ejemplo, el A0.

El siguiente esquema nos servirá de guía:

Ahora, programamos con Bitbloq 2 la placa controladora para que cuando haya poca
luz se encienda el LED.

Para empezar, tenemos que leer la cantidad de luz. Para ello, asignamos la lectura del
sensor de luz a una variable. Como es la primera vez que usamos la variable, tendremos
que declararla:

TEMA 4 – Ideas clave


Bitloq y Arduino

A continuación, tendremos que comprobar que hay poca luz. Puesto que este sensor de
luz devuelve valores de entre 0 y 800, podemos considerar que ya está oscuro cuando la
variable cantidad_de_luz es menor de 200.

En ese caso, debemos encender el LED:

Ahora hay que hacer que se apague cuando se vuelva a encender la luz.

TEMA 4 – Ideas clave


Bitloq y Arduino

Para profundizar en esta lección no dejes de ver:

Programando el sensor de luz en Bitbloq: http://diwo.bq.com/ve-hacia-la-luz-robotin-


programando-el-sensor-de-luz/

Amplía tu conocimiento sobre este tema estudiando:

Programando un potenciómetro en Bitbloq: http://diwo.bq.com/programando-el-


potenciometro-con-bitbloq-2/
Programando el zumbador con Bitbloq: http://diwo.bq.com/piruru-piii-programando-
el-zumbador/

TEMA 4 – Ideas clave


Bitloq y Arduino

+ Información

No dejes de practicar...

Construyendo una casa inteligente

¿Alguna vez te has preguntado cómo funcionan las luces de tu casa? ¿Qué ocurre
cuando abres la nevera? ¿Cómo es capaz de pensar tu teléfono móvil? Mira a tu
alrededor. En la sala donde estés verás al menos un enchufe y varios aparatos
eléctricos. La electricidad nos rodea, la usamos para todo, hasta el punto de que si se va
la luz no recordamos dónde habíamos puesto las velas. Hoy, mediante un pequeño
experimento, descubriremos qué es un circuito eléctrico y construiremos nuestra
propia casa domótica o inteligente. ¿Te animas? ¡Empezamos!

Accede al tutorial desde el aula virtual o a través de la siguiente dirección web:


http://diwo.bq.com/construyendo-una-casa-inteligente-los-circuitos-electricos/

Gaita electrónica

La llamada gaita electrónica no es más que otro instrumento electrónico programable.


La cuestión es que utilizando tan sólo tres vitaminas del Kit: el sensor de luz, el
potenciómetro y el zumbador, podrás hacer sonar notas musicales como un Jedi
entrena levantando piedras… ¡Sin tocarlo! Aquí te explicamos cómo.

Accede al tutorial desde el aula virtual o a través de la siguiente dirección web:


http://diwo.bq.com/bq-invento-gaita-electronica/

TEMA 4 – + Información
Bitloq y Arduino

Actividades

Trabajo: Lámpara nocturna

En esta actividad deberás realizar una lámpara nocturna. Para ello, necesitarás:

2 LED
1 sensor de luz
1 pulsador
1 ZUM BT 328

El funcionamiento debe ser el siguiente:

Al pulsar el botón se activa (se enciende un LED indicando que está en


funcionamiento).
Al volver a pulsar el botón se desactiva (se apaga el LED) y así sucesivamente.
Al apagarse la luz ambiente por primera vez se enciende el segundo LED durante 2
minutos. A los dos minutos se apaga y no se vuelve a encender a no ser que la luz
vuelva a encenderse de nuevo.
Este funcionamiento solo se da cuando la lámpara está encendida.

En resumen, esta lámpara, cuando está en ON, se encendería al hacerse de noche, a los
dos minutos se apagaría y no volvería a encenderse hasta la noche del día siguiente
(porque debe haber luz de nuevo para volver a empezar).

TEMA 4 – Actividades
Iteraciones: Bucles for y while
[5.1] ¿Cómo estudiar este tema?

[5.2] El bucle for

[5.3] El bucle while

[5.4] Alteración del flujo normal: continuar e interrumpir

TEMA
Bitbloq y Arduino

Ideas clave

5.1. ¿Cómo estudiar este tema?

Lee las Ideas clave y sigue cada uno de los tutoriales y vídeos que se indican, al final
del tema debes ser capaz de programar tu placa controladora y realizar las actividades
propuestas.

En este tema introduciremos los siguientes conceptos mediante ejemplos:

Las iteraciones y los bucles


El bucle while
El bucle for
Ejemplos con bucles

Además introduciremos el uso de un nuevo componente, el zumbador.

5.2. El bucle while

En esta ocasión toca el bloque de Control Mientras, en inglés conocido como bucle
while. Este bloque permite que, mientras se esté cumpliendo una condición, se
ejecuten ciertas instrucciones.

Necesitas:

1 x ZumBloq LED
1 x ZumBloq Zumbador
1 x ZumBloq Potenciómetro
Una placa controladora ZUM BT 328 o compatible con Arduino UNO
Un cable USB

TEMA 5 – Ideas clave


Bitbloq y Arduino

El funcionamiento de este bloque es muy sencillo, vamos a verlo con un ejemplo:

En este programa, mientras la lectura del sensor de luz sea mayor de 100 sonará el
zumbador, ¡es una alarma de exceso de luz!

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.

Declaramos una variable sensibilidad donde mapeamos entre 0 y 800. Si la luz es


mayor que nuestra sensibilidad, el zumbador empezará 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.

Para aprender más sobre el zumbador estudia el tutorial 'Programando el zumbador en


bitbloq 2':
http://diwo.bq.com/piruru-piii-programando-el-zumbador/

TEMA 5 – Ideas clave


Bitbloq y Arduino

5.3. El bucle for

Vamos a aprender cómo funciona el bloque Contar, en inglés conocido como for.

Necesitarás:

1 x ZumBloq LED
Una placa controladora ZUM BT 328
Un cable USB

Al igual que el bloque mientras, este bloque es también un bucle, pero en vez de
repetirse mientras se cumple una condición, el programa repetirá las órdenes un
número de veces determinado.

Para ello, hay que decirle al bloque qué contar, desde dónde y hasta dónde.

TEMA 5 – Ideas clave


Bitbloq y Arduino

El programa enciende el LED un tiempo determinado, incrementando ese tiempo cada


vez en un segundo, de forma que la primera vez se encenderá un segundo, la segunda
dos segundos, la tercera tres, así hasta llegar a diez.

Para ello usamos el bloque contar. En este bloque debes configurar cuatro valores:

Contar con [variable], es donde debes decir con qué variable vas a contar, en
nuestro caso la variable cuenta.
Desde [valor], es donde debemos decir desde dónde queremos empezar a contar,
podemos empezar a contar desde cero, desde uno, desde diez, etc.
Hasta [valor], te permite definir hasta qué valor deseas contar.
Sumando/restando [valor]: te permite definir en cuánto se incrementa la variable
a cada iteración.

5.4. Alteración del flujo normal: continuar e interrumpir

Vamos a aprender a cómo usar los bloques de bitbloq 2 de la pestaña Control, en


concreto el bloque Interrumpir y Continuar con la siguiente iteración:

Los bloques interrumpir y continuar sirven para alterar la ejecución normal de un


bucle.

Imagina que quieres que un bucle for realice una acción 100 veces, por ejemplo,
encender y apagar un LED mientras suena el zumbador. Sin embargo, quieres que al
pulsar el botón (porque estás ya cansado de tanto parpadeo y ruido) deje de encenderse
y apagarse o bien deje de sonar, ¿cómo hacemos eso? Con el bloque interrumpir y el
bloque continuar.

Cuando utilizas este bloque dentro de un bucle, sales automáticamente de él (bloque


interrumpir) o saltas a la siguiente iteración sin finalizar lo que hay dentro (bloque
continuar).

TEMA 5 – Ideas clave


Bitbloq y Arduino

Necesitas:

1 x ZumBloq LED
1 x ZumBloq Pulsador
1 x ZumBloq Zumbador
Una placa controladora ZUM BT 328
Un cable USB

¿Cómo sería el programa que interrumpe la ejecución del bucle?

TEMA 5 – Ideas clave


Bitbloq y Arduino

Sin embargo, ¿cómo sería un programa que continúa el parpadeo pero deja de sonar el
zumbador?

TEMA 5 – Ideas clave


Bitbloq y Arduino

+ Información

No dejes de practicar...

Alarma de puerta

¿Quieres proteger tus planes secretos? ¿Algún objeto valioso muy preciado para ti?
Instala tu propia alarma de puerta con los componentes electrónicos que ya conoces de
Mi Primer Kit de Robótica.

Accede al tutorial desde el aula virtual o a través de la siguiente dirección web:


http://diwo.bq.com/bq-invento-alarma-de-puerta/

Zootropo

Con este invento vamos a crear vida con un giro de disco. ¿Quieres saber cómo? El
instrumento llamado Zootropo es un antecedente de los dibujos animados ¡y del cine!

Accede al tutorial desde el aula virtual o a través de la siguiente dirección web:


http://diwo.bq.com/bq-invento-zootropo/

TEMA 5 – + Información
Bitbloq y Arduino

Actividades

Trabajo: Contador

Realiza un programa que cuente de 1 a 100 con una cadencia de 1 segundo. En cada
número el LED se encenderá, cuando el número sea múltiplo de 5 el zumbador emitirá
un pitido.

El programa debe poder detenerse mediante la pulsación del botón.

TEMA 5 – Actividades
Funciones
[6.1] ¿Cómo estudiar este tema?

[6.2] Las funciones sin retorno

[6.3] Argumentos de una función

[6.4] Funciones con retorno

TEMA
Bitloq y Arduino

Ideas clave

6.1. ¿Cómo estudiar este tema?

Lee las Ideas clave y sigue cada uno de los tutoriales y vídeos que se indican, al final del
tema debes ser capaz de programar tu placa controladora y realizar las actividades
propuestas.

En este tema introduciremos los siguientes conceptos mediante ejemplos:

Las funciones
Funciones sin retorno
Argumentos de una función
Funciones con retorno

Además introduciremos el uso de un nuevo componente, el sensor de ultrasonidos.

6.2. Las funciones sin retorno

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).

Necesitas:

1 x ZumBloq Zumbador
1 x ZumBloq Pulsador
Una placa controladora ZUM BT 328 o compatible con Arduino UNO
Un cable USB

Vamos a realizar un ejemplo muy sencillo que reutilice una melodía utilizando una
función.

TEMA 6 – Ideas clave


Bitloq y Arduino

En primer lugar creamos la función. Clica sobre la pestaña Funciones y selecciona el


bloque Declarar función. Las funciones se deben declarar en la zona de Variables
globales, funciones y clases.

TEMA 6 – Ideas clave


Bitloq y Arduino

Una vez declarada la función puedes utilizarla en otras partes del programa como el
Bucle principal (Loop):

TEMA 6 – Ideas clave


Bitloq y Arduino

A la derecha tienes el programa sin utilizar funciones. Mientras que a la izquierda tienes
el mismo programa utilizándolas. Fíjate en que la cantidad de bloques a crear es mucho
menor, ya que solo es necesario crear la melodía una vez.

Además el uso de funciones facilita mucho la comprensión del programa al dividirlo en


partes bien diferenciadas. En el caso de que quisieras editar una nota en el programa de
la derecha tendrías que realizar el cambio cada vez que utilizas la melodía lo que, en
programas complejos, conlleva tiempo e induce a errores. Utilizando funciones solo
tendrás que cambiar la nota una vez para que el cambio se produzca en el resto del
programa.

TEMA 6 – Ideas clave


Bitloq y Arduino

6.3. Argumentos de una función

Imagina ahora que queremos utilizar en el programa la misma melodía pero en cada sitio
con una duración diferente, ¿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.

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.

6.4. Funciones con retorno

Una función con retorno es una función que tras ejecutarse devuelve un valor que puede ser
numérico, textual, lógico o de otro tipo. 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 reescribirlo en cada situación.

Pongamos un ejemplo, imagina que queremos calcular la hipotenusa de triángulos


rectángulos de distintos tamaños. Tal como dice el Teorema de Pitágoras la hipotenusa
de un triángulo rectángulo es:

ℎ = +

TEMA 6 – Ideas clave


Bitloq y Arduino

O lo que es lo mismo:

ℎ = +

Pensemos ahora en la función, para calcular la hipotenusa necesitamos saber el valor de


sus catetos. Por lo que deberemos pasarle a nuestra función los catetos como
argumentos.

Vamos a declarar la función:

Ahora la utilizamos dentro del programa, sacando por puerto serie el resultado de
distintos triángulos. Podríamos mejorar el programa introduciendo los valores de los
catetos desde el puerto serie:

¿Por qué no pruebas a introducir los valores utilizando un potenciómetro y un botón


para seleccionar el valor de cada cateto? Puedes ver el cambio en los valores de cada
cateto utilizando el puerto serie.

TEMA 6 – Ideas clave


Bitloq y Arduino

+ Información

No dejes de practicar…

Las funciones con retorno

¿Estáis preparados para dominar aún más el arte de las funciones? ¿Queréis ser unos
magos del flujo de programación? ¿O simplemente queréis hacer los programas más
bonitos de la comunidad bitbloq? ¡Vamos a ello!

Accede al tutorial desde el aula virtual o a través de la siguiente dirección web:


http://diwo.bq.com/programando-con-funciones-en-bitbloq-2/

TEMA 6 – + Información
Bitloq y Arduino

Actividades

Trabajo: Calcular áreas

Realiza un programa que sea capaz de calcular el área de las principales figuras
geométricas simples: triángulo, rectángulo y círculo. Para ello deberá utilizarse una
función genérica que reciba el tipo de figura geométrica y los valores numéricos
necesarios para calcular su área. La función deberá retornar el valor del área y mostrarlo
por puerto serie junto con el tipo de figura y los valores utilizados.

TEMA 6 – Actividades
Ejercicio Botón 1

Mientras se pulsa el botón, hacer parpadear el LED. Al dejar de pulsarlo apagarlo.

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio Botón 1 RESUELTO

Siempre que hagas un nuevo programa o afrontes un nuevo problema plantéate: ¿He realizado algo parecido
previamente?

En nuestro caso ya sabíamos encender un LED al pulsar botón:

Partiendo de este ejemplo, la solución parece sencilla. Cada vez que pulsemos el botón querremos que
parpadee en vez de mantenerse encendido. Recuerda añadir la sentencia “De lo contrario” para que el LED
se apague cuando dejemos de pulsar el botón.

2
Ejercicio Botón 2 Máquina de estados
Programar una máquina de estados que funcione del siguiente modo:

Hacer un programa que al realizar una pulsación del botón (pulsar y soltar)
encienda el LED, al realizar otra pulsación parpadee, a la siguiente pulsación se
apague, y a la siguiente vuelva a empezar (es decir, lo encienda de nuevo y repita
el ciclo anterior).

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio Botón 2 RESUELTO

Para resolver el problema deberemos realizar 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, si no también
de su estado anterior.

En nuestro caso queremos tener una máquina con tres estados. El estado 0 encenderá el LED. El estado 1 lo
hará parpadear y el estado 2 lo apagará. Para saber en qué estado estamos en cada momento deberemos
crear una variable estado:

La variable deberá ser global ya que, de lo contrario, siempre volveríamos al estado 0 en la repetición de
cada loop.

En una máquina de estados siempre hay dos partes


diferenciadas, una es la ejecución de la máquina de estados,
para lo que podemos usar un bloque if con varios else if y
else o algo mucho más cómodo y ordenado, un bloque
comprobar cuál es el valor de o switch.

En el caso 0 encendemos el LED.

En el caso 1 lo hacemos parpadear.

En el caso 2 lo apagamos.

2
Ejercicio Botón 2 RESUELTO

La segunda parte de una máquina de estados es la programación de cambio de estado. Siempre debe existir
un evento, como la pulsación de un botón, en el que la variable que almacena el estado actual pase a otro
estado. En nuestro caso queremos que cada vez que pulsamos y soltamos el botón la variable pase al
siguiente estado, incrementando su valor en 1.

El bucle mientras incluido dentro del IF sirve para evitar el efecto rebote del botón. Mientras mantengamos
pulsado el botón, el programa permanecerá dentro del bucle mientras esperando a que dejemos de pulsarlo.

A continuación comprobará si la variable tiene un valor válido, es decir entre 0 y 2. Si es válido la variable
incrementará su valor, mientras que si es 2 o superior reseteara su valor a 0, volviendo al primer estado.

Las máquinas de estado son de gran utilidad, utiliza esta estructura para multitud de programas distintos y
podrás crear programas de gran complejidad de una forma muy sencilla.

3
Ejercicio Botón 3 RESUELTO

Parpadeo alternativo en función del estado del botón:

Utilizando dos LED, realizar un programa que haga parpadear el LED_1 si


el pulsador está pulsado y el LED_2 si no está pulsado (cadencia 500 ms).

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio Botón 3 RESUELTO

Para la resolución de este ejercicio, debemos utilizar los bloques de Control -> Si… de lo contrario… para
programar que si el botón está presionado (o sea igual a 1) parpadee uno de los LED, y de lo contrario, que el
botón no esté pulsado (o sea igual a 0) parpadee el otro LED.

En este ejercicio no queremos que una acción se repita un número determinado de veces sino que un evento
suceda indefinidamente mientras se cumpla una u otra condición.

¿Se te ocurre alguna manera de programar que esto se repita solo durante un determinado número de
veces?

2
Ejercicio IR 1 RESUELTO

Detectar cuándo hay color blanco y cuándo negro

Realizar un programa que permita visualizar por el puerto serie si cuando


pulso el botón, el sensor IR detecta color blanco o negro.

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio IR 1 RESUELTO

Para resolver este ejercicio lo primero que debemos programar es la condición inicial, es decir, si está o no
el botón pulsado.

Seguidamente, introducimos otro condicional, que en este caso leerá el valor devuelto por el sensor IR y
enviará al serial monitor el texto “BLANCO” en caso de detectar blanco (valor 1) y “NEGRO” en caso
contrario.

Recuerda que debes calibrar correctamente el sensor antes de utilizarlo.

Ya sabes cómo ejecutar una acción u otra en función de lo que detecte nuestro sensor IR, ¿crees que serías
capaz de programar un siguelíneas?

2
Ejercicio IR 2 RESUELTO

Realizar una alarma de puerta que, cuando detecte el color blanco,


signifique la puerta está cerrada y todo va bien. Cuando detecte el color
negro la alarma se deberá activar sonando el zumbador.

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio IR 2 RESUELTO

En primer lugar deberás tener claro qué significa blanco y negro en el sensor. Si has calibrado correctamente
el sensor devolverá un 1 cuando detecte blanco y un 0 cuando detecte negro. Para aclararte mejor y no
olvidarlo puede añadir comentarios a tu programa. Los encontrarás en la pestaña Código.

Como puedes observar el programa es muy sencillo, en caso de que el valor de IR sea negro y, por tanto, la
puerta esté abierta el zumbador sonará hasta que se cierre. Si en vez de un pitido continuo quieres un pitido
intermitente deberás añadir una espera con el mismo tiempo tras el bloque del zumbador.

2
Ejercicio LED 1

Hacer parpadear un LED con una frecuencia cada vez menor, de forma que al
principio, parpadee cada 10 segundos, luego cada 5, etc.

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio LED 1 RESUELTO

Siempre que hagas un nuevo programa o afrontes un nuevo problema plantéate: ¿he realizado algo parecido
previamente?

En nuestro caso ya sabíamos cómo hacer parpadear un LED:

Ahora solo hay que plantearse qué necesitamos esta vez. La primera vez debe parpadear cada 10 segundos,
la segunda cada 5, la tercera la mitad, cada 2.5, etc. Podríamos realizar el programa del siguiente modo:

Pero esta forma no es la correcta. De hecho, es tediosa y no cumple con el enunciado, ya que llegará un
momento en que nos cansaremos de parpadear a la mitad la frecuencia.

2
Ejercicio LED 1 RESUELTO

La solución pasa por crear una variable GLOBAL que almacene el valor del tiempo, y reducirlo a la mitad en
cada iteración:

Deberás utilizar el bloque avanzado de esperar que se encuentra en la pestaña de Control, dentro de
Avanzados.

¿Qué ocurre cuando el tiempo es muy pequeño? ¿Sabrías decir por qué el LED queda continuamente
encendido?

3
Ejercicio LED 2 RESUELTO

Hacer parpadear dos LED de forma alternativa:

Realiza un programa en el que se vaya alternando el encendido entre


dos LED, es decir, que cuando uno de los LED se encienda, el otro se
apague y viceversa.

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio LED 2 RESUELTO

Siempre que hagas un nuevo programa o afrontes un nuevo problema plantéate: ¿he realizado algo parecido
previamente?

En nuestro caso ya sabemos cómo hacer parpadear un LED:

Ahora solo hay que plantearse qué necesitamos para este nuevo reto. Si queremos que uno de los LED se
apague cuando el otro se encienda y viceversa, podríamos realizar el programa del siguiente modo:

De esta forma, uno de los LED se enciende y el otro se apaga. Transcurrido un segundo, el encendido se
apaga y el apagado se enciende, y así sucesivamente.

¿Sabrías cómo hacer que el parpadeo fuera a la vez en los dos LED?

¿Qué crees que ocurre si no ponemos el último bloque de Esperar? ¿parpadearán o no?

2
Ejercicio Potenciómetro 1 RESUELTO

Mapear y mover miniservo utilizando el potenciómetro

Realizar un programa que permita manejar el miniservo utilizando el


potenciómetro de la forma más eficiente posible.

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio Potenciómetro 1 RESUELTO

Para resolver este ejercicio deberás utilizar el bloque del miniservo que está en Componentes -> Avanzados.
En el primer hueco deberás poner la variable servo o el pin al que está conectado.

Tenemos escalas distintas, recordemos que el potenciómetro tiene valores de entre 0 y 1023, mientras que
el miniservo solo puede moverse entre valores de 0 y 180. Para unificar las escalas utilizamos el bloque
mapear, en este 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.

¿Se te ocurren más utilidades para el potenciómetro? Seguro que tienes varios mucho más cerca de lo que
crees. Piensa en los electrodomésticos de tu casa.

2
Ejercicio Potenciómetro 2 RESUELTO

Realizar un programa que asocie el valor del potenciómetro con el


tiempo de espera del parpadeo de uno o dos LED.

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio Potenciómetro 2 RESUELTO

Lo primero que debemos plantearnos es si previamente hemos realizado algo similar. En ejercicios
anteriores aprendimos a hacer parpadear un LED:

Como queremos controlar la velocidad de parpadeo del LED, deberemos controlar los tiempos de espera.
Para ello creamos una variable local tiempo a la que asignamos el valor del potenciómetro. En nuestro caso
queremos controlar el tiempo entre 0 y 2000 ms por lo que necesitamos realizar un cambio de escala. Para
ello utilizamos el bloque mapear.

Encontrarás el bloque esperar personalizable dentro de la opción Avanzados.

Observa qué ocurre cuando la velocidad de parpadeo es muy pequeña, parece que el LED está
permanentemente encendido. Esto se debe a que tu cerebro es incapaz de distinguir entre periodos de
encendido o apagados tan pequeños.

2
Ejercicio Sensor de luz 1 RESUELTO
Alarma antimonstruos.

Realizar un programa en el que el sensor de luz detecte cuando la


intensidad es menor que 200, de manera que automáticamente encienda
un LED. Esta luz diseñada para ahuyentar monstruos puede mejorarse
con un temporizador que la apague automáticamente tras un tiempo
prudencial. El tiempo justo para que el niño se quede dormido.

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio Sensor de luz 1 RESUELTO

El ejercicio es muy sencillo y se parece mucho al del LED y el pulsador:

Sin embargo, se puede mejorar. Imagina ahora que la alarma antimonstruos, diseñada para niños, debe
ahorrar electricidad. Vamos a hacer que, pasado un tiempo prudencial para que el niño se duerma, la luz se
apague sola y no vuelva a encenderse el resto de la noche. Para ello necesitaremos crear una variable global
denominada tiempo.

2
Ejercicio Sensor de luz 2 RESUELTO

En el caso de que la luz sea menor de 200 y la variable tiempo sea falsa, es decir nunca se haya encendido la
luz, la luz se encenderá esperará un tiempo y pondrá la variable a verdadero, apagándose desde ese
momento.

3
Ejercicio Sensor de luz 2 RESUELTO

Programar un buscaluz:

Programa un sistema que vaya moviendo el servomotor y leyendo la


cantidad de luz recibida en cada posición, para finalmente colocarse
donde haya más luz.

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio Sensor de luz 2 RESUELTO

En este ejercicio programaremos un sistema de búsqueda de máximos, cuya función consiste en buscar
entre varios valores y encontrar el mayor.

El programa va midiendo una variable y comprobando si es mayor que otra en la que se almacena el valor
máximo medido. Si es mayor, la nueva medida quedará guardada en la variable que almacena el valor
máximo para recordarla y utilizarla como nueva referencia.

2
Ejercicio Ultrasonidos 1 Theremin

Realizar un programa que asocie por rangos la distancia detectada


por el sensor de ultrasonidos con una determinada frecuencia del
zumbador, de manera que al acercar o alejar la mano, suene una
“melodía”.

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio Ultrasonidos 1 RESUELTO

La solución puede comprimirse en un solo bloque:

Para crear nuestro Theremin hemos usado el bloque avanzado del zumbador. Dentro de él es necesario
indicarle que zumbador queremos hacer sonar. Puedes escribir directamente el número de pin o utilizar el
bloque avanzado Variable (componentes) que contiene el número de pin donde se ha conectado.

En la frecuencia pondremos el valor del sensor de ultrasonidos. Dado que el valor está en centímetros, la
frecuencia del zumbador o nota variará entre 100 y 0.

Sin embargo este rango de valores es muy limitado. Por ello podemos mejorar el theremin de dos formas.
Por un lado multiplicando el valor del sensor de ultrasonidos de forma que abarque más notas. Por otro
añadiendo un potenciómetro que controle el tiempo de cada nota.

2
Ejercicio Ultrasonidos 2 Sensor aparcamiento

Crear un sensor de aparcamiento de forma que el sensor de


ultrasonidos pite con una frecuencia cada vez mayor a medida que
el coche se acerca a la pared.

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio Ultrasonidos 2 RESUELTO

Queremos que, por ejemplo, a partir de los 50 cm el zumbador empiece a sonar con una frecuencia cada vez
mayor. Para ello declaramos la variable “tiempo” que almacene el valor de la distancia devuelta por el sensor
de ultrasonidos pero multiplicada por 10 para que la variación entre la frecuencia de los pitidos sea
perceptible.

Si el sensor detecta que la distancia es menor de 50 cm, el zumbador sonará a una frecuencia de 500 Hz,
durante un tiempo igual a la variable “tiempo” y esperará ese mismo tiempo, repitiéndose el bucle de forma
continua.

De esta forma podemos crear un sensor de aparcamiento cuyo funcionamiento es exactamente igual al que
se implementa en los coches actuales.

2
Ejercicio Zumbador 1 RESUELTO
Conteo de 1 a 100 + parpadeo + pitido:

Realizar un programa que cuente de 1 a 100 con una cadencia de 1


segundo. En cada número el LED se encenderá, cuando el número sea
múltiplo de 5 el zumbador emitirá un pitido.

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio Zumbador 1 RESUELTO

Para resolver este ejercicio, debemos crear una variable GLOBAL que determine en qué número
comenzaremos a contar.

Programaremos que, siempre que el valor del contador sea menor que 100, vaya sumando uno a la vez que
hacemos parpadear al LED.

Para que el zumbador suene con cada múltiplo de 5, tendremos que añadir a un condicional “Si”, un bloque
matemático para que así, cuando se cumpla dicha condición matemática, se ejecute que suene el
zumbador.

¿Se te ocurre una manera de programar que suene cada vez más frecuentemente?

2
Ejercicio Zumbador 2 RESUELTO
Componer una canción

Busca en internet las frecuencias de una melodía que te guste y utiliza el


zumbador para escucharla. Crea distintas funciones para no repetir
estrofas iguales.

Te aconsejamos…

- No mires la solución directamente y tómate tu tiempo para resolver el ejercicio.

- Plantéate qué pide el enunciado y qué materiales vas a necesitar.

- Coge papel y lápiz, y create un diagrama para tener claro cómo debería funcionar tu programa.

- Puede ser complicado dar con la solución a la primera. No tengas miedo a probar cosas y
equivocarte. Divide el problema en trozos pequeños y comprueba que consigues programarlos.

- Avanza paso a paso y si tienes dudas, mira la solución o pregunta en el foro de la asignatura.

Programar es una aventura tortuosa, si te quedas atascado, da un paseo, toma una ducha y distraete. En el
momento menos pensado, la solución vendrá a tí.

1
Ejercicio Zumbador 2 RESUELTO

Para la resolución de este ejercicio, debemos utilizar el bloque avanzado del Componente Zumbador, para
poder introducir unos valores concretos de frecuencia que nos permitan obtener una melodía más
elaborada.

En este ejemplo, hemos añadido un botón para que la canción suene solo cuando lo pulsemos.

¿Sabes qué canción es? Elabora tus propias melodías y no dudes en compartirlas con el resto de
compañeros.

2
Laboratorio 1 - Mano robótica

Montar y programar una Mano robótica para la que solo necesitarás los
siguientes materiales:

1. Caja de cartón
2. Papel, cartulina o cartón
3. Celo
4. Tijeras
5. Todo lo que se te ocurra

Componentes electrónicos y conexión:

1. Miniservo
2. Sensor IR
3. Otros: LED, pulsador, zumbador, etc.

El montaje y programación deberán cumplir los siguientes objetivos:

• El sensor IR deberá ser capaz de detectar cuando se acerca un objeto.

• En ese momento, la mano debe cerrarse mediante el movimiento del


miniservo y permanecer así, hasta que el sensor deje de detectar el
objeto.

• Se valorarán aquellas modificaciones del proyecto que incorporen más


componentes y/o aquellos más creativos.

1
Intrucciones montaje - Mano robótica

2
1 3
4

5 6 7

8 9 10

2
Plantilla dedo - Mano robótica

3
Laboratorio 2 - Máquina expendedora

Montar y programar una Máquina expendedora utilizando los siguientes


materiales:

1. Caja de cartón
2. Papel, cartulina o cartón
3. Celo
4. Tijeras
5. Destornillador de estrella para la calibración del sensor IR

Componentes electrónicos y conexión:

1. Servomotor de rotación continua


2. Sensor IR
3. LED
4. Pulsador
5. Zumbador

El montaje y programación deberán cumplir los siguientes objetivos:

• El sensor IR deberá ser capaz de detectar cuando pasa una moneda.

• Cada vez que el sensor IR detecte la moneda, el LED se encenderá para


indicar su correcta detección. En caso de no detectar la moneda deberá
permanecer apagado.

• Presionar el pulsador sin haber introducido antes una moneda, deberá


hacer sonar al zumbador a modo error.

• Presionar el pulsador tras haber introducido una moneda, hará girar el


servomotor de manera que permita dispensar un caramelo.

1
ESQUEMA

2
PROGRAMACIÓN

3
Es. En.

¿Tienes instalados los Are your motherboard


drivers? drivers installed?
Bitbloq es compatible con todas las placas You can use Bitbloq with all the boards of the Arduino UNO
controladoras de la familia Arduino UNO y derivados de family and other brands derivatives. If you have problems
otras marcas. Si al intentar cargar un programa a la uploading your program to your board, please check that
placa experimentas problemas, es probable que no your motherboard drivers are installed. Inside the folder
tengas cargados los drivers de ésta. En la carpeta Drivers​you'll find a stable version to install without an
Drivers​encontrarás una versión estable de éstos para Internet connection.
instalar sin la ayuda de Internet.
On Windows you must double click the ​
install_drivers.bat
En Windows puedes hacer doble clic en el fichero drivers_ZUM.pkg​
file. On IOS execute ​ and
llamado ​install_drivers.bat​
, en OSX ejecuta los drivers_ZOWI.mpkg
drivers_ZUM.pkg​
instaladores ​ ​​rivers_ZOWI.mpkg​
yd .
However, we suggest to install the last drivers version. Go
Sin embargo, te recomendamos encarecidamente que to your motherboard website for more details.
siempre instales la última versión. Consulta el sitio web
del fabricante de tu placa controladora para más
detalles.

¿En qué carpeta lo has In which folder are you


descomprimido? using Bitbloq?
Dependiendo de tu sistema operativo y tus permisos
Depending of your operating system and your user
como usuario, Bitbloq puede dar problemas si se
permissions you may have problems uploading your
descomprime y se ejecuta desde un directorio que no
program. One example is if you are using Bitbloq inside
pertenece al usuario. Por ejemplo: ​c:/Archivos de
c:/Program files​
. We suggest to unzip Bitbloq inside your
programa​ . Te recomendamos que lo descomprimas y
c:/users/*user name*/​
user folder​ or directly on the
dejes tu carpeta de Bitbloq en tu carpeta de usuario:
desktop.
c:/users/*nombre de usuario*/​ o, incluso, en el propio
escritorio.

¿Tienes muchos componentes Many components connected?


conectados a la placa?
When you use a lot of servomotors or others the usb port
Si tu placa está moviendo varios servomotores, motores of your board could fail due to energy problems. Please
de corriente continua u otros, es posible que no le llegue use a power supply or batteries. For the same reason, you
suficiente energía al puerto USB, por lo que la conexión shouldn't use your motherboard in an usb hub.
con el ordenador fallará. En el caso de que estés
utilizando muchos componentes te recomendamos que
alimentes la placa mediante una fuente de alimentación
o portapilas. Por el mismo motivo, puedes experimentar
problemas si tienes conectada la placa a un h ​ub usb​ o
similar.
 

¿Estás utilizando los Are you using D0 and D1


pines D0 o D1? pins?
Los pines D0 y D1 corresponden a los pines RX y TX de D0 and D1 pins correspond to the communications pins RX
la placa, es decir, los pines de comunicación de ésta con and TX of your motherboard. You could have problems if
el exterior. Si estás utilizando estos pines e intentas you try to upload a program while using these pins. Please
cargarle un programa nuevo a la placa es posible que disconnect the components of these pins before uploading
dicho programa no se cargue correctamente. a new program.

¿Estás utilizando el Using Bluetooth?


Bluetooth? If your motherboard has an active Bluetooth connection
please remember that you must disconnect it before
Si tu placa tiene Bluetooth integrado y está vinculada a
uploading a new program.
otro dispositivo como un teléfono móvil u ordenador, la
comunicación con tu placa no estará disponible.
Recuerda que debes desvincular siempre la conexión
Bluetooth establecida antes de cargar de nuevo un
programa.

¿Otros problemas?
Still got issues?
Si después de seguir estos pasos aún no consigues
If after following these steps, you still can't program your
programar tu placa escribe por favor a
board, please write to ​support-bitbloq@bq.com​ , or call
support-bitbloq@bq.com​ o llama al teléfono ​
+34 91 142
including details of:
06 82​indicando:

I. Sistema Operativo y versión:​ por ejemplo Windows 7


64 bits, o Ubuntu 14.10 32 bits, etc.
I. The operating system and version: ​
Windows 7 64-bit, or
Ubuntu 14.10 32-bit, etc.
II. Navegador y versión​: por ejemplo Chrome
43.0.2357.130 (64-bit).
II. The browser and version: ​
Chrome 43.0.2357.130
III.​
Programa que estás intentando cargar en formato
​ (64-bit), others.
.json:​Puedes descargarlo desde Bitbloq en:
III.​
The program you are trying to load in .json format. ​
​ You
Archivo->Descargar proyecto​.
File->Download project​
can download it from Bitbloq via: ​ .
IV. Una captura de pantalla con el error que obtienes: ​
En
IV. A screenshot of the error message: ​
or please specify if
el caso de que no aparezca ningún error, dínoslo
none is returned.
también.
Also, we have a ​
Bitbloq forum​when you can ask any
Además, tenemos un ​ foro para Bitbloq​
donde podrás
question or share your creations!
consultar cualquier duda con la comunidad, así como
compartir tus proyectos. Our team will try to resolve any problems that arise as
soon as possible.
Nuestro equipo intentará resolver lo antes posible
cualquier problema que te pueda surgir, por lo que no
dudes en ponerte en contacto con nosotros.