Buscar

Resoluções dos Desafios - Robótica - Mio - Módulo II

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Continue navegando