Saltar navegación

3.3. Variables lóxicas

Verdadeiro ou falso?

As variables lóxicas, tamén chamadas binarias, só teñen dous valores posibles. Representan situacións nas que algo pode estar nun estado ou noutro: aceso ou apagado, si ou non, 1 ou 0. Nas linguaxes de programación, estes valores adoitan representarse como "True" (verdadeiro) ou "False" (falso).

Nas placas que estás a utilizar tamén podes atopar este tipo de variables. Por exemplo, o valor é "verdadeiro" cando o botón A ou B está premido e "falso" cando non o está.

Ademais, na placa Adafruit PCE tamén podes atopar unha variable lóxica no interruptor da placa, que só pode ter dous estados: activado ou desactivado.

Debuxo dos botóns A e B e o interruptor da placa Adafruit, sinalando como son as variables correspondentes en MicroBlocks

Lectura facilitada

As variables lóxicas só teñen dous valores.

Poden indicar dous estados distintos.

Por exemplo: aceso ou apagado.

Por exemplo: si ou non.

En programación escríbense como "True" ou "False".

Nas placas tamén hai variables lóxicas.

Un botón ten valor "verdadeiro" cando está premido.

Un botón ten valor "falso" cando non está premido.

O interruptor da placa tamén ten dous estados.

Debuxo dos botóns A e B e o interruptor da placa Adafruit, sinalando como son as variables correspondentes en MicroBlocks

Transcrición da infografía

A imaxe mostra exemplos de entradas dixitais nunha placa compatible con MicroBlocks.

Na parte esquerda aparecen dous botóns da placa:

  • Botón A. Cando está premido o valor é "True". Cando non está premido o valor é "False".
  • Botón B. Cando está premido o valor é "True". Cando non está premido o valor é "False".

Estes botóns atópanse no menú Entrada.

No medio aparece o interruptor da Adafruit PCE.

  • Cando o interruptor está activado o valor é "True".
  • Cando o interruptor está desactivado o valor é "False".

Este interruptor atópase no menú "Circuit Playground".

Na dereita aparece o sensor "TouchPin" da placa micro:bit.

  • Cando se toca o logo o valor é "True".
  • Cando o logo non se toca o valor é "False".

Esta orde atópase na biblioteca "TouchPin".

Operadores lóxicos

Ás veces, cando programas, non abonda con comprobar unha única condición. Moitas veces precisas combinar varias condicións para tomar unha decisión. Para iso utilizas os operadores lóxicos. Estes operadores permítenche relacionar diferentes condicións e saber se se cumpren ou non.

Os operadores lóxicos máis habituais son "E", "OU" e "NON". Cada un deles funciona dun xeito diferente.

Lectura facilitada

Os operadores lóxicos máis usados son "E", "OU" e "NON".

Cada operador funciona dun xeito diferente.

Operador E

Botón do operador E en MicroBlocks



Este operador significa que todas as condicións teñen que cumprirse ao mesmo tempo para que a regra se aplique.

Por exemplo, no xogo da oca, para gañar a partida deben cumprirse dúas condicións á vez:

Chegar co número exacto
E
Chegar antes ca ninguén

Se non se cumpre algunha destas condicións, a partida continúa.

Taboleiro do xogo da oca coa condición para gañar



Operador OU

Botón do operador OU en MicroBlocks



Este operador significa que abonda con que se cumpra unha das condicións para que a regra se aplique.

Por exemplo, no xogo da oca, poden existir casas especiais que fan avanzar máis rápido:

Caer nunha oca
OU
Caer nunha ponte

Se se cumpre calquera destas condicións, aplícase a regra correspondente.

Taboleiro do xogo da Oca con condicións do xogo



Operador NON

Botón do operador NON en MicroBlocks



Este operador serve para indicar o contrario dunha condición.

Por exemplo, na mariola podes seguir xogando mentres se cumpra esta condición:

NON
Pisar unha liña

Se se pisa unha liña, pérdese a quenda.

Taboleiro de mariola



Lectura facilitada

Operador E

