Baixe o app para aproveitar ainda mais
Prévia do material em texto
1Direitos Reservados de Copyright Robótica - Mio Módulo II Resoluções dos desafi os 2Direitos Reservados de Copyright A No bloco principal, iniciamos a programação com a declaração da variável receptorControle, a qual receberá o valor lido pelo controle, ou seja, qual foi o botão pressionado. B Logo após, preparamos sete condições que analisarão o valor da variável receptorControle. São elas: •Se for verifi cado que ela contém o valor 13, será to- cada a nota Dó e o nome dela será exibido na Matriz de LEDs; •Se for confi rmado que ela contém o valor 14, será tocada a nota Ré e o nome dela será exibido na Matriz de LEDs; •Se for analisado que ela contém o valor 15, será to- cada a nota Mi e o nome dela será exibido na Matriz de LEDs; •Se for verifi cado que ela contém o valor 16, será to- cada a nota Fá e o nome dela será exibido na Matriz de LEDs; •Se for confi rmado que ela contém o valor 17, será tocada a nota Sol e o nome dela será exibido na Ma- triz de LEDs; •Se for constatado que ela contém o valor 18, será tocada a nota Lá e o nome dela será exibido na Matriz de LEDs; •Se for analisado que ela contém o valor 19, será to- cada a nota Si e o nome dela será exibido na Matriz de LEDs; C Quando nenhum botão do controle remoto é pressionado, o valor lido por receptorControle é igual a 0 e o robô não tocará nenhuma nota musical, portanto, a Matriz de LEDs fi cará apagada. B C Resolução do desafi o Módulo II Aula 1Módulo IIRobótica - Mio A 3Direitos Reservados de Copyright Resolução do desafi o Módulo II Aula 2Módulo IIRobótica - Mio A No bloco principal, iniciamos a pro- gramação com a declaração da variável controle, tendo o valor inicial 0. Tam- bém defi nimos que ela armazenará o valor do controle remoto, ou seja, os números das teclas pressionadas. Logo após, o robô realizará 5 verifi ca- ções, de maneira contínua. São elas: B Se a variável controle for igual a 5, ou seja, se a seta para cima foi pressio- nada, o robô andará para a frente. C Se a variável controle estiver com o valor 11, isto é, se a seta para baixo foi pressionada, o robô irá para trás. D Se for confi rmado que a variável controle é igual a 7, ou seja, se a seta para a esquerda foi pressionada, o robô andará para a esquerda. E Se a variável controle estiver com o valor 9, isto é, se a seta para a direita foi pressionada, o robô irá para a direita. F Se a variável controle for igual a 0, ou seja, se nenhum botão foi pressiona- do, o robô fi cará parado. A B C D E F 4Direitos Reservados de Copyright Resolução do desafi o Módulo II Aula 3Módulo IIRobótica - Mio A A Primeiramente, foram criadas quatro funções: frente, trás, direita e esquerda. Elas contêm os comandos para o robô ir para a frente, para trás, virar à direita e virar à esquerda, respectiva- mente. C B D E F B A função andar será respon- sável por determinar em qual direção o robô andará. Isso será feito por meio dos valores lidos pelo sensor giroscópio, em seus eixos X e Y. Portanto, há duas variáveis: giro_x e giro_y, em que uma armazena os valores lidos no eixo x e a outra no eixo y do sensor, respectivamente. C A primeira verifi cação con- siste em analisar se o valor da variável giro_x é maior do que 50 e se o valor da giro_y é maior do que 0 e menor do que 50. Se esta condição for verdadeira, o 5Direitos Reservados de Copyright robô irá para a frente. Em outras palavras, isso acontecerá, quando inclinarmos o sensor giroscó- pio para a frente, encontrando os valores definidos. D A segunda análise verifica se o valor da variável giro_x é menor do que 0 e se giro_y é menor do que 50. Caso essa condição seja verdadeira, o robô andará para trás. Isso acontecerá quando inclinarmos o giroscópio para a mesma direção. E A terceira verificação analisa se o valor de giro_x é maior do que 0 e menor do que 50 e se o valor de giro_y é maior do que 50. Caso essa condição seja verdadeira, o robô irá para a direita. Chegaremos a esses valores inclinando o sensor giroscópio levemente para a direita. F A quarta e última análise verifica se a variável giro_x é maior do que 0 e menor do que 50 e se giro_y é menor do que 0. Se essa condição for verdadeira, o robô irá para a esquerda. Isso ocorrerá quando inclinarmos o sensor giroscópio levemente para a esquerda. G O bloco principal inicia com as declarações das variáveis giro_x, giro_y e ir_central. H Atribuímos à variável ir_central o valor lido pelo sensor IR central. Às variáveis giro_x e giro_y, atribuímos os valores lidos pelo sensor giroscó- pio nos eixos X e Y, res- pectivamente. I Será verificado se o valor da variável ir_cen- tral é menor do que 50. Isso acontece quando co- locamos o dedo em cima do IR central. Se esta condição for verdadeira, será executada a função andar, ou seja, dependen- do de como estiver posi- cionado o giroscópio no momento em que o dedo é colocado sobre o sensor IR, o robô andará para a frente, para trás, para a direita ou para a esquerda. Agora, caso o valor do ir_central seja maior que 50, isto é, o dedo não passou em cima dele, o robô permanecerá parado. Em outras palavras, para que ele execute a função andar, temos que posicionar o sensor giros- cópio para o sentido desejado e, em seguida, tocar no sensor IR central. G H I 6Direitos Reservados de Copyright A A função andar contém o comando para o robô andar em linha reta e man- ter os LEDs da placa apagados. B Este bloco possui os comandos para o Mio virar à esquerda, sendo que o tempo em que ele permanece virando é determinado por um valor aleatório, en- tre 1 e 1.5 segundos. Após isso, o robô para. C A função sumo contém os comandos a serem executados quando o Mio iden- tifi car um oponente: os LEDs na placa fi carão vermelhos, além disso, ele dará uma parada, andará um pouco para trás e, por fi m, avançará, com tudo, para cima do adversário. Resolução do desafi o Módulo II Aula 4Módulo IIRobótica - Mio A B C 7Direitos Reservados de Copyright D A função comemorar conterá os comandos para que o Mio faça uma pequena comemoração ao “derrotar” seu oponente. A placa acenderá na cor amarela. Também tocará a nota Dó duran- te 0,5 segundos, em seguida a nota Mi, também durante 0,5 segundos, e, por fi m, a nota XI (Si) durante 1 segundo. D E F G H I J I Se nenhum sensor IR estiver sobre a faixa preta, será realizada a segunda verifi cação, que é analisar se o sensor ultrassônico detectou algo a menos de 12 centímetros de distância. Se isso for verdade, o Mio executará a função sumo, ou seja, avançará sobre o oponente. Por fi m, cha- mará a função comemorar. J Agora, se nenhuma das verifi cações acima forem verdadeiras, o robô executará a função andar. E No bloco principal, começamos com a defi nição dos LEDs apagados, da pla- ca controladora. F Depois, declaramos as variáveis esq, meio e dir, com valores iniciais 0. G Na sequência, atribuímos às variá- veis esq, meio e dir, os valores lidos pelos IR esquerdo, central e direito, respectivamente. H Fizemos a primeira verifi cação que consiste em analisar quais são os valo- res lidos pelos sensores IRs. Portanto, se os valores das variáveis esq, meio ou dir forem maiores do que 150, ou seja, se, pelo menos, um deles estiver sobre a faixa preta, o robô executará a função virar. Dessa forma, o robô nunca sairá da arena. 8Direitos Reservados de Copyright Resolução do desafi o Módulo II Aula 5Módulo IIRobótica - Mio A A função ir_esquerda contém os comandos para que o robô vire à esquerda e volte a andar para a frente. Já a função ir_direita possui os comandos para que o Mio vire à direita e depois volte a andar para a frente. B No bloco principal, começa- mos com a declaração das variá- veis sensor_frontal e sensor_la- teral, ambas com o valor inicial zero. A C Depois, defi nimos que a variável sensor_ frontal receberá o valor lido pelo sensor ultras- sônico frontal dorobô, e a variável sensor_late- ral receberá o valor lido pelo ultrassônico lateral. D Na sequência, começa a primeira verifi cação para analisar se o sensor lateral detectou uma distância maior do que 30 cm, signifi cando que não encontrou a parede. Se isso for verdade, o robô executará a função ir_esquerda. E Caso a condição acima não for verdadeira, será analisado se o sensor frontal está “enxer- gando” algo a menos de 10 cm de distância, isto é, se há uma parede à frente. Se isso for verda- deiro, o robô executará a função ir_direita. F Por fi m, para que possamos realinhar o robô após ele virar à direita, defi nimos que se a variável sensor_lateral tiver um valor menor do que 8 cm de distância, o robô deve virar para a direita novamente, até que o sensor perceba que saiu da distância analisada, deixando o Mio realinhado. B C D E F G Caso nenhuma das verifi cações acima sejam correspondidas, o robô deve continuar andando para a frente. 9Direitos Reservados de Copyright Resolução do desafi o Módulo II Aula 6Módulo IIRobótica - Mio A A função defi nir_senha contém os co- mandos que serão executados no início do programa e tem o objetivo de defi nir uma senha padrão, a qual será formada por três números. Só que o bloco realiza o processo de um número por vez e será no bloco princi- pal que defi niremos a quantidade de números da senha. B A primeira verifi cação será responsável por permitir que o usuário escolha o número da senha. Nela, sempre que o sensor IR es- querdo analisar que o valor é menor que 50, isto é, que ele foi tocado, será incrementado em 1 na variável senha, a qual será declara- da no bloco principal, tendo seu valor inicial igual a 0. Também defi nimos que o valor atual de senha será exibido na Matriz de LEDs. C A segunda verifi cação consiste em anali- sar se a senha está com um valor maior que 9. Se esta condição for verdadeira, a variável volta para o valor 0. Assim, limitamos a escolha da senha um valor que esteja entre 0 e 9. Além disso, confi guramos para ser exibido na Matriz de LEDs. D Após escolhermos o número que queremos na senha, falta confi rmarmos com um toque no IR central. Por essa razão, dentro da estrutura else, confi guramos para analisar se o valor dele é menor que 50. Se esta condição for verdadeira (o sensor foi tocado), e a variável senha_defi ni- da, a qual será declarada no bloco principal com valor inicial zero, receberá a junção do seu valor atual com o valor da variável senha. Lembrando que, quando usamos o bloco join, ele junta dois valores, ou seja, se unirmos o valor de senha_defi nida e senha, estamos juntando um valor va- zio (em outras palavras, nada) com o valor que escolhemos na senha. Após isso, a variável aux (declarada no bloco principal) será incrementada em 1 e a variável senha voltará a ser 0 e o valor de senha será exibido na Matriz de LEDs. Obs.: A variável aux terá função de controlar o número de vezes em que digitamos um número para a senha, a qual sabemos que serão 3 números. A B C D 10Direitos Reservados de Copyright E Após ter definido a senha padrão, o usuário poderá tentar acertá-la. Por essa razão, a função senha_digitada é responsável pelos comandos necessários para que o usuário faça as tentativas de inserir a senha. F A primeira verificação consiste em analisar se o sensor IR esquerdo recebeu um valor menor que 50, isto é, se foi tocado. Se esta condição for verdadeira, será reproduzida a nota musical Dó e também incrementará em 1, a variável senha. Além disso, se for constatado que o valor de se- nha é maior que 9, seu valor passará a ser 0. E F G G A próxima verificação é a confirmação do número escolhido. Sendo assim, se o IR cen- tral detectar um valor menor que 50, a variável senha_digitada receberá a junção dela com a senha. Além disso, a variável aux é incremen- tada em 1, afinal, sabemos que a senha deve ser composta por 3 números e será ela quem receberá essa contagem. Na sequência, zera- mos a variável senha. H No bloco principal, iniciamos com as de- clarações das variáveis senha_digitada, se- nha_definida, aux e senha. As duas primeiras não definimos nenhum valor e as duas últimas iniciarão com o valor 0. I Na sequência, configuramos para que a fun- ção definir_senha seja executada até a vari- ável aux ser igual a 3. Após isso, a Matriz de LEDs é apagada e a variável aux é zerada. Observação: Lembre-se de que, dentro do blo- co definir_senha, toda vez que confirmamos um número da senha, a variável aux é incrementada em 1. E é aqui que informamos que após ter os três números que compõe a senha, o bloco definir_senha deixará de ser executado. H I J K L 11Direitos Reservados de Copyright J Na estrutura forever, a qual é responsável por realizar um loop de tudo o que está dentro dela, começamos acendendo a cor azul da Matriz de LEDs e definimos que a função senha_digitada será executada até que a variável aux possua o valor 3. Isso porque, do mesmo jeito que acon- tece na função definir_senha, sempre que confirmarmos um número para senha, a variável aux também é incrementada em 1, informando que a função senha_digitada será executada somente 3 vezes. K Depois disso, será analisado se a variável senha_definida é igual à senha_digitada. Se esta condição for verdadeira, significa que foi informada a senha correta e o Mio acenderá a cor ver- de em sua placa controladora por 3 segundos. Caso contrário, ou seja, se foi informada a senha errada, os LEDs ficarão na cor vermelha. L Por fim, após a verificação da senha, definimos que a variável senha_digitada fica sem valor e aux com o valor 0. Assim, o usuário poderá realizar novas tentativas para acertar a senha. 12Direitos Reservados de Copyright Resolução do desafi o Módulo II Aula 7Módulo IIRobótica - Mio A A função alarme contém os comandos que serão executados assim que o alarme for ativado. Este bloco possui o controle repeat que, por 4 vezes, fará a repetição de tudo o que estiver dentro dele. Isso signifi ca que assim que a última ação for realizada, dentro de repeat, ele voltará ao início e repetirá a execução das ações até chegar na quantidade de vezes estipula- da. B Os comandos a serem executados dentro do repeat consistem em fazer o Mio tocar a nota musical Dó, acender a luz azul da sua placa controladora e, na Matriz de LEDs, mostrar a expressão de abrir os olhos “OO”, com duração de 0.3 segundos. Logo em seguida, toca a nota Fá, muda a cor da placa para vermelha e mostra a expressão de um olhar bravo “\ /”. Após repetir essas ações por quatro vezes, os LEDs da placa se apagarão. C A função deteccao analisará o valor lido pelo sensor ultrassônico lateral, conectado à porta 1, para saber se a função alarme deve ser executa- da ou não. D A primeira verifi ca- ção é se a variável ultra, declarada no bloco prin- cipal, for menor do que 10. Se essa condição for verdadeira, será executado o alarme. Caso contrário, a Matriz de LEDs mostrará uma expressão como se o robô estivesse em repouso “- -”. A B C D 13Direitos Reservados de Copyright E O bloco principal começa com a declaração das variáveis ultra, X e Y, e foi atribuído a elas os valores do sensor ultrassônico na porta 1 e os valores lidos pelos eixos X e Y do sensor giroscópio, respectivamente. F A primeira verifi cação consiste em analisar se a variável X tem o valor maior do que 20 e, tam- bém, menor do que -10. Se esta condição for verdadeira, a função deteccao será acionada. Caso contrário, será analisado se a va- riável Y está com o valor maior do que 20 e menor do que 0. Se sim, executará a função deteccao. Em resumo, o Mio analisará constantemente o valor lido pelo sensor giroscópio. Caso o robô seja “tombado”, indicando os valores que defi nimos em seus eixos X e Y, ele analisará o valor do sensor ultrassônico. Se este perceber algo próximo, o alarme disparará, caso contrário, voltará a ser verifi cado o valordo sensor giroscópio. E F 14Direitos Reservados de Copyright Resolução do desafi o Módulo II Aula 8Módulo IIRobótica - Mio A A função andar faz com que o Mio ande para a frente, na velocidade da variável chamada velocidade, a qual será declarada no bloco principal. B A função virar contém os comandos para que o robô vire. O valor lido pelo IR determinará para qual lado ele deve virar. C A primeira verifi cação consiste em analisar se o valor da variável IR é igual a 3, ou seja, se o IR direito e central passaram sobre a linha preta. Se esta condição for verdadeira, o robô virará para a direita. Isso será feito multiplicando o valor da velocidade por -1 no motor 1. D A segunda verifi cação é para saber se a variável IR é igual a 6, isto é, se o IR esquerdo e cen- tral passaram sobre a linha preta. Se esta condição for verdadeira, o robô virará para a esquerda. Isso será feito multiplicando o valor da velocidade por -1 no motor 2. A B C D 15Direitos Reservados de Copyright E A função acelerar contém os comandos que farão com que o robô altere sua velocidade, ace- lerando ou desacelerando, de acordo com a velocidade atual. F A primeira verificação consiste em saber se a variável do IR é igual a 4, ou seja, se somente o sensor IR direito está sobre a linha preta. Se esta condição for verdadeira, o robô irá para a frente com a variável velocidade + 10 nos dois motores. Tendo em mente que o valor inicial da variável velocidade é igual a 40, então o robô acelerará para 50. G A segunda verificação é para saber se o valor do IR é igual a 1, isto é, se somente o sensor IR esquerdo está sobre a linha preta. Se for verdade, o robô irá para frente com a variável velocida- de + 30, ou seja, acelerará para 70. H A terceira verificação consiste em analisar se o valor do IR é igual a 2, ou seja, se somente o sensor IR central está sobre a linha. Se esta condição for verdadeira, o robô irá para frente com a variável velocidade + 50, isto é, acelerará para 90. I A quarta e última verificação é para saber se o valor do IR é igual a zero, em outras palavras, analisa se todos os sensores estão sobre a linha preta. Se for verdade, o Mio acelerá para a ve- locidade 110, que é resultado da velocidade atual, a qual é 40 somada com a velocidade definida em 70. E F G H I J No começo do bloco principal contém a declaração da variável velocidade, atribuindo a ela um valor inicial de 40. K Em seguida, definimos que a variável IR receberá o valor lido por todos os sensores IRs do robô. 16Direitos Reservados de Copyright L A primeira verificação consiste em analisar se os valores lidos pelo IR foram 3 ou 6. Se esta condição for verdadeira, o Mio executará a função virar. M A segunda verificação é para saber se o valor do IR é diferente de 7. Se isso for verdade, o robô executará a função acelerar. N Se nenhuma das verificações acima forem verdadeiras, o robô andará com a velocidade pa- drão, que é 40. L J K M N 17Direitos Reservados de Copyright Resolução do desafi o Módulo II Aula 9Módulo IIRobótica - Mio A A função selecao_A contém os comandos para o usuário escolher o primeiro número da ope- ração. B Começamos declarando a variável controle, com valor inicial 0. C Depois disso, criamos uma repetição que acontecerá até que a variável controle fi que igual a 8, ou seja, até pressionar a tecla OK. Também defi nimos que a referida variável receberá o valor lido pelo controle remoto e confi guramos para a Matriz de LEDs exibir o valor da variável X atual. D A primeira verifi cação consiste em analisar se a variável controle está com o valor 5, ou seja, se foi pressionada a seta para cima. Se for verdadeira esta condição, a variável X será incrementada em 1. E A segunda verifi cação é para saber se a variável controle está com o valor 11, ou seja, se foi pressionada a seta para baixo. Se for verdade, a variável X será decre- mentada em 1. Logo após a escolha do número para X, podemos confi rmá-lo por meio do botão OK. F A função selecao_B contém os coman- dos para que o usuário possa escolher o segundo número da operação, que é se- melhante ao bloco da escolha do primeiro. Então, começamos declarando a variável controle, com valor inicial 0. G Depois disso, criamos uma repetição que acontecerá até que a variável controle fi que igual a 8. Também defi nimos que a referida variável receberá o valor lido pelo controle remoto e confi guramos para a Matriz de LEDs exibir o valor da variável Y atual. A B C D E F G H I 18Direitos Reservados de Copyright H A primeira verificação consiste em analisar se a variável controle está com o valor 5, ou seja, se foi pressionada a seta para cima. Se for verdadeira esta condi- ção, a variável Y será incrementada em 1. I A segunda verificação é para saber se a variável controle está com o valor 11, ou seja, se foi pressionada a seta para baixo. Se for verdade, a variável Y será decre- mentada em 1. Logo após a escolha do número para Y, podemos confirmá-lo por meio do botão OK. J A função selecao_operacao armazena os comandos que são responsáveis pela operação que será selecionada. São elas: soma, subtração, multiplicação ou divisão. Para isso, novamente, declaramos a variá- vel controle com valor inicial 0. K Depois, criamos a estrutura de repeti- ção que acontecerá até que a tecla OK do controle seja pressionada, a qual é repre- sentada pelo número 8. Então, definimos que a variável controle receberá o valor lido pelo contro- le remoto. Também será executada a função mostrar_operacao, que exibirá na Matriz de LEDs o símbolo a equação escolhida (ela está no próximo bloco). L A primeira verificação consiste em analisar se a variável controle está com o valor 5, isto é, se foi pressionada a seta para cima. Se isso for verdadeiro, outra verificação ocorrerá para saber se o valor da variável operacao é menor do que 4; se sim, será implementada em 1. Saiba que temos de fazer isso, pois há somente 4 operações que se- rão atribuídas aos números de 1 a 4. M Caso contrário, ou seja, o valor de operação não é menor do que 4, ela voltará a valer 1. N Como visto anteriormente, a fun- ção mostrar_operacao tem o obje- tivo de exibir as operações na Matriz de LEDs, para que o usuário possa saber qual ele vai usar. Dessa forma, serão realizadas quatro verificações. O Se a variável operacao for igual a 1, será exibido na Matriz de LEDs o símbolo da adição (+). J K L M N O P Q R 19Direitos Reservados de Copyright P Se for igual a 2, será exibido o símbolo de subtração (-). Q Se a variável operacao for igual a 3, será mostrado o símbolo de multiplicação (x). R Se operacao estiver com o valor 4, será exibido o símbolo de divisão (÷). S Como o próprio nome desta função, ela tem a fi nalidade de realizar o cálculo que o usuário deseja, armazenando o resultado na variável resposta. T Então, serão realizadas quatro verifi cações, baseadas em cada uma das operações: • Se a variável operacao for igual a 1, ou seja, igual à soma, a variável resposta receberá o cálculo de X + Y; • Se a variável operacao for igual a 2, ou seja, igual à subtração, a variável res- posta receberá o cálculo de X - Y; • Se a variável operacao for igual a 3, ou seja, igual à multiplicação, a variável res- posta receberá o cálculo de X * Y; • Se a variável operacao for igual a 4, ou seja, igual à divisão, a variável resposta receberá o cálculo de X / Y. U A função mostrar_calculo possui os comandos para exibir na Matriz de LEDs o valor da vari- ável resposta, a qual contém o resultado da operação entre os números selecionados. S T U V O bloco principal inicia-se com os LEDs apagados e com as declarações das variáveis X, Y e resposta com o valor inicial 0. W Após isso, foi defi nida a sequência lógica de execução dos blocos. No caso, primeiro será executada a função selecao_A, logo após, selecao_operacao, e depois, a selecao_B. Na sequ-ência, a função calcular e, por fi m, a mostrar_calculo. 20Direitos Reservados de Copyright V W 21Direitos Reservados de Copyright Resolução do desafi o Módulo II Aula 10Módulo IIRobótica - Mio A Estes quatro blocos contêm os comandos para ativarem as cores que representam e, tam- bém, o som da nota de cada uma delas. Eles serão executados quando forem sorteados. • Função vermelho: fará o Mio tocar a nota Dó e acender a cor vermelha em sua placa; • Função verde: o robô tocará a nota Ré e acenderá a cor verde na placa; • Função azul: o Mio tocará a nota Mi e acenderá a placa na cor azul; • Função amarelo: o robô tocará a nota Fá e acenderá a placa na cor amarelo. B Na função escolhaJogador contém todos os comandos a serem executados quando o jogador escolher uma cor du- rante o desafi o. E antes de analisarmos todo este bloco, algumas informações precisam ser passadas. A C B 22Direitos Reservados de Copyright É importante saber que cada cor será representada por uma letra, conforme mostra a tabela abaixo: COR LETRA VERMELHO A AZUL B VERDE C AMARELO D Também será necessário ter uma variável para armazenar as letras das cores sorteadas. Em nosso caso, ela será chamada de sorteados. Imagine que as cores sorteadas sejam azul e verde, respectivamente. Dessa forma, a variável sorteados conterá o valor “bc”. Além disso, a quantidade de cores a serem sorteadas estão relacionadas com o número da rodada, ou seja, na primeira rodada será sorteada uma cor, na segunda, duas cores e assim por diante e, por esta ra- zão, necessitamos de uma variável que nos ajudará nesse controle, a qual chamaremos de aux. C A função começa com a declaração da variável aux, a qual iniciará com o valor 0. Em seguida, há uma estrutura de repetição para que todos os comandos dessa função sejam repetidos até que a variável aux receba o valor da variável rodada. Também atribuímos à variável IR o valor lido pelos sensores infravermelhos. Depois inserimos uma sequência de verificações. Confira! • De início, analisa se o sensor ultrassônico lateral percebe a distância menor que 10, ou seja, que a mão se aproximou dele, confirmando a cor a ser analisada. Se esta condição for verdadeira, a variável aux será incrementada em 1. Em outras palavras, usaremos aux para controlar quantas cores devemos escolher de acordo com o número de rodadas e usaremos o sensor lateral para confirmar a cor escolhida pelo jogador, verificando se ela corresponde à sequência de cor sorteada; • Em seguida, é feita a verificação da sequência com a cor selecionada pelo jogador. Então, se o IR direito for pressionado, ou seja, a variável IR receber o valor igual a 6, e a aux de sorteados for igual à letra “a”, será executada a função vermelho, caso contrário, será acionada a função sequenciaErro. Lembrando que sorteados recebe uma letra de acordo com a cor sorteada e aux corresponde à letra que está sendo analisada. • Se o IR central for pressionado, recebendo o valor igual a 5, será feita a análise da letra correspondente a aux de sorteados para saber se é “b”. Se esta condição for verdadeira, será acionada a função azul, caso contrário, será acionada a função sequenciaErro. • Se o IR esquerdo for pressionado, isto é, recebeu o valor 3, será analisado se a variável aux de sorteados contém a letra “c”. Se for verdade, será executada a função verde, caso contrário, será acionada a função sequenciaErro. • Se o sensor ultrassônico frontal achar algo a uma distância menor que 10, ou seja, que a mão se aproximou dele, será analisado se a letra armazenada em aux de sorteados é “d”. Caso esta condição seja verdadeira, será executada a função amarelo, se não for, será executada a função sequenciaErro. 23Direitos Reservados de Copyright • Caso o jogador acerte a sequência completa de cores, os LEDs da placa serão apagados e a variável correto será alterada para 1. É importante lembrar que essas verificações serão realizadas até que a variável aux seja igual a variável rodada. Por isso, enquanto aux tiver um valor diferente de rodada, ela será incremen- tada em 1. D A função blocoSorteio inicia-se com a definição da variável sorteio recebendo um número aleatório, o qual intercala de 1 a 4. E A primeira verificação é para saber se a variável sorteio recebeu o número 1. Então, se isso for verdade, a variável sorteados receberá a letra “a”, a qual representa a cor vermelha. F A segunda verificação realiza a análise da variável sorteio para ver se recebeu o número 2. Se isso for verdade, a variável sorteados receberá a letra “b”, a qual representa a cor azul. G A terceira verificação é para saber se a variável sorteio recebeu o número 3. Se esta condição for verdadeira, a variável sorteados receberá a letra “c”, a qual representa a cor verde. D E F G H I 24Direitos Reservados de Copyright J K L M N O P H A quarta verificação análise se a variável sorteio está com o valor 4. Se isso for verdade, a variável sorteados receberá a letra “d”, a qual representa a cor amarela. I Após as verificações, a variável rodada será incrementada em 1, en- quanto o jogador continuar acertando a sequência das cores. J A função reproduzirSequencia con- tém os comandos para analisar quais números serão atribuídos às letras das cores sorteadas e, por meio deles, o robô saberá qual função será executa- da. Além disso, exibirá para o jogador qual sequência ele terá que decorar. Dessa forma, também faremos uso da variável aux, a fim de termos o controle sobre quantas vezes a função deverá ser repetida, de acordo com o número da rodada. K A estrutura de repetição ocorrerá até a variável aux ser igual a variável roda- da. Além disso, a aux será incrementa- da em 1. L A primeira verificação consiste em analisar se aux de sorteados contém a letra “a”. Se esta condição for verdadeira, será executada a função vermelho. M A segunda verificação é para saber se aux de sorteados contém a letra “b”. Se isso for verda- de, então será executada a função azul. N A terceira verificação é para saber se aux de sorteados contém a letra “c”. Se esta condição for verdadeira, será executada a função verde. O A quarta verificação é para saber se aux de sorteados contém a letra “d”. Se isso for verdade, então será executada a função amarelo. P Após analisar todas as letras da variável sorteados e acionar as funções de acordo com a letra contida nela e o número de rodadas, os LEDs da placa controladora serão apagados. Importante: Na primeira repetição, será analisada a primeira letra da variável sorteados, já que a variável aux, a qual é responsável por indicar a posição da letra, é igual a 1. Na segunda repeti- ção, será verificada a segunda letra de sorteados. 25Direitos Reservados de Copyright Q A função sequenciaErro contém os comandos que serão executados quan- do o jogador errar uma cor durante a sequência. R A indicação de que o jogador errou a cor será feita pelo toque da nota Dó junto à cor vermelha da placa, numa se- quência de três vezes. Depois, a placa fica sem emitir cor. S Na sequência, configuramos o valor 0 para as variáveis correto e rodada. Também informamos que aux receberá o valor da variável rodada, logo após, será zerada e sorteados receberá um valor vazio. Fazemos isso para resetar o jogo. T O bloco principal inicia-se com os LEDs da placa apagados e com as de- clarações das variáveis rodada, sorte- ados, correto e aux, com seus respec- tivos valores iniciais. No caso, a rodada e a aux receberam o valor 0, a correto o valor 1 e a sorteados deixamos vazia. U Dentro do componente forever criaremos uma repetição de ações até a variável correto receber o valor 0, ou seja, quando o jogador errar a sequência de cores. Dessa forma, se isso acontecer, o robô executará as funções: blocoSorteio, reproduzirSequencia e escolhaJoga- dor, o que em outras palavras significa sortear as cores, de acordo com o número da rodada. Em seguida,deverá exibi-las e, por fim, o jogador terá que acertar a sequência informada. Q R S T U 26Direitos Reservados de Copyright Resolução do desafi o Módulo II Aula 11Módulo IIRobótica - Mio A A função giroscopio_mudar contém os comandos para que sejam exibidos na Matriz de LEDs os valores dos eixos X, Y e Z lidos pelo sensor giroscópio. B Começamos defi nindo que a variável giroscopio_X guardará o valor lido pelo eixo X do giros- cópio. Em seguida, confi guramos que a placa acenderá os LEDs na cor verde e exibirá na Matriz de LEDs a junção da frase “X= ” e o valor lido por giroscopio_X. Feito isso, o robô aguardará 10 segundos para a próxima leitura. C Na sequência, defi nimos que a variável giroscopio_Y guardará o valor lido pelo eixo Y do giroscópio. Depois, a placa acenderá os LEDs na cor verde e exibirá na Matriz de LEDs a junção da frase “Y= ” e o valor lido por giroscopio_Y. Logo após, serão aguardados 10 segundos para a leitura seguinte. D A variável giroscopio_Z armazenará o valor lido pelo giroscópio no eixo Z, em seguida, a pla- ca acenderá os LEDs na cor verde e exibirá na Matriz de LEDs a junção da frase “Z= ” e o valor lido pelo giroscopio_Z. A B C D 27Direitos Reservados de Copyright E A função ultrassonico_mostrar contém os comandos para que seja exibido o valor do sensor ultrassônico. F Primeiramente, defi nimos que a variável ultrassonico receberá o valor lido pelo sensor ultras- sônico. Em seguida, os LEDs da placa controladora acenderão na cor azul e aparecerá, na Matriz de LEDs, a junção da frase “US= ” e o valor contido na variável ultrassonico. G A função IR_mostrar contém os comandos para que a Matriz de LEDs exiba o valor lido pelo sensor IR. H Defi nimos que a variável IR guardará o valor lido pelos sensores infravermelhos. Em seguida, os LEDs da placa controladora acenderão na cor vermelha, a matriz de LEDs exibirá a junção da frase “IR= ” e o valor de IR. I O bloco principal inicia-se com as defi nições dos valores que cada variá- vel vai receber. Veja: • giroscopio_X: receberá o valor obtido do ângulo X do giroscó- pio; • giroscopio_Y: receberá o valor obtido do ângulo Y do giroscó- pio; • giroscopio_Z: receberá o valor obtido do ângulo Z do giroscó- pio; • IR: receberá o valor obtido de todos os sensores infraverme- lhos; • ultrassonico: receberá a dis- tância obtida do sensor ultrassô- nico. J Dentro do componente forever, criamos uma repetição de ações, começando pela função IR_mostrar. Após 10 segundos, executará a fun- E F H G I J 28Direitos Reservados de Copyright ção giroscopio_mostrar. Em seguida, novamente depois de 10 segundos, será executada a fun- ção ultrassonico_mostrar e serão aguardados 10 segundos para voltar ao início deste looping. Obs.: Em outras palavras, o nosso projeto mostrará o valor atual da variável de cada sensor quando interagimos com eles. Por exemplo, quando a função para exibir o valor do ultrassônico for executada, se colocarmos a nossa mão a 5 centímetros dele, será exibido o valor 5 na matriz de LEDs. O mesmo vale para o sensor IR quando o tocamos e para o giroscópio quando o gira- mos de um lado para o outro. 29Direitos Reservados de Copyright Resolução do desafi o Módulo II Aula 12Módulo IIRobótica - Mio A A função valores_c1 contém comandos para defi nir o valor da variável c1, a qual será de- clarada no bloco principal, com valor inicial 0. Isso será feito por meio de três intervalos do sen- sor giroscópio. Sendo assim, c1 poderá ter três valores diferentes, dependendo do intervalo em que o giroscópio se encontra no eixo X. Também utilizaremos a variável giro que, por sua vez, é a respon- sável por guardar o valor lido pelo giroscópio em seu eixo X. B A primeira verifi cação consiste em analisar se a variável giro é maior que 30. Se isso for verda- deiro, os LEDs na placa fi carão vermelhos, e c1 terá o seu valor alterado para 1. C A segunda verifi cação analisa se o valor de giro está entre -30 e 30. Se esta condição for verdadeira, os LEDs na placa fi carão verdes, e c1 terá o seu valor altera- do para 3. D A terceira e última verifi cação consiste em analisar se o valor de giro é menor que 30. Caso isso seja verdadeiro, os LEDs na placa fi carão azuis, e o valor de c1 será alterado para 5. E A função valores_c2 possui os comandos para determinar quais serão os valores que a va- riável c2 armazenará. Essa variável será declarada no bloco principal, com o valor inicial 0, e receberá a leitura dos sensores infravermelhos. Isso signifi ca que precisamos montar opções que contêm valores para cada sensor, ou seja, um para o IR da esquerda, outro para o IR central e outro para o IR da direita. Portanto, temos que ter as variáveis para cada um deles que, neste caso, serão esq, meio e dir, respectivamente. E, para cada combinação, um valor para C2. A B C D 30Direitos Reservados de Copyright F A primeira verificação consiste em analisar se o valor de dir é me- nor que 100 e esq e meio estão com os valores maiores que 100. Se esta condição for verdadeira, a variável c2 recebe o valor 6. G A segunda verificação analisa se o valor de esq é menor que 50 e dir e meio estão com valores maiores que 100. Se isso for verdade, a vari- ável c2 recebe o valor 4. H A terceira verificação consiste em analisar se o valor de meio é menor que 50, e se esq e dir pos- suem valores maiores que 100. Se esta condição for verdadeira, a variável c2 recebe o valor 2. I Caso nenhuma das verificações acima seja verdadeira, c2 permanecerá valendo 0. J No bloco principal, precisamos verificar se a soma dos sensores é igual ao valor que estipula- mos. Neste caso, escolhemos o 7. K Começamos com as declara- ções das variáveis giro, c2 e c1, todas com valores iniciais 0. L Na estrutura forever, atribuire- mos o que cada variável armazena- rá. No caso, giro receberá o valor do eixo X do giroscópio. Já as vari- áveis esq, meio e dir, receberão os valores dos sensores IR esquerdo, central e direito, respectivamente. M Logo após, as funções valores_ c1 e valores_c2 serão executadas. N A primeira verificação consiste em analisar se os valores de c2 são iguais a 0, ou seja, nenhuma das verificações dentro do bloco valores_c2 é verdadeira. Se isso acontecer, a Matriz de LEDs ficará apagada. O Caso a condição acima não seja verdadeira, será analisado se a soma de c1 e c2 resulta no valor 7. Se sim, a mensagem que será exibida na Matriz de LEDs é “YES!”. Caso não seja, a Matriz de LEDs exibirá “NO!”. E F G H I J K L M N O
Compartilhar