04 - SENSORES E VARIÁVEIS€¦ · TIPOS DE SENSORESTIPOS DE SENSORES RESUMO DOS SENSORESRESUMO DOS...

140
Á SENSORES E VARIÁVEIS

Transcript of 04 - SENSORES E VARIÁVEIS€¦ · TIPOS DE SENSORESTIPOS DE SENSORES RESUMO DOS SENSORESRESUMO DOS...

ÁSENSORES E VARIÁVEIS

SENSORES E VARIÁVEISSENSORES E VARIÁVEIS

• Sensores• Tipos de Dados e VariáveisTipos de Dados e Variáveis• Passagem de Dados• Utilizando Sensores• Utilizando Arames de Ligação• Utilizando Arames de Ligação• Utilizando Variáveis• Revisão

TIPOS DE SENSORES

TIPOS DE SENSORESTIPOS DE SENSORES

• Sensor de Toque• Sensor SonoroSensor Sonoro• Sensor de Luminosidade• Sensor Ultrasônico• Botões• Botões• Sensor de Rotação• Controlador de Tempo• Recebendo Mensagem• Recebendo Mensagem

TIPOS DE SENSORESTIPOS DE SENSORESRESUMO DOS SENSORESRESUMO DOS SENSORES

Sensor Condições Descrição

Touch(Toque)

Pressed, released, bumpedPressionado, liberado, colidido

Detecta se o sensor sofreu alguma alteração em seu estado.

Sound(Sonoro) > ou < n (0 - 100) Detecta ruídos (sons) onde o robô está, permitindo

verificar mudanças sonoras.

Light Detecta valores de iluminação no ambiente onde o robô Light (Luminoso) > ou < n (0 - 100) se encontra, permitindo identificar mudanças na

iluminação.

Ultrasonic > ou < n (0 - 100) Detecta a aproximação de obstáculos, permitindo saber (Ultrasom) > ou < n (0 100) a distância do robô ao obstáculo.

Rotation(Rotação) > ou < n (0 – 360) Detecta as rotações dos motores do robô, permitindo

saber quantos graus o motor deu.

Tipos de SensoresTipos de Sensores

GRUPO SENSOR

Todos os blocos de sensoresTodos os blocos de sensores encontram‐se na paleta completa de blocos, no grupo SENSOR.

ABA COMPLETA DE BLOCOS

Tipos de SensoresTipos de Sensores

SENSOR DE TOQUE

O bloco TOUCH SENSORO bloco TOUCH SENSOR controla as opções do sensor  de toque do robô.

ABA COMPLETA DE BLOCOS

Tipos de SensoresTipos de Sensores

SENSOR SONORO

O bloco SOUND SENSORO bloco SOUND SENSOR controla as opções do sensor  sonoro do robô.

ABA COMPLETA DE BLOCOS

Tipos de SensoresTipos de Sensores

SENSOR DE LUZ

O bloco LIGHT SENSORO bloco LIGHT SENSOR controla as opções do sensor  de luz do robô.

ABA COMPLETA DE BLOCOS

Tipos de SensoresTipos de Sensores

SENSOR ULTRASÔNICO

O bloco ULTRASONICO bloco ULTRASONIC SENSOR controla as opções do sensor  ultrasônico do robô.

ABA COMPLETA DE BLOCOS

Tipos de SensoresTipos de Sensores

BOTÕES NXT

O bloco NXT BUTTONSO bloco NXT BUTTONS  controla as opções do botões do robô.

ABA COMPLETA DE BLOCOS

Tipos de SensoresTipos de Sensores

SENSOR DE ROTAÇÃO

O bloco ROTATION SENSORO bloco ROTATION SENSOR controla as opções do sensor  de rotação dos motores.

ABA COMPLETA DE BLOCOS

Tipos de SensoresTipos de Sensores

CONTADOR DE TEMPO

O bloco TIMER controla asO bloco TIMER controla as opções do contador de tempo do robô.

ABA COMPLETA DE BLOCOS

Tipos de SensoresTipos de Sensores

RECEBENDO DE MENSAGEM

O bloco RECEIVE MESSAGEO bloco RECEIVE MESSAGE controla as opções do correio de mensagem do robô através do Bluetooth.

ABA COMPLETA DE BLOCOS

SENSOR DE TOQUE

Sensor de Toqueq

BLOCO TOUCH SENSORNas propriedades do bloco TOUCH SENSOR podemos configurar qual a ação a ser verificada e definimos 

t táa porta em que o sensor está conectado.

PROPRIEDADES

Sensor de Toqueq

Na propriedade PORT configuramos a porta que o sensor está conectado.

PROPRIEDADE PORT

Sensor de Toqueq

Na propriedade ACTION configuramos qual ação a ser verificada. Se o sensor foi pressionado, liberado ou colidido.

PROPRIEDADE ACTION

SENSOR SONORO

Sensor Sonoro

BLOCO SOUND SENSORNas propriedades do bloco SOUND SENSOR podemos configurar qual a comparação a ser feita, o valor b t tábase e em que porta o sensor está ligado.

PROPRIEDADES

Sensor Sonoro

Na propriedade PORT configuramos a porta que o sensor está conectado.

PROPRIEDADE PORT

Sensor Sonoro

Na propriedade COMPARE configuramos l ã d j fqual comparação desejamos fazer, se 

queremos valores maiores ou menores que o valor base determinado.

PROPRIEDADE COMPARE

SENSOR DE LUMINOSIDADE

