04 - SENSORES E VARIÁVEISacademico.riogrande.ifrs.edu.br/~mauricio.ortiz/... · 2010-03-30 ·...
Transcript of 04 - SENSORES E VARIÁVEISacademico.riogrande.ifrs.edu.br/~mauricio.ortiz/... · 2010-03-30 ·...
Á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.