Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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:
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.
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.
TEMA
Bitbloq y Arduino
Ideas clave
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.
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.
Se buscan precios justos, de manera que la tecnología sea accesible sin que el
coste sea una barrera.
Placa
SENSORES IN OUT ACTUADORES
controladora
Definiciones
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.
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.
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.
Conecta tu placa al ordenador con el cable USB y abre Bitbloq2 con tu navegador
Google Chrome.
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.
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.
+ Información
No dejes de leer...
No dejes de ver...
Educando en tecnología
TEMA 1 – + Información
Bitbloq y Arduino
TEMA 1 – + Información
Bitbloq y Arduino
Actividades
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.
TEMA 1 – Test
Bitbloq y Arduino
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?
TEMA
Bitbloq y Arduino
Ideas clave
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.
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
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/
Encender un LED
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.
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
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/
La secuencia de acciones para que parpadee un LED (con una espera de 1 segundo) es:
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.
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.
La solución es:
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.
+ Información
No dejes de leer…
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.
No dejes de ver…
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
TEMA 2 – Actividades
Sentencias condicionales.
Entradas digitales (el pulsador)
[3.1] ¿Cómo estudiar este tema?
[3.3] El pulsador
TEMA
Bitbloq y Arduino
Ideas clave
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.
Las variables.
Lectura de entradas (sensores) digitales.
Sentencias condicionales.
Aplicaciones con sentencias condicionales y entradas digitales.
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.
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).
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.
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.
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.
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.
Veamos ahora cómo podemos programar la placa para que el LED se apague al dejar de
presionar el pulsador.
Una vez que entiendas bien tus programas puedes leer directamente el valor del botón
en el condicional:
Actividades
TEMA 3 – Actividades
Componentes analógicos
[4.1] ¿Cómo estudiar este tema?
TEMA
Bitloq y Arduino
Ideas clave
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.
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
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:
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.
Ahora hay que hacer que se apague cuando se vuelva a encender la luz.
+ Información
No dejes de practicar...
¿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!
Gaita electrónica
TEMA 4 – + Información
Bitloq y Arduino
Actividades
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
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?
TEMA
Bitbloq y Arduino
Ideas clave
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 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
En este programa, mientras la lectura del sensor de luz sea mayor de 100 sonará el
zumbador, ¡es una alarma de exceso de luz!
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.
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.
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.
Necesitas:
1 x ZumBloq LED
1 x ZumBloq Pulsador
1 x ZumBloq Zumbador
Una placa controladora ZUM BT 328
Un cable USB
Sin embargo, ¿cómo sería un programa que continúa el parpadeo pero deja de sonar el
zumbador?
+ 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.
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!
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.
TEMA 5 – Actividades
Funciones
[6.1] ¿Cómo estudiar este tema?
TEMA
Bitloq y Arduino
Ideas clave
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.
Las funciones
Funciones sin retorno
Argumentos de una función
Funciones con 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.
Una vez declarada la función puedes utilizarla en otras partes del programa como el
Bucle principal (Loop):
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.
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.
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.
ℎ = +
O lo que es lo mismo:
ℎ = +
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:
+ Información
No dejes de practicar…
¿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!
TEMA 6 – + Información
Bitloq y Arduino
Actividades
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
Te aconsejamos…
- 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?
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…
- 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 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
Te aconsejamos…
- 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
Te aconsejamos…
- 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.
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
Te aconsejamos…
- 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…
- 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?
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
Te aconsejamos…
- 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?
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
Te aconsejamos…
- 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
Te aconsejamos…
- 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.
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.
Te aconsejamos…
- 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
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:
Te aconsejamos…
- 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
Te aconsejamos…
- 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
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
Te aconsejamos…
- 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:
Te aconsejamos…
- 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
Te aconsejamos…
- 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
1. Miniservo
2. Sensor IR
3. Otros: LED, pulsador, zumbador, etc.
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
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
1
ESQUEMA
2
PROGRAMACIÓN
3
Es. En.
¿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 82indicando: