Programando con variables en bitbloq
¿Qué es una variable y para qué sirve?
Una variable es como una “caja” donde guardare...
Diferencia entre variable GLOBAL y variable LOCAL:
Como bien explicamos en las primeras lecciones (ver lección programació...
Comunicación Serie USB con bitbloq
En este post os vamos a enseñar cómo realizar una comunicación por puerto serie USB ent...
Parte 2: RECEPTOR – Usando el Monitor Serial de Arduino IDE
Como hemos dicho, utilizaremos el Monitor Serial del IDE de Ar...
Si el sensor IR de nuestro ejemplo comienza a detectar varias veces, en el monitor irá apareciendo la palabra ‘NEGRO’ sin
...
Programando los bloques de control-
El bloque Si… ejecutar
Hoy vamos a aprender a cómo usar los bloques de bitbloq de la p...
Una sentencia condicional es una condición, algo que tiene que cumplirse para que se ejecute una parte del programa.
Es mu...
Como puedes ver,el bloque Si …entonces puede tener más opciones como de lo contrario que se ejecutará cuando no se
cumpla ...
Si todo fue bien deberías haber hecho algo parecido a ésto:
Pronto veremos con más detalle las operaciones lógicas, pero e...
Programando los bloques lógicos
Si es igual y/o distinto de no verdadero…
Hoy vamos a aprender como funcionan los bloques ...
De esta forma, junto al bloque Si…ejecutar podemos establecer condiciones para que nuestro programa haga unas cosas u
otra...
En este caso el zumbador sonará solo en el caso de que se cumplan las dos condiciones, es decir:
Si cualquiera de las dos ...
Ejemplo con el bloque verdadero/falso
Hacer un programa que haga que, cuando la luz sea mayor o igual que 300, se encienda...
La variable boton_sin_pulsar será verdadero siempre que el pulsador no esté presionada.
Si queremos que el zumbador suene,...
Próxima SlideShare
Cargando en…5
×

Sessió 2

214 visualizaciones

Publicado el

Variables, comunicació port serie, si ejecutar, blocs lògics

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
214
En SlideShare
0
De insertados
0
Número de insertados
34
Acciones
Compartido
0
Descargas
8
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Sessió 2

  1. 1. Programando con variables en bitbloq ¿Qué es una variable y para qué sirve? Una variable es como una “caja” donde guardaremos un dato, un valor que podremos ver y recuperar más adelante durante el resto del programa. Además, en cualquier momento se puede cambiar ese valor guardado. Declarando variables: Al declarar una variable lo que hacemos es crear esa “caja” y guardar por primera vez un dato en ella. En bitbloq el dato que guardemos puede ser de tipo número o de tipo texto. Al declarar la variable defines de que tipo es, por ejemplo: si lo primero que guardaste es un número, esa variable va a ser siempre para guardar números (¡no mezcles tipos!) Puedes renombrar como quieras una variable. Esta cualidad te servirá para identificar en todo momento tu “caja”. Aquí algunos ejemplos de declaración de variables: También podemos guardar el valor que nos devuelve directamente un sensor. Este caso lo verás habitualmente en las siguientes lecciones: Usando variables: En bitbloq tienes bloques para “mirar la caja” (mira el valor que hay guardado en ese momento en la variable) y bloques para guardar un nuevo valor en ella (borrando el anterior).
  2. 2. Diferencia entre variable GLOBAL y variable LOCAL: Como bien explicamos en las primeras lecciones (ver lección programación LEDs), la placa controladora ejecuta el programa que le carguemos siguiendo los bloques en orden (de arriba a abajo) y repitiéndolo infinitamente en forma de bucle. Por este motivo, es importante saber en qué momento del programa usamos y declaramos las variables. En bitbloq se pueden programar variables LOCALES y GLOBALES.  Variables GLOBALES: se crean al inicio nada más encender la placa, antes incluso de empezar el bucle del programa.  Variables LOCALES: se crean justo en el instante de declarar la variable, ya dentro del bucle. Este es un ejemplo de código erróneo, ya que se intenta usar y comparar la variable local cuando todavía no se había declarado. Recuerda que el código se va a ejecutar de arriba a abajo. Esta sería la forma correcta de usarla: primero la declaramos y más adelante la usamos.
  3. 3. Comunicación Serie USB con bitbloq En este post os vamos a enseñar cómo realizar una comunicación por puerto serie USB entre vuestro ordenador y la placa controladora. Lo diré de otra forma más sencilla: transferir información y órdenes a tu placa por el cable USB. Una comunicación consta siempre de dos partes, un emisor y un receptor. Por tanto, vamos a necesitar dos cosas: 1. Programa dentro de la placa controladora que envíe/reciba datos. (Lo haremos con bitbloq) 2. Programa dentro del ordenador que envíe/reciba datos. (Usaremos el Monitor Serial de la IDE de Arduino) Abre bitbloq y descarga el IDE de Arduino. Conecta tu placa Arduino al ordenador con el cable USB y… ¡Comenzamos! “”Aquí robonauta llamando a Base Eco, ¿me recibe?”” ESCRIBIR POR PUERTO SERIE El ejemplo siguiente envía desde la placa controladora la palabra ‘NEGRO‘ cuando un sensor IR detecta ese color. Conecta dicho sensor al pin digital 3: Parte 1: EMISOR – Programación en bitbloq Para programar un envío de un dato desde la placa en bitbloq, tan sólo será necesario el bloque llamado “Imprimir por puerto serie” Es así sencillo entonces crear un programa en el que se compara cada segundo (1000 ms) el valor del sensor y si éste vale 0 envia la palabra. Carga este programa en tu placa:
  4. 4. Parte 2: RECEPTOR – Usando el Monitor Serial de Arduino IDE Como hemos dicho, utilizaremos el Monitor Serial del IDE de Arduino. Con la placa conectada, abre el programa Arduino y cierra bitbloq. Ahora selecciona la placa controladora en Herramientas/Tarjeta. Selecciona el puerto donde está conectada la placa en Herramientas/Puerto Serial: Ya podemos abrir el Monitor Serial en Herramientas/Monitor Serial o pulsando aquí: Se abrirá esta ventana donde debemos comprobar que esté marcada una velocidad de 9600 baudios.
  5. 5. Si el sensor IR de nuestro ejemplo comienza a detectar varias veces, en el monitor irá apareciendo la palabra ‘NEGRO’ sin cesar: Si queremos ver el resultado un poco más ordenado, podemos utilizar el bloque bitbloq “Imprimir por puerto serie con salto de linea“: De esta forma conseguiremos una respuesta más separada así:
  6. 6. Programando los bloques de control- El bloque Si… ejecutar Hoy vamos a aprender a cómo usar los bloques de bitbloq de la pestaña Control en concreto el bloque Si… ejecutar Hoy necesitarás: 1. LED 2. Sensor de luz 3. Pulsador 4. Una placa controladora Arduino 5. Un cable USB El bloque si…ejecutar Aprendiendo lo que es una sentencia condicional Un momento, no tan rapido. ¿Una sentencia condicional? ¿Qué es eso?
  7. 7. Una sentencia condicional es una condición, algo que tiene que cumplirse para que se ejecute una parte del programa. Es muy sencillo, por ejemplo: Si has sido bueno, los reyes magos te traeran regalos. Si no recoges tu habitación, tu madre te castigará. Si presiono el botón, el LED se encenderá. Es un bloque fundamental que nos permitirá decirle a nuestro programa cuando debe suceder una cosa y cuando otra. ¿Cómo funciona? Veamoslo en el siguiente ejemplo: Ejemplo con el bloque si… ejecutar Utilizando el bloque Si…ejecutar, hacer que se encienda el LED cuando se pulse el pulsador En primer lugar, conecta tu LED y tu Pulsador a tu placa siguiendo el siguiente esquema: Queremos que, al presionar nuestro pulsador, el LED se encienda. Es decir: Si el pulsador está presionado… el LED se enciende Por tanto, tenemos que usar el bloque Si… ejecutar, el programa quedará del siguiente modo: Recuerda que dependiendo del típo de pulsador que tengas, al estar presionado puede tener un valor de 1 o 0. Si posees uno de nuestros kits de robótica, al presionar el botón su valor valdrá 0. Como puedes observar, al presionar el botón, el LED se enciende, y permanece encendido indefinidamente… y es qué nuestra placa es muy tonta y… ¡solo hace lo que le decimos! tenemos que decirle que ocurre cuando el pulsador no esté pulsado! ¿Cómo podemos hacer ésto? Fijate en el siguiente programa:
  8. 8. Como puedes ver,el bloque Si …entonces puede tener más opciones como de lo contrario que se ejecutará cuando no se cumpla la condición, es decir, cuando nuestro pulsador no este presionado. Para añadir la opción de lo contrario pulsa sobre la estrella del bloque y agrégala: Además existe una opción más dentro de éste bloque, la opción: en cambio, si. Está opción te permite añadir más condiciones despues de la primera. Un ejemplo: Si queremos comer tarta, pero no hay tarta, en cambio sí hay helado ¿También nos vale, verdad? ¡Queremos comer helado!! ¡Aunque preferimos la tarta! ¡Eso es muy importante! Solo comeremos helado si NO hay tarta Vamos a abandonar a nuestro querido pulsador y a hacer un ejercicio con el sensor de luz y la opción en cambio, si: Ejemplo 2 Hacer que un LED parpadee cuando el sensor de luz detecte poca cantidad de luz, y se encienda cuando este a oscuras Voy a confesarte una cosa, tengo miedo a la oscuridad. Por las noches no voy al baño por muchas ganas que tenga hasta la mañana siguiente, no me gusta nada no tener luz y andar por ese pasillo, a saber que monstruos acechan por ahí, quiza la profe de mates … Por eso he decidido ponerme manos a la obra e inventarme una alarma de noche. ¡Para no quedarme nunca a oscuras! Estuve hablando con un reputado luminógrafo y, tras muchas discusiones, llegamos a la conclusión de que mi revolucionaria máquina, que cambiaría la infancia de la humanidad, tendría que ser de la siguiente forma: -Si la cantidad de luz es menor que 100-> ¡Ay que está muy negro todo!->ENCIENDE EL LED -En cambio, si la cantidad de luz es menor que 200, bueno, da un poco de miedo…->¡EL LED PARPADEA! -De lo contrario, si brilla el sol no te preocupes… ¡Si yo soy muy valiente! ->APAGA EL LED ¡Ríete tú del iphone! ¡Manos a la obra! Lo primero será realizar nuestras conexiones en la placa: Recuerda que el sensor de luz es un componente analógico. Por lo que tendrá que ir conectado a los pines analógicos de tu placa. Ahora que lo tienes todo conectado ¿Por qué no intentas programarlo por tí mismo? Verás como pronto llegas a la solución.
  9. 9. Si todo fue bien deberías haber hecho algo parecido a ésto: Pronto veremos con más detalle las operaciones lógicas, pero en el caso de que quieras dentro del bloque Si…ejecutar que se cumpla más de una condición, como por ejemplo, que el pulsador esté presionado y la luz sea menor que 30 puedes hacerlo de la siguiente forma: 00:00:56 ¿Qué te parece? Puede que tengas dudas de cuando usar el bloque. ¡No te preocupes! ¡La práctica hace al maestro!
  10. 10. Programando los bloques lógicos Si es igual y/o distinto de no verdadero… Hoy vamos a aprender como funcionan los bloques de la pestaña Lógica. Hay cuatro bloques con distintas opciones cada uno. ¡Veamos en que consisten! Para realizar los ejemplos de hoy, necesitarás:  1 LED  1 Potenciómetro  1 Zumbador  1 Pulsador  1 Sensor de luz  Una placa controladora Arduino  Un cable USB El bloque de comparación Te suena ¿verdad?. Hemos usado este bloque a menudo junto con el el bloque de control Si…ejecutar . Este bloque devuelve verdadero o falso según las dos entradas sean:  = iguales.  ≠ distintas.  < la primera menor que la segunda.  ≤ la primera menor o igual que la segunda.  > la primera mayor que la segunda.  ≥ la primera mayor o igual que la segunda.
  11. 11. De esta forma, junto al bloque Si…ejecutar podemos establecer condiciones para que nuestro programa haga unas cosas u otras según las condiciones que elijamos. Veamos un ejemplo: Ejemplo con el bloque de comparación Hacer que se encienda un LED cuando el valor del potenciómetro sea menor que 500 En caso de que el valor del potenciómetro sea menor que 500, es decir, un valor comprendido entre 0 y 499, el LED se encenderá. En caso contrario, de 500 a 1023 valores (recuerda que el potenciómetro varía sus valores entre 0 y 1023), el LED se apagará. El bloque Y/O Este bloque sirve para comprobar varias condiciones al mismo tiempo:  Opción Y: Deben cumplirse ambas condiciones para que el valor sea verdadero y la acción se ejecute.  Opción O: Al menos una de las dos condiciones debe cumplirse para que el valor sea verdadero y la acción se ejecute. Vamos a ver un ejemplo para que experimentes la diferencia entre la opción Y y la opción O: Ejemplo con el bloque Y/O Hacer que suene el zumbador cuando se cumplan las siguientes condiciones:  la variable luz es menor o igual que 300 y  el pulsador, entonces el zumbador sonará.
  12. 12. En este caso el zumbador sonará solo en el caso de que se cumplan las dos condiciones, es decir: Si cualquiera de las dos no se cumple, la condición no será verdadera y el zumbador no sonará. Hagamos una cosa, modifica el programa anterior, y en vez de la opción Y usa una opción O ¿Qué ocurre ahora? Ahora tu zumbador sonará más a menudo, ya que le estamos diciendo al programa lo siguiente: Si la variable luz es menor o igual que 300 o presionamos el pulsador, que el zumbador suene. Es decir, nos vale con que una de las dos condiciones se cumpla. ¿Ves la diferencia? El bloque verdadero/falso Este bloque nos devuelve el valor verdadero o falso, para entenderlo lo mejor es que hagamos un ejemplo:
  13. 13. Ejemplo con el bloque verdadero/falso Hacer un programa que haga que, cuando la luz sea mayor o igual que 300, se encienda el LED y que, de lo contrario, se apague. Recuerdas este programa ¿verdad?. Hoy vamos a hacerlo un poco diferente: La variable mucha_luz leerá el valor del sensor de luz y si éste es mayor o igual que 300, la variable tendrá un valor de verdadero, en caso contrario, será falso. De esta forma podemos comparar el valor de la variable directamente usando el bloque verdadero, si es verdadero significará que habrá mucha luz y el LED se encenderá. El bloque No Este bloque nos permite negar una variable o estado, por ejemplo, si al verdadero le ponemos un bloque No: Decir no verdadero es lo mismo que decir que algo es falso. Veamos un pequeño ejemplo: Ejemplo con el bloque No Hacer un programa que haga sonar el zumbador si el pulsador está pulsado utilizando el bloque No. Este programa es una versión modificada de otro que realizamos hace tiempo:
  14. 14. La variable boton_sin_pulsar será verdadero siempre que el pulsador no esté presionada. Si queremos que el zumbador suene, nuestra condición es: Si no variable boton_sin_pulsar. Es decir, si la negación de botón sin pulsar es verdadero, o lo que es lo mismo, si el pulsador está presionado, entonces el zumbador sonará. Como recordaras hay formas mucho más sencillas para realizar este programa, este es solo un ejemplo para que entiendas el funcionamiento del bloque No. En ocasiones negar el valor de una variable te será de gran utilidad. La lógica es fundamental para que tu programa vaya bien, si te acostumbras a razonar de forma lógica, las cosas empezarán a funcionar como por arte de magia. La diferencia será que tu serás el mago y sabrás exactamente donde está y cómo funciona el truco. Aún así, siempre que empieces un proyecto, recuerda: “Hay algo más importante que la lógica: es la imaginación” Alfred Hitchcock

×