Sensor de Luminosidade

BLOCO LIGHT SENSORNas propriedades do bloco LIGHT SENSOR podemos configurar qual a comparação a ser feita, o valor base e 

t tá li dem que porta o sensor está ligado. Com a opção GENERATE LIGHT podemos gerar ou não luz.

PROPRIEDADES

Sensor de Luminosidade

Na propriedade PORT configuramos a porta que o sensor está conectado.

PROPRIEDADE PORT

Sensor de Luminosidade

Na propriedade COMPARE configuramos l ã d j fqual comparação desejamos fazer, se 

queremos valores maiores ou menores que o valor base determinado.

PROPRIEDADE COMPARE

Sensor de Luminosidade

Na propriedade FUNCTION temos a opção GENERATE LIGHT d j jGENERATE LIGHT, se desejarmos que seja gerada iluminação a deixamos marcada, caso contrário basta desmarcá‐la.

PROPRIEDADE FUNCTION

ÔSENSOR ULTRASÔNICO

Sensor Ultrasônico

BLOCO ULTRASONIC SENSOR

Nas propriedades do bloco ULTRASONIC SENSOR podemos configurar qual a comparação a ser feita o valor base e emcomparação a ser feita, o valor base e em que porta o sensor está ligado. E na propriedade SHOW definimos as unidades de medidas a serem utilizadas.

PROPRIEDADES

Sensor Ultrasônico

Na propriedade PORT configuramos a porta que o sensor está conectado.

PROPRIEDADE PORT

Sensor Ultrasônico

Na propriedade COMPARE configuramos l ã d j fqual comparação desejamos fazer, se 

queremos valores maiores ou menores que o valor base determinado.

PROPRIEDADE COMPARE

Sensor Ultrasônico

Na propriedade SHOW definimos se queremos as medidas em centímetros ou em polegadas.

PROPRIEDADE SHOW

ÕBOTÕES

BOTÕES

BLOCO NXT BUTTONS

Nas propriedades do bloco NXT BUTTONS podemos configurar qual a ação a ser verificada e qual o botão que queremos testar.

PROPRIEDADES

BOTÕES

Na propriedade BUTTONS definimos qual o botão do robô que desejamos utilizar.

PROPRIEDADE BUTTONS

BOTÕES

Na propriedade ACTION configuramos qual ação a ser verificada. Se o botão definido foi pressionado, liberado ou colidido.

PROPRIEDADE ACTION

ÃSENSOR DE ROTAÇÃO

Sensor de Rotaçãoç

BLOCO ROTATION SENSOR

Nas propriedades do bloco ROTATION SENSOR d fi lSENSOR podemos configurar qual a comparação a ser feita, as unidades da comparação e a ação a ser feita.

PROPRIEDADES

Sensor de Rotaçãoç

Na propriedade PORT configuramos a porta que o motor está conectado.

PROPRIEDADE PORT

Sensor de Rotaçãoç

Na propriedade ACTION escolhemos se queremos zerar o contador ou se queremos ler o contador para efetuar a comparaçãoler o contador para efetuar a comparação.

PROPRIEDADE COMPARE

Sensor de Rotaçãoç

Na propriedade COMPARE escolhemos a direção d t ã d fi i ti d ãda rotação, definimos o tipo de comparação , informamos o valor base e a unidade da comparação.

PROPRIEDADE COMPARE

CONTROLADOR DE TEMPO

Controlador de Tempop

BLOCO TIMER

Nas propriedades do bloco TIMER podemos configurar qual a comparação p g q p ça ser feita, o tempo de espera e a ação a ser feita.

PROPRIEDADES

Controlador de Tempop

Na propriedade TIMER configuramos o tempo de espera para a execução, podemos definir 1,2 ou 3 segundos.podemos definir 1,2 ou 3 segundos.

PROPRIEDADE TIMER

Controlador de Tempop

Na propriedade ACTION escolhemos se queremos zerar o contador ou se queremos ler o contador para efetuar a comparaçãoler o contador para efetuar a comparação.

PROPRIEDADE COMPARE

Controlador de Tempop

Na propriedade COMPARE escolhemos o tipo de comparação e informamos o valor base.

PROPRIEDADE COMPARE

RECEBENDO MENSAGEM

Recebendo Mensagemg

BLOCO RECEIVE MESSAGE

Nas propriedades do bloco RECEIVE MESSAGE podemos configurar qual o tipo de mensagem e p g q p gqual a mensagem.  Além de configurar qual caixa desejamos verificar.

PROPRIEDADES

Recebendo Mensagemg

Na propriedade MESSAGE configuramos o tipo de mensagem e qual a mensagem que queremos fazer a comparação.queremos fazer a comparação.

PROPRIEDADE MESSAGE

Recebendo Mensagemg

Na propriedade MESSAGE podemos escolher se a mensagem é do tipo texto, número ou valor lógicovalor lógico.

TIPO DE MENSAGEM

Recebendo Mensagemg

Na propriedade MESSAGE informamos tambémNa propriedade MESSAGE informamos também a mensagem que desejamos verificar.

MENSAGEM

Recebendo Mensagemg

Na propriedade MAILBOX definimos qual caixaNa propriedade MAILBOX definimos qual caixa de mensagem desejamos verificar.

PROPRIEDADE MAILBOX

Calibrando SensoresCalibrando Sensores

• Os sensores de luz e som podem responder de forma diferente em diferentes ambientes.

• Por exemplo, o máximo em uma sala iluminada será diferente do máximo em umiluminada será diferente do máximo em um quarto mal iluminado.

• O NXT‐G oferece um bloco de calibração para corrigir este tipo de variação.corrigir este tipo de  variação.

Calibrando SensoresCalibrando Sensores

• O bloco CALIBRATION nos permite modificar as configurações de máximo e mínimo dos g çsensores de luz  e de som durante a execução do programado programa.

• Podemos calibrar os sensores também através do menu TOOLS, mas dessa forma os sensores não são calibrados durante a execução do programa e sim antes deles.

Calibrando Sensores

O bloco CALIBRATION fica em COMPLETEO bloco CALIBRATION fica em COMPLETE PALETTE em ADVANCED.

BLOCO CALIBRATIONADVANCED

COMPLETE PALETTE

Calibrando Sensores

Para calibrarmos o sensor primeiro devemos escolher

BLOCO CALIBRATION

Para calibrarmos o sensor primeiro devemos escolher qual sensor iremos calibrar, qual porta ele está, qual ação desejamos executar e qual valor iremos configurar.g

PROPRIEDADES DO BLOCO CALIBRATION

Calibrando Sensores

Na propriedade SENSOR escolhemos qual sensorNa propriedade SENSOR escolhemos qual sensor desejamos calibrar: o de luz ou o de som.

PROPRIEDADE SENSOR: LIGHT OU SOUND

Calibrando Sensores

Na propriedade ACTION escolhemos qual a açãoNa propriedade ACTION escolhemos qual a ação queremos executar: calibrar ou deletar as configurações atuais do sensor.

PROPRIEDADE ACTION: CALIBRATE OU DELETE

Calibrando Sensores

Na propriedade VALUE escolhemos qual o valorNa propriedade VALUE escolhemos qual o valor  que vamos configurar: máximo ou de mínimo.

PROPRIEDADE VALUE: MAXIMUM OU MINIMUM

TIPOS DE DADOS ETIPOS DE DADOS E VARIÁVEIS

TIPOS DE DADOSTIPOS DE DADOSTipo Valores Descriçãoipo Valo es esc ição

Numérico -2147483648 - 2147483647Esse tipo de dado é usado para fazer operações matemáticas, contadores dentre outras utilidades que os números apresentamnúmeros apresentam

Lógico true (1) ou false (0)

Esse tipo de dado é utilizado para operações lógicas, obtenção de resultados para tomada de decisões. Os sensores do robô utilizam esse tipo de dados para informar os resultados de sua execução.

Esse tipo de dado é utilizado quando queremos operar com textos, ou seja, desejamos operar com palavras e não com números. São muito utilizados para a

Texto a à z,A à Z e 0 à 9não com números. São muito utilizados para a impressão na tela do robô, para criação de arquivos dentre outras utilidades. Podemos juntar qualquer letra, maiúscula ou minúscula, com números para termos o resultado que queremos.resultado que queremos.

VariáveisVariáveis

• Pense em uma variável como um local para armazenar um valor na memória do robô.

• Outros blocos de programação podem ler o valor atual da variável (e até mesmo alterá lo)valor atual da variável (e até mesmo alterá-lo), bastando para isso ligá-los ao bloco com fios de dados.

• Com variáveis, podemos armazenar dados doCom variáveis, podemos armazenar dados do tipo lógico, numérico ou texto.

VariáveisJANELA EDIT VARIABLES

VARIÁVEIS DEFINIDAS

DEFINIÇÃO DO NOMEDEFINIÇÃO DO NOME

DEFINIÇÃO DO TIPO

Para criar variáveis basta ir em EDIT no menu, depois em DEFINE VARIABLES Na janela EDIT VARIABLES clicamos emDEFINE VARIABLES.  Na janela EDIT VARIABLES clicamos em CREATE para criar a variável, damos um nome a ela e definimos o seu tipo.

Variáveis

BLOCO VARIABLE

Depois de criar as variáveis temos que inserir

BLOCO VARIABLE

Depois de criar as variáveis temos que inserir os blocos para controlá‐las para que possamos utilizá‐las dentro do programa. Para isso basta irmos em COMPLETE PALETTE, no grupo

GRUPO DATA

DATA e inserimos o bloco VARIABLE.

PROPRIEDADESCOMPLETE PALETTE

Variáveis

Agora precisaremos definir qual será a variável a ser configurada pelo bloco. Utilizamos para isso as propriedades p p pdo bloco VARIABLE.

PROPRIEDADES

Variáveis

Podemos escolher entre três opções básicas para definir nossas variáveis: lógica textopara definir nossas variáveis: lógica, texto ou numérica. Qualquer programa irá ter sempre essas três variáveis básicas definidas e prontas para serem usadasdefinidas, e prontas para serem usadas.

TIPO LÓGICO

TIPO NUMÉRICO

TIPO TEXTO

Variáveis

Quando definimos o tipo da variável as opções correspondentes dela são disponibilizadascorrespondentes dela são disponibilizadas. Abaixo temos as três opções apenas para compararmos.

TIPO LÓGICO

TIPO NUMÉRICO

TIPO TEXTO

Variáveis

Como podemos ver em qualquer um dos três tipos temos a propriedade ACTION que define p p p qse iremos utilizar o bloco VARIABLEpara ler ou escrever na variável.

PROPRIEDADE ACTION

TIPO LÓGICO

PROPRIEDADE ACTION

