SlideShare una empresa de Scribd logo
1 de 69
Descargar para leer sin conexión
1
Mind+
Manual de Usuario y Tutorial Básico
Mind+ es una potente herramienta de
Programación Visual para Arduino
Prof. José Manuel Ruiz Gutiérrez
Marzo 2014
2
Índice
1. ¿Qué es Mind+?
2. ¿Cuestiones básicas para empezar?
3. Nuestro primer trabajo con Mind+
4. Intermitente usando bloque retardo.
5. Intermitente usando Bloque Temporizador
6. Activación de una salida en modo biestable
7. Secuencia de encendido sin bucle
8. Semáforo
9. Secuencia de encendido con bucle.
10.Temporizaciones. Monoestables.
11.Lee un valor analógico y lo envía al puerto
12.Intermitente con variación de tiempo.
13.Medida de Luz con activación de salida.
14.Medida de luz y detección de niveles.
15.Contador con bucle de suma
16.Contador de dos bits.
17.Contador 3 bits
18.Control de un Servo y salida PWM
19.Activación de Servo siguiendo una curva de valores dada.
20.Generador de señal Lineal (Rampa)
21.Generador de impulsos.
22.Emulación Sensor Capacitivo
23.Receptor básico de Infrarrojos
24.Gobierno de Salida con Infrarrojos
25.Medida de Temperatura con Alarma
26.Medida de temperatura y humedad
27.ANEXO I
José Manuel Ruiz Gutiérrez
Marzo 2014. Ver1
Este trabajo está bajo licencia Creative Commons Attribution 3.0 Unported License)
3
1. Que es MindPLus (Mind+)?
Se trata de una herramienta de programación gráfica que permite realizar aplicaciones
para la Plataforma Open Hardware Arduino.
El entorno está basado en la elaboración de un esquema a base de bloques de función
enlazados que se ajustan a las distintas funciones que se realizan sobre los terminales de
la tarjeta Windows encaminadas a la gestión de las E/S de esta.
Mind+ dispone una amplia librería de bloques de función con los que podemos realizar
una amplia gama de aplicaciones.
Ventajas de la Herramienta:
Su carácter grafico. Esto nos descarga de la laboriosa labor de escribir nuestros
programas en el IDE de Arduino.
Generación de código. Esta posibilidad permite generar y descargar el código
sobre el micro controlador y después poder liberar la conexión con el PC y tener
nuestra aplicación totalmente programada.
4
Amplia colección de librerías. Existe una amplia gama de librerías de bloque de
función que permiten la manipulación de los pines de Arduino.
Posibilidad de edición de los bloques de librería e incluso creación de bloques
propios. Para esto la herramienta viene acompañad de un software llamado
BlockMaker con el que es posible incluir nuevos bloques con código compatible
con el IDE de Arduino e incluso compatibilizando las llamadas a las librerías de
Arduino.
5
Muy adecuado a la educación. Esta herramienta es muy útil para la educación ya
que permite de in modo fácil estudiar las posibilidades de la plataforma Arduino.
Permite la conexión con distintas plataformas Arduino. Se puede realizar la
programación de distintas variedades de Arduino.
La herramienta en el momento de finalizar este manual se encuentra en fase de
evaluación con la versión0.96c que se puede descargar http://www.mindplus.cc/
Min+ permite la sencilla creación de prototipos en muy poco tiempo. Nos libera de la
tediosa escritura de código y está abierto a la ampliación.
6
Estas son las etapas en el desarrollo de una aplicación
Versiones disponibles de Mind+
Existen tres versiones de Mind+: para Windows, para Mac y para Linux
Requisitos para el funcionamiento.
Es importante que nuestro ordenador tenga instalado ya el driver correspondiente para el
reconocimiento de la tarjeta Arduino. Debemos saber también en que numero de puerto
esta conectada. Esto se puede hacer directamente desde el IDE de Arduino en su menú
de opciones “Herramientas” lo podemos encontrar.
En la página web de Mind+ hay documentación en la que se describe con detalle la
instalación del software.
7
2. Cuestiones básicas para empezar.
NOTA MUY IMPORTANTE:
Este manual se ha realizado con una versión de las librerías de funciones parte de ellas
traducidas al español. Para poder cargar los ejemplos que se abordan es preciso
colocar la carpeta –Español dentro de la carpeta Blocks que a su vez esta dentro de la
carpeta Resources.
..Mind+resourceBlocks
..Mind+resourceBlocks-Español
Los ejemplos se pueden colcar en una carpeta dentro de la carpeta Mind+
..Mind+Ejemplos manual
Las librerías han sido traducidas solo a nivel de sus nombres y ventanas de texto de
ayuda que muestran en cada uno de sus terminales.
Bloques de función.
Los bloques de función tienen una estructura básica que conviene tener en cuenta. En la
figura vemos un ejemplo.
Las cajas de parámetros permiten la introducción de los parámetros (numérico, texto,
PIN, etc.), también pueden recibir valores de otros bloques (bloques de salida).
Las salidas entregan normalmente estado ON, OFF que sirven para activar la entradas
de otros bloques.
Los conectores se establecen con la ayuda del ratón: manteniendo pulsado el botón
derecho del ratón sobre el bloque de comienzo de la conexión y arrastrando y soltado en
el terminal final de la conexión.
Los terminales, para ser unidos, deben ser de la misma naturaleza en cuanto a los datos
que emiten o reciben.
8
Ayuda:
Todos los bloque muestran una caja de texto de ayuda cuando dejamos el raton sobre el
termina correspondiente. Esta ayuda nos permite comprender mejor la funcionalidad de
ese terminal.
Borrar bloques y enlaces:
Para borrar un bloque se marca con el ratón (botón izquierdo), el bloque se queda
marcado con un contorno amarillo y luego pulsamos directamente en el icono de la
papelera (parte superior derecha de la barra de menú) y se borra. También se borra si
pulsamos la tecla DEL.
Para borrar un enlace se procederá de similar manera. Se marca el enlace a borrar, se
colorea de amarillo y se pulsa el botón de la papelera o la tecla DEL.
9
Conexiones entre Bloques.
El bloque Start emite la orden de activación de los bloques, aunque también
estos se pueden activar con las salidas de otros bloques o incluso se pueden establecer
realimentaciones ente la salida y la entrada de un mismo bloque.
En el caso A se activa la función Leer Digital uniendo la salida Start con la entrada de
este bloque.
Es posible conectar las salidas de un bloque con las entradas de otros, con el fin de
realizar la activación de unas funciones detrás de otras, tal como se indica en el caso B
de la figura.
En ocasiones se pueden realizar realimentaciones de bloques. Así lo podemos ver en el
caso C de la figura anterior. Esto permite que se este ejecutando el bloque de manera
permanente. La idea es que una vez realizada la operación, los bloques activan sus
salidas para permitir la actuación progresiva de las siguientes.
Los bloques intercambian entre ellos información. Por ejemplo si deseamos realizar una
estructura condicional tomando un valor leído en una entrada analógica para activar una
salida si se cumple una condición tendremos que realizar conexiones entre bloque que
se envían información. En la figura lo vemos.
Se lee el canal analógico A0 y se envía el valor al bloque IF, a la vez, para activar el
bloque IF llevamos la salida del bloque Leer Analógica a la entrada del bloque IF. En
este caso cuando se lee el valor del canal A0 se activa seguidamente la salida del bloque
de lectura. Vemos que la salida del bloque IF la conectamos al bloque Escribir Digital,
10
ya que del mismo modo que en el caso anterior, una vez ejecutado el bloque IF se
activan las salidas de este bloque, para permitir el desarrollo de la secuencia de
ejecución.
Una misma salida de activación puede ir a más de una entrada. Se supone que en este
caso los bloques que son excitados por la misma señal se ejecutan a la vez.
En la figura vemos que la entrada digital PIN2 gobierna a la vez, mediante un bloque
Leer Digital, las salidas PIN3 y PIN13 de los dos bloques Escribir Digital.
Flujos de datos y órdenes.
No olvidemos que los conectores rojos son para trasladar datos e informaciones y los
conectores azules son para trasladar órdenes.
El menú.
En cuanto al menú del entorno es muy sencillo. En la figura vemos los principales
comandos.
Componentes de librería.
11
Hay dos formas de mostrar los componentes de librería una en la que se muestran los
más usuales e importantes y otra en la que se muestran todos. Se conmuta mediante los
botones que figuran en la parte inferior izquierda.
En la figura vemos los dos tipos de librerías, la básica y la completa. Las librerías están
en una carpeta dentro de la carpeta en donde está el programa Mind+ llamada:
MindPlusV096cMindplus096cresourceBlocks
Dedicaremos en este o en otro manual un espacio al comentario de cómo modificar y/o
crear nuevos bloques de función con la herramienta BlockMaker.
Nota IMPORTANTE Sobre las Librerías
Para la realización de este trabajo he traducido las librerías que viene con la versión de
distribución de Mind+ al español y las he colocado en una carpeta llamada “Español”.
Los ejemplos que voy a realizar en este manual están co9nstruidos con esta librería
traducida, por lo que es necesario disponer de ella copiada en la carpeta de los bloques:
MindPlusV096cMindplus096cresourceBlocks-Español
12
3. Nuestro primer trabajo con Mind+
En este primer ejemplo hacemos uso del bloque “Intermitente” que se encuentra en la
librería de “Bloques Básicos”.
La función que realiza es activar una salida que seleccionamos en su parámetro de
entrada “PIN de Salida” y el valor del tiempo que deseamos que dure activada y
desactivada esta salida.
Al pulsar dos veces sobre el triángulo rojo del parámetro se abrirán sendas ventanas de
recogida de datos en las que seleccionamos el PIN y el tiempo.
La realización del conexionado de los bloques es muy sencilla. Basta con pulsar en el
lugar “START” y manteniendo pulsado llegar a al triángulo azul de entrada o
activación. En la figura vemos el procedimiento.
13
Una vez realizado el conexionado del bloque y colocados sus parámetros pulamos en el
icono “Upload” y aparecerá la venta de la siguiente figura. Si es necesario
seleccionamos la tarjeta que tenemos conectada y también el puerto (por defecto ya nos
indicará el adecuado).
Pulsaremos en el texto Upload y el programa se cargará en la tarjeta Arduino.
Después pulsamos en “Done” y nuestro programa estará funcionando.
El ejemplo se encuentra en el fichero: blink.mps
El siguiente es el montaje de este ejemplo.
14
15
4. Intermitente usando bloque retardo.
Esta vez vamos a realizar un intermitente que básicamente funcionará como el anterior
pero lo implementaremos con otros bloques.
Bloques a usar: 2 Bloques LED de la librería “Mind+Kit”
2 Bloques Retardo de la librería “Tiempo”
El bloque LED tiene dos entradas por las cuales lo activamos o lo desactivamos ON y
OFF son los nombres de estas. En la parte superior tiene una entrada de parámetros por
la que seleccionábamos el PIN sobre el que queremos trabajar. En realidad el bloque
hace lo que la función digital.Write del IDE de Arduino.
Las salidas del bloque igual que la entrada son ON y OFF se activan cuando se ejecuta
la función LED.
Cableamos la entrada ON a START para activar el bloque
Con la entrada OFF se desactivaría la salida.
Cuando activamos la entrada ON se activa también la salida ON y si desactivamos con
la entrada OFF también se activa la salida OFF
El bloque de Retardo se activa a través de su entrada ON y una vez finalizado el
tiempo se activa su terminal de salida.
Hemos colocado los bloque LED asociados al PIN 5 unidos por los bloques de
Retardo, teniendo en cuenta que una vez finalizado el tiempo del primer bloque de
Retardo se debe desactivar la salida PIN 5 y a la vez se activa el bloque de Retardo
16
segundo que una vez finalizado su tiempo su salida volverá a activar el PIN 5
(realimentación).
Hemos seleccionado 500 ms de tiempo pero aquí podemos controlar el tiempo se
encendido (primer bloque de Retado) y el de apagado (segundo bloque de Retardo)
Una vez realizado el cableado se procedería a descargar la aplicación sobre la tarjeta
(mediante el botón “Upload”)
El montaje sobre protoboard seria el siguiente.
Fichero del ejercicio: blink1
17
5. Intermitente usando Bloque Temporizador
Vamos a utilizar en este ejemplo un nuevo bloque llamado “Temporizador” y que
funciona exactamente como un temporizador. Cuando se activa su señal de entrada ON
se pone a temporizar, sacando por su salida de parámetro el “Valor de Tiempo
Actual”. Una vez que termina el tiempo se activa la primera salida (superior) del
bloque. Mientras temporiza la salida inferior se mantiene activa.
El valor del tiempo se introduce en el bloque como un parámetro mediante la caja de
entrada de valor que aparece cuando pulsamos dos veces seguidas en la entrada de este
parámetro.
La idea es activar y desactivar una salida digital, que esta vez hemos seleccionado en el
PIN3. Para conseguir el “basculamineto de la señal” lo hacemos mediante el bloque
“Interruptor Switch” que actúa como biestable.
En la siguiente figura vemos este nuevo bloque “Interruptor Switch”.
La salida del temporizador la realimentamos con la entrada para que de ese modo se
generen las temporizaciones en modo “bucle” consiguiendo el encendido y apagado
del Led conectado en el PIN3
18
Este serie el montaje sobre protoboard del ejemplo.
Fichero: blink_con_temporizador
19
6. Activación de una salida en modo biestable
Antes de nada explicare como funciona un nuevo bloque de función que vamos a
utilizar: Bloque Botón.
Este bloque se encarga de programar un PIN digital de Arduino en una entrada digital.
Los parámetros que le debemos designar son el PIN y el tiempo de retardo antirrebotes.
Sus entradas son dos: Una la que activa el bloque y otra la que lo desactiva.
Sus salidas son dos y simplemente son las salidas ON y OFF de cualquier bloque
general que sirven para trasladar la orden de activación del bloque siguiente en
secuencia, después de ejecutada en este caso la lectura del PIN de entrada establecido.
El bloque de la figura pertenece a las librerías Mind+Kit pero hay uno similar definido
en la librería “Básicos”.
El bloque similar de la librería “Básicos es el siguiente.
A)Por flanco de subida
Con esta aplicación gobernaremos una salida digital con una entrada digital en
modo biestable, es decir con memoria. Se trata de utilizar un bloque muy
interesante llamado “Interruptor Swtich” que recibe impulsos e su entrada y
cambia el estado de sus salidas guardando el estado en el que se queda, es decir
se trata de un biestable.
20
La manera de activar este bloque biestable puede ser o bien actuando con el
flanco se subida o bien de bajada de las señal de entrada. En ambos casos se
mantiene la función de memoria pero cambia el modo de activación.
En el montaje vemos que un bloque “Botón” gobierna al bloque “Interruptor
Switch” y lo hace en su salida.
La entrada que designamos es el PIN2 y la salida el PIN3.
Cuando pulsemos el botón del pulsador puesto en el PIN2 cambiara de estado la
salida PIN3.
Fichero: boton_activa_al_Pulsar
B)Por flanco de bajada
En este montaje he introducido un nuevo bloque “Escribir Digital” que este en la
librería “Básicos” y que funciona exactamente igual que el bloque LED ya
comentado anteriormente.
Las dos entradas sirven para poner en 0 o e 1 el PIN que designemos en la
entrada de parámetros “Selecciona PIN”. Las salidas sirven para propagar las
ordenes de activacio0n y desactivación de los bloques que vengan a
continuación.
Este montaje en lo único que varía es en el conexionado de las salidas del bloque
“Interruptor Switch” con el bloque “Escribir Digital” que están cruzadas.
21
En este caso se gobierna el bloque “Iterruptor Switch” con flancos de bajada
en su entrada.
Fichero: boton_activa_al_Soltar
El montaje sobre protoboard es el siguiente.
22
7. Secuencia de encendido sin bucle
En algún caso podríamos querer encender hasta tres LEDs en secuencia con tiempos
distintos. Para ello bastaría encadenar Retardos y bloques LED.
Este es el ejemplo que vemos en la figura.
Utilizaremos tres salidas digitales PIN3, PIN4 y PIN5 que estarán gobernadas mediante
los bloques de función LED de la librería Min+Kit.
Los bloques de Retardo los fijamos a 500 ms.
Debemos fijarnos en el conexionado de los bloques ya que los bloques LED poseen dos
salidas una ON y otra OFF las salidas que usamos son las ON, esto significa que cuando
se activa el bloque LED (se enciende el Led conectado en el PIN) a la vez se pone en
marcha el bloque Retardo, el cual una vez transcurrido su tiempo se activa su salida que
será la misma que active el siguiente bloque LED.
No olvidemos que la secuencia una vez ejecutada no vuelve a realizarse dado que no
hemos realimentado la última acción del bloque LED con el primero. Tendríamos que
pulsar el botón de “Reinicio” de la tarjeta de Arduino para conseguir realizar e nuevo el
encendido de los LEDs.
La secuencia se realiza nada mas iniciar Arduino y una vez encendidos los Leds se
quedan así. Para volver a ejecutar la secuencia debemos pulsar el botón Reset de la
tarjeta Arduino.
El fichero del ejemplo se denomina secuencia_simple
El montaje es el de la figura siguiente
23
24
8. Semáforo.
En este ejemplo mostramos la posibilidad de realizar un semáforo simplemente
realizando el enlazado de bloques de “Retardo” y “Escribir Digital” realimentadas.
Las salidas establecidas son PIN3, PIN4 y PIN5.
El montaje es el siguiente.
El fichero del ejemplo es: semáforo
25
9. Secuencia de encendido con bucle
A continuación vemos la realización de una secuencia de encendido de Leds en forma
de bucle repetitivo. Se utilizaran de nuevo las salidas digitales PIN3, PIN4 y PIN5.
Vemos que los bloques utilizados son simplemente de dos tipos: Escribir Digital y
Retado
En esta ocasión colocaremos los bloques de “Retardo” de tal manera que los leds
realicen la secuencia siguiente.
Nº Sec. PIN3 PIN4 PIN5
1 1 0 0
2 1 1 0
3 1 1 1
4 0 1 1
5 0 0 1
1 1 0 0
… … … …
Fichero: secuencia_bucle
Otra posibilidad de realizar una secuencia sería la que se lleva a cabo con el montaje
siguiente.
26
Nº Sec. PIN3 PIN4 PIN5
1 1 0 0
2 0 1 0
3 0 0 1
4 1 0 0
… … … …
Fichero: secuencia_bucle2
El montaje sobre protoboard es el siguiente.
27
10. Temporizaciones. Monoestables.
Par realizar temporizaciones se recurre al bloque “Temporizador” con este se pueden
implementar monoestables. En esta practica montaremos dos tipos de monoestables.
A) Temporización con flanco de subida
En este primer tipo se trata de activar la temporización con un flanco de subida,
es decir cuando la señal en el PIN2 de entrada pasa de valer 0 a valer 1 (al pulsar
el botón)
Este diagrama de tiempo muestra con claridad el efecto del monoestable a nivel
temporal.
Los bloques que se utilizan son tres. El bloque “Leer Digital” recoge el valor de
la entrada PIN2 y cuando se produce el cambio de nivel –flanco ascendente- se
activa el temporizador al que le hemos colocado el parámetro de tiempo en valor
de 3000 ms. La salida del temporizador se lleva finalmente a un bloque se salida
digital “Escribir Digital” que es el que gobierna el estado del PIN3 de Arduino
al que le hemos colocado un diodo led. Obsérvese que las salidas del
“Temporizador” y las entradas del bloque “Escribir Digital” están cruzadas.
Fichero: monoestable1
B) Temporización con flanco de bajada
En este segundo tipo de monoestable se trata de activar la temporización con un
flanco de bajada, es decir cuando la señal en el PIN2 de entrada pasa de valer 1
a valer 0 (al soltar el botón)
28
Este segundo diagrama de tiempo muestra con claridad el efecto del monoestable a
nivel temporal.
Los bloques que se utilizan en este segundo montaje son exactamente los mismos. La
salida del temporizador se lleva finalmente a un bloque se salida digital “Escribir
Digital” pero se hace directamente de la primera salida del bloque “Temporizador” a
la primera entrada del bloque “Escribir Digital” y la segunda a la segunda.
Fichero: monoestable2
El montaje en la protoboard es el siguiente.
29
11. Lee un valor analógico y lo envía al puerto
Aquí vamos a trabajar con los siguientes bloques: 1 Bloque de Leer Analógica
1 Bloque Envía Número P.Serie
1 Bloque Retardo
El Bloque de lectura analógica realiza la función equivalente a la instrucción
analog.Read de IDE de Arduino. El blooque se activa por la entrada ON y genera una
orden de lectura en el canal analógico indicado en la entrada de parámetros “Selecciona
PIN de Arduino”. Los valores de lectura real oscilan entre 0 y 1024 pero en este bloque
podemos realizar el escaldo de ese rango y llevarlo a otro por ejemplo de 0 a 100, estos
valores se acotan mediante los parámetros de entrada “Valor Desde” y Valor Hasta”.
El valor de salida se recoge en el terminal de datos “Valor Salida” La salida “Activa
Siguiente Bloque” traslada la oren para gobernar el siguiente bloque que pusiéramos.
El siguiente bloque que hemos incluido es el bloque “Envía Número P. Serie” que se
encarga de enviar al puerto serie el valor que coloquemos en su entrada de parámetros
segunda “Dato Numérico” colocando un texto en la entrad primera “Etiqueta Texto
Enviar”. La orden de envía se ejecuta cuando en la entrad del bloque aparece un “1”
True y su salida “Activo Cuando acaba el envío” indica que se ha ejecut5ado la orden
El montaje es muy sencillo. Se activa con START el bloque “Leer Analógica” llevando
el dato “Valor Salida” a la entrada del bloque de envío al puerto. Por otro lado la salida
del bloque se lleva a la entrada de este bloque de envío para que se ejecute.
30
La salida del bloque de envío al puerto se lleva a un temporizador para que con una
cadencia de 500 ms. Se repitan los envíos (realimentándose al bloque de envío)
Cuando descarguemos la aplicación a la tarjeta Arduino podremos visualizar el valor
que se está leyendo mediante el “Monitor de Puerto” que tiene Mind+. Icono
que automáticamente abre una ventana de visualización como la de la figura.
Habilitando la casilla aparecen retornos línea automáticos en la
visualización.
Fijémonos en el número puerto y en la velocidad es importante .
La velocidad debe ser 9600 porque así está programado el bloque.
31
Desde esta ventana también podemos enviar datos a Arduino. Ya veremos algún
ejemplo más adelante.
El fichero de esta aplicación es: analogica1
En la figura siguiente vemos el montaje en protoboard de la aplicación.
32
12. Intermitente con variación de tiempo
Una vez que hemos realizado la práctica anterior vamos a continuar con las señales
analógicas. Esta vez la propuesta consiste en realizar un “Intermitente” pero con el
tiempo variable. Se trata de que el valor de temporización se recoja de una entrada
analógica, pongamos de la entrada A0.
Inyectamos el valor leído en el canal A0 en la entrada de parámetro “Tiempo” del
bloque “Retardo”.
Actuaremos en la salida PIN3 en donde escribiremos Cero y Uno con este retardo
establecido. Lo más importante es ver como la salida del segundo retardo se lleva no
solo al primer bloque de “Escribir Digital” para que la vuelva a activar.
No olvidemos que las entradas de los bloques “Escribir Digital” sirve para poner a 1 o a
0 la salida PIN3.
El fichero de esta práctica es: blink2
La figura siguiente representa el montaje de esta practica.
33
13. Medida de Luz con activación de salida.
Vamos a realizar una aplicación en la que leeremos el valor de un canal analógico
A0 de la tarjeta Arduino en el que tenemos conectada una LDR.
El bloque IF tiene la estructura del la figura.
El valor que leemos lo llevamos a al primer término del bloque condicional “IF”
que lo que hace es comparar si el valor de A0 es menor que 0. Si se cumple la
condición se activa la salida primera del bloque y si no se activa la segunda. Al
realizar la conexión directa de las salidas 1 y 2 del bloque “IF” a las entradas 1 y 2
del bloque “Escribir Digital” el PIN3 estará en estado 1 cuando no se cumple la
condición y se pondrá a 0 cuando se cumpla. El valor leído también se envía al
puerto serie mediante el bloque “Envía Número P.Serie” con cadencias de 500ms
que establecemos con el bloque “Retardo”.
En la siguiente imagen se ve la pantalla de Mind+ en modo monitorización con la
venta de visualización del puerto serie abierta y mostrando cada
34
Fichero: sensor luz
El montaje es el de la siguiente figura
35
14. Medida de luz y detección de niveles.
Con este ejemplo vamos a realizar la medida de la cantidad de luz a través de un
sensor que colocaremos en el canal analógico A0 realizando hasta tres
comparaciones con la instrucción IF de tal manera que podamos detectar tres niveles
de iluminación.
Fijaremos el escalado de la señal leída entre 0 y 100. También pondremos en el
puerto serie el valor leído
Si A0 >= 40 entonces activaremos la salida PIN3
Si A0 >= 60 entonces activaremos la salida PIN3
Si A0 >= 75 entonces activaremos la salida PIN3
En la siguiente pantalla vemos la aplicación con la ventana de visualización del
puerto abierta.
36
El fichero del ejemplo es: sensor luz escalado
Este sería el montaje en protoboard.
37
15. Buzzer. Distintos montajes
a. Activación de sonido al levantar botón (flanco de bajada)
En este montaje se trata de leer el valor de una entrada digital PIN2 y en función
del valor leído activar o no el “Altavoz” es la función Buzzer.
Los parámetros de esta función se muestran en el esquema de la siguiente figura.
La emisión del sonido será al levantar el botón, es decir en flanco de bajada.
b. Activación de sonido al pulsar (flanco de subida)
Ahora en este otro montaje lo que ocurrirá es que se emitirá el sonido al pulsar el
botón, es decir cuando la señal pase de o a 1 (flanco de subida).
El montaje en protoboard es el siguiente:
38
Los ficheros de este ejemplo son: buzzer y buzzer1
BLOQUE TONO
Un bloque parecido a “Altavoz” es “Tono”.
El bloque tono lo que hace es emitir de manera permanente un tono, siewmrpe que su
entrada ON este activada. Para dejar de sonar basta con que activemos la entrada STOP
39
Los ficheros en donde están estos ejemplos son: tono y tono1
El montaje es el mismo que el anterior.
40
16. Contador con bucle de suma
Este ejemplo nos muestra como realizar un contador haciendo uso del bloque
“Sumar +”. Se trata de realizar una realimentación del resultado con el primer
sumando, de tal manera que cuando llega la orden sumar se sume el segundo
sumando al valor del resultado de la ultima suma.
La idea es que cada vez que aparece un impulso en la entrada PIN2 se realiza una
suma. El resultado se envía al puerto para poder leerse en la ventana de
monitorización de este. La escritura del valor de la suma se realiza cada 500 ms.
En la siguiente imagen vemos el aspecto de la pantalla mientras se está ejecutando el
programa en Arduino
Fichero: contador1
41
17. Contador de dos bits.
Este ejemplo nos muestra como es posible crear un contador binario utilizando el
bloque de función “Interruptor Switch” que es en definitiva un bloque “biestable”.
Se trata de realizar un esquema que cumpla la tabla siguiente.
Impulso A
PIN4
B
PIN5
0 0 0
1 1 0
2 0 1
3 1 1
Las salidas se han seleccionado en los pines PIN4 y PIN5.
La entrada de impulsos de cuenta se establece en el PIN2 haciendo uso de un bloque
“Leer Digital·”
La conexión del bloque “Interruptor Switch” al bloque “Escribir Digital” se hace con
los dos terminales para conseguir el encendido y apagado asociado a los dos estados del
“switch”
El fichero que contiene la aplicación es: contador3
El montaje sobre protoboard es el de la siguiente figura.
42
43
18. Contador 3 bits
En este contador lo único que hemos añadido es una salida más. Ahora las salidas son
PIN3, PIN4 y PIN5 y la entrada de impulsos sigue siendo el PIN2.
Impulso A
PIN3
B
PIN4
C
PIN5
0 0 0 0
1 1 0 0
2 0 1 0
3 1 1 0
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
En al tabla anterior se muestran los distintos estados por los que va pasando el contador.
La figura siguiente muestra el esquema de conexionado.
44
El fichero de este ejemplo es: contador4.
El esquema de montaje es el que se muestra a continuación.
45
19. Control de un Servo y salida PWM
Con este ejemplo vamos a gobernar un servo, PIN3, haciendo uso del bloque de
función “Poner Angulo Servo” con el dato obtenido desde el canal analógico A0 en el
que conectaremos un potenciómetro. A la vez activaremos en modo PWM el PIN5.
El nuevo bloque que aparece es “Poner Angulo Servo” del que mostramos sus
parámetros a continuación.
Como el valor máximo que podemos colocar en la entrada Angulo del bloque lo que
hacemos es realizar el escalado del rango de la señal leída del canal A0 en el prpio
bloque “Leer Analógica”, que siendo de 0 a 1024 pasa a ser de 0 a 180.
La misma señal de A0 tenemos que llevarla a un pin PWM, en nuestro caso al PIN5
para ello recurrimos al bloque “Escalar” y esta vez nos llevamos la señal al rango de 0
a 255 que como sabemos es el rango permitido para las salidas analógicas PWM de la
tarjeta Arduino. La señal PWM la sacamos al PIN5 con un bloque “Escribir
Analógica”.
El bloque “Escalar se muestra en la siguiente figura.
El bloque “Escribir Analógica” se muestra en la siguiente imagen.
Se marca el rango de entrada y el de salida y es suficiente.
46
En la figura siguiente se muestre el ejemplo completo.
El fichero que lo contiene es: servo1
El montaje en protoboard es el siguiente.
47
20. Activación de Servo siguiendo una curva de
valores dada.
En esta aplicación vamos a mover un servo de acurdo con una función de salida cuyos
datos serán secuencialmente sacados al PIN3. Para ello utilizaremos un nuevo bloque
que se denomina “Generador Curva” y que aparece en la siguiente figura.
La entrada de valores en la curva se realiza mediante una ventana en la que se pueden
definir los puntos y con la ayuda del ratón situarlos en el área.
En nuestro caso vamos los parámetros de la curva a seguir son:
Tiempo total del ciclo: 5000 ms.
Valor Mínimo: 0
Valor Máximo: 180
La salida del bloque “Generador Curva” se lleva al bloque “Poner Angulo Servo” y a la
vez la sacamos por el puerto para visualizar los valores que se van generando.
Obsérvese que la salida del bloque se realimenta con la entrada con el fin de que el
servo este realizando el ciclo establecido de forma permanente.
En la siguiente figura vemos el esquema completo del ejercicio.
48
Pantalla visualizando datos
El ejemplo se encuentra en el fichero: servo2
El montaje de la aplicación en protoboard es el siguiente.
49
50
21. Generador de señal Lineal (Rampa)
Existe un bloque llamado “Generador Lineal” que es capaz de generar una rampa de
valores acotada entre dos que se colocan en sus entradas de parámetros “Desde” y
“Hasta” La rampa se genera con una duración que también podemos establecer
mediante el parámetro “Tiempo”.
Las salidas son tres y ellas se recogen el valor actual de la rampa, el tiempo actual y el
tanto % de rampa que se lleva ejecutado en el instante.
Para probara este bloque lo que haremos será enviar al PIN3 loa señal de salida, que
previamente hemos establecido entre 0 y 255 ejecutándose la rampa en un tiempo de 5s.
La salida de valor también la llevamos al puerto serie para ver cómo va cambiando.
En la siguiente figura vemos el aspecto de la pantalla, mientras está generando la rampa,
pudiendo leer los valores en la venta de monitorización de puerto.
51
Este sería el montaje en protoboard.
El fichero del ejemplo es: generador linea1
52
22. Generador de impulsos.
Con este ejemplo vamos a demostrar cómo es posible crear un generador de impulso
(reloj) con la ayuda de un bloque “Generador Lineal”.
Si queremos una señal de 2 segundos de frecuencia (1s. Activa y 1s. Desactiva) lo que
hacemos es programar el Generador Lineal con un tiempo de 10000 ms. Y que realice la
cuenta de 0 a 10 (10 impulsos de 0.1 seg.). La salida de este se lleva a un bloque de tipo
“Interruptor Switch” que realizara la conmutación en modo biestable cada vez que
llegue un impulso de “Fin de generación de valores”.
La salida del bloque “Interruptor Switch” se lleva a un bloque de salda digital
“Escribir Digital” que asociamos al PIN3 por donde sacamos los impulsos de frecuencia
2s.
Esta figura muestra el sistema contando ya que hemos colocado un bloque de “Envio
Numero P.Serie” que saca por el puerto el estado de cuenta
La siguiente figura muestra el conexionado de los bloques en este ejemplo.
El ejemplo se encuentra en el fichero: generador lineal1
Una variación sobre este montaje sería la siguiente. En ella se generan impulsos de
frecuencia constate, marcada por el bloque “Generador Lineal” que se activa mediante
una entrada PIN2.
Este ejemplo esta en el fichero: generador lineal2
53
El montaje en protoboard del caso primero es el siguiente.
El segundo caso se montaría en protoboard de esta manera.
54
23. Emulación Sensor Capacitivo
El bloque “Sensor Capacitivo” permite configurar un sensor capacitivo indicando los
pines entre los que se deberá colocar la resistencia. Se muestra en la siguiente figura. En
su salida se muestra el valor correspondiente a la capacidad establecida entre el
conductor que une los pines de envío y recepción.
El montaje se realiza de acuerdo a la figura siguiente. Vemos que se recoge el valor de
salida del bloque “Sensor Capacitivo” y se lleva a un bloque condicional “IF” en el que
se establece la condición para que se active la salida PIN3. A la vez enviamos el valor
leído del bloque sensor al puerto serie.
Vemos una imagen de la pantalla de trabajo de Mind+ en la que aparece la ventana de
visualización del puerto serie mostrando los valores obtenidos cada vez que tocamos el
4 en el que tenemos colocada la resistencia.
Cabe la posibilidad de realizar un montaje alternativo usando el bloque “Trigger
Capacitivo Detector” que directamente hace lo que el montaje anterior en un solo
bloque, es decir que integra el condicional dentro del bloque del sensor capacitivo
Fichero: sensor capacitivo1
55
El bloque “Trigger Capacitivo Detector” permite leer el valor y establecer un umbral
de disparo cuando se sobrepasa ese valor.
Este montaje hace lo mismo que el anterior
56
Fichero: sensor capacitivo2
La siguiente imagen es el montaje en protoboard.
57
24. Receptor básico de Infrarrojos
Con este montaje se pretende probar de manera sencilla la forma de trabajar con sensor
de infrarrojos.
Utilizaremos el bloque “Configurar Receptor IR” que nos permite localizar el pin de
entrada por el cual se recibirán los impulsos procedentes de una fuente de emisión de
infrarrojos, en nuestro caso un mando a distancia” lo haremos por el PIN11. Este
bloque se conecta seguidamente al bloque “Receptor Código IR” que lo que hace es
decodificar la señal recibida generando el código recibido en su pin “Salida Código”
Seguidamente lo que hacemos es llevar al puerto serie el dato para verlo, lo haremos
mediante el bloque “Envía Número P.Serie” y bloque de retardo asociado para realizar
el muestreo de valor y enviar datos cada 500ms.
En la siguiente imagen vemos el aspecto del montaje.
La siguiente imagen muestra la pantalla estando el puerto serie abierto en modo
monitorización.
58
El montaje sobre protoboard sería el siguiente.
El nombre del fichero es: receptor infrarrojos
59
25. Gobierno de Salida con Infrarrojos
Con este montaje gobernaremos un pin digital de salida PIN3 cuando se lea un
determinado código a través del sensor que colocamos en el PIN11.
Los pasos a seguir serían: Configurar el receptor IR, esperar a recibir un código que
previamente ya hemos visto con el montaje anterior y que se corresponde con una
determinada tecla de nuestro teclado infrarrojos y des pues activar un bloque de
conmutación en modo biestable, para finalmente activar el PIN3.
En nuestro caso se trata de la tecla “0” cuyo código en nuestro teclado es “16724175”
La anterior figura es el montaje del sistema y la siguiente el montaje en protoboard.
El nombre del fichero es: infrarrojosReceptorActivador
60
26. Medida de Temperatura con Alarma
Mind+ tiene en sus librerías una denominada Temperatura dentro de la cual hay un
bloque definido específicamente para el sensor LM35 de amplio uso en los montajes
con Arduino.
En la figura vemos el esquema del bloque “Sensor LM35”.
Básicamente lo que hacemos es recoger el valor del bloque sensor que hemos conectado
al pin A0 de Arduino y lo llevamos a un bloque condicional “IF” que lo compara con
un valor establecido como consigna, en nuestro caso 30. Si se cumple que el valor leído
es mayor que 30 entonces se activará la salida PIN7 en la que hemos colocando un
Buzzer.
El montaje que debemos realizar en la protoboard es el de la siguiente figura.
El nombre del fichero es: sensor temperatura
61
27. Medida de temperatura y humedad
De la misma manera que en l caso anterior, dentro de la librería Temperatura existe un
bloque denominado “Sensor DHT11” que lee dos variables: Humedad y Temperatura.
Los valores que lee los entrega en sus salidas correspondientes. El pin de conexión se
identifica en el parámetro de entrada PIN
Se han colocado dos bloques “Envía Número P. Serie” a través de los cuales se
recogen los valores y de envía al puerto con retardos de 500 ms. En la figura se muestra
el esquema.
El fichero se llama: sensor humedad temperatura
62
28. ANEXO I
Principales Bloques de Mind+ Utilizados en este manual.
INTERMITENTE
LED (Salida Digital)
RETARDO
63
TEMPORIZADOR
INTERUPTOR SWITCH
BOTON (Entrada Digital)
64
LEER ANALOGICA (Entrada Analogica)
ESCRIBIR ANALÓGICA
ENVIAR PUERTO SERIE
65
IF
ALTAVOZ (Buzzer)
TONO
SUMA
66
PONER ANGULO SERVO
ESCALAR
GENERADOR CURVA
67
GENERADOR LINEAL
SENSOR CAPACITIVO
TRIGGER CAPACITIVO DETECTOR
CONFIGURAR RECEPTOR IR
68
RECEPTOR CODIGO IR
ENVIA CÓDIGO IR
SENSOR DE TEMPERATURA LM35
SENSOR DE HUMEDAD Y TEMPERATURA DHT11
69
José Manuel Ruiz Gutiérrez
Marzo 2014. Ver1
Este trabajo está bajo licencia Creative Commons Attribution 3.0 Unported License)

