Desafio binário - Parte 5

BinaryQuiz Game Show

O desafio

 

Desta vez seu desafio será criar ou modificar um jogo que utilize os conceitos desenvolvidos no aprendizado de lógica binária.

Para te inspirar e contribuir no seu aprendizado, desenvolvemos uma sequencia de conteúdos que levam à construção final de um simples game de matemática. Para seu desafio final você poderá aplicar modificações, novos itens, mudar as regras ou mesmo criar um game totalmente novo… a criatividade é o limite. Vamos lá… prepare-se e assim que estiver pronto compartilhe seu projeto nos copiando @hackidsedu .

Inspire-se

Podemos realizar muitas atividades que envolve somente o micro:bit, ou mesmo projetos onde podemos unir o micro:bit com elementos concretos, como uma caixa e até mesmo jogos de tabuleiro… é uma infinidade de possibilidades. 

Um exemplo de uso, é utilizar o sistema binário para construir uma caixa registradora de moedas, atualmente temos moedas de R$ 0,05, R$ 0,10, R$ 0,25, R$ 0,50 e R$ 1,00, ou seja, 5 possibilidades, porém temos apenas três pinos no micro:bit. 

Como resolver está limitação? 

Você pode utilizar o registro binário para esta solução. Usando variáveis para representar cada um dos valores dos três pinos quando pressionados.

 

Com três pinos, podemos ter 2³ possibilidades, ou seja, 8 possibilidades, o que é  suficiente para registrar todos nossos cinco valores de moedas.

 

Para este projeto usamos alguns pedaços de papelão, alguns parafusos, um pedaço de cabo de rede ou telefonia, um conjunto de garras de jacaré, fita isolante, cola quente e claro nosso micro:bit.

1º Passo – Nosso corpo como condutor

 

No vídeo a seguir demonstramos como podemos utilizar a combinação de acionamento dos pinos para registrar valores. Ao segurar com uma das mãos o fio conectado ao pino terra (GND) e com a outra mão tocar nos fios conectados aos pinos (P0, P1 e P2), o micro:bit detectará qualquer corrente elétrica que flua entre eles e o terra. Nosso corpo será o meio condutor

#ficadica

Observe que no vídeo estamos alimentando o micro:bit com nosso conjunto de pilhas. Esta é uma dica muito importante, você terá um melhor funcionamento se o micro:bit estiver sendo alimentado pelo conjunto de pilhas e não pela porta USB 😉

Construa

Nosso projeto irá se basear no algoritmo construído a partir das possibilidades descritas ao lado:

  • se apenas P2 estiver acionada, registramos R$ 0,05; 
  • se P1 e P2 estiverem pressionadas registramos R$ 0,10; 
  • se apenas P1 estiver pressionada registramos R$ 0,25;
  • se P0 e P1 estiverem pressionadas registramos R$ 0,50;
  • se apenas P0 estiver pressionada registramos R$ 1,00.

Escolhemos este arranjo de acionamento dos pinos para facilitar a organização dos fios na construção do protótipo, como pode ser visto a seguir.

Na figura ao lado você pode observar o diagrama de montagem dos fios que permitirão os contatos de acordo com a tabela descrita acima.

Depois de organizar e ligar os fios, nosso protótipo fico com a aparência abaixo.

Muito cuidado na hora de organizar os fios, eles não podem se tocar, para não ficar acionando “sozinho”.

Tiramos fotos de como organizamos a montagem dos fios, acreditamos que possa ajudar a você construir o seu próprio protótipo.

Gravamos um pequeno vídeo demonstrando o funcionamento do protótipo com todas as ligações realizadas. Alguns pontos de atenção, que identificamos quando montamos nosso protótipo:

1. Os fios conectados aos pinos 0, 1 e 2 não podem encostar um nos outros, quando eles encostam é acionado o pulso de pressionado, para ajudar nisso usamos fita isolante para fixar os fios na base com bastante cuidado para manter uma pequena distância entre entre, uns 4 ou 5 mm. 

2. Você irá notar no vídeo que foi utilizado um pedaço de papel alumínio na ponta do dedo, como a pele das pessoas é diferente, nem sempre a condução de corrente é boa, muitas vezes é necessário umedecer a ponta do dedo. Para ser mais prático, optamos em colocar um pedaço de papel alumínio para facilitar os testes e uso. 😉

Abaixo compartilhamos toda a programação utilizada para exibir no display o valor referente ao contato que foi acionado.

Expanda

Para você expandir os horizontes e construir suas modificações e melhorias em seu projeto, fizemos alguns exemplos de modificações no programa e criamos o Coins Game.

Neste jogo, uma quantia aleatória de Reais (R$) é exibida ao pressionar o Botão A. O jogador deverá encontrar a quantia especificada pressionando os acionadores conectados a P0, P1 e P2. Quando os acionadores são pressionados, o valor é exibido na tela. Siga somando até que você esteja certo que encontrou a somatória correta. Quando o jogador estiver certo de que o valor está correto deve pressionar o Botão B para que o micro:bit realize a comparação e mostre um rostinho feliz se estiver correto ou triste caso tenha feito a somatória errada. 

 

Informações extras:

 

  • a quantia que o micro:bit irá gerar, é maior que R$ 0,55 e menor que  R$ 4,95;
  • a quantia é um valor múltiplo de R$ 0,05;

Desta vez, montamos dois programas que realizam as mesmas operações, porém apresentam os resultados de forma diferente no display do micro:bit.

Se quisermos mostrar um valor como 3.10 (três reais e dez centavos) usando o bloco mostrar número, será exibido no display o valor 3.1 , será desprezado o ZERO menos significativo. Se quisermos exibir 3.15 (três reais e quinze centavos) será exibido o número completo. Em resumo, ele descarta o zero menos significativo, porém irá funcionar tudo corretamente.

 

No código a seguir, usamos o bloco MOSTRAR NÚMERO

Neste segundo programa, fizemos algumas modificações para apresentar o valor numérico como texto.

Para fazer isto, precisamos de vários outros blocos, começando pelo MOSTRAR STRING.

Observe que dentro do mostrar string usamos várias funções extras. O objetivo é mostrar valores com duas decimais, por exemplo: como dissemos, se utilizarmos o bloco mostrar número para exibir no display a quantia R$ 3,10, será mostrado 3.1, ou seja, despreza as casas decimais não significativas.

Então precisamos:

1. separar o valor INTEIRO das DECIMAIS; (bloco FLOOR)

2. transformar o valor INTEIRO em texto (text) (ex.: 3) (bloco CONVERT)

3. separar o valor DECIMAL, usando o exemplo acima, teríamos 0.1 (bloco RESTO DE)

4. unir ZEROS ao final, teríamos 0.1000 (bloco UNIR)

5. selecionar a subcadeia a partir do elemento 2, que seria o número 1, com comprimento de dois, resultando em 10 (bloco SUBCADEIA DE CARACTERES DE)

6. unir INTEIRO, com um “.” e DECIMAL, resultando em 3,10 (bloco UNIR)

 

Na prática é uma melhoria visual na exibição dos valores no display do micro:bit, não irá mudar o resultado dos cálculo. 🙂

Rolar para cima