Á
SENSORES E VARIÁVEIS
SENSORES 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
TIPOS DE SENSORES
TIPOS 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 SENSORES
TIPOS DE SENSORES
RESUMO DOS SENSORES RESUMO DOS SENSORES
Sensor Condições Descrição
Touch (Toque)
Pressed, released, bumped Pressionado, 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 Sensores
Tipos de Sensores
GRUPO SENSOR
Todos os blocos de sensores Todos os blocos de sensores encontram‐se na paleta completa de blocos, no grupo SENSOR.
Tipos de Sensores
Tipos de Sensores
SENSOR DE TOQUE
O bloco TOUCH SENSOR O bloco TOUCH SENSOR controla as opções do sensor de toque do robô.
Tipos de Sensores
Tipos de Sensores
SENSOR SONORO
O bloco SOUND SENSOR O bloco SOUND SENSOR controla as opções do sensor sonoro do robô.
Tipos de Sensores
Tipos de Sensores
SENSOR DE LUZ
O bloco LIGHT SENSOR O bloco LIGHT SENSOR controla as opções do sensor de luz do robô.
Tipos de Sensores
Tipos de Sensores
SENSOR ULTRASÔNICO O bloco ULTRASONIC O bloco ULTRASONIC SENSOR controla as opções do sensor ultrasônico do robô.Tipos de Sensores
Tipos de Sensores
BOTÕES NXT O bloco NXT BUTTONS O bloco NXT BUTTONS controla as opções do botões do robô.Tipos de Sensores
Tipos de Sensores
SENSOR DE ROTAÇÃO
O bloco ROTATION SENSOR O bloco ROTATION SENSOR controla as opções do sensor de rotação dos motores.
Tipos de Sensores
Tipos de Sensores
CONTADOR DE TEMPO
O bloco TIMER controla as O bloco TIMER controla as opções do contador de tempo do robô.
Tipos de Sensores
Tipos de Sensores
RECEBENDO DE MENSAGEM
O bloco RECEIVE MESSAGE O bloco RECEIVE MESSAGE controla as opções do correio de mensagem do robô através do Bluetooth.
Sensor de Toque
q
BLOCO TOUCH SENSOR
Nas 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 Toque
q
Na propriedade PORT configuramos a porta que o sensor está
conectado.
Sensor de Toque
q
Na propriedade ACTION configuramos qual ação a ser verificada. Se o sensor foi pressionado, liberado ou colidido. PROPRIEDADE ACTIONSensor Sonoro
BLOCO SOUND SENSOR
Nas 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.
Sensor Sonoro
Na propriedade COMPARE configuramos l ã d j f qual comparação desejamos fazer, se queremos valores maiores ou menores que o valor base determinado. PROPRIEDADE COMPARESensor de Luminosidade
BLOCO LIGHT SENSOR
Nas propriedades do bloco LIGHT SENSOR podemos configurar qual a comparação a ser feita, o valor base e t tá li d em 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.
Sensor de Luminosidade
Na propriedade COMPARE configuramos l ã d j f qual comparação desejamos fazer, se queremos valores maiores ou menores que o valor base determinado. PROPRIEDADE COMPARESensor de Luminosidade
Na propriedade FUNCTION temos a opção GENERATE LIGHT d j j GENERATE LIGHT, se desejarmos que seja gerada iluminação a deixamos marcada, caso contrário basta desmarcá‐la. PROPRIEDADE FUNCTIONÔ
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 em comparaçã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.
Sensor Ultrasônico
Na propriedade PORT configuramos a porta que o sensor está
conectado.
Sensor Ultrasônico
Na propriedade COMPARE configuramos l ã d j f qual comparação desejamos fazer, se queremos valores maiores ou menores que o valor base determinado. PROPRIEDADE COMPARESensor Ultrasônico
Na propriedade SHOW definimos se queremos as medidas em centímetros ou em polegadas.
Õ
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. PROPRIEDADESBOTÕES
Na propriedade BUTTONS
definimos qual o botão do robô que desejamos utilizar.
BOTÕES
Na propriedade ACTION configuramos qual ação a ser verificada. Se o botão definido foi pressionado, liberado ou colidido.
Ã
SENSOR DE ROTAÇÃO
Sensor de Rotação
ç
BLOCO ROTATION SENSOR
Nas propriedades do bloco ROTATION SENSOR d fi l SENSOR 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.
Sensor de Rotação
ç
Na propriedade ACTION escolhemos se queremos zerar o contador ou se queremos ler o contador para efetuar a comparação ler o contador para efetuar a comparação.
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 COMPAREControlador de Tempo
p
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. PROPRIEDADESControlador de Tempo
p
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.
Controlador de Tempo
p
Na propriedade ACTION escolhemos se queremos zerar o contador ou se queremos ler o contador para efetuar a comparação ler o contador para efetuar a comparação.
Controlador de Tempo
p
Na propriedade COMPARE escolhemos o tipo de comparação e informamos o valor base.
Recebendo Mensagem
g
BLOCO RECEIVE MESSAGE
Nas propriedades do bloco RECEIVE MESSAGE podemos configurar qual o tipo de mensagem e p g q p g qual a mensagem. Além de configurar qual caixa desejamos verificar. PROPRIEDADES
Recebendo Mensagem
g
Na propriedade MESSAGE configuramos o tipo de mensagem e qual a mensagem que queremos fazer a comparação.
queremos fazer a comparação.
Recebendo Mensagem
g
Na propriedade MESSAGE podemos escolher se a mensagem é do tipo texto, número ou valor lógico valor lógico. TIPO DE MENSAGEMRecebendo Mensagem
g
Na propriedade MESSAGE informamos também Na propriedade MESSAGE informamos também a mensagem que desejamos verificar.
Recebendo Mensagem
g
Na propriedade MAILBOX definimos qual caixa Na propriedade MAILBOX definimos qual caixa de mensagem desejamos verificar.
Calibrando Sensores
Calibrando 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 um iluminada 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.
Calibrando Sensores
Calibrando 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 programa do 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
Calibrando Sensores
O bloco CALIBRATION fica em COMPLETE O bloco CALIBRATION fica em COMPLETE PALETTE em ADVANCED.
BLOCO CALIBRATION ADVANCED
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
Calibrando Sensores
Na propriedade SENSOR escolhemos qual sensor Na propriedade SENSOR escolhemos qual sensor desejamos calibrar: o de luz ou o de som.
Calibrando Sensores
Na propriedade ACTION escolhemos qual a ação Na propriedade ACTION escolhemos qual a ação queremos executar: calibrar ou deletar as
configurações atuais do sensor.
Calibrando Sensores
Na propriedade VALUE escolhemos qual o valor Na propriedade VALUE escolhemos qual o valor que vamos configurar: máximo ou de mínimo.
TIPOS DE DADOS E
TIPOS DE DADOS E
TIPOS DE DADOS
TIPOS DE DADOS
Tipoipo ValoresValo es Descriçãoesc ição
Numérico -2147483648 - 2147483647
Esse tipo de dado é usado para fazer operações
matemáticas, contadores dentre outras utilidades que os números apresentam
nú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 à 9
nã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.
Variáveis
Variá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áveis
JANELA EDIT VARIABLES
VARIÁVEIS DEFINIDAS DEFINIÇÃO DO NOME DEFINIÇÃ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 em DEFINE VARIABLES. Na janela EDIT VARIABLES clicamos em CREATE para criar a variável, damos um nome a ela e
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. PROPRIEDADES COMPLETE PALETTE
Variáveis
Agora precisaremos definir qual será a variável a ser configurada pelo bloco. Utilizamos para isso as propriedades p p p do bloco VARIABLE.
Variáveis
Podemos escolher entre três opções básicas para definir nossas variáveis: lógica texto para 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 usadas definidas, e prontas para serem usadas.
TIPO LÓGICO
TIPO NUMÉRICO
Variáveis
Quando definimos o tipo da variável as opções correspondentes dela são disponibilizadas
correspondentes dela são disponibilizadas. Abaixo temos as três opções apenas para compararmos.
TIPO LÓGICO
TIPO NUMÉRICO
Variáveis
Como podemos ver em qualquer um dos três tipos temos a propriedade ACTION que define p p p q se iremos utilizar o bloco VARIABLE
para ler ou escrever na variável.
PROPRIEDADE ACTION TIPO LÓGICO PROPRIEDADE ACTION
TIPO NUMÉRICO
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 LIST
LISTAGEM DE TODAS AS VARIÁVEIS DO
TIPO LÓGICO
PROGRAMA DEFINIDAS EM EDIT VARIABLES
TIPO NUMÉRICO
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
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 VALUE PROPRIEDADE VALUE
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
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áveis
Variá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ável EDIT e alterar a configuração da variável desejada na janela EDIT VARIABLES.
Passagem de Dados
Passagem 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)
Conexões e Arames de Ligação
Conexões e Arames de Ligação
• Para podermos ligar dois blocos primeiro
precisamos visualizar suas conexões, para isso
p , p
basta clicar na guia do canto inferior esquerdo do bloco
do 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
Conexões e Arames de Ligação
Conexões e Arames de Ligação
GUIA DE CONEXÕES ESPANDIDA GUIA DE CONEXÕES OCULTA
Conexões e Arames de Ligação
Conexõ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 t
dados. 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 da
dados, clique sobre a conexão do bloco da direita.
Conexões e Arames de Ligação
Conexõ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 d
exemplo, 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 tipo seu programa para o robô, pois um erro de tipo foi encontrado no seu programa.
Conexões e Arames de Ligação
Conexõ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 l
Conexões e Arames de Ligação
Conexõ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 f
conexã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 para entrada (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 de bloco MOVE POWER recebe um valor de entrada de 150, o bloco irá alterar o valor de
d
Conexões e Arames de Ligação
Conexõ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 d
entrada para a saída sem ser alterado.
• Neste caso, você só pode usar a saída se a p
entrada estiver conectada a um fio de dados de entrada
entrada
• Ligar uma saída de dados em uma entrada sem
fi d d d d d
fio conectado a entrada de dados
Conexões e Arames de Ligação
Conexões e Arames de Ligação
CONEXÃO DE ENTRADA PASSANDO PARA A SAÍDA CONEXÃO DE ENTRADA PASSANDO PARA A SAÍDA PARA 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.
Utilizando Sensores
Utilizando 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 nos utilizar o bloco Wait para fazer tudo. Isso nos facilita muito em casos em que queremos
apenas testar se certa condição foi satisfeita no apenas testar se certa condição foi satisfeita no sensor escolhido. Mostraremos à seguir como
ili bl i l d
Utilizando Sensores
Na aba de blocos comuns temos o grupo WAIT Na aba de blocos comuns temos o grupo WAIT, onde podemos escolher dentre os cinco tipos de controles principais do bloco WAIT.
GRUPO WAIT
Utilizando Sensores
O TIME controla o programa através de um O TIME controla o programa através de um contador de tempo, especificamos o tempo em segundos que o programa deverá esperar.
TIME
Utilizando Sensores
O TOUCH controla o programa através do sensor O 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
Utilizando Sensores
O LIGHT controla o programa através do sensor O 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
Utilizando Sensores
O SOUND controla o programa através do sensor O 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
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 o
a distância que devemos esperar para que o programa prossiga.
DISTANCE
Utilizando Sensores
BLOCO WAIT Com a propriedade CONTROL podemos modificar o bloco WAIT como e quando quisermos. Podemos escolher q q entre 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.Utilizando Sensores
BLOCO WAIT Quando a propriedade CONTROL é configurada como SENSOR, outras opções são ativadas. A propriedade , pç p p SENSOR nos possibilita escolher qual o sensor que desejamos utilizar.Utilizando Sensores
BLOCO WAIT Do lado direito aparecem as propriedades do sensor escolhido, cada sensor apresenta o seu grupo de , p g p propriedades para controle. As propriedades dos sensores nós já vimos anteriormente em SENSORES. PROPRIEDADES DO SENSORUtilizando Sensores
Utilizando 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 p com o motor A e parar, quando o sensor de luz detectar uma iluminação maior que 30 então
detectar uma iluminação maior que 30 então dar 1/2 volta para trás com o motor A e parar.
Utilizando Sensores
Utilizando Sensores
1º Exemplo - Robô: ligar os motores BC 1 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 p em três partes: A primeira irá ligar os motores BC a segunda irá aguardar o sensor de toque BC, a segunda irá aguardar o sensor de toque ser pressionado e a terceira irá desligar os
motores BC motores BC.
Utilizando Sensores
Utilizando Sensores
1º Parte - Robô: ligar os motores BC 1 Parte - Robô: ligar os motores BC
ilimitadamente.
• Insira o bloco MOVE com a propriedade
DIRECTION em FOWARD e a propriedade p p
DURATION em UNLIMITED. Escolha a potência desejada e marque as portas certas potência desejada e marque as portas certas.
Utilizando Sensores
BLOCO MOVE
DURATION: UNLIMITED DIRECTION: FORWARD
Utilizando Sensores
Utilizando Sensores
2º Parte - Robô: aguarde o sensor de toque ser 2 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 WAIT
ACTION do bloco WAIT.
Utilizando Sensores
BLOCO WAIT: TOUCH
GRUPO WAIT
TOUCH
PALETA COMUM
CONTROL: SENSOR
ACTION: PRESSED SENSOR: TOUCH SENSOR
Utilizando Sensores
Utilizando Sensores
3º Parte - Robô: pare 3 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 STOP
STOP.
• Na propriedade NEXT ACTION marque a p p q opção BRAKE.
Utilizando Sensores
BLOCO MOVE
NEXT ACTION: BRAKE DIRECTION: STOP
Utilizando Sensores
Utilizando Sensores
2º Exemplo - Robô: dar uma volta para frente 2 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 volta em 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 volta sensor de luz e a terceira irá dar meia volta para trás com o motor A.
Utilizando Sensores
Utilizando Sensores
1º Parte - Robô: dar um volta com o motor A 1 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 NEXT
certa. Marque a opção BRAKE em NEXT ACTION.
Utilizando Sensores
BLOCO MOVE
DIRECTION: FORWARD
DURATION: ROTATIONS DIRECTION: FORWARD
Utilizando Sensores
Utilizando Sensores
2º Parte - Robô: aguarde o sensor de luz detectar 2 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 30 UNTIL do bloco WAIT e coloque o valor 30. • Configure a porta do sensor de toque.
Utilizando Sensores
BLOCO WAIT: LIGHT
GRUPO WAIT
LIGHT
PALETA COMUM
CONTROL: SENSOR
UNTIL: > (MAIOR) SENSOR: LIGHT SENSOR
Utilizando Sensores
Utilizando Sensores
3º Parte - Robô: dê meia volta para trás com o 3 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 BRAKE
Utilizando Sensores
BLOCO MOVE
DIRECTION: BACKWARD
DURATION: DEGREES NEXT ACTION: BRAKE
UTILIZANDO ARAMES DE
UTILIZANDO ARAMES DE
Utilizando Arames de Ligação
Utilizando 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 j
duas 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 duas duas voltas para frente e parar, senão dar duas voltas para trás e diminua até parar.
Utilizando Arames de Ligação
Utilizando Arames de Ligação
1º Exemplo - Robô: se o sensor luminoso 1 Exemplo - Robô: se o sensor luminoso
detectar uma iluminação maior que 50% dê
d lt f t j
duas 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 a transmitir o resultado para a outra parte, a
segunda parte irá receber e executar a devida
d d l d b id
Utilizando Arames de Ligação
Utilizando Arames de Ligação
1º Parte – Robô: verifique se o sensor luminoso 1 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ção
g ç
GRUPO SENSOR
LIGHT SENSOR
BLOCO LIGHT SENSOR
COMPARE: MAIOR (>) COMPLETE PALETTE
Utilizando Arames de Ligação
Utilizando Arames de Ligação
2º Parte – Robô: dê duas voltas para frente caso 2 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 2 ROTATIONS e coloque o valor 2.
Utilizando Arames de Ligação
Utilizando 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 SENSOR
LIGHT SENSOR.
• Abra as conexões dos dois blocos, para que p q possa 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 bl
Utilizando Arames de Ligação
Utilizando 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 MOVE
ACTION do bloco MOVE.
• Pronto, teremos agora uma saída do bloco
LIGHT SENSOR conectada a duas entradas do bloco MOVE.
Utilizando Arames de Ligação
g ç
ARAME DE LIGAÇÃO ENTRADA DIRECTION ARAME DE LIGAÇÃO ARAME DE LIGAÇÃO ENTRADA NEXT ACTION
ARAME DE LIGAÇÃO SAÍDA YES/NO
Utilizando Arames de Ligação
Utilizando Arames de Ligação
2º Exemplo - Robô: se o sensor ultrasônico 2 Exemplo - Robô: se o sensor ultrasônico
detectar uma distância maior que 127cm dar
d lt f t ã d d
duas 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 e
uma irá verificar o sensor ultrasônico e
transmitir o resultado para a outra parte, a segunda parte irá receber e executar a devida segunda parte irá receber e executar a devida ação de acordo com o resultado obtido.
Utilizando Arames de Ligação
Utilizando Arames de Ligação
1º Parte – Robô: verifique se o sensor ultrasônico 1 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 CENTIMETERS
Utilizando Arames de Ligação
g ç
GRUPO SENSOR
ULTRASONIC SENSOR
BLOCO ULTRASONIC SENSOR
COMPARE: MAIOR (>) COMPLETE PALETTE
Utilizando Arames de Ligação
Utilizando Arames de Ligação
2º Parte – Robô: dê duas voltas para frente caso 2 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 2 ROTATIONS e coloque o valor 2.
Utilizando Arames de Ligação
Utilizando 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 SENSOR
ULTRASONIC SENSOR.
• Abra as conexões dos dois blocos, para que p q possa 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 bl
Utilizando Arames de Ligação
Utilizando 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 MOVE ACTION do bloco MOVE.
• Pronto, teremos agora uma saída do bloco ULTRASONIC SENSOR conectada a duas entradas do bloco MOVE.
Utilizando Arames de Ligação
g ç
ARAME DE LIGAÇÃO ENTRADA DIRECTION ARAME DE LIGAÇÃO ARAME DE LIGAÇÃO ENTRADA NEXT ACTION
ARAME DE LIGAÇÃO SAÍDA YES/NO
Á
Utilizando Variáveis
BLOCO RANDOM
RANDOM
GRUPO DATA
O bloco RAMDOM nos permite gerar números aleatórios. Ele se encontra no grupo DATA do COMPLETE PALETTE Ele se encontra no grupo DATA do COMPLETE PALETTE. Podemos definir um intervalo entre o A e B para
a geração dos números.
Utilizando Variáveis
BLOCO NUMBERTOTEXT NUMBERTOTEXT GRUPO ADVANCED O bloco NUMBERTOTEXT nos permite converter ú El nú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 pUtilizando Variáveis
Utilizando Variáveis
1º Exemplo – Robô: Sorteie um número entre 0 e 1 Exemplo Robô: Sorteie um número entre 0 e 100. caso o sensor ultrasônico detecte uma
di tâ i i 127 dê i lt
distâ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áveis
Utilizando Variáveis
Robô: sorteie um valor entre 0 e o valor Robô: sorteie um valor entre 0 e o valor guardado e o guarde o valor sorteado.
R bô ifi lt ô i
Robô: 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 p
diminua até parar.
Robô: converta o valor sorteado para texto Robô: 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 100
Utilizando Variáveis
BLOCO VARIABLE: READ
BLOCO 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 g entrada B a saída do bloco VARIABLE inserido anteriormente. Insira uma variável do tipo número para guardar o valor sorteado. Configure‐a para escrita WRITE e ligue a t d d l íd d bl RANDOM entrada 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 a Entrada TEXT dele na saída do bloco NUMBERTOTEXT.Utilizando Variáveis
BLOCO TIME