Pronto para esmagar toupeiras com apenas uma inclinação da sua placa? Nesta aula, os alunos criarão um jogo de arcade interativo onde os jogadores inclinam fisicamente a placa para acertar toupeiras digitais, utilizando o acelerômetro embutido da placa e a interface intuitiva do Mind+. Perfeito para aprendizes que já dominam o básico do Micro:bit, este projeto ensina conceitos avançados como detecção de gestos, geração de eventos aleatórios usando variáveis e sistemas de feedback multissensorial - tudo isso alcançável sem nenhum componente adicional ou fiação complexa.

Objetivos
Criar uma cena de jogo no UNIHIKER K10 e utilizar o acelerômetro para determinar se é possível acertar a toupeira.
Se acertarmos a toupeira, acendemos a luz verde e reproduzimos o tom F4. Se não acertarmos a toupeira, acendemos a luz vermelha e reproduzimos o tom A3.

Objetivos de Aprendizado:
1. Compreender o conceito de variáveis na programação.
2. Dominar o uso do acelerômetro embarcado do UNIHIKER K10.
3. Aprender a configurar efeitos de luz e som no UNIHIKER K10.
4. Dominar o uso de operadores lógicos.
Lista de Materiais
Hardware:

Software:
Software de programação Mind+ (versão V1.8.1 RC3.0 ou superior)

Uso Básico do Software Mind+
1. Abra o Mind+ e alterne para o modo offline.

2. Carregue o UNIHIKER K10
Com base nas etapas anteriores, clique em "Extensão", localize o módulo "UNIHIKER K10" em "Placa" e clique para adicioná-lo. Após clicar em "Voltar", você encontrará o UNIHIKER K10 na "Área de Comandos", completando assim o carregamento do dispositivo.

3. Conectar o UNIHIKER K10
Primeiramente, é necessário utilizar um cabo USB para conectar o UNIHIKER K10 ao computador.

Em seguida, após clicar em "Conectar Dispositivo", selecione "COM-UNIHIKER K10" para estabelecer a conexão.

Observação: O nome do dispositivo pode variar entre diferentes unidades do UNIHIKER K10, mas todos terminam com a identificação K10.
No Windows 10/11, o UNIHIKER K10 possui instalação automática de drivers (plug-and-play). Entretanto, para o Windows 7 é necessária a instalação manual dos drivers, disponíveis em: https://www.unihiker.com/wiki/K10/faq/#high-frequency-problem
Prática Hands-On
A seguir, vamos colocar a mão na massa e completar juntos as tarefas do curso de hoje. Começaremos criando a cena do jogo "Tapa-Toupeira" e gradualmente aprenderemos a utilizar o acelerômetro embarcado do UNIHIKER K10 para implementar a funcionalidade do jogo.
Tarefa 1: Criar a Cena do Jogo
Nesta parte, vamos criar a cena inicial do jogo e fazer com que as toupeiras apareçam aleatoriamente em quatro buracos.
Tarefa 2: Determinar se a Toupeira foi Atingida
Nesta parte, focaremos principalmente no uso do acelerômetro embarcado para determinar se a toupeira foi atingida.
Tarefa 3: Configuração dos Efeitos de Feedback do Jogo
Nesta parte, vamos configurar principalmente os efeitos de feedback para indicar se a toupeira foi atingida ou não.
Tarefa 1: Criar a Cena do Jogo

1. Configuração do Hardware
Certifique-se de que o UNIHIKER K10 está conectado ao computador utilizando um cabo USB.
2. Preparação do Software
Verifique se o Mind+ está aberto e que a placa UNIHIKER foi carregada com sucesso. Uma vez confirmado, você pode prosseguir com a escrita do programa do projeto.

3. Escrever o Programa
PASSO 1: Utilize o comando "armazenar em cache a imagem local" para configurar a cena inicial do jogo. As configurações relevantes são as seguintes.