TIPO NUMÉRICO

TIPO TEXTO

Variáveis

Outra propriedade comum é a LIST que é onde definimos qual variável iremos utilizar. Nessa propriedade fica além das variáveis padrões, as variáveis que definimos no menu EDIT em DEFINE VARIABLES.

PROPRIEDADE LISTLISTAGEM DE TODAS AS VARIÁVEIS DO

TIPO LÓGICO

PROGRAMA DEFINIDAS EM EDIT VARIABLES

TIPO NUMÉRICO

TIPO TEXTO

Variáveis

Agora que vimos as propriedades comuns em todos os blocos VARIABLE para qualquer tipo, veremos então as propriedades particulares de cada tipo dentro do bloco VARIABLE.

TIPO LÓGICO

TIPO NUMÉRICO

TIPO TEXTO

Variáveis

Para variáveis do tipo lógica na propriedade VALUE definimos qual o valor que será escrito na variável se TRUE ou FALSE. Essa opção só fica ativa caso a propriedade ACTION esteja marcada como WRITE.

PROPRIEDADE VALUEPROPRIEDADE VALUE

TIPO LÓGICO

Variáveis

Para variáveis do tipo numérica na propriedade VALUE definimos qual o número que será escrito na variável. Essa opção só fica ativa caso a propriedade ACTION esteja marcada como WRITE.

PROPRIEDADE VALUE

TIPO NUMÉRICO

Variáveis

Para variáveis do tipo texto na propriedade VALUE definimos qual o texto que será escrito na variável. Essa opção só fica ativa caso a propriedade ACTION esteja marcada como WRITE.

PROPRIEDADE VALUE

TIPO TEXTO

Variáveis

Como podemos ver abaixo todas as variáveis que definimos em DEFINE VARIABLES ficam listadas em LIST no bloco VARIABLE, assim poderemos utilizar qualquer uma delas durante o programa.

EXEMPLO DE VARIÁVEL DEFINIDA TIPO LÓGICA

EXEMPLO DE VARIÁVEL DEFINIDA TIPO NUMÉRICO

EXEMPLO DE VARIÁVEL DEFINIDA TIPO TEXTO

Variáveis

Outra coisa que podemos perceber é que a propriedade VALUE das variáveis que definimos é a mesma da sua respectiva variável predefinida do mesmo tipo.

EXEMPLO DE VARIÁVEL DEFINIDA TIPO LÓGICA

EXEMPLO DE VARIÁVEL DEFINIDA TIPO NUMÉRICO

EXEMPLO DE VARIÁVEL DEFINIDA TIPO TEXTO

VariáveisVariáveis

• Observação: se precisarmos alterar o tipo de dados ou nome de uma variável, bastará ir ao ,comando DEFINE VARIABLES do menu EDIT e alterar a configuração da variávelEDIT e alterar a configuração da variável desejada na janela EDIT VARIABLES.

PASSAGEM DE DADOS

Passagem de DadosPassagem de Dados

• Poderemos querer utilizar o resultado de alguma operação de um bloco em outro bloco, g p ç ,para isso precisamos ligar um bloco ao outro.

• Para fazermos essa passagem de dados• Para fazermos essa passagem de dados precisamos utilizar arames de ligação e as conexões dos blocos.

• A seguir veremos os tipos de arames queA seguir veremos os tipos de arames que podem surgir nos nossos programas.

Conexões e Arames de Ligação

[A] Conexão de entrada (lado esquerdo do bloco)( q )[B] Conexão de saída (lado direito do bloco)[C] Ligação de dados numéricos (amarelo)[D] Ligação de dados lógicos (verde)[ ] g ç g ( )[E] Ligação de dados textos (laranja)[F] Ligação de dados incompatíveis (erro-cinza)

Conexões e Arames de LigaçãoConexões e Arames de Ligação

• Para podermos ligar dois blocos primeiro precisamos visualizar suas conexões, para isso p , pbasta clicar na guia do canto inferior esquerdo do blocodo bloco.

• Caso não seja mostrado todas as conexões, é só clicar outra vez na guia que elas aparecerão.

• Se quisermos ocultar conexões que não estãoSe quisermos ocultar conexões que não estão sendo utilizadas basta clicar na guia.

Conexões e Arames de LigaçãoConexões e Arames de Ligação

GUIA DE CONEXÕES ESPANDIDA

GUIA DE CONEXÕES OCULTA

Conexões e Arames de LigaçãoConexões e Arames de Ligação• O cursor mudará de forma quando o mouseO cursor mudará de forma, quando o mouse

passar sobre ou perto de uma conexão de d d P i b tã d tdados. Pressione o botão do mouse e arraste um fio de dados da saída de um bloco até a entrada de outro bloco.

• Para excluir um fio de dados que se estende daPara excluir um fio de dados que se estende da esquerda para a direita entre duas conexões de dados clique sobre a conexão do bloco dadados, clique sobre a conexão do bloco da direita.

Conexões e Arames de LigaçãoConexões e Arames de Ligação• Cada fio de dados transporta um tipoCada fio de dados transporta um tipo

específico de dados entre os blocos. Por l fi d d d é t d dexemplo, se um fio de dados é arrastado de

uma saída lógica de um bloco, ele só pode ser conectado a uma entrada lógica de outro bloco.

• Caso se conecte tipos de dados diferentes aCaso se conecte tipos de dados diferentes a ligação será quebrada e você não poderá enviar seu programa para o robô pois um erro de tiposeu programa para o robô, pois um erro de tipo foi encontrado no seu programa.