Más contenido relacionado

Similar a Manual mind+

Electrónica: Proteus primeros pasos con la pestana diseñador grafico parte 2
Electrónica: Proteus primeros pasos con la pestana diseñador grafico parte 2Electrónica: Proteus primeros pasos con la pestana diseñador grafico parte 2
Electrónica: Proteus primeros pasos con la pestana diseñador grafico parte 2SANTIAGO PABLO ALBERTO
 
Arduino programing notebook_es
Arduino programing notebook_esArduino programing notebook_es
Arduino programing notebook_esfitomasterman
 
Arduino programing notebook_es
Arduino programing notebook_esArduino programing notebook_es
Arduino programing notebook_esMgincia
 
Arduino programacion
Arduino programacionArduino programacion
Arduino programacionUriel Alzate
 
Arduino programing notebook_es
Arduino programing notebook_esArduino programing notebook_es
Arduino programing notebook_esFelix Ceballos
 
Un proyecto con fujitsu power cobol
Un proyecto con fujitsu power cobolUn proyecto con fujitsu power cobol
Un proyecto con fujitsu power cobolParalafakyou Mens
 
Arduino programing notebook_es
Arduino programing notebook_esArduino programing notebook_es
Arduino programing notebook_esClaudioSegnati
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO ACTIVIDAD 2
DESARROLLO DE HABILIDADES DE PENSAMIENTO ACTIVIDAD 2 DESARROLLO DE HABILIDADES DE PENSAMIENTO ACTIVIDAD 2
DESARROLLO DE HABILIDADES DE PENSAMIENTO ACTIVIDAD 2 IsabelSofia23
 
