Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Construir Minibloques en Arduino PDF
Construir Minibloques en Arduino PDF
Minibloq + Arduino
Utilizacin del Entorno de Programacin Minibloq para programar
la Tarjeta Arduino
Ver. 1.0
+
ndice
2
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
3
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
Descripcin General
Minibloq es un entorno de programacin grfica para Arduino , Multiplo,
dispositivos fsicos informticos y robots. Una de sus principales objetivos es llevar la
computacin fsica y las plataformas robticas a la escuela primaria, los nios y
principiantes.
Caractersticas
En tiempo real generador de cdigo: Se crea el cdigo, mientras que usted est
agregando bloques o modificar los valores de parmetros, que muestra el cdigo
en una ventana de sintaxis de colores. De esta manera, Minibloq facilita la
transicin a la programacin basada en texto.
4
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
Prximas caractersticas
Libre y con las fuentes: El programa estar disponible de forma gratuita, en su
versin completa. Sin cargos para funciones avanzadas o similares. Slo tienes
que descargar y empezar a usarlo. Adems, el cdigo fuente completo tambin
estar disponible. La licencia se llama RMPL (RobotGroup-Multiplo-pacifista-
License). Esta licencia es bsicamente una licencia MIT, pero con una restriccin
que prohbe los proyectos militares.
5
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
Como utilizarlo:
Descargar la herramienta en http://blog.minibloq.org/
Una vez instalado el software bastar con iniciar el programa y aparecer el entorno:
Proceso a seguir:
6
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
2. Se conecta la tarjeta al puerto USB y dejando unos segundos para que la detecte
el software se selecciona el puerto en el que se ha conectado en el lugar
correspondiente del entorno.
7
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
8
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
Al final de este manual se ofrece un ANEXO en elq eu estn comentado todos los
bloques de Minibloq.
9
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
3. Salida intermitente
Nuestro primer ejercicio ser el encendido y apagado de un diodo led conectado
en la salida PIN 13 de la Tarjeta Arduino.
El programa lo que debe hacer es activar la salida PIN 13 durante 0,2 seg. Y
desactivarla durante 1 seg. En un bucle continuo.
bloque IOPin (setter) solo que esta vez le ponemos la constante falsa
(apagada).
botn ejecutar
10
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
11
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
Debemos definir una variable a la que llamaremos frecuencia que ser justo el
valor de los tiempos Te=tiempo encendido y Ta=tiempo apagado. En este caso ambos
vamos a hacerlos iguales, es decir:
Te=Ta=frecuencia
frecuencia=valor_Analog0 * 10
cero
12
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
13
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
14
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
entrega bloque de tipo IOPin (captador) al que le hemos asignado el valor D2 que
se corresponde ala entrada PIN 2 de Arduino
15
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
IOPin (captador) .
3. Si se cumple que la entrada PIN 2 vale true entonces se ejecuta la parte si del
condicional mediante la instruccin IOPin (setter)
16
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
17
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
7. Semforo
En este ejemplo vamos a realizar un semforo. Utilizaremos las siguientes salidas
Para ello se han utilizado funciones del tipo IOPin (setter) tanto para el encendido
como para el apagado.
Apagado Encendido
19
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
8. Contador Sencillo
Contar es una funcin muy til en los sistemas, es por ello por lo que a
continuacin vamos a estudiar el siguiente ejemplo.
Se trata de contar los impulsos que van entrando por una de las entradas digitales
PIN 2.
Para constatar que se est realizando la cuenta haremos uso del terminal de
visualizacio0n de puerto que incorpora el software Minibloq, mediante este terminal
veremos como se va incrementando el valor del contador a medida que se van recibiendo
los impulsos de cuenta.
En la figura anterior podemos observar como seria el algoritmo para realizar esta
aplicacin y el cdigo generado.
20
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
21
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
22
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
9. Contador adelante/atrs
Esta es una variante del ejercicio anterior en la que deseamos poder contar hacia
adelante o hacia atrs haciendo uso de dos entradas digitales Digilal2 y Digital3
correspondientes a los pines PIN 2 y PIN 3 de la tarjeta Arduino respectivamente.
Esta vez dispondremos de dos bucles tipo si uno para cada una de as dos
operaciones contar y descontar
1. Descontar:
3. Contar.
23
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
24
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
25
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
Esta vez dispondremos de dos bucles tipo si uno para cada una de las dos
operaciones poner a cero y contar
1. Bucle de puesta a cero. En este caso se trata de montar un bucle condicional del
tipo si cuya condicin de ejecucin es encontrase pulsado el botn que
colocamos en la entrada D3 PIN 3 de la tarjeta. Si se cumple la variable se
ejecuta:
count=0
2. Bucle de cuenta. Este es exactamente igual que en los casos anteriores. El bucle
se ejecuta siempre que entre un valor true por la entrada D2 PIN 2 de la tarjeta
Arduino:
count=count+1
En la figura siguiente vemos el esquema grafico del algoritmo que se debe crear junto
con el cdigo generado para enviar al IDEArduino
26
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
27
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
3. El primer bucle ser para testear si se pulso la orden de para generar los 5
impulsos que vendr de la entrada D2
28
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
8. Finalmente fuera del bucle en el bucle anterior se debe poner de nuevo a cero la
variable count ya que se supone que si no se cumple la condicin count<5 es
porque ya se ha alcanzado el final de cuenta.
29
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
30
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
31
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
Vamos a realizar una funcin con tres variables de entrada D2, D3 y D4 (PIN 2,
PIN 3 y PIN 4 de Arduino). La salida se llevar a la salida digital D13_LED PIN 13 de
Arduino. La funcin ser:
Modo de resolucin.
32
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
Esquema de la aplicacin.
33
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
Proceso:
3. Realizacin del segundo bucle: En este segundo bucle tambin se realiza durante
90 veces. El retroceso del servo se realiza estando 2 a la posicin anterior
(partiremos de 180) con retardos de 0,1 segundo. ServoRC (setter) y
retraso
34
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
35
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
36
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
37
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
5. Esto se hace porque el valor mximo que miden los sensores en esta
implementacin de Minibloq es 100 por lo que para alcanzar el valor mximo de
ngulo (180) tenemos que multiplicar por 1.8
38
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
39
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
40
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
41
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
42
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
2. La entrada del parmetro velocidad del motor se alimenta del propio valor
anterior de velocidad que se obtiene mediante el bloque Motor (captador)
3. Se ha terminado con un retardo retraso de 0.1 seg. para que esos incrementos
de velocidad sean ms perceptibles.
43
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
44
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
45
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
Proceso a seguir.
46
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
47
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
48
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
49
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
Las salidas a gobernar sern 3: PIN 10, PIN 11 y PIN13 (D10, D11 y D13 de
Minoibloq)
Las condiciones que se establecen para el gobierno de las salidas vienen dadas
por los rangos que figuran en la cabecera de las funciones condicionales si
50
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
51
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
52
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
53
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
54
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
Se trata de sacar el sonido NOTE_C4, esperar 0.3 seg. y NOTE_B4 duramte 0.2 seg. de
manera permanente.
55
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
23. ANEXO
Biblioteca de Bloques de Minibloq para Arduino
Selector de acciones
Selector de
Nombre y descripcin Parmetros
imgenes
componente de inicio
Este bloque indica el inicio del programa (o de
componentes ").
ninguno
Nota: Este bloque no est en el selector de acciones,
pero es una accin de todos modos. Minibloq aade
un componente de bloque de inicio de cada nuevo
componente de forma automtica
mientras que
Este bloque es uno ", mientras que" el ciclo de
comenzar. Todos los bloques entre ste y el condicin: bool
siguiente bloque de fin de ciclo se repite mientras la
condicin sigue siendo cierto.
repetir
Este bloque es uno ", mientras que" el ciclo de nmero de
comenzar. Todos los bloques entre ste y el iteraciones: nmero
siguiente bloque de fin de ciclo se repite mientras la
condicin sigue siendo cierto.
si
Este bloque permite la toma de decisiones, basado condicin: bool
en la condicin lgica especificada.
56
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
variable (crear)
Este bloque se crea una variable y permite que lo Valor inicial:
inicie, con el fin de almacenar un nmero, o el nmero
resultado de una expresin, por lo que se puede
utilizar en otras secciones del programa.
variable (asignar)
Este bloque permite asignar un valor a la variable valor: nmero
seleccionada.
IOpin (setter)
Este bloque permite establecer el Estado de un valor: bool
alfiler de salida del controlador digital.
AnalogWrite
Este bloque permite el control de una salida valor: nmero
analgica (PWM).
Serie (setter)
Este bloque permite que el programa para enviar
datos desde el puerto USB del controlador (o de un valor: nmero
puerto serie, dependiendo del hardware del
controlador) en el equipo.
Motor (setter)
Este bloque permite controlar un motor elctrico de energa (-100 a
conectado a una de las salidas del motor del 100): nmero de
controlador.
57
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
ServoRC (setter)
Este bloque permite establecer la posicin (en ngulo: el nmero
grados) de un servo R / C conectado a la placa.
De nmero_pantalla (setter)
Este bloque permite mostrar nmeros -99 a 99 en la valor (-99 a 99):
pantalla del controlador (con LED de 8x8 pantallas nmero de
de matriz).
bar0 (0 a 100):
nmero de
Bar3 (0 a 100):
nmero de
ScreenSprite (setter)
Este bloque permite mostrar uno de los sprites valor: Sprite
preinstalado en la pantalla del controlador (con LED
de 8x8 pantallas de matriz).
58
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
Motor (captador)
Este bloque devuelve el estado de un ninguno
motor elctrico conectado a una de las
salidas del motor del controlador.
ServoRC (captador)
Este bloque devuelve la posicin (en ninguno
grados) de un servo R / C conectado al pin
digital del controlador.
AnalogRead
Este bloque devuelve el valor de la entrada ninguno
del sensor analgico seleccionado.
timeStamp
Este bloque devuelve el nmero de ninguno
milisegundos desde el inicio del programa.
ramdom
Este bloque devuelve un nmero ninguno
pseudoaleatorio entre 0 y 100.
buzzerNote (constante)
Este bloque devuelve la frecuencia que ninguno
pertenece a la nota seleccionada.
nmero (constante)
Este bloque devuelve un nmero ninguno
constante.
pi (constante)
Este bloque devuelve la constante pi con ninguno
un nmero limitado de decimales
(3,14159265358979323846).
59
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
e (constante)
Este bloque devuelve la constante e (o "el ninguno
nmero de Euler") con un nmero limitado
de decimales (2.7182818284590452354).
valor1: nmero
valor2: nmero
aadir Nota: Ms operandos
Este bloque permite aadir nmeros, (valores) se puede aadir
variables y otras expresiones aritmticas. con el botn "Aadir
parmetros":
valor1: nmero
valor2: nmero
multiplicar Nota: Ms operandos
Este bloque permite multiplicar nmeros, (valores) se puede aadir
variables y otras expresiones aritmticas. con el botn "Aadir
parmetros":
60
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
numrico segundos.
abs
Este bloque devuelve el valor absoluto del valor: nmero
nmero o la expresin aritmtica a su
izquierda.
valor: nmero
mapa fromLow: nmero
Este bloque permite mapear linealmente
un valor numrico de un rango de valores fromHigh: nmero
(fromLow a fromHigh) a otro rango
(toLow a toHigh). toLow: nmero
toHigh: nmero
seno
Este bloque devuelve el seno del ngulo valor: nmero
dado por el nmero o la expresin
aritmtica a su izquierda (en radianes).
61
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
coseno
Este bloque devuelve el coseno del ngulo valor: nmero
dado por el nmero o la expresin
aritmtica a su izquierda (en radianes).
tangente
Este bloque devuelve la tangente del valor: nmero
ngulo dado por el nmero o la expresin
aritmtica a su izquierda (en radianes).
arcsin
Este bloque devuelve el ngulo (en valor: nmero
radianes) cuyo seno es el nmero o la
expresin de la izquierda.
arcocoseno
Este bloque devuelve el ngulo (en valor: nmero
radianes) cuyo coseno es el nmero o la
expresin de la izquierda.
arcotangente
Este bloque devuelve el ngulo (en valor: nmero
radianes) cuya tangente es el nmero o la
expresin de la izquierda.
IrRemote
Este bloque devuelve el nmero que se ninguno
obtiene a partir de un sensor de control
remoto por infrarrojos.
Ping
Este bloque devuelve la distancia (en cm),
medido con un sensor ultrasnico PING ninguno
como Parallax))) [TM], SEN136B5B
Seeedstudio o similar.
62
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
inferior
Este bloque permite comparar los valor1: nmero
nmeros (o expresiones aritmticas), y
devuelve "true" si el primer parmetro valor2: nmero
(valor 1) es menor que el segundo
(valor 2).
63
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
mayor que
Este bloque permite comparar los valor1: nmero
nmeros (o expresiones aritmticas), y
devuelve "true" si el primer parmetro valor2: nmero
es mayor que el segundo.
menor o igual
Este bloque permite comparar los valor1: nmero
nmeros (o expresiones aritmticas), y
devuelve "true" si el primer parmetro valor2: nmero
es menor o igual a la segunda.
mayor o igual
Este bloque permite comparar los valor1: nmero
nmeros (o expresiones aritmticas), y
devuelve "true" si el primer parmetro valor2: nmero
es mayor o igual a la segunda.
no
Este bloque permite negar la lgica valor: bool
(boolean) expresiones.
valor1: bool
valor2: bool
y Nota: Ms operandos
Este bloque hace un lgicas (booleanas) (valores) se puede aadir
"Y" y devuelve el resultado. con el botn "Aadir
parmetros":
valor1: bool
valor2: bool
o
Este bloque hace un lgicas (booleanas) Nota: Ms operandos
"o" los retornos y el resultado. (valores) se puede aadir
con el botn "Aadir
parmetros":
64
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
enojado (constante)
Este bloque devuelve la "cara enojada" ninguno
sprite.
heartSmall (constante)
Este bloque devuelve el "corazn ninguno
pequeo" sprite.
heartBig (constante)
Este bloque devuelve el "corazn ninguno
grande" sprite.
65
Minibloq + Arduino Jos Manuel Ruiz Gutirrez
invader0 (constante)
Este bloque devuelve el "Invader 0" ninguno
sprite.
invader1 (constante)
Este bloque devuelve el "Invader 1" ninguno
sprite.
invader2 (constante)
Este bloque devuelve el "Invader 2" ninguno
sprite.
invader3 (constante)
Este bloque devuelve el "Invader 3" ninguno
sprite.
Este ANEXO ha sido extrado de la pgina Web que alberga e software Minibloq
66