Conexões e Arames de LigaçãoConexões e Arames de Ligação• Se você clicar em um fio quebrado vocêSe você clicar em um fio quebrado você

poderá visualizar na janela de ajuda o motivo.• Os dados devem estar dentro dos limites

possíveis da conexão.p• Se um fio de entrada de dados transmite um

valor fora da faixa possível da conexão que évalor fora da faixa possível da conexão que é ligado, o bloco irá ignora o valor ou alterá-lo

l d d lpara um valor dentro de sua escala.

Conexões e Arames de LigaçãoConexões e Arames de Ligação• Para PLUGS que permitem apenas algunsPara PLUGS que permitem apenas alguns

valores de entrada (ex: apenas 0, 1 ou 2), a ã i á i t d l fconexão irá ignorar a entrada se o valor for

fora de seu alcance.• Para plugs que aceitam maiores gamas de

entrada (ex: 0 - 100) a conexão irá forçar paraentrada (ex: 0 100), a conexão irá forçar para se ajustar. Por exemplo, se uma conexão no bloco MOVE POWER recebe um valor debloco MOVE POWER recebe um valor de entrada de 150, o bloco irá alterar o valor de

dentrada para 100.

Conexões e Arames de LigaçãoConexões e Arames de Ligação• Se uma entrada tem uma saída correspondenteSe uma entrada tem uma saída correspondente,

os dados de entrada passarão através da t d íd lt dentrada para a saída sem ser alterado.

• Neste caso, você só pode usar a saída se a pentrada estiver conectada a um fio de dados de entradaentrada

• Ligar uma saída de dados em uma entrada sem fi d d d d dfio conectado a entrada de dados correspondente a saída irá causar um erro.

Conexões e Arames de LigaçãoConexões e Arames de Ligação

CONEXÃO DE ENTRADA PASSANDO PARA A SAÍDA

CONEXÃO DE ENTRADA PASSANDO PARA A SAÍDAPARA A SAÍDA PARA A SAÍDA

OS DADOS OBTIDOS NAS ENTRADAS SÃO PASSADOS PARA A SAÍDA SEM SOFREREM MUDANÇAS, ASSIM PODEMOS UTILIZÁ-LOS MAS SAÍDAS.MAS SAÍDAS.

UTILIZANDO SENSORES

Utilizando SensoresUtilizando Sensores

• Para criar programas que são controlados por sensores temos duas opções, podemos utilizar um bloco para a verificação do sensor e outro p çpara testar a condição de controle ou podemos utilizar o bloco Wait para fazer tudo Isso nosutilizar o bloco Wait para fazer tudo. Isso nos facilita muito em casos em que queremos apenas testar se certa condição foi satisfeita noapenas testar se certa condição foi satisfeita no sensor escolhido. Mostraremos à seguir como

ili bl i l dutilizar o bloco Wait para controle de sensores.

Utilizando Sensores

Na aba de blocos comuns temos o grupo WAITNa aba de blocos comuns temos o grupo WAIT, onde podemos escolher dentre os cinco tipos de controles principais do bloco WAIT.

GRUPO WAIT

ABA DE BLOCOS COMUNS

Utilizando Sensores

O TIME controla o programa através de umO TIME controla o programa através de um contador de tempo, especificamos o tempo em segundos que o programa deverá esperar.

TIME

ABA DE BLOCOS COMUNS

Utilizando Sensores

O TOUCH controla o programa através do sensorO TOUCH controla o programa através do sensor de toque, especificamos a porta do sensor e qual ação deveremos esperar para que o programa prossiga.p g p g

TOUCH

ABA DE BLOCOS COMUNS

Utilizando Sensores

O LIGHT controla o programa através do sensorO LIGHT controla o programa através do sensor de luz, especificamos a porta do sensor e qual valor de luminosidade devemos esperar para que o programa prossiga.q p g p g

LIGHT

ABA DE BLOCOS COMUNS

Utilizando Sensores

O SOUND controla o programa através do sensorO SOUND controla o programa através do sensor de som, especificamos a porta do sensor e qual nível de ruído devemos esperar para que o programa prossiga.

SOUND

ABA DE BLOCOS COMUNS

Utilizando Sensores

O DISTANCE controla o programa através do sensor ultrasônico, especificamos a porta do sensor e qual  a distância que devemos esperar para que oa distância que devemos esperar para que o programa prossiga.

DISTANCE

ABA DE BLOCOS COMUNS

Utilizando Sensores

BLOCO WAIT

Com a propriedade CONTROL podemos modificar o bloco WAIT como e quando quisermos. Podemos escolher q qentre duas opções para: SENSOR para utilizarmos um dos sensores para controlar o programa e a TIME para controlarmos o programa através do contador.

OPÇÕES DA PROPRIEDADE CONTROL

Utilizando Sensores

BLOCO WAIT

Quando a propriedade CONTROL é configurada como SENSOR, outras opções são ativadas. A propriedade , pç p pSENSOR nos possibilita escolher qual o sensor que desejamos utilizar.

OPÇÕES DA PROPRIEDADE SENSOR

Utilizando Sensores

BLOCO WAIT

Do lado direito aparecem as propriedades do sensor escolhido, cada sensor apresenta o seu grupo de , p g ppropriedades para controle. As propriedades dos sensores nós já vimos anteriormente em SENSORES.

PROPRIEDADES DO SENSOR