Tercera parte lego mindstorm
Tercera parte lego mindstormTercera parte lego mindstorm
Tercera parte lego mindstormesguerristas
 
Tercera parte lego mindstorm
Tercera parte lego mindstormTercera parte lego mindstorm
Tercera parte lego mindstormesguerristas
 
Code bloks tutorial_terminado
Code bloks tutorial_terminadoCode bloks tutorial_terminado
Code bloks tutorial_terminadoLEFR202
 

Similar a Manual mind+ (20)

Electrónica: Proteus primeros pasos con la pestana diseñador grafico parte 2
Electrónica: Proteus primeros pasos con la pestana diseñador grafico parte 2Electrónica: Proteus primeros pasos con la pestana diseñador grafico parte 2
Electrónica: Proteus primeros pasos con la pestana diseñador grafico parte 2
 
Arduino programing notebook_es
Arduino programing notebook_esArduino programing notebook_es
Arduino programing notebook_es
 
Arduino programing notebook_es
Arduino programing notebook_esArduino programing notebook_es
Arduino programing notebook_es
 
Arduino programacion
Arduino programacionArduino programacion
Arduino programacion
 
Arduino programing notebook_es
Arduino programing notebook_esArduino programing notebook_es
Arduino programing notebook_es
 
Arduino programing notebook_es
Arduino programing notebook_esArduino programing notebook_es
Arduino programing notebook_es
 
