4.
-Proyectos
Eneste capítulo se proponen un total de 58 proyectos de diferente
complejidad
agrupadosdel siguiente modo:
Apartado Núm.
Utilizandosolo la tarjeta micro:bit 38
Utilizandola tarjeta micro:bit más 1 sensor o actuador 14
Utilizandola tarjeta micro:bit más 2 sensores o actuadores 1
Utilizando2 tarjetas micro:bit conectadas por radio 4
TOTAL 57
Paracadaproyecto se incluye:
• Objetivo
• Nivel de dificultad (en base a la complejidad de los conceptos y
la extensión del programa)
• Pseudocódigo
• Programaen Makecode
En este apartado se abordan
proyectosde dificultad variable que se
llevan a cabo solo con la tarjeta
micro:bit.
Porcuestionesde seguridad y como-
didad,hemosprotegido la tarjeta con
una carcasade plástico y la hemos
dotado de una sencilla estructura
realizada
con piezasde LEGO.
,,,..
,., .
. .'¡;"..••
Objetivo
Cadasegundomostrar en la matriz de LEDS el nombre
quesedesee,en nuestro caso "ANA".
99
m
1se~
(C) EMCH
Pseudoc6digo propuesto
Por siempre
Mostrar "Pon aquí tu nombre"
Esperar 1000 mili segundos
Programadesarrolladocon Makecode
Objetivo
Al pulsar el botón A se mostrará en la matriz de LEOSel
nombre que se desee,en nuestro caso "ANA" .
• • '-'
(C) EMCH
Pseudoc6cligo propuesto
~--------
Por siempre
Si botón A pulsado
Mostrar "Pon aquí tu nombre"
Esperar 0,1 segundos
Limpiar matriz de LEDS
100
desarrollado con Makecode
programa
n-_.· ·. '_Jgar't_aJnatriz
de LEDS
_ _____ Objetivo . ·
1 Alpulsarel botón A se encenderá el LED central de la
Al pulsarel botón B se apagará.
matriz.
1
Pseudocódigo propuesto
Por siempre
Si botón A pulsado
Encender el LEO ( 2 2) de la matriz de LEOS
Si b~:~erar 0, 3 segund~s
on B pulsado
Apagar el LEO ( 2
Esperar , 2 ) de la matriz de LEOS
0 ' 3 segundos
Prog - ·-----·------- -
rama desarrollado con Makecode
101
.,., ,.:~ ?,;>;.:~....._
- .......-
~ ~
Un contador manual es un sencillo dispositivo,
mecánico o electrónico, que sirve para contar
personas, vehículos, pasos, etc. En los laboratorios
se utiliza para contar células.
En nuestro caso vamos a proponer un contador
manual electrónico dotado de dos botones, uno
para sumar una unidad, otro para restar una
unidad y, al pulsar ambos, ponerlo a cero.
Objetivo
Confeccionar un contador manual con la tarjeta micro:bit.
Al pulsar el botón A sumar 1. Al pulsar el botón B restar 1.
Al pulsar A y B a la vez, poner a cero.
-
Contador= 0
+1
-----
Pseudocódigo
+1
(C) EMCH ~ ·
propuesto
-1
·
Por siempre
Si botón A pulsado
Esperar 50 ms
102
Si botón A+B pulsado
Poner a cero Contador
En caso contrario
Contador= Contador+ 1
Destello LEOjunto a botón A
Mostrar Contador en matriz de LEOS
Si botón B pulsado
Esperar 50 ms
Si botón A+B pulsado
Poner a cero contador
En caso contrario
Contador= Contador - 1
Destello LEDjunto a botón B
Mostrar Contador en matriz de LEOS
Enestecaso,para evitar duplicar código de programa, haremos uso de
funciones.Además se hace uso de una variable que hemos llamado
"Contador".
Programa desarrollado con Makecode
103
04
Objetivo
Confeccionar
un fotómetro gráfico que muestre una
gráfica
dealturaproporcional a la luz ambiental en
unaescala
deOa 255.
o
1 1 1
ft.q1l,111,l11,11!111
1~,
l
Pseudocódigo propuesto
Porsiempre
Mostrar gráfica con
valor= sensor de luz
Escala máxima de 255
105
Programa desarrollado con Makecode
- ------------..
Objetivo
Al pasar la mano por encima de la tarjeta micro:bit
alternar el estado de encendido y apagado de la matriz de
LEOS.
Al pasar la mano por delante de la placa micro:bit se produce un cambio
en el valor medido por el sensor de luz.
Pseudoc6d.igo propuesto ~ fi) t-~ ~~ 1, ;J.M
LuzAntes = Valor sensor de luz
LuzOnOff= -1
Por siempre
LuzActual = Valor sensor de luz
LuzDif = Valor absoluto de (LuzActual - LuzAntes)
LuzAntes = LuzActual
Si LuzDif > 10
LuzOnOff= LuzOnOff* (-1)
Si LuzOnOff= 1 Encender todos los LEOSde la matriz
En caso contrario apagar todos los LEOSde la matriz
Esperar 1000 ms
106
programa desarrollado con Makecode
107
Una luz crepuscular dispone de un sensor que mide
la intensidad de luz ambiente y, cuando esta es
inferior a un valor determinado, envía una señal para
que se encienda la bombilla.
•
Si por ejemplo la luminosidad se ha ajustado a SO
lux, al descender la luz ambiental por debajo de
dicho valor (se hace de noche), activa el sensor y al
volver a ascender por encima (se hace de día), se
apaga.
Es de gran utilidad para automatizar el encendido y apagadode luces,con
la ventaja de que se ajusta de forma automática a la luz externay, porlo
tanto, a las estaciones.
-
__ Objetivo
Confeccionar una luz crepuscular que se encienda cuando
la luz ambiente sea inferior al valor fijado y se apague en
caso contrario. Con los botones A y B el usuario podrá
reducir o aumentar respectivamente dicho valor .
•
108
~
MWiZAZZ5
' . " : _.t-
~ -~ o;
.....;" -·
pseudocódigo propuesto
. star este valor a cada situación)
00 (aJU
zMin:::2
LU siempre sensor de luz < LuzMin
por si valor Encender todos
los LEDS de la matriz
aso contario
En e Apagar todos los. LEOS de la matriz
. ulsan botón A y LuzM1n > 20
51 P LuzMin = LuzMin - 20
parpadear LED junto a botón A
• pulsan botón B y LuzMin < 1020
51 LuzMin = LuzMin + 20
Parpadear LED junto a botón B
Programa desarrollado con Makecode
--,- .. ,,._ --~-
• 1'
-'
:
. c.-:-~ -
... -.¡;~J2~~--
.... -,,,,,,-,._,_..:•~-- .. -'-=-....:._.:;~
..(>;:;~.
:_~-
'.7)..
, '.' • . ---=-=-
- -- - ,,,~
fif :~{
''.L:L¿_;_/
----------- ----
.O
-
.....,
•.ir....: {. • ••
~.
~--l<~!~i~~.-;
..· : .
Empezaremosusando el sensor de temperatura para
llevara cabo algo tan sencillo como un modesto
termómetro que nos informará de la temperatura
ambiental.
- -- ---------------::--..,.__,--- __ _______
Objetivo
- -----
Hacerquecada segundo se muestre en la matriz de LEOS
el valorde la temperatura reducida en 3 grados para
la temperatura de la propia placa .
corregir
• •124.3].
'
\.•I211.J
~=-=--=---~--=-===~~~~~~~======~__.;--
ste valor d
compa e corrección de -3º se ha obtenido empíricamente
randael v I d ca un
termómet ª or evuelto por la placa con el valor que mar
romanual.
Co""ecc·
p
- :::_ (
ion Pseudocódigo propuesto .t .iffl
0 3
" 5iempre Obtener empíricamente en cada caso)
Temperatu,-.
Temper ª == Valor sensor temperatura. ,
atu,-.a _ T
Mostra - emperatura + Correccion
r Temp
Esperar eratura en matriz de LEDS
1 segundo
111
Programa desarrollado con Makecode
El objetivo de este proyecto es hacer un
termómetro médico que mida la temperatura del
paciente y nos avise en caso de febrícula (por
encima de 37,1º), fiebre (por encima de 38º) o de
hipotermia (por debajo de 35,5º).
Además, al igual que los modelos reales, avisará
cuando haya determinado el valor de la
temperatura corporal.
Objetivo _]
Cuando se pulse el botón A, ir mostrando el valor
corregido del termómetro. Una vez estabilizado el valor
(deja de variar) finalizar la lectura, avisar de ello y mostrar
la temperatura hasta que se vuelva a pulsar el botón A.
El valor de corrección de -3º se ha obtenido empíricamente comparand
el valor devuelto por la placa con el valor que marca un termómetro
manual.
112
Pseudocódigo propuesto
corrección
= -3 (Obtener empíricamente en cada caso)
porsiempre
remp1=0
rempDi
f=999
Esperara que pulsen botón A
MientrasTempDi f >1
Temp2= Valor sensor temperatura + Corrección
Mostrar Temp2en matriz de LEOS
TempDif= Temp2- Templ
Esperar 0, 3 segundos
Mostraren pantalla texto "REAOY"
Mientrasno pulsen botón A
Mostrar Temp2en matriz de LEOS
Esperar 0, 3 segundos
Programa desarrollado con Makecode
113
,... ,. "'"
botón A• presionado
114
J
.. Ma netómetro
.1.10
Inmagnetómetroes un instrumento que
irvePara medir la fuerza del campo
nagnético
en cada uno de los tres ejes, lo
IUe Pe . b ,. 1
11 rrn1te utilizarlo como ruJua
1aut1ca)
:rnado compás en el mundo de la
0 °
nagnétic Para medir los
. , campos
s &eneradospor un 1man. pagar el
%chas
0
ª t b
jisp .. 0 letas Utilizan el imán de la tapa para encender
teclay a
· necesidad de que el usuario. pu se ninguna
s1t1vsin ·
1
115
- ----------,,.._
Objetivo --,----"--
Hacer un magnetómetro que muestre en la matriz de LEDS
la fuerza del campo magnético detectado por el sensor de
la placa micro:bit. '
(CtEMctl~t.
Pseudocódigo propuesto ~
Por siempre
FuerzaCampoMagnético= sensor fuerza magnética
Mostrar en matriz de LEDSel valor de FuerzaCampoMagnético
Programa desarrollado con Makecode
Los interruptores de luz accionados por imán
permiten encender o apagar la luz de una estancia
con solo acercar o insertar una tarjeta o llave dotada
f'Í
~o
de un imán.
Para ello utilizan un sensor magnético similar al que 'I .?..
-...:til-
tiene integrado la tarjeta micro:bit.
Objetivo
Hacer un interruptor que encienda y apague la luz
l alternativamente al acercar un imá_n_.
______ __L ____ __
116
j
pseudoc6digo propuesto .,.. ◄•.:..-
Luzonoff== -1
siempre , .
~r f za sensor magnetice> 1500
si uer
LuzOn0ff = LuzOnOff * ( -1)
Si Luzonoff = 1 encender todos los LEOS de la matriz
En caso contrario apagar matriz de LEOS
Esperar 1 segundo
-
Programa desarrollado con Makecode
117
---
El tacómetro es un dispositivo que mide la velocidad
de giro de un eje, normalmente la velocidad de giro
de un motor. Se mide en revoluciones por minuto
(RPM). Hoy en día los más utilizados son los
tacómetros digitales, por su mayor precisión, aunque
también pueden ser mecánicos, ópticos o magnéticos.
En el caso del mecánico el tacómetro está conectado al eje de giro
mediante engranajes, lo que genera rozamientos, mientras que enlos
tacómetros ópticos y magnéticos no existe contacto con el elemento
rotativo ni, por lo tanto, pérdidas por rozamiento. En el casodel
tacómetro magnético el elemento rotativo dispone de un imán que,al
pasar por delante del sensor, es detectado por este contabilizándoseuna
vuelta.
Objetivo
Hacer un tacómetro magnético provisto de una rueda
dotada de un imán, que muestre cada 10 segundos las
revoluciones por minuto (RPM). El algoritmo ha de evitar
las falsas lecturas: solo dará por válidas las lecturas
cuando previamente no se haya detectado el imán.
118
-- '
hacen cada 10 segundos el valor obtenido so
turas se I h n
ue 1as1ec segundos", el cua se a de transformar en
10
0 adones por_ to utilizando factores de conversión:
oad
,RevolU or n,1nu
ohJciones
P RPS 60 seg
rev =
RPM 10 Seg* 1 min
roponemos una estructura específica, consistente en
rovectoP . ,
paraesteP . libre dotada de un ,man y un contrapeso en la parte
una ruedade gir~l,.brarla.Situando esta rueda junto al lado derecho de la
opuestª para
.
equi . , .
·b·t al hacerla girar el sensor magnet1co detectará el paso
. ta micro.1 , • ,
tarJe, tabilizando una rotac1on.
del¡man, con
servado que el tiempo de reacción del sensor magnético es
Hemos ob .
or lo que en ocasiones no detecta el paso de la rueda cuando
elevado, P .
estagirademasiadorápido. No obstante, sirve para llevar a la práctica
estetacómetrototalmente funcional, aunque solo adecuado para bajas
revoluciones.
Calib p , . - ~--~
Eje rar sensor ma - _seudocodigo propue.sto '~\"'~~!·.::-_;~-;,~
¡· cutar funci - gnetico (brújula) .
_iempoMedic·on Calibrar
,·------- lonseg == 10
Funci. -- - - - - - - -
on Cal. --------
~ st l'ar relbrar --------------------------------------
Espe ROTAR''
"ª"
MagM 1
ax_ 00 ms
MagM·- 0
lr¡ - 9
- 999
119
1/
Durante 10000 veces
Mag = valor fuerza sensor magnético
Si Mag > 0
Si Mag > MagMax,MagMax= Mag
Si Mag < MagMin, MagMin= Mag
MagMax= MagMax- 300
MagMin= MagMax- 500
Mostrar "STOP"en matriz de LEOS
Mostrar MagMinen matriz de LEDS
Mostrar MagMaxen matriz de LEDS
Mostrar "OK" en matriz de LEDS
; -- - - - - - - - - - - -- - - - -- - - - - - - - - - - - - - - - -- - - -- - - --- - -- - ----- ---- ----·
Por siempre
Tiempol = Valor Actual del Reloj
TiempoExe = 0
RPS = 0
Mientras TiempoExe < (TiempoMedicionSeg * 1000)
TiempoExe= Valor Actual del Reloj - Tiempol
Si Valor campo magnético sensor> MagMax
Encender LED2,2
RPS = RPS + 1
Esperar a que campo magnético sensor< MagMin
Apagar LED2,2
RPM= (RPS * 60) / TiempoMedicionSeg
Visualizar en matriz de LEDSel valor de RPM
Si botón A pulsado ejecutar función Calibrar
Programa desarrollado con Makecode
- _.J
120
121
122
~~ •
s una sene de proyectos basados en e 1
acelerómet
. ro que tiene integrada la tarjeta
m1cro:bit.
sensorP .
Este .,
encual . erm,te medir la fuerza de acelerac,on
,____
_
qu,erde los tres ejes.
----------
ElPr' - --
-- _ -~O~b~je:!:ti~vo~~----..:....----:---:-T-
1rnerpr - á un
senc;110 °Yecto basado en el acelerómetro ser
rn1.cro•b·Progra
ma que hará despertar a nues r
t a placa
1
• t cuand 0 1 , d rmir en
cuanto¡ a zarandeemos y se volvera a 0
a dejemostranquila. ,
123
:::-=~
~~~··-
...,. , . .