PASSO 2: Defina para que a toupeira apareça aleatoriamente em um dos quatro buracos.
Neste jogo, a toupeira irá surgir aleatoriamente de um dos quatro buracos, com cada cena correspondendo a uma imagem. Para fazer com que a toupeira apareça aleatoriamente de um buraco a cada dois segundos, utilizaremos o comando "número aleatório entre () e ()", e empregaremos uma variável chamada "posição" para armazenar o número aleatório gerado. As configurações relevantes do programa são as seguintes.

Crie uma nova variável chamada "posição" e atribua o número aleatório à variável conforme abaixo:

Observação: Para mais informações sobre "variáveis", consulte o "Centro de Conhecimento".
PASSO 3: Configure a imagem da toupeira para aparecer na posição correspondente.
Anteriormente, armazenamos o número aleatório para a rodada atual do jogo na variável "posição". Agora, precisamos usar os comandos "se () então ()" e "se () então () senão" para configurar a imagem correspondente da toupeira com base nos diferentes números aleatórios. O código do programa relevante é mostrado abaixo.

Para manter o programa principal organizado, encapsulamos o código de cada funcionalidade em uma "função". No programa principal, basta chamar a função correspondente para alcançar o resultado desejado. A operação de definição de função é realizada da seguinte maneira.


O código completo do módulo de configuração da cena do jogo é mostrado na imagem abaixo:

4. Executar o Programa
PASSO 1: Verifique e certifique-se de que o UNIHIKER K10 está conectado ao Mind+.

PASSO 2: Clique no botão "Enviar" no canto superior direito da interface.

PASSO 3: Observe o efeito de exibição na tela do UNIHIKER K10 (consulte a imagem abaixo).

Tarefa 2: Determinar se a Toupeira foi Atingida
Neste jogo, detectamos a inclinação do UNIHIKER K10 utilizando seu acelerômetro embarcado. Se a toupeira aparecer na frente, ela será considerada "atingida" apenas quando o UNIHIKER K10 detectar uma postura de "Inclinação para frente".
1. Escrever o Programa
PASSO 1: Determinar se a toupeira foi atingida.
Primeiramente, utilize o comando "A postura atual é Inclinado para frente?" para verificar o estado de inclinação do UNIHIKER K10. Em seguida, use os comandos "se () então ()" e "se () então () senão" para verificar se a direção da inclinação corresponde à posição da toupeira. Se corresponderem, atribua o valor "1" à variável "Acertar", indicando que a toupeira foi atingida. Observe que inicialmente devemos definir "Acertar" como "0" para garantir que ele mude para "1" apenas quando a toupeira for efetivamente atingida.

Observação: Para mais informações sobre o acelerômetro, consulte o "Centro de Conhecimento".
Para verificar se a direção da inclinação corresponde à posição da toupeira utilizando os comandos "se () então ()" e "se () então () senão", precisamos usar "operações lógicas". A toupeira só será considerada atingida quando ambas as condições forem atendidas. As direções de inclinação do UNIHIKER K10 e as operações específicas do programa são mostradas abaixo.


Observação: Para mais detalhes sobre operações lógicas, consulte o "Centro de Conhecimento".
PASSO 2: Configurar o tempo do jogo
Para exigir que os jogadores completem a tarefa "Tapa-Toupeira" em um tempo determinado de 2 segundos, precisamos configurar uma variável "tempo" para registrar o tempo permitido. Ou seja, calcular o tempo decorrido subtraindo o tempo inicial de execução do sistema do tempo atual de execução do sistema. Se esse tempo exceder 2 segundos, o jogo será considerado como falha e a toupeira não será atingida. O programa relevante é mostrado a seguir:

O código completo do programa para o módulo de Determinar se a Toupeira foi Atingida é o seguinte:

2. Executar o Programa
PASSO 1: Conecte o K10.
PASSO 2: Clique no botão "Upload" no canto superior direito da interface.
PASSO 3: Jogue e observe o efeito na tela quando a direção de inclinação corresponder à posição da toupeira (conforme mostrado na imagem abaixo).

Tarefa 3: Configuração dos Efeitos de Feedback do Jogo
Nesta tarefa, precisamos configurar diferentes efeitos de iluminação e som para a variável "atingido", com base na avaliação anterior.
1. Escrever o Programa
PASSO 1: Configurar os efeitos de iluminação e som.
Para determinar se a toupeira foi atingida, configuramos dois efeitos de feedback distintos. Se a toupeira for atingida, acendemos uma luz verde e reproduzimos "Médio/F4 batida 3/4". Se a toupeira não for atingida, acendemos uma luz vermelha e reproduzimos "Baixo A/A3 batida 1".