Arduino programing notebook es
Arduino programing notebook esArduino programing notebook es
Arduino programing notebook es
 
Un proyecto con fujitsu power cobol
Un proyecto con fujitsu power cobolUn proyecto con fujitsu power cobol
Un proyecto con fujitsu power cobol
 
Arduino programing notebook_es
Arduino programing notebook_esArduino programing notebook_es
Arduino programing notebook_es
 
03-arduino.pdf
03-arduino.pdf03-arduino.pdf
03-arduino.pdf
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO ACTIVIDAD 2
DESARROLLO DE HABILIDADES DE PENSAMIENTO ACTIVIDAD 2 DESARROLLO DE HABILIDADES DE PENSAMIENTO ACTIVIDAD 2
DESARROLLO DE HABILIDADES DE PENSAMIENTO ACTIVIDAD 2
 
TRABAJO DE TEGNOLOGIA
TRABAJO DE TEGNOLOGIA TRABAJO DE TEGNOLOGIA
TRABAJO DE TEGNOLOGIA
 
Tercera parte lego mindstorm
Tercera parte lego mindstormTercera parte lego mindstorm
Tercera parte lego mindstorm
 
Tercera parte lego mindstorm
Tercera parte lego mindstormTercera parte lego mindstorm
Tercera parte lego mindstorm
 