Utilizando SensoresUtilizando Sensores• 1º Exemplo - Robô: ligar os motores BC1 Exemplo - Robô: ligar os motores BC

ilimitadamente, quando o sensor de toque for i d tãpressionado então parar.

• 2º Exemplo - Robô: dar uma volta para frente p pcom o motor A e parar, quando o sensor de luz detectar uma iluminação maior que 30 entãodetectar uma iluminação maior que 30 então dar 1/2 volta para trás com o motor A e parar.

Utilizando SensoresUtilizando Sensores1º Exemplo - Robô: ligar os motores BC1 Exemplo - Robô: ligar os motores BC

ilimitadamente, quando o sensor de toque for i d tãpressionado então parar.

• Para criar esse programa precisamos dividi-lo p g pem três partes: A primeira irá ligar os motores BC a segunda irá aguardar o sensor de toqueBC, a segunda irá aguardar o sensor de toque ser pressionado e a terceira irá desligar os motores BCmotores BC.

Utilizando SensoresUtilizando Sensores1º Parte - Robô: ligar os motores BC1 Parte - Robô: ligar os motores BC

ilimitadamente.• Insira o bloco MOVE com a propriedade

DIRECTION em FOWARD e a propriedade p pDURATION em UNLIMITED. Escolha a potência desejada e marque as portas certaspotência desejada e marque as portas certas.

Utilizando Sensores

BLOCO MOVE

DURATION: UNLIMITEDDIRECTION: FORWARD

Utilizando SensoresUtilizando Sensores2º Parte - Robô: aguarde o sensor de toque ser2 Parte - Robô: aguarde o sensor de toque ser

pressionado.• Insira o bloco TOUCH na paleta comum de

bloco, no grupo WAIT.g p• Marque a opção PRESSED na propriedade

ACTION do bloco WAITACTION do bloco WAIT.• E configure a porta do sensor de toque.

Utilizando Sensores

BLOCO WAIT: TOUCH

GRUPO WAIT

TOUCH

PALETA COMUMCONTROL: SENSOR

ACTION: PRESSEDSENSOR: TOUCH SENSOR

Utilizando SensoresUtilizando Sensores3º Parte - Robô: pare3 Parte - Robô: pare.• Insira um bloco MOVE após o bloco WAIT.• Marque as portas dos motores utilizadas

anteriormente.anteriormente.• Na propriedade DIRECTION marque a opção

STOPSTOP.• Na propriedade NEXT ACTION marque a p p q

opção BRAKE.

Utilizando Sensores

BLOCO MOVE

NEXT ACTION: BRAKEDIRECTION: STOP

Utilizando SensoresUtilizando Sensores2º Exemplo - Robô: dar uma volta para frente2 Exemplo - Robô: dar uma volta para frente

com o motor A e parar, quando o sensor de luz d t t il i ã i 30 tãdetectar uma iluminação maior que 30 então dar 1/2 volta para trás com o motor A e parar.

• Para criar esse programa precisamos dividi-lo em três partes: A primeira irá dar uma voltaem três partes: A primeira irá dar uma volta com o motor A, a segunda irá aguardar o sensor de luz e a terceira irá dar meia voltasensor de luz e a terceira irá dar meia volta para trás com o motor A.

Utilizando SensoresUtilizando Sensores1º Parte - Robô: dar um volta com o motor A1 Parte - Robô: dar um volta com o motor A.• Insira o bloco MOVE com a propriedade

DIRECTION em FOWARD e a propriedade DURATION em ROTATIONS com o valor 1. Escolha a potência desejada e marque a porta certa Marque a opção BRAKE em NEXTcerta. Marque a opção BRAKE em NEXT ACTION.

Utilizando Sensores

BLOCO MOVE

DIRECTION: FORWARD

DURATION: ROTATIONS

DIRECTION: FORWARDNEXT ACTION: BRAKE

Utilizando SensoresUtilizando Sensores2º Parte - Robô: aguarde o sensor de luz detectar2 Parte - Robô: aguarde o sensor de luz detectar

uma iluminação maior que 30%.• Insira o bloco LIGHT na paleta comum de

bloco, no grupo WAIT.g p• Marque a opção (>) maior na propriedade

UNTIL do bloco WAIT e coloque o valor 30UNTIL do bloco WAIT e coloque o valor 30.• Configure a porta do sensor de toque.

Utilizando Sensores

BLOCO WAIT: LIGHT

GRUPO WAIT

LIGHT

PALETA COMUMCONTROL: SENSOR

UNTIL: > (MAIOR)SENSOR: LIGHT SENSOR

Utilizando SensoresUtilizando Sensores3º Parte - Robô: dê meia volta para trás com o3 Parte - Robô: dê meia volta para trás com o

motor A.• Insira um bloco MOVE após o bloco WAIT.• Na propriedade DIRECTION marque a opçãoNa propriedade DIRECTION marque a opção

BACKWARD.E DURATIONS ã DEGREES• Em DURATIONS marque a opção DEGREES e coloque 180.

• Na propriedade NEXT ACTION marque a opção BRAKEopção BRAKE.

Utilizando Sensores

BLOCO MOVE

DIRECTION: BACKWARD

DURATION: DEGREESNEXT ACTION: BRAKE

UTILIZANDO ARAMES DEUTILIZANDO ARAMES DE LIGAÇÃOÇ

Utilizando Arames de LigaçãoUtilizando Arames de Ligação• 1º Exemplo – Robô: se o sensor luminoso1 Exemplo Robô: se o sensor luminoso

