Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Minibloq + Arduino
Utilizacin del Entorno de Programacin Minibloq para programar
la Tarjeta Arduino
Ver. 1.0
Minibloq + Arduino
ndice
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Minibloq + Arduino
1.
Minibloq + Arduino
2.
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
Minibloq est en desarrollo. Estas son las caractersticas implementadas en la
ltima versin de trabajo
Fcil: Slo unos pocos clics y su primer programa se est ejecutando.
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.
Tiempo real, la comprobacin de errores.
Drag & drop bsico con giro automtico.
Interfaz avanzada: zoom, cortar y pegar, ventanas acoplables, y el teclado de
navegacin son slo algunas de las caractersticas de la interfaz grfica de usuario
de Minibloq. Y hay ms ...
Terminal incorporado: Hay una terminal integrado que le permite enviar y
recibir datos a la junta a travs de puertos serie / USB.
Todo-en-uno-listo-para-uso-solucin: Se trata de "bateras incluidas software".
El paquete incluye todo lo posible para empezar a trabajar.
Portable: No requiere la instalacin (a excepcin de los controladores necesarios
para tarjetas especficas, como Arduino ). Se puede ejecutar desde un pen drive
tambin. Ah, y se ejecuta por completo fuera de lnea, todos ellos en su propio
ordenador. Ms informacin: Usted puede tener copias paralelas de Minibloq,
incluso con la configuracin de diferentes que se ejecutan en el mismo equipo.
Rpido: Es una aplicacin nativa, compilado con C + + (GCC), con wxWidgets.
Por esta razn, Minibloq es adecuado para ordenadores de gama baja y
4
Minibloq + Arduino
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-pacifistaLicense). Esta licencia es bsicamente una licencia MIT, pero con una restriccin
que prohbe los proyectos militares.
Fcil integracin con hardware nuevo: Aadido soporte para nuevas
plataformas y placas ser sencillo. Esto puede no ser una caracterstica para los
principiantes, pero no ser tan difcil de todos modos. Compiladores y lenguajes
diferentes, incluso se podra aadir.
Internacionalizacin: La primera versin estar disponible en Ingls y Espaol,
pero el usuario y la comunidad pueden contribuir con nuevas traducciones, ya
que esto slo implica editar un archivo de texto.
Minibloq + Arduino
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:
1. Seleccionamos la tarjeta de entre el grupo de tarjetas
Minibloq.
Minibloq + Arduino
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.
Minibloq + Arduino
envindose a la tarjeta
Minibloq + Arduino
Al final de este manual se ofrece un ANEXO en elq eu estn comentado todos los
bloques de Minibloq.
Minibloq + Arduino
3.
Salida intermitente
con la
(apagada).
bloque de temporizacin
(tiempo de salida desactivada) durante 1000 ms. Es decir 1 seg.
10
Minibloq + Arduino
11
Minibloq + Arduino
4.
cero
que se activar
12
Minibloq + Arduino
con la
(apagada).
13
Minibloq + Arduino
14
Minibloq + Arduino
5.
15
Minibloq + Arduino
6.
1.
2.
siempre activo
en la que la
condicin es el estado de la entrada PIN 2 que se detectara mediante la funciones
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)
4.
16
Minibloq + Arduino
17
Minibloq + Arduino
7.
Semforo
En este ejemplo vamos a realizar un semforo. Utilizaremos las siguientes salidas
Lmpara Roja
Lmpara mbar
Lmpara Verde
PIN 13
PIN 11
PIN 10
Tr=Tiempo Rojo
2 seg.
Ta=Tiempo Ambar 1seg
Tv=Tiempo Verde 2 seg.
Minibloq + Arduino
Para ello se han utilizado funciones del tipo IOPin (setter) tanto para el encendido
como para el apagado.
Apagado
Encendido
19
Minibloq + Arduino
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.
1. En primer lugar definimos una variable que le llamaremoscount mediante el
Minibloq + Arduino
21
Minibloq + Arduino
22
Minibloq + Arduino
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.
De la misma manera que hemos hecho en el ejemplo anterior definimos la
variable count que almacenar el valor de contador.
Esta vez dispondremos de dos bucles tipo si uno para cada una de as dos
operaciones contar y descontar
1. Descontar:
3. Contar.
En este caso el condicional testea la entrada de contar hacia delante PIN 2 y lo
dems es igual que en el ejemplo del contador sencillo.
23
Minibloq + Arduino
24
Minibloq + Arduino
25
Minibloq + Arduino
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
3. Se ha previsto como en los casos anteriores la visualizacin del valor de la
variable count mediante la herramienta Terminal de Minibloq
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
27
Minibloq + Arduino
28
Minibloq + Arduino
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
30
Minibloq + Arduino
31
Minibloq + Arduino
32
Minibloq + Arduino
Esquema de la aplicacin.
33
Minibloq + Arduino
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
35
Minibloq + Arduino
36
Minibloq + Arduino
37
Minibloq + Arduino
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
Seguidamente vemos el cdigo generado pro Minibloq
38
Minibloq + Arduino
39
Minibloq + Arduino
40
Minibloq + Arduino
41
Minibloq + Arduino
42
Minibloq + Arduino
que se
definir con motor0<100 como parmetro de entrada dado que queremos que se recorra
el bucle 100 veces, hasta alcanzar el valor mximo de 100 como velocidad
2. La entrada del parmetro velocidad del motor se alimenta del propio valor
anterior de velocidad que se obtiene mediante el bloque Motor (captador)
Este bloque devuelve el estado de un motor elctrico conectado a una de
las salidas del motor del controlador. Se sumar 1 a este valor
3. Se ha terminado con un retardo retraso de 0.1 seg. para que esos incrementos
de velocidad sean ms perceptibles.
4. Finalmente, ejecutado el bucle se detiene el motor
43
Minibloq + Arduino
44
Minibloq + Arduino
45
Minibloq + Arduino
Proceso a seguir.
1. Esa vez definiremos la variable analgica de entrada como temp y le asignaremos
el valor 0 variable (crear)
2. Esta variable, ya dentro del bucle de repeticin continua del programa, la
reasignamos al valor tomado del canal Analog0 de Arduino equivalente a la
46
Minibloq + Arduino
47
Minibloq + Arduino
48
Minibloq + Arduino
49
Minibloq + Arduino
50
Minibloq + Arduino
Si
Si
51
Minibloq + Arduino
52
Minibloq + Arduino
53
Minibloq + Arduino
54
Minibloq + Arduino
55
Minibloq + Arduino
23. ANEXO
Biblioteca de Bloques de Minibloq para Arduino
Selector de acciones
Selector de
imgenes
Nombre y descripcin
Parmetros
componente de inicio
Este bloque indica el inicio del programa (o de
componentes ").
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
ninguno
mientras que
Este bloque es uno ", mientras que" el ciclo de
condicin: bool
comenzar. Todos los bloques entre ste y el
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
en la condicin lgica especificada.
condicin: bool
retraso
intervalo (ms):
Este bloque de fuerzas que el programa espere el
nmero de
intervalo de tiempo especificado (en milisegundos).
56
Minibloq + Arduino
variable (crear)
Este bloque se crea una variable y permite que lo
inicie, con el fin de almacenar un nmero, o el
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
seleccionada.
IOpin (setter)
Este bloque permite establecer el Estado de un
alfiler de salida del controlador digital.
AnalogWrite
Este bloque permite el control de una salida
analgica (PWM).
Valor inicial:
nmero
valor: nmero
valor: bool
valor: nmero
Serie (setter)
Este bloque permite que el programa para enviar
datos desde el puerto USB del controlador (o de un
puerto serie, dependiendo del hardware del
controlador) en el equipo.
Buzzer (setter)
valor: nmero
Motor (setter)
Este bloque permite controlar un motor elctrico
conectado a una de las salidas del motor del
controlador.
de energa (-100 a
100): nmero de
57
Minibloq + Arduino
ServoRC (setter)
Este bloque permite establecer la posicin (en
grados) de un servo R / C conectado a la placa.
ngulo: el nmero
De nmero_pantalla (setter)
ScreenBars (setter)
Este bloque permite mostrar cuatro nmeros (cada
nmero con un rango de 0 a 100) con formas de
barras en la pantalla del controlador (con LED de
8x8 pantallas de matriz).
bar1 (0 a 100):
nmero de
bar2 (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).
Nombre y descripcin
variable (getter)
Este bloque devuelve el valor almacenado
en la variable seleccionada.
Parmetros
ninguno
58
Minibloq + Arduino
Motor (captador)
Este bloque devuelve el estado de un
motor elctrico conectado a una de las
salidas del motor del controlador.
ninguno
ServoRC (captador)
Este bloque devuelve la posicin (en
grados) de un servo R / C conectado al pin
digital del controlador.
AnalogRead
Este bloque devuelve el valor de la entrada
del sensor analgico seleccionado.
timeStamp
Este bloque devuelve el nmero de
milisegundos desde el inicio del programa.
ramdom
Este bloque devuelve un nmero
pseudoaleatorio entre 0 y 100.
buzzerNote (constante)
Este bloque devuelve la frecuencia que
pertenece a la nota seleccionada.
nmero (constante)
Este bloque devuelve un nmero
constante.
ninguno
ninguno
ninguno
ninguno
ninguno
ninguno
pi (constante)
Este bloque devuelve la constante pi con
un nmero limitado de decimales
(3,14159265358979323846).
ninguno
59
Minibloq + Arduino
e (constante)
Este bloque devuelve la constante e (o "el
nmero de Euler") con un nmero limitado
de decimales (2.7182818284590452354).
ninguno
valor1: nmero
valor2: nmero
aadir
Este bloque permite aadir nmeros,
variables y otras expresiones aritmticas.
Nota: Ms operandos
(valores) se puede aadir
con el botn "Aadir
parmetros":
sustraer
valor1: nmero
valor2: nmero
valor1: nmero
valor2: nmero
multiplicar
Este bloque permite multiplicar nmeros,
variables y otras expresiones aritmticas.
Nota: Ms operandos
(valores) se puede aadir
con el botn "Aadir
parmetros":
dividir
Numerador: Nmero
Este bloque permite dividir nmeros,
variables y otras expresiones aritmticas. Denominador: nmero
Tambin le permite escribir nmeros como de
fracciones.
valor: nmero
poder
base: nmero
Este bloque permite subir el primer
parmetro numrico (base) y el exponente exponente: el nmero
(o potencia) dada por el parmetro
60
Minibloq + Arduino
numrico segundos.
abs
Este bloque devuelve el valor absoluto del valor: nmero
nmero o la expresin aritmtica a su
izquierda.
mdulo (resto)
valor1: nmero
valor2: nmero
mnimo
valor1: nmero
mximo
Este bloque devuelve el mximo de dos
nmeros, variables u otras expresiones
aritmticas.
valor2: nmero
valor1: nmero
valor2: nmero
valor: nmero
mapa
Este bloque permite mapear linealmente
un valor numrico de un rango de valores
(fromLow a fromHigh) a otro rango
(toLow a toHigh).
fromLow: nmero
fromHigh: nmero
toLow: nmero
toHigh: nmero
constreir
valor: nmero
Este bloque permite limitar un nmero,
una variable o cualquier otra expresin
a: nmero de
aritmtica a un valor entre un mnimo (a) y
un mximo (b).
b: nmero
seno
Este bloque devuelve el seno del ngulo
dado por el nmero o la expresin
aritmtica a su izquierda (en radianes).
valor: nmero
61
Minibloq + Arduino
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
ngulo dado por el nmero o la expresin
aritmtica a su izquierda (en radianes).
valor: nmero
arcsin
Este bloque devuelve el ngulo (en
radianes) cuyo seno es el nmero o la
expresin de la izquierda.
valor: nmero
arcocoseno
Este bloque devuelve el ngulo (en
radianes) cuyo coseno es el nmero o la
expresin de la izquierda.
valor: nmero
arcotangente
Este bloque devuelve el ngulo (en
radianes) cuya tangente es el nmero o la
expresin de la izquierda.
valor: nmero
IrRemote
Este bloque devuelve el nmero que se
obtiene a partir de un sensor de control
remoto por infrarrojos.
ninguno
Ping
Este bloque devuelve la distancia (en cm),
medido con un sensor ultrasnico PING
como Parallax))) [TM], SEN136B5B
Seeedstudio o similar.
ninguno
62
Minibloq + Arduino
real (constante)
Este bloque siempre devuelve "true".
falsa (constante)
Este bloque siempre devuelve "false".
igual
Este bloque permite comparar los
nmeros, y devuelve "true" si se
mantiene la igualdad.
Parmetros
ninguno
ninguno
ninguno
valor1: nmero
valor2: nmero
no es igual
valor1: nmero
Este bloque permite comparar nmeros
y devuelve "true" si estos no son
valor2: nmero
iguales.
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
mayor que
valor1: nmero
Este bloque permite comparar los
nmeros (o expresiones aritmticas), y
devuelve "true" si el primer parmetro valor2: nmero
es mayor que el segundo.
menor o igual
valor1: nmero
Este bloque permite comparar los
nmeros (o expresiones aritmticas), y
devuelve "true" si el primer parmetro valor2: nmero
es menor o igual a la segunda.
mayor o igual
valor1: nmero
Este bloque permite comparar los
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
(boolean) expresiones.
valor: bool
valor1: bool
valor2: bool
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
64
Minibloq + Arduino
XOR (o-exclusivo)
valor1: bool
Este bloque hace un lgicas (booleanas)
"Exclusivo-O" (XOR) y devuelve el
valor2: bool
resultado.
Nombre y descripcin
sonrisa (constante)
Este bloque devuelve la "cara de la
sonrisa" sprite.
Parmetros
ninguno
ninguno
enojado (constante)
Este bloque devuelve la "cara enojada"
sprite.
heartSmall (constante)
Este bloque devuelve el "corazn
pequeo" sprite.
heartBig (constante)
Este bloque devuelve el "corazn
grande" sprite.
ninguno
ninguno
ninguno
65
Minibloq + Arduino
invader0 (constante)
Este bloque devuelve el "Invader 0"
sprite.
invader1 (constante)
Este bloque devuelve el "Invader 1"
sprite.
invader2 (constante)
Este bloque devuelve el "Invader 2"
sprite.
invader3 (constante)
Este bloque devuelve el "Invader 3"
sprite.
ninguno
ninguno
ninguno
ninguno
Este ANEXO ha sido extrado de la pgina Web que alberga e software Minibloq
66