Arduino 1
Arduino 1Arduino 1
Arduino 1
 
Proyecto Arduino y Proteus
Proyecto Arduino y ProteusProyecto Arduino y Proteus
Proyecto Arduino y Proteus
 
Code bloks tutorial_terminado
Code bloks tutorial_terminadoCode bloks tutorial_terminado
Code bloks tutorial_terminado
 
Code bloks tutorial_terminado
Code bloks tutorial_terminadoCode bloks tutorial_terminado
Code bloks tutorial_terminado
 
Labview & pic
Labview & picLabview & pic
Labview & pic
 
Arduino
ArduinoArduino
Arduino
 

Más de Visemi VI

4 funcions sense retorn
4  funcions sense retorn4  funcions sense retorn
4 funcions sense retornVisemi VI
 
3 contar, mientras
3  contar, mientras3  contar, mientras
3 contar, mientrasVisemi VI
 
1 3 varios led
1 3  varios led1 3  varios led
1 3 varios ledVisemi VI
 
1 2 parpadear led
1 2  parpadear led1 2  parpadear led
1 2 parpadear ledVisemi VI
 
1 1 encender led
1 1  encender led1 1  encender led
1 1 encender ledVisemi VI
 
1 programando los bloques de funciones pin
1  programando los bloques de funciones pin1  programando los bloques de funciones pin
1 programando los bloques de funciones pinVisemi VI
 
S4 a + arduino
S4 a + arduinoS4 a + arduino
S4 a + arduinoVisemi VI
 
Practicas IDE
Practicas IDEPracticas IDE
Practicas IDEVisemi VI
 
Programando en bitbloq
Programando en bitbloqProgramando en bitbloq
Programando en bitbloqVisemi VI
 
Ide arduino + arddublock
Ide arduino + arddublockIde arduino + arddublock
Ide arduino + arddublockVisemi VI
 

Más de Visemi VI (11)

4 funcions sense retorn
4  funcions sense retorn4  funcions sense retorn
4 funcions sense retorn
 
3 contar, mientras
3  contar, mientras3  contar, mientras
3 contar, mientras
 
Sessió 2
Sessió 2Sessió 2
Sessió 2
 
1 3 varios led
1 3  varios led1 3  varios led
1 3 varios led
 
1 2 parpadear led
1 2  parpadear led1 2  parpadear led
1 2 parpadear led
 
1 1 encender led
1 1  encender led1 1  encender led
1 1 encender led
 
1 programando los bloques de funciones pin
1  programando los bloques de funciones pin1  programando los bloques de funciones pin
1 programando los bloques de funciones pin
 
S4 a + arduino
S4 a + arduinoS4 a + arduino
S4 a + arduino
 
Practicas IDE
Practicas IDEPracticas IDE
Practicas IDE
 
Programando en bitbloq
Programando en bitbloqProgramando en bitbloq
Programando en bitbloq
 
Ide arduino + arddublock
Ide arduino + arddublockIde arduino + arddublock
Ide arduino + arddublock
 

Último

CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 

Último (20)

CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 