detectar uma iluminação maior que 50% dê d lt f t jduas voltas para frente e pare, caso seja menor que 50% dê duas voltas para trás e diminua até parar.

• 2º Exemplo – Robô: se o sensor ultrasônico2 Exemplo Robô: se o sensor ultrasônico detectar uma distância maior que 127cm dar duas voltas para frente e parar senão dar duasduas voltas para frente e parar, senão dar duas voltas para trás e diminua até parar.

Utilizando Arames de LigaçãoUtilizando Arames de Ligação1º Exemplo - Robô: se o sensor luminoso1 Exemplo - Robô: se o sensor luminoso

detectar uma iluminação maior que 50% dê d lt f t jduas voltas para frente e pare, caso seja menor que 50% dê duas voltas para trás e diminua até parar.

• Vamos dividir esse exemplo em duas partes:Vamos dividir esse exemplo em duas partes: uma irá verificar o sensor luminoso e transmitir o resultado para a outra parte atransmitir o resultado para a outra parte, a segunda parte irá receber e executar a devida

d d l d b idação de acordo com o resultado obtido.

Utilizando Arames de LigaçãoUtilizando Arames de Ligação1º Parte – Robô: verifique se o sensor luminoso1 Parte Robô: verifique se o sensor luminoso

detectar uma iluminação maior que 50%.• Insira um bloco LIGHT SENSOR da paleta

COMPLETE grupo SENSOR.g p• Configure a porta do sensor.

M i d d COMPARE ã• Marque na propriedade COMPARE a opção maior (>) e coloque o valor de 50.

Utilizando Arames de Ligaçãog ç

GRUPO SENSOR

LIGHT SENSOR

BLOCO LIGHT SENSOR

COMPARE: MAIOR (>)COMPLETE PALETTE

Utilizando Arames de LigaçãoUtilizando Arames de Ligação2º Parte – Robô: dê duas voltas para frente caso2 Parte Robô: dê duas voltas para frente caso

resultado seja verdadeiro, se for falso de duas lt t ávoltas para trás.

• Insira um bloco MOVE e configura as portas.g p• Na propriedade DURATION marque

ROTATIONS e coloque o valor 2ROTATIONS e coloque o valor 2.

Utilizando Arames de LigaçãoUtilizando Arames de Ligação• Agora precisamos ligar um bloco ao outro paraAgora precisamos ligar um bloco ao outro para

que o bloco MOVE seja controlado pelo bloco LIGHT SENSORLIGHT SENSOR.

• Abra as conexões dos dois blocos, para que p qpossa ver todas elas.

• Clique na conexão de saída YES/NO do bloco• Clique na conexão de saída YES/NO do bloco LIGHT SENSOR. Ela dá o resultado da

ã d blcomparação do bloco.

Utilizando Arames de LigaçãoUtilizando Arames de Ligação• Depois clique na conexão de entradaDepois clique na conexão de entrada

DURATION do bloco MOVE.• Clique novamente na conexão de saída

YES/NO do bloco LIGHT SENSOR.• Depois clique na conexão de entrada NEXT

ACTION do bloco MOVEACTION do bloco MOVE.• Pronto, teremos agora uma saída do bloco

LIGHT SENSOR conectada a duas entradas do bloco MOVE.

Utilizando Arames de Ligaçãog ç

ARAME DE LIGAÇÃO ENTRADA DIRECTIONARAME DE LIGAÇÃOARAME DE LIGAÇÃO ENTRADA NEXT ACTION

ARAME DE LIGAÇÃO SAÍDA YES/NO

DURATION: ROTATIONS

Utilizando Arames de LigaçãoUtilizando Arames de Ligação2º Exemplo - Robô: se o sensor ultrasônico2 Exemplo - Robô: se o sensor ultrasônico

detectar uma distância maior que 127cm dar d lt f t ã d dduas voltas para frente e parar, senão dar duas voltas para trás e diminua até parar.

• Vamos dividir esse exemplo em duas partes: uma irá verificar o sensor ultrasônico euma irá verificar o sensor ultrasônico e transmitir o resultado para a outra parte, a segunda parte irá receber e executar a devidasegunda parte irá receber e executar a devida ação de acordo com o resultado obtido.

Utilizando Arames de LigaçãoUtilizando Arames de Ligação1º Parte – Robô: verifique se o sensor ultrasônico1 Parte Robô: verifique se o sensor ultrasônico

detectar uma distância maior que 127cm.• Insira um bloco ULTRASONIC SENSOR da

paleta COMPLETE grupo SENSOR.p g p• Configure a porta do sensor.

M i d d COMPARE ã• Marque na propriedade COMPARE a opção maior (>) e coloque o valor de 127.

• Marque ma propriedade SHOW a opção CENTIMETERSCENTIMETERS.

Utilizando Arames de Ligaçãog ç

GRUPO SENSOR

ULTRASONIC SENSOR

BLOCO ULTRASONIC SENSOR

COMPARE: MAIOR (>)COMPLETE PALETTE

SHOW: CENTIMETERS

Utilizando Arames de LigaçãoUtilizando Arames de Ligação2º Parte – Robô: dê duas voltas para frente caso2 Parte Robô: dê duas voltas para frente caso

resultado seja verdadeiro, se for falso de duas lt t ávoltas para trás.

• Insira um bloco MOVE e configura as portas.g p• Na propriedade DURATION marque