O operador "E" significa que se teñen que cumprir todas as condicións.

No xogo da oca, para gañar, teñen que pasar dúas cousas á vez:

  1. Hai que chegar co número exacto.
  2. Hai que chegar antes ca ninguén.

Operador OU

O operador "OU" significa que chega con cumprir unha condición.

No xogo da oca, isto pode pasar nunha casa especial.

Pode ser unha oca.

Pode ser unha ponte.

Operador NON

O operador "NON" indica o contrario dunha condición.

Na mariola, podes seguir xogando se non pisas unha liña.

Se pisas unha liña, pérdese a quenda.

Operar con variables lóxicas e numéricas

Se agora combinas os dous tipos de variables que aprendiches empregando os operadores lóxicos, poderás crear programas moito máis interesantes para o xogo. Así, o programa poderá tomar decisións segundo o que ocorre cos botóns e co que detectan os sensores da placa. Por exemplo:

Lectura facilitada

Agora xa coñeces dous tipos de variables.

Se as combinas cos operadores lóxicos, poderás facer programas mellores.

O programa poderá tomar decisións.

Esas decisións dependerán dos botóns e dos sensores.

Agora verás un exemplo.

Reaccionar ante as notas

Este xogo consiste en reaccionar rápido cando escoites unha nota determinada. Se escoitas un dó grave, terás que premer ao mesmo tempo o botón A e o botón B. Se escoitas un sol, terás que premer só A. Se escoitas un dó alto, terás que premer só o botón B.

Ordes necesarias para executar un xogo de reacción explicado

Saltar e inclinar

Deberás saltar e inclinar a placa polo menos 5 veces para gañar a partida.

Programa para contar ata 5 saltos e inclinacións e persoa saltando coa placa na man

Lectura facilitada

Reaccionar ante as notas

Neste xogo tes que reaccionar rápido.

Se escoitas un dó grave, premes A e B.

Se escoitas un sol, premes só A.

Se escoitas un dó alto, premes só B.

Ordes necesarias para executar un xogo de reacción explicado

Saltar e inclinar

Neste xogo tes que saltar e inclinar a placa.

Hai que facelo polo menos 5 veces para gañar.

Programa para contar ata 5 saltos e inclinacións e persoa saltando coa placa na man

Transcrición das infografías

Reaccionar ante as notas

A imaxe mostra un programa en MicroBlocks que crea un xogo de reacción cos botóns A e B da placa.

O programa comeza coas seguintes ordes:

  • Ao comezar.
  • Detén o son.
  • Apaga os NeoPíxeles.
  • Reinicia o cronómetro.

Estas instrucións preparan o programa. O son detense, as luces apáganse e o cronómetro ponse a cero.

Despois aparece unha repetición de catro pasos musicais:

  • Tocar a nota dó durante 1000 milisegundos e agardar ata que se preman ao mesmo tempo o botón A e o botón B.
  • Tocar a nota sol durante 1000 milisegundos e agardar ata que se prema o botón A.
  • Tocar a nota dó agudo durante 1000 milisegundos e agardar ata que se prema o botón B.

Estas instrucións forman unha pequena secuencia na que a persoa debe premer os botóns correctos.

Ao rematar a secuencia, o programa comproba o tempo:

  • Se o cronómetro é menor que 20000 milisegundos.

Se se completou a secuencia en menos de vinte segundos:

Coa placa Adafruit PCE:

  • Se gaña, acéndense todos os NeoPíxeles en verde.
  • Se non gaña, acéndense todos os NeoPíxeles en vermello.

Se tes a placa micro:bit:

  • Se o cronómetro é menor que 20000 milisegundos, móstrase o texto BEN.
  • Se non, móstrase o texto MAL.

Saltar e inclinar

O programa comeza preparando a placa:

  • Ao comezar.
  • Asignar veces a 0.
  • Detén o son.
  • Apaga os NeoPíxeles.
  • Agardar 500 milisegundos.

Estas instrucións poñen a cero a variable e preparan o dispositivo para comezar.

Despois o programa repite varias veces unha comprobación:

  • Repetir 10 veces.

Dentro desta repetición o programa comproba unha condición:

  • Se aceleración > 150 e inclinación x > 45.

Isto significa que a placa está a detectar un salto e ademais está inclinada.

Cando se cumpre esta condición:

  • Aumenta a variable veces en 1.

Despois o programa fai unha pequena pausa:

  • Agardar 1000 milisegundos.

Ao final o programa comproba cantas veces se cumpriu a condición:

  • Se veces > 5.

Segundo o resultado, se tes placa Adafruit PCE:

  • Se é maior que 5, pinta todos os NeoPíxeles en verde.
  • Se non, pinta todos os NeoPíxeles en vermello.

No caso de que esteas a empregar a placa micro:bit:

  • Se veces > 5, anímase o texto "BEN".
  • Se non, anímase o texto "MAL".

Atrévete a programar

Cada opción corresponde a un nivel de dificultade diferente. Escolle o nivel que prefiras e pon a proba as túas habilidades de programación. Ata onde queres chegar?

Opción A: Cantas veces es quen de saltar e inclinar a cabeza?

Robot Ada con placa Adafruit e placa micro:bit nas mans

Modifica o programa de saltar e inclinar para que, cando remate o tempo, indique na placa cantas veces o conseguiches facer.

Gráfico en .png (arrastrable a MicroBlocks) co programa saltar e inclinar que se debe modificar

A forma de mostrar o resultado dependerá da placa que esteas a usar:

  • Icona da placa micro:bit. Emprégase para propoñer exercicio que se resolva con esta placaNa micro:bit, emprega a pantalla LED.
  • Icona da placa Adafruit. Emprégase para propoñer exercicio que se resolva con esta placaNa Adafruit, utiliza os NeoPíxeles.

Lectura facilitada

Modifica o programa de saltar e inclinar.

Cando remate o tempo, a placa debe mostrar o resultado.

A placa debe indicar cantas veces o conseguiches facer.

Gráfico en png (arrastrable a MicroBlocks) co programa saltar e inclinar que se debe modificar

O resultado móstrase de forma distinta segundo a placa.

  • Na micro:bit, usa a pantalla LED.
  • Na Adafruit, usa os NeoPíxeles.

Transcrición do programa

O programa comeza preparando a placa:

  • Ao comezar.
  • Asignar "veces" a 0.
  • Detén o son.
  • Apaga os NeoPíxeles.
  • Agardar 500 milisegundos.

Estas instrucións poñen a cero a variable e preparan o dispositivo para comezar.

Despois o programa repite varias veces unha comprobación:

  • Repetir 10 veces.

Dentro desta repetición o programa comproba unha condición:

  • Se aceleración > 150 e inclinación x > 45.

Isto significa que a placa está a detectar un salto e ademais está inclinada.

Cando se cumpre esta condición:

  • Aumenta a variable "veces" en 1.

Despois o programa fai unha pequena pausa:

  • Agardar 1000 milisegundos.

Ao final o programa comproba cantas veces se cumpriu a condición:

  • Se veces > 5.

Segundo o resultado, se tes placa Adafruit PCE:

  • Se é maior que 5, pinta todos os NeoPíxeles en verde.
  • Senón, pinta todos os NeoPíxeles en vermello.

No caso de que esteas a empregar a placa Micro:bit:

  • Se veces > 5, anímase o texto "BEN".
  • Senón, anímase o texto "MAL".

Opción B: Piano en movemento

Robot Ada con placa Adafruit e placa micro:bit nas mans

Crea un programa que converta a placa nun piano utilizando a inclinación no eixo X. A placa deberá funcionar como unha pequena escala musical.

Por exemplo, cando a inclines totalmente cara á esquerda (aproximadamente −90º no eixo X) deberá soar o dó grave. A medida que vaias enderezando a placa e inclinándoa pouco a pouco cara á dereita, o son deberá ir cambiando por intervalos: dó, re, mi, fa, sol, la, si, ata chegar ao dó agudo cando estea inclinada totalmente cara á dereita (aproximadamente +90º).

Para conseguilo, divide o rango de inclinación (de −90º a +90º) en varios intervalos e asigna unha nota diferente a cada tramo. Así, segundo a posición da placa, soará unha nota distinta da escala.

Experimenta cos valores para axustar ben os límites de cada nota e conseguir que a transición entre sons sexa clara e progresiva.

Ordes de MicroBlocks necesarias para facer o programa de piano

Lectura facilitada

Crea un programa para converter a placa nun piano.

Usa a inclinación no eixo X.

A placa debe funcionar como unha escala musical.

Se inclinas a placa cara á esquerda, soa unha nota grave.

Se inclinas a placa cara á dereita, soa unha nota máis aguda.

Divide a inclinación en varios tramos.

Asigna unha nota a cada tramo.

Proba os valores ata que o cambio de sons sexa claro.

Ordes de MicroBlocks necesarias para facer o programa de piano

Transcrición da infografía

Na imaxe vese unha correspondencia entre algunhas teclas dun piano e as ordes para tocar notas na placa.

  • A tecla correspondente ao dó agudo executa a orde: tocar a nota na oitava 1 durante 500 ms.
  • A tecla correspondente ao sol executa a orde: tocar a nota sol na oitava 0 durante 500 ms.
  • A tecla correspondente ao mi executa a orde: tocar a nota mi na oitava 0 durante 500 ms.
  • A tecla correspondente ao dó grave executa a orde: tocar a nota na oitava 0 durante 500 ms.

Á dereita aparecen tamén bloques de sensores que permiten detectar a inclinación da placa no eixe x, que se poden usar para controlar cando se reproduce cada nota.

Opción C: Piano tamén con teclas negras

Robot Ada con placa Adafruit e placa micro:bit nas mans

Esta é a opción máis avanzada. Crea un programa que converta a placa nun piano utilizando a inclinación no eixo X e a inclinación no eixo Y. Emprega a inclinación no eixo X para as notas principais e engade as notas sostidas utilizando a inclinación no eixo Y.

Para facelo máis sinxelo, considera só o tamaño da inclinación en Y, sen importar se é cara arriba ou cara abaixo. Se a inclinación en Y supera un determinado valor, deberá activarse a versión sostida da nota.

Por exemplo, cando a inclinación en Y sexa pequena, soará a nota normal (dó, re, mi...). Cando a inclinación en Y sexa grande, soará a mesma nota pero en versión sostida (dó#, re#, fa#, sol#, la#), segundo corresponda.

Ordes de MicroBlocks para tocar notas sostidas e pista de como inclinar a placa

Lectura facilitada

Esta é a opción máis avanzada.

Crea un programa para converter a placa nun piano.

Usa a inclinación no eixo X e no eixo Y.

O eixo X servirá para as notas principais.

O eixo Y servirá para as notas sostidas.

Se a inclinación en Y é pequena, soa a nota normal.

Se a inclinación en Y é grande, soa a nota sostida.

Proba os valores ata que o cambio de sons funcione ben.

Ordes de MicroBlocks para tocar notas sostidas e pista de como inclinar a placa

Transcrición da infografía

Na imaxe represéntase a relación entre algunhas teclas dun piano e as ordes que permiten reproducir esas notas na placa.

  • A primeira tecla corresponde á orde: tocar a nota na oitava 1 durante 500 milisegundos.
  • A segunda tecla corresponde á orde: tocar a nota fa sostido (fa#) na oitava 0 durante 500 milisegundos.
  • A terceira tecla corresponde á orde: tocar a nota dó sostido (do#) na oitava 0 durante 500 milisegundos.

Á dereita da imaxe aparecen bloques relacionados coa inclinación da placa, que se poden empregar para controlar cando se executa cada nota.

  • Sensor de inclinación no eixo x.
  • Sensor de inclinación no eixo y.

Estes sensores permiten detectar cara a que lado está inclinada a placa e utilizar esa información no programa para decidir que nota tocar.

Feito con eXeLearning (Nova xanela)