Manual mind+

  • 1. 1 Mind+ Manual de Usuario y Tutorial Básico Mind+ es una potente herramienta de Programación Visual para Arduino Prof. José Manuel Ruiz Gutiérrez Marzo 2014
  • 2. 2 Índice 1. ¿Qué es Mind+? 2. ¿Cuestiones básicas para empezar? 3. Nuestro primer trabajo con Mind+ 4. Intermitente usando bloque retardo. 5. Intermitente usando Bloque Temporizador 6. Activación de una salida en modo biestable 7. Secuencia de encendido sin bucle 8. Semáforo 9. Secuencia de encendido con bucle. 10.Temporizaciones. Monoestables. 11.Lee un valor analógico y lo envía al puerto 12.Intermitente con variación de tiempo. 13.Medida de Luz con activación de salida. 14.Medida de luz y detección de niveles. 15.Contador con bucle de suma 16.Contador de dos bits. 17.Contador 3 bits 18.Control de un Servo y salida PWM 19.Activación de Servo siguiendo una curva de valores dada. 20.Generador de señal Lineal (Rampa) 21.Generador de impulsos. 22.Emulación Sensor Capacitivo 23.Receptor básico de Infrarrojos 24.Gobierno de Salida con Infrarrojos 25.Medida de Temperatura con Alarma 26.Medida de temperatura y humedad 27.ANEXO I José Manuel Ruiz Gutiérrez Marzo 2014. Ver1 Este trabajo está bajo licencia Creative Commons Attribution 3.0 Unported License)
  • 3. 3 1. Que es MindPLus (Mind+)? Se trata de una herramienta de programación gráfica que permite realizar aplicaciones para la Plataforma Open Hardware Arduino. El entorno está basado en la elaboración de un esquema a base de bloques de función enlazados que se ajustan a las distintas funciones que se realizan sobre los terminales de la tarjeta Windows encaminadas a la gestión de las E/S de esta. Mind+ dispone una amplia librería de bloques de función con los que podemos realizar una amplia gama de aplicaciones. Ventajas de la Herramienta: Su carácter grafico. Esto nos descarga de la laboriosa labor de escribir nuestros programas en el IDE de Arduino. Generación de código. Esta posibilidad permite generar y descargar el código sobre el micro controlador y después poder liberar la conexión con el PC y tener nuestra aplicación totalmente programada.
  • 4. 4 Amplia colección de librerías. Existe una amplia gama de librerías de bloque de función que permiten la manipulación de los pines de Arduino. Posibilidad de edición de los bloques de librería e incluso creación de bloques propios. Para esto la herramienta viene acompañad de un software llamado BlockMaker con el que es posible incluir nuevos bloques con código compatible con el IDE de Arduino e incluso compatibilizando las llamadas a las librerías de Arduino.
  • 5. 5 Muy adecuado a la educación. Esta herramienta es muy útil para la educación ya que permite de in modo fácil estudiar las posibilidades de la plataforma Arduino. Permite la conexión con distintas plataformas Arduino. Se puede realizar la programación de distintas variedades de Arduino. La herramienta en el momento de finalizar este manual se encuentra en fase de evaluación con la versión0.96c que se puede descargar http://www.mindplus.cc/ Min+ permite la sencilla creación de prototipos en muy poco tiempo. Nos libera de la tediosa escritura de código y está abierto a la ampliación.
  • 6. 6 Estas son las etapas en el desarrollo de una aplicación Versiones disponibles de Mind+ Existen tres versiones de Mind+: para Windows, para Mac y para Linux Requisitos para el funcionamiento. Es importante que nuestro ordenador tenga instalado ya el driver correspondiente para el reconocimiento de la tarjeta Arduino. Debemos saber también en que numero de puerto esta conectada. Esto se puede hacer directamente desde el IDE de Arduino en su menú de opciones “Herramientas” lo podemos encontrar. En la página web de Mind+ hay documentación en la que se describe con detalle la instalación del software.
  • 7. 7 2. Cuestiones básicas para empezar. NOTA MUY IMPORTANTE: Este manual se ha realizado con una versión de las librerías de funciones parte de ellas traducidas al español. Para poder cargar los ejemplos que se abordan es preciso colocar la carpeta –Español dentro de la carpeta Blocks que a su vez esta dentro de la carpeta Resources. ..Mind+resourceBlocks ..Mind+resourceBlocks-Español Los ejemplos se pueden colcar en una carpeta dentro de la carpeta Mind+ ..Mind+Ejemplos manual Las librerías han sido traducidas solo a nivel de sus nombres y ventanas de texto de ayuda que muestran en cada uno de sus terminales. Bloques de función. Los bloques de función tienen una estructura básica que conviene tener en cuenta. En la figura vemos un ejemplo. Las cajas de parámetros permiten la introducción de los parámetros (numérico, texto, PIN, etc.), también pueden recibir valores de otros bloques (bloques de salida). Las salidas entregan normalmente estado ON, OFF que sirven para activar la entradas de otros bloques. Los conectores se establecen con la ayuda del ratón: manteniendo pulsado el botón derecho del ratón sobre el bloque de comienzo de la conexión y arrastrando y soltado en el terminal final de la conexión. Los terminales, para ser unidos, deben ser de la misma naturaleza en cuanto a los datos que emiten o reciben.
  • 8. 8 Ayuda: Todos los bloque muestran una caja de texto de ayuda cuando dejamos el raton sobre el termina correspondiente. Esta ayuda nos permite comprender mejor la funcionalidad de ese terminal. Borrar bloques y enlaces: Para borrar un bloque se marca con el ratón (botón izquierdo), el bloque se queda marcado con un contorno amarillo y luego pulsamos directamente en el icono de la papelera (parte superior derecha de la barra de menú) y se borra. También se borra si pulsamos la tecla DEL. Para borrar un enlace se procederá de similar manera. Se marca el enlace a borrar, se colorea de amarillo y se pulsa el botón de la papelera o la tecla DEL.
  • 9. 9 Conexiones entre Bloques. El bloque Start emite la orden de activación de los bloques, aunque también estos se pueden activar con las salidas de otros bloques o incluso se pueden establecer realimentaciones ente la salida y la entrada de un mismo bloque. En el caso A se activa la función Leer Digital uniendo la salida Start con la entrada de este bloque. Es posible conectar las salidas de un bloque con las entradas de otros, con el fin de realizar la activación de unas funciones detrás de otras, tal como se indica en el caso B de la figura. En ocasiones se pueden realizar realimentaciones de bloques. Así lo podemos ver en el caso C de la figura anterior. Esto permite que se este ejecutando el bloque de manera permanente. La idea es que una vez realizada la operación, los bloques activan sus salidas para permitir la actuación progresiva de las siguientes. Los bloques intercambian entre ellos información. Por ejemplo si deseamos realizar una estructura condicional tomando un valor leído en una entrada analógica para activar una salida si se cumple una condición tendremos que realizar conexiones entre bloque que se envían información. En la figura lo vemos. Se lee el canal analógico A0 y se envía el valor al bloque IF, a la vez, para activar el bloque IF llevamos la salida del bloque Leer Analógica a la entrada del bloque IF. En este caso cuando se lee el valor del canal A0 se activa seguidamente la salida del bloque de lectura. Vemos que la salida del bloque IF la conectamos al bloque Escribir Digital,
  • 10. 10 ya que del mismo modo que en el caso anterior, una vez ejecutado el bloque IF se activan las salidas de este bloque, para permitir el desarrollo de la secuencia de ejecución. Una misma salida de activación puede ir a más de una entrada. Se supone que en este caso los bloques que son excitados por la misma señal se ejecutan a la vez. En la figura vemos que la entrada digital PIN2 gobierna a la vez, mediante un bloque Leer Digital, las salidas PIN3 y PIN13 de los dos bloques Escribir Digital. Flujos de datos y órdenes. No olvidemos que los conectores rojos son para trasladar datos e informaciones y los conectores azules son para trasladar órdenes. El menú. En cuanto al menú del entorno es muy sencillo. En la figura vemos los principales comandos. Componentes de librería.
  • 11. 11 Hay dos formas de mostrar los componentes de librería una en la que se muestran los más usuales e importantes y otra en la que se muestran todos. Se conmuta mediante los botones que figuran en la parte inferior izquierda. En la figura vemos los dos tipos de librerías, la básica y la completa. Las librerías están en una carpeta dentro de la carpeta en donde está el programa Mind+ llamada: MindPlusV096cMindplus096cresourceBlocks Dedicaremos en este o en otro manual un espacio al comentario de cómo modificar y/o crear nuevos bloques de función con la herramienta BlockMaker. Nota IMPORTANTE Sobre las Librerías Para la realización de este trabajo he traducido las librerías que viene con la versión de distribución de Mind+ al español y las he colocado en una carpeta llamada “Español”. Los ejemplos que voy a realizar en este manual están co9nstruidos con esta librería traducida, por lo que es necesario disponer de ella copiada en la carpeta de los bloques: MindPlusV096cMindplus096cresourceBlocks-Español
  • 12. 12 3. Nuestro primer trabajo con Mind+ En este primer ejemplo hacemos uso del bloque “Intermitente” que se encuentra en la librería de “Bloques Básicos”. La función que realiza es activar una salida que seleccionamos en su parámetro de entrada “PIN de Salida” y el valor del tiempo que deseamos que dure activada y desactivada esta salida. Al pulsar dos veces sobre el triángulo rojo del parámetro se abrirán sendas ventanas de recogida de datos en las que seleccionamos el PIN y el tiempo. La realización del conexionado de los bloques es muy sencilla. Basta con pulsar en el lugar “START” y manteniendo pulsado llegar a al triángulo azul de entrada o activación. En la figura vemos el procedimiento.
  • 13. 13 Una vez realizado el conexionado del bloque y colocados sus parámetros pulamos en el icono “Upload” y aparecerá la venta de la siguiente figura. Si es necesario seleccionamos la tarjeta que tenemos conectada y también el puerto (por defecto ya nos indicará el adecuado). Pulsaremos en el texto Upload y el programa se cargará en la tarjeta Arduino. Después pulsamos en “Done” y nuestro programa estará funcionando. El ejemplo se encuentra en el fichero: blink.mps El siguiente es el montaje de este ejemplo.
  • 14. 14
  • 15. 15 4. Intermitente usando bloque retardo. Esta vez vamos a realizar un intermitente que básicamente funcionará como el anterior pero lo implementaremos con otros bloques. Bloques a usar: 2 Bloques LED de la librería “Mind+Kit” 2 Bloques Retardo de la librería “Tiempo” El bloque LED tiene dos entradas por las cuales lo activamos o lo desactivamos ON y OFF son los nombres de estas. En la parte superior tiene una entrada de parámetros por la que seleccionábamos el PIN sobre el que queremos trabajar. En realidad el bloque hace lo que la función digital.Write del IDE de Arduino. Las salidas del bloque igual que la entrada son ON y OFF se activan cuando se ejecuta la función LED. Cableamos la entrada ON a START para activar el bloque Con la entrada OFF se desactivaría la salida. Cuando activamos la entrada ON se activa también la salida ON y si desactivamos con la entrada OFF también se activa la salida OFF El bloque de Retardo se activa a través de su entrada ON y una vez finalizado el tiempo se activa su terminal de salida. Hemos colocado los bloque LED asociados al PIN 5 unidos por los bloques de Retardo, teniendo en cuenta que una vez finalizado el tiempo del primer bloque de Retardo se debe desactivar la salida PIN 5 y a la vez se activa el bloque de Retardo
  • 16. 16 segundo que una vez finalizado su tiempo su salida volverá a activar el PIN 5 (realimentación). Hemos seleccionado 500 ms de tiempo pero aquí podemos controlar el tiempo se encendido (primer bloque de Retado) y el de apagado (segundo bloque de Retardo) Una vez realizado el cableado se procedería a descargar la aplicación sobre la tarjeta (mediante el botón “Upload”) El montaje sobre protoboard seria el siguiente. Fichero del ejercicio: blink1
  • 17. 17 5. Intermitente usando Bloque Temporizador Vamos a utilizar en este ejemplo un nuevo bloque llamado “Temporizador” y que funciona exactamente como un temporizador. Cuando se activa su señal de entrada ON se pone a temporizar, sacando por su salida de parámetro el “Valor de Tiempo Actual”. Una vez que termina el tiempo se activa la primera salida (superior) del bloque. Mientras temporiza la salida inferior se mantiene activa. El valor del tiempo se introduce en el bloque como un parámetro mediante la caja de entrada de valor que aparece cuando pulsamos dos veces seguidas en la entrada de este parámetro. La idea es activar y desactivar una salida digital, que esta vez hemos seleccionado en el PIN3. Para conseguir el “basculamineto de la señal” lo hacemos mediante el bloque “Interruptor Switch” que actúa como biestable. En la siguiente figura vemos este nuevo bloque “Interruptor Switch”. La salida del temporizador la realimentamos con la entrada para que de ese modo se generen las temporizaciones en modo “bucle” consiguiendo el encendido y apagado del Led conectado en el PIN3
  • 18. 18 Este serie el montaje sobre protoboard del ejemplo. Fichero: blink_con_temporizador
  • 19. 19 6. Activación de una salida en modo biestable Antes de nada explicare como funciona un nuevo bloque de función que vamos a utilizar: Bloque Botón. Este bloque se encarga de programar un PIN digital de Arduino en una entrada digital. Los parámetros que le debemos designar son el PIN y el tiempo de retardo antirrebotes. Sus entradas son dos: Una la que activa el bloque y otra la que lo desactiva. Sus salidas son dos y simplemente son las salidas ON y OFF de cualquier bloque general que sirven para trasladar la orden de activación del bloque siguiente en secuencia, después de ejecutada en este caso la lectura del PIN de entrada establecido. El bloque de la figura pertenece a las librerías Mind+Kit pero hay uno similar definido en la librería “Básicos”. El bloque similar de la librería “Básicos es el siguiente. A)Por flanco de subida Con esta aplicación gobernaremos una salida digital con una entrada digital en modo biestable, es decir con memoria. Se trata de utilizar un bloque muy interesante llamado “Interruptor Swtich” que recibe impulsos e su entrada y cambia el estado de sus salidas guardando el estado en el que se queda, es decir se trata de un biestable.
  • 20. 20 La manera de activar este bloque biestable puede ser o bien actuando con el flanco se subida o bien de bajada de las señal de entrada. En ambos casos se mantiene la función de memoria pero cambia el modo de activación. En el montaje vemos que un bloque “Botón” gobierna al bloque “Interruptor Switch” y lo hace en su salida. La entrada que designamos es el PIN2 y la salida el PIN3. Cuando pulsemos el botón del pulsador puesto en el PIN2 cambiara de estado la salida PIN3. Fichero: boton_activa_al_Pulsar B)Por flanco de bajada En este montaje he introducido un nuevo bloque “Escribir Digital” que este en la librería “Básicos” y que funciona exactamente igual que el bloque LED ya comentado anteriormente. Las dos entradas sirven para poner en 0 o e 1 el PIN que designemos en la entrada de parámetros “Selecciona PIN”. Las salidas sirven para propagar las ordenes de activacio0n y desactivación de los bloques que vengan a continuación. Este montaje en lo único que varía es en el conexionado de las salidas del bloque “Interruptor Switch” con el bloque “Escribir Digital” que están cruzadas.
  • 21. 21 En este caso se gobierna el bloque “Iterruptor Switch” con flancos de bajada en su entrada. Fichero: boton_activa_al_Soltar El montaje sobre protoboard es el siguiente.
  • 22. 22 7. Secuencia de encendido sin bucle En algún caso podríamos querer encender hasta tres LEDs en secuencia con tiempos distintos. Para ello bastaría encadenar Retardos y bloques LED. Este es el ejemplo que vemos en la figura. Utilizaremos tres salidas digitales PIN3, PIN4 y PIN5 que estarán gobernadas mediante los bloques de función LED de la librería Min+Kit. Los bloques de Retardo los fijamos a 500 ms. Debemos fijarnos en el conexionado de los bloques ya que los bloques LED poseen dos salidas una ON y otra OFF las salidas que usamos son las ON, esto significa que cuando se activa el bloque LED (se enciende el Led conectado en el PIN) a la vez se pone en marcha el bloque Retardo, el cual una vez transcurrido su tiempo se activa su salida que será la misma que active el siguiente bloque LED. No olvidemos que la secuencia una vez ejecutada no vuelve a realizarse dado que no hemos realimentado la última acción del bloque LED con el primero. Tendríamos que pulsar el botón de “Reinicio” de la tarjeta de Arduino para conseguir realizar e nuevo el encendido de los LEDs. La secuencia se realiza nada mas iniciar Arduino y una vez encendidos los Leds se quedan así. Para volver a ejecutar la secuencia debemos pulsar el botón Reset de la tarjeta Arduino. El fichero del ejemplo se denomina secuencia_simple El montaje es el de la figura siguiente
  • 23. 23
  • 24. 24 8. Semáforo. En este ejemplo mostramos la posibilidad de realizar un semáforo simplemente realizando el enlazado de bloques de “Retardo” y “Escribir Digital” realimentadas. Las salidas establecidas son PIN3, PIN4 y PIN5. El montaje es el siguiente. El fichero del ejemplo es: semáforo
  • 25. 25 9. Secuencia de encendido con bucle A continuación vemos la realización de una secuencia de encendido de Leds en forma de bucle repetitivo. Se utilizaran de nuevo las salidas digitales PIN3, PIN4 y PIN5. Vemos que los bloques utilizados son simplemente de dos tipos: Escribir Digital y Retado En esta ocasión colocaremos los bloques de “Retardo” de tal manera que los leds realicen la secuencia siguiente. Nº Sec. PIN3 PIN4 PIN5 1 1 0 0 2 1 1 0 3 1 1 1 4 0 1 1 5 0 0 1 1 1 0 0 … … … … Fichero: secuencia_bucle Otra posibilidad de realizar una secuencia sería la que se lleva a cabo con el montaje siguiente.
  • 26. 26 Nº Sec. PIN3 PIN4 PIN5 1 1 0 0 2 0 1 0 3 0 0 1 4 1 0 0 … … … … Fichero: secuencia_bucle2 El montaje sobre protoboard es el siguiente.
  • 27. 27 10. Temporizaciones. Monoestables. Par realizar temporizaciones se recurre al bloque “Temporizador” con este se pueden implementar monoestables. En esta practica montaremos dos tipos de monoestables. A) Temporización con flanco de subida En este primer tipo se trata de activar la temporización con un flanco de subida, es decir cuando la señal en el PIN2 de entrada pasa de valer 0 a valer 1 (al pulsar el botón) Este diagrama de tiempo muestra con claridad el efecto del monoestable a nivel temporal. Los bloques que se utilizan son tres. El bloque “Leer Digital” recoge el valor de la entrada PIN2 y cuando se produce el cambio de nivel –flanco ascendente- se activa el temporizador al que le hemos colocado el parámetro de tiempo en valor de 3000 ms. La salida del temporizador se lleva finalmente a un bloque se salida digital “Escribir Digital” que es el que gobierna el estado del PIN3 de Arduino al que le hemos colocado un diodo led. Obsérvese que las salidas del “Temporizador” y las entradas del bloque “Escribir Digital” están cruzadas. Fichero: monoestable1 B) Temporización con flanco de bajada En este segundo tipo de monoestable se trata de activar la temporización con un flanco de bajada, es decir cuando la señal en el PIN2 de entrada pasa de valer 1 a valer 0 (al soltar el botón)
  • 28. 28 Este segundo diagrama de tiempo muestra con claridad el efecto del monoestable a nivel temporal. Los bloques que se utilizan en este segundo montaje son exactamente los mismos. La salida del temporizador se lleva finalmente a un bloque se salida digital “Escribir Digital” pero se hace directamente de la primera salida del bloque “Temporizador” a la primera entrada del bloque “Escribir Digital” y la segunda a la segunda. Fichero: monoestable2 El montaje en la protoboard es el siguiente.
  • 29. 29 11. Lee un valor analógico y lo envía al puerto Aquí vamos a trabajar con los siguientes bloques: 1 Bloque de Leer Analógica 1 Bloque Envía Número P.Serie 1 Bloque Retardo El Bloque de lectura analógica realiza la función equivalente a la instrucción analog.Read de IDE de Arduino. El blooque se activa por la entrada ON y genera una orden de lectura en el canal analógico indicado en la entrada de parámetros “Selecciona PIN de Arduino”. Los valores de lectura real oscilan entre 0 y 1024 pero en este bloque podemos realizar el escaldo de ese rango y llevarlo a otro por ejemplo de 0 a 100, estos valores se acotan mediante los parámetros de entrada “Valor Desde” y Valor Hasta”. El valor de salida se recoge en el terminal de datos “Valor Salida” La salida “Activa Siguiente Bloque” traslada la oren para gobernar el siguiente bloque que pusiéramos. El siguiente bloque que hemos incluido es el bloque “Envía Número P. Serie” que se encarga de enviar al puerto serie el valor que coloquemos en su entrada de parámetros segunda “Dato Numérico” colocando un texto en la entrad primera “Etiqueta Texto Enviar”. La orden de envía se ejecuta cuando en la entrad del bloque aparece un “1” True y su salida “Activo Cuando acaba el envío” indica que se ha ejecut5ado la orden El montaje es muy sencillo. Se activa con START el bloque “Leer Analógica” llevando el dato “Valor Salida” a la entrada del bloque de envío al puerto. Por otro lado la salida del bloque se lleva a la entrada de este bloque de envío para que se ejecute.
  • 30. 30 La salida del bloque de envío al puerto se lleva a un temporizador para que con una cadencia de 500 ms. Se repitan los envíos (realimentándose al bloque de envío) Cuando descarguemos la aplicación a la tarjeta Arduino podremos visualizar el valor que se está leyendo mediante el “Monitor de Puerto” que tiene Mind+. Icono que automáticamente abre una ventana de visualización como la de la figura. Habilitando la casilla aparecen retornos línea automáticos en la visualización. Fijémonos en el número puerto y en la velocidad es importante . La velocidad debe ser 9600 porque así está programado el bloque.
  • 31. 31 Desde esta ventana también podemos enviar datos a Arduino. Ya veremos algún ejemplo más adelante. El fichero de esta aplicación es: analogica1 En la figura siguiente vemos el montaje en protoboard de la aplicación.
  • 32. 32 12. Intermitente con variación de tiempo Una vez que hemos realizado la práctica anterior vamos a continuar con las señales analógicas. Esta vez la propuesta consiste en realizar un “Intermitente” pero con el tiempo variable. Se trata de que el valor de temporización se recoja de una entrada analógica, pongamos de la entrada A0. Inyectamos el valor leído en el canal A0 en la entrada de parámetro “Tiempo” del bloque “Retardo”. Actuaremos en la salida PIN3 en donde escribiremos Cero y Uno con este retardo establecido. Lo más importante es ver como la salida del segundo retardo se lleva no solo al primer bloque de “Escribir Digital” para que la vuelva a activar. No olvidemos que las entradas de los bloques “Escribir Digital” sirve para poner a 1 o a 0 la salida PIN3. El fichero de esta práctica es: blink2 La figura siguiente representa el montaje de esta practica.
  • 33. 33 13. Medida de Luz con activación de salida. Vamos a realizar una aplicación en la que leeremos el valor de un canal analógico A0 de la tarjeta Arduino en el que tenemos conectada una LDR. El bloque IF tiene la estructura del la figura. El valor que leemos lo llevamos a al primer término del bloque condicional “IF” que lo que hace es comparar si el valor de A0 es menor que 0. Si se cumple la condición se activa la salida primera del bloque y si no se activa la segunda. Al realizar la conexión directa de las salidas 1 y 2 del bloque “IF” a las entradas 1 y 2 del bloque “Escribir Digital” el PIN3 estará en estado 1 cuando no se cumple la condición y se pondrá a 0 cuando se cumpla. El valor leído también se envía al puerto serie mediante el bloque “Envía Número P.Serie” con cadencias de 500ms que establecemos con el bloque “Retardo”. En la siguiente imagen se ve la pantalla de Mind+ en modo monitorización con la venta de visualización del puerto serie abierta y mostrando cada
  • 34. 34 Fichero: sensor luz El montaje es el de la siguiente figura
  • 35. 35 14. Medida de luz y detección de niveles. Con este ejemplo vamos a realizar la medida de la cantidad de luz a través de un sensor que colocaremos en el canal analógico A0 realizando hasta tres comparaciones con la instrucción IF de tal manera que podamos detectar tres niveles de iluminación. Fijaremos el escalado de la señal leída entre 0 y 100. También pondremos en el puerto serie el valor leído Si A0 >= 40 entonces activaremos la salida PIN3 Si A0 >= 60 entonces activaremos la salida PIN3 Si A0 >= 75 entonces activaremos la salida PIN3 En la siguiente pantalla vemos la aplicación con la ventana de visualización del puerto abierta.
  • 36. 36 El fichero del ejemplo es: sensor luz escalado Este sería el montaje en protoboard.
  • 37. 37 15. Buzzer. Distintos montajes a. Activación de sonido al levantar botón (flanco de bajada) En este montaje se trata de leer el valor de una entrada digital PIN2 y en función del valor leído activar o no el “Altavoz” es la función Buzzer. Los parámetros de esta función se muestran en el esquema de la siguiente figura. La emisión del sonido será al levantar el botón, es decir en flanco de bajada. b. Activación de sonido al pulsar (flanco de subida) Ahora en este otro montaje lo que ocurrirá es que se emitirá el sonido al pulsar el botón, es decir cuando la señal pase de o a 1 (flanco de subida). El montaje en protoboard es el siguiente:
  • 38. 38 Los ficheros de este ejemplo son: buzzer y buzzer1 BLOQUE TONO Un bloque parecido a “Altavoz” es “Tono”. El bloque tono lo que hace es emitir de manera permanente un tono, siewmrpe que su entrada ON este activada. Para dejar de sonar basta con que activemos la entrada STOP
  • 39. 39 Los ficheros en donde están estos ejemplos son: tono y tono1 El montaje es el mismo que el anterior.
  • 40. 40 16. Contador con bucle de suma Este ejemplo nos muestra como realizar un contador haciendo uso del bloque “Sumar +”. Se trata de realizar una realimentación del resultado con el primer sumando, de tal manera que cuando llega la orden sumar se sume el segundo sumando al valor del resultado de la ultima suma. La idea es que cada vez que aparece un impulso en la entrada PIN2 se realiza una suma. El resultado se envía al puerto para poder leerse en la ventana de monitorización de este. La escritura del valor de la suma se realiza cada 500 ms. En la siguiente imagen vemos el aspecto de la pantalla mientras se está ejecutando el programa en Arduino Fichero: contador1
  • 41. 41 17. Contador de dos bits. Este ejemplo nos muestra como es posible crear un contador binario utilizando el bloque de función “Interruptor Switch” que es en definitiva un bloque “biestable”. Se trata de realizar un esquema que cumpla la tabla siguiente. Impulso A PIN4 B PIN5 0 0 0 1 1 0 2 0 1 3 1 1 Las salidas se han seleccionado en los pines PIN4 y PIN5. La entrada de impulsos de cuenta se establece en el PIN2 haciendo uso de un bloque “Leer Digital·” La conexión del bloque “Interruptor Switch” al bloque “Escribir Digital” se hace con los dos terminales para conseguir el encendido y apagado asociado a los dos estados del “switch” El fichero que contiene la aplicación es: contador3 El montaje sobre protoboard es el de la siguiente figura.
  • 42. 42
  • 43. 43 18. Contador 3 bits En este contador lo único que hemos añadido es una salida más. Ahora las salidas son PIN3, PIN4 y PIN5 y la entrada de impulsos sigue siendo el PIN2. Impulso A PIN3 B PIN4 C PIN5 0 0 0 0 1 1 0 0 2 0 1 0 3 1 1 0 4 1 0 0 5 1 0 1 6 1 1 0 7 1 1 1 En al tabla anterior se muestran los distintos estados por los que va pasando el contador. La figura siguiente muestra el esquema de conexionado.
  • 44. 44 El fichero de este ejemplo es: contador4. El esquema de montaje es el que se muestra a continuación.
  • 45. 45 19. Control de un Servo y salida PWM Con este ejemplo vamos a gobernar un servo, PIN3, haciendo uso del bloque de función “Poner Angulo Servo” con el dato obtenido desde el canal analógico A0 en el que conectaremos un potenciómetro. A la vez activaremos en modo PWM el PIN5. El nuevo bloque que aparece es “Poner Angulo Servo” del que mostramos sus parámetros a continuación. Como el valor máximo que podemos colocar en la entrada Angulo del bloque lo que hacemos es realizar el escalado del rango de la señal leída del canal A0 en el prpio bloque “Leer Analógica”, que siendo de 0 a 1024 pasa a ser de 0 a 180. La misma señal de A0 tenemos que llevarla a un pin PWM, en nuestro caso al PIN5 para ello recurrimos al bloque “Escalar” y esta vez nos llevamos la señal al rango de 0 a 255 que como sabemos es el rango permitido para las salidas analógicas PWM de la tarjeta Arduino. La señal PWM la sacamos al PIN5 con un bloque “Escribir Analógica”. El bloque “Escalar se muestra en la siguiente figura. El bloque “Escribir Analógica” se muestra en la siguiente imagen. Se marca el rango de entrada y el de salida y es suficiente.
  • 46. 46 En la figura siguiente se muestre el ejemplo completo. El fichero que lo contiene es: servo1 El montaje en protoboard es el siguiente.
  • 47. 47 20. Activación de Servo siguiendo una curva de valores dada. En esta aplicación vamos a mover un servo de acurdo con una función de salida cuyos datos serán secuencialmente sacados al PIN3. Para ello utilizaremos un nuevo bloque que se denomina “Generador Curva” y que aparece en la siguiente figura. La entrada de valores en la curva se realiza mediante una ventana en la que se pueden definir los puntos y con la ayuda del ratón situarlos en el área. En nuestro caso vamos los parámetros de la curva a seguir son: Tiempo total del ciclo: 5000 ms. Valor Mínimo: 0 Valor Máximo: 180 La salida del bloque “Generador Curva” se lleva al bloque “Poner Angulo Servo” y a la vez la sacamos por el puerto para visualizar los valores que se van generando. Obsérvese que la salida del bloque se realimenta con la entrada con el fin de que el servo este realizando el ciclo establecido de forma permanente. En la siguiente figura vemos el esquema completo del ejercicio.
  • 48. 48 Pantalla visualizando datos El ejemplo se encuentra en el fichero: servo2 El montaje de la aplicación en protoboard es el siguiente.
  • 49. 49
  • 50. 50 21. Generador de señal Lineal (Rampa) Existe un bloque llamado “Generador Lineal” que es capaz de generar una rampa de valores acotada entre dos que se colocan en sus entradas de parámetros “Desde” y “Hasta” La rampa se genera con una duración que también podemos establecer mediante el parámetro “Tiempo”. Las salidas son tres y ellas se recogen el valor actual de la rampa, el tiempo actual y el tanto % de rampa que se lleva ejecutado en el instante. Para probara este bloque lo que haremos será enviar al PIN3 loa señal de salida, que previamente hemos establecido entre 0 y 255 ejecutándose la rampa en un tiempo de 5s. La salida de valor también la llevamos al puerto serie para ver cómo va cambiando. En la siguiente figura vemos el aspecto de la pantalla, mientras está generando la rampa, pudiendo leer los valores en la venta de monitorización de puerto.
  • 51. 51 Este sería el montaje en protoboard. El fichero del ejemplo es: generador linea1
  • 52. 52 22. Generador de impulsos. Con este ejemplo vamos a demostrar cómo es posible crear un generador de impulso (reloj) con la ayuda de un bloque “Generador Lineal”. Si queremos una señal de 2 segundos de frecuencia (1s. Activa y 1s. Desactiva) lo que hacemos es programar el Generador Lineal con un tiempo de 10000 ms. Y que realice la cuenta de 0 a 10 (10 impulsos de 0.1 seg.). La salida de este se lleva a un bloque de tipo “Interruptor Switch” que realizara la conmutación en modo biestable cada vez que llegue un impulso de “Fin de generación de valores”. La salida del bloque “Interruptor Switch” se lleva a un bloque de salda digital “Escribir Digital” que asociamos al PIN3 por donde sacamos los impulsos de frecuencia 2s. Esta figura muestra el sistema contando ya que hemos colocado un bloque de “Envio Numero P.Serie” que saca por el puerto el estado de cuenta La siguiente figura muestra el conexionado de los bloques en este ejemplo. El ejemplo se encuentra en el fichero: generador lineal1 Una variación sobre este montaje sería la siguiente. En ella se generan impulsos de frecuencia constate, marcada por el bloque “Generador Lineal” que se activa mediante una entrada PIN2. Este ejemplo esta en el fichero: generador lineal2
  • 53. 53 El montaje en protoboard del caso primero es el siguiente. El segundo caso se montaría en protoboard de esta manera.
  • 54. 54 23. Emulación Sensor Capacitivo El bloque “Sensor Capacitivo” permite configurar un sensor capacitivo indicando los pines entre los que se deberá colocar la resistencia. Se muestra en la siguiente figura. En su salida se muestra el valor correspondiente a la capacidad establecida entre el conductor que une los pines de envío y recepción. El montaje se realiza de acuerdo a la figura siguiente. Vemos que se recoge el valor de salida del bloque “Sensor Capacitivo” y se lleva a un bloque condicional “IF” en el que se establece la condición para que se active la salida PIN3. A la vez enviamos el valor leído del bloque sensor al puerto serie. Vemos una imagen de la pantalla de trabajo de Mind+ en la que aparece la ventana de visualización del puerto serie mostrando los valores obtenidos cada vez que tocamos el 4 en el que tenemos colocada la resistencia. Cabe la posibilidad de realizar un montaje alternativo usando el bloque “Trigger Capacitivo Detector” que directamente hace lo que el montaje anterior en un solo bloque, es decir que integra el condicional dentro del bloque del sensor capacitivo Fichero: sensor capacitivo1
  • 55. 55 El bloque “Trigger Capacitivo Detector” permite leer el valor y establecer un umbral de disparo cuando se sobrepasa ese valor. Este montaje hace lo mismo que el anterior
  • 56. 56 Fichero: sensor capacitivo2 La siguiente imagen es el montaje en protoboard.
  • 57. 57 24. Receptor básico de Infrarrojos Con este montaje se pretende probar de manera sencilla la forma de trabajar con sensor de infrarrojos. Utilizaremos el bloque “Configurar Receptor IR” que nos permite localizar el pin de entrada por el cual se recibirán los impulsos procedentes de una fuente de emisión de infrarrojos, en nuestro caso un mando a distancia” lo haremos por el PIN11. Este bloque se conecta seguidamente al bloque “Receptor Código IR” que lo que hace es decodificar la señal recibida generando el código recibido en su pin “Salida Código” Seguidamente lo que hacemos es llevar al puerto serie el dato para verlo, lo haremos mediante el bloque “Envía Número P.Serie” y bloque de retardo asociado para realizar el muestreo de valor y enviar datos cada 500ms. En la siguiente imagen vemos el aspecto del montaje. La siguiente imagen muestra la pantalla estando el puerto serie abierto en modo monitorización.
  • 58. 58 El montaje sobre protoboard sería el siguiente. El nombre del fichero es: receptor infrarrojos
  • 59. 59 25. Gobierno de Salida con Infrarrojos Con este montaje gobernaremos un pin digital de salida PIN3 cuando se lea un determinado código a través del sensor que colocamos en el PIN11. Los pasos a seguir serían: Configurar el receptor IR, esperar a recibir un código que previamente ya hemos visto con el montaje anterior y que se corresponde con una determinada tecla de nuestro teclado infrarrojos y des pues activar un bloque de conmutación en modo biestable, para finalmente activar el PIN3. En nuestro caso se trata de la tecla “0” cuyo código en nuestro teclado es “16724175” La anterior figura es el montaje del sistema y la siguiente el montaje en protoboard. El nombre del fichero es: infrarrojosReceptorActivador
  • 60. 60 26. Medida de Temperatura con Alarma Mind+ tiene en sus librerías una denominada Temperatura dentro de la cual hay un bloque definido específicamente para el sensor LM35 de amplio uso en los montajes con Arduino. En la figura vemos el esquema del bloque “Sensor LM35”. Básicamente lo que hacemos es recoger el valor del bloque sensor que hemos conectado al pin A0 de Arduino y lo llevamos a un bloque condicional “IF” que lo compara con un valor establecido como consigna, en nuestro caso 30. Si se cumple que el valor leído es mayor que 30 entonces se activará la salida PIN7 en la que hemos colocando un Buzzer. El montaje que debemos realizar en la protoboard es el de la siguiente figura. El nombre del fichero es: sensor temperatura
  • 61. 61 27. Medida de temperatura y humedad De la misma manera que en l caso anterior, dentro de la librería Temperatura existe un bloque denominado “Sensor DHT11” que lee dos variables: Humedad y Temperatura. Los valores que lee los entrega en sus salidas correspondientes. El pin de conexión se identifica en el parámetro de entrada PIN Se han colocado dos bloques “Envía Número P. Serie” a través de los cuales se recogen los valores y de envía al puerto con retardos de 500 ms. En la figura se muestra el esquema. El fichero se llama: sensor humedad temperatura
  • 62. 62 28. ANEXO I Principales Bloques de Mind+ Utilizados en este manual. INTERMITENTE LED (Salida Digital) RETARDO
  • 64. 64 LEER ANALOGICA (Entrada Analogica) ESCRIBIR ANALÓGICA ENVIAR PUERTO SERIE
  • 67. 67 GENERADOR LINEAL SENSOR CAPACITIVO TRIGGER CAPACITIVO DETECTOR CONFIGURAR RECEPTOR IR
  • 68. 68 RECEPTOR CODIGO IR ENVIA CÓDIGO IR SENSOR DE TEMPERATURA LM35 SENSOR DE HUMEDAD Y TEMPERATURA DHT11
  • 69. 69 José Manuel Ruiz Gutiérrez Marzo 2014. Ver1 Este trabajo está bajo licencia Creative Commons Attribution 3.0 Unported License)