ROTATIONS e coloque o valor 2ROTATIONS e coloque o valor 2.

Utilizando Arames de LigaçãoUtilizando Arames de Ligação• Agora precisamos ligar um bloco ao outro paraAgora precisamos ligar um bloco ao outro para

que o bloco MOVE seja controlado pelo bloco ULTRASONIC SENSORULTRASONIC SENSOR.

• Abra as conexões dos dois blocos, para que p qpossa ver todas elas.

• Clique na conexão de saída YES/NO do bloco• Clique na conexão de saída YES/NO do bloco ULTRASONIC SENSOR. Ela dá o resultado d ã d blda comparação do bloco.

Utilizando Arames de LigaçãoUtilizando Arames de Ligação• Depois clique na conexão de entradaDepois clique na conexão de entrada

DURATION do bloco MOVE.• Clique novamente na conexão de saída

YES/NO do bloco ULTRASONIC SENSOR.• Depois clique na conexão de entrada NEXT

ACTION do bloco MOVEACTION do bloco MOVE.• Pronto, teremos agora uma saída do bloco

ULTRASONIC SENSOR conectada a duas entradas do bloco MOVE.

Utilizando Arames de Ligaçãog ç

ARAME DE LIGAÇÃO ENTRADA DIRECTIONARAME DE LIGAÇÃOARAME DE LIGAÇÃO ENTRADA NEXT ACTION

ARAME DE LIGAÇÃO SAÍDA YES/NO

DURATION: ROTATIONS

ÁUTILIZANDO VARIÁVEIS

Utilizando Variáveis

BLOCO RANDOM

RANDOM

GRUPO DATAO bloco RAMDOM nos permite gerar números aleatórios. Ele se encontra no grupo DATA do COMPLETE PALETTEEle se encontra no grupo DATA do COMPLETE PALETTE.Podemos definir um intervalo entre o A e B para a geração dos números.

PALETA COMPLETA

Utilizando Variáveis

BLOCO NUMBERTOTEXT

NUMBERTOTEXT

GRUPO ADVANCEDO bloco NUMBERTOTEXT nos permite converter ú Elnúmero em texto. Ele se encontra no grupo 

ADVANCED do COMPLETE PALETTE. Usamos esse bloco pois precisamos enviar dados numéricos para blocos que só aceitam dados do tipo texto.

PALETA COMPLETA

p q p

Utilizando VariáveisUtilizando Variáveis1º Exemplo – Robô: Sorteie um número entre 0 e1 Exemplo Robô: Sorteie um número entre 0 e 100. caso o sensor ultrasônico detecte uma di tâ i i 127 dê i ltdistância maior que 127cm dê cinco voltas para frente e pare, caso contrário de 5 voltas para trás e diminua até parar. Mostre na tela o número sorteado.Para criarmos o exemplo dado precisamos primeiro separá-lo em partes:primeiro separá lo em partes:Robô: guarde o valor 100.

Utilizando VariáveisUtilizando VariáveisRobô: sorteie um valor entre 0 e o valorRobô: sorteie um valor entre 0 e o valor guardado e o guarde o valor sorteado.R bô ifi lt ô iRobô: verifique o sensor ultrasônico.Robô: se o valor do sensor ultrasônico foi maior que 127cm, dê cinco voltas para frente e pare. Caso seja menor dê cinco voltas para trás e j pdiminua até parar.Robô: converta o valor sorteado para textoRobô: converta o valor sorteado para texto.Robô: mostre na tela o valor sorteado.

Utilizando Variáveis

BLOCO VARIABLE

Configure uma variável do tipo número. Insira um bloco VARIABLE e o defina como a variável que foi definida em DEFINE VARIABLES. Marque o bloco como escrita WRITE e coloque o valor 100como escrita WRITE e coloque o valor 100.

Utilizando Variáveis

BLOCO VARIABLE: READBLOCO VARIABLE: WRITE

BLOCO RANDOM

Insira outro bloco VARIABLE com o mesmo tipo do bloco anterior, mas definido como READ. Insira um bloco RANDOM e ligue a gentrada B a saída do bloco VARIABLE  inserido anteriormente.  Insira uma variável do tipo número para guardar ovalor sorteado. Configure‐a para escrita WRITE e ligue at d d l íd d bl RANDOMentrada dela na saída do bloco RANDOM.

Utilizando Variáveis

BLOCO ULTRASONIC SENSOR

Insira um bloco ULTRASONIC SENSOR configure‐o para medidas em centímetros, maior (>) e com o valor 127.

Utilizando Variáveis

BLOCO MOVE

Insira um bloco MOVE configure‐o com 5 ROTATIONS. Ligue a saída do bloco ULTRASONIC SENSOR nas entradas DIRECTION e NEXT ACTION do bloco MOVE.entradas DIRECTION e NEXT ACTION do bloco MOVE.

Utilizando Variáveis

BLOCO NUMBERTOTEXT

BLOCO VARIABLE

BLOCO DISPLAY

Insira um bloco VARIABLE do mesmo tipo do bloco VARIABLE que recebeu o valor sorteado. Insira um bloco NUMBERTOTEXT e ligue a entrada dele na saída do bloco VARIABLE. Insira um bloco DISPLAY configurado como TEXT e ligue aEntrada TEXT dele na saída do bloco NUMBERTOTEXT.

Utilizando Variáveis

BLOCO TIME

Insira um bloco TIME e o configure com 5 segundos.