PASSO 2: Determinar Execução
Após a avaliação anterior, se a toupeira for atingida, a variável "Acertar" será definida como 1; se não for atingida, a variável "Acertar" será definida como 0. Utilizaremos o comando "se () então ()" para executar diferentes ações com base no valor.

Escreva o código do programa para ambos os cenários em duas funções: "Acerto bem sucedido" e "Falha no acertar". O código completo do programa é mostrado abaixo:

2. Executar o Programa
Clique no botão "Enviar" e teste o seu jogo personalizado "Tapa-Toupeira"!
Centro de Conhecimento
1. Variáveis
Para facilitar o entendimento, podemos pensar em uma variável como uma caixa. Atribuir um valor a uma variável é como colocar algo dentro dessa caixa. As variáveis podem receber novos valores repetidamente, o que significa que o conteúdo da caixa pode ser retirado e substituído por outra coisa.

Por exemplo, este programa atribui repetidamente um valor à variável "flag". A primeira atribuição coloca o número 0 na caixa vazia de "flag", portanto o valor de flag é 0. Na segunda atribuição, o número 0 é retirado e o número 1 é colocado, fazendo com que o valor de flag se torne 1.

Observação: Ao criar uma nova variável, é necessário nomeá-la, e a nomeação deve seguir regras específicas:
(1)O nome pode consistir em números, letras e sublinhados.
(2)O nome não pode utilizar palavras-chave reservadas do Python, que são palavras que já possuem significados especiais no Python, como True, False, def, if, elif, else, import, etc.
(3)O nome não pode conter caracteres especiais (`~!@#$%^&*()+?:../;'[]).
(4)É recomendável escolher um nome que reflita seu significado.
2. Operações Lógicas
As operações lógicas são utilizadas para realizar cálculos com valores lógicos, que possuem apenas dois resultados possíveis: verdadeiro ou falso. Existem três operadores lógicos: E (AND), OU (OR) e NÃO (NOT), com os respectivos módulos de programa mostrados abaixo:

Operador Lógico AND
O resultado é verdadeiro apenas quando ambos os operandos são verdadeiros; caso contrário, é falso. Por exemplo, quando Y = 180, e Y > 150 e Y < 200, toda a expressão lógica é avaliada como verdadeira. O operador "AND" é semelhante ao "e" na linguagem cotidiana.

Operador Lógico OR
O resultado é verdadeiro se pelo menos um dos operandos for verdadeiro. Se ambos os operandos forem falsos, o resultado é falso. O operador lógico "OR" é semelhante ao "ou" na linguagem cotidiana.
Operador Lógico NOT
Este operador atua sobre um único operando. Se o operando for verdadeiro, o resultado será falso. Se o operando for falso, o resultado será verdadeiro.
3. Acelerômetro Embarcado do UNIHIKER K10
O UNIHIKER K10 possui um acelerômetro embarcado que pode detectar a postura do dispositivo e ler valores do acelerômetro (nas direções X, Y, Z ou intensidade).

A seguir está uma introdução aos comandos relacionados ao acelerômetro:

Quer explorar mais projetos baseados em sensores? O acelerômetro do UNIHIKER K10 é apenas o começo — imagine programar labirintos controlados por inclinação, instrumentos musicais ativados por gestos ou até simuladores de terremotos.
Deseja continuar aprendendo? Prossiga sua jornada de aprendizado com nossas outras lições:
Quer explorar mais?
Lição 1: Cão Virtual que Responde à Luz
💬 Já criamos uma comunidade WhatsApp exclusiva para usuários de língua portuguesa do Brasil! Entre para o grupo e receba as informações mais atualizadas, novidades incríveis de projetos, descontos e muitas outras surpresas!
Whatsapp comunidade: https://chat.whatsapp.com/KTCdPBQDDWTGHlS5LoO8HC
