Pronto para ir além do Micro:bit? Neste projeto, construiremos um reprodutor de música retrô no estilo Walkman utilizando programação gráfica no Mind+ e a placa UNIHIKER K10. Os estudantes dominarão: controles por botões táteis (pressionar rapidamente para pular faixas, pressionar prolongadamente para gravar), reprodução de múltiplas músicas e gerenciamento dinâmico de playlists - tudo com hardware integrado, sem necessidade de solda. Ideal para alunos em estágio de evolução.

Objetivos
Este projeto simulará a interface de um reprodutor musical portátil no UNIHIKER K10 através da exibição de textos e imagens. Utilizaremos o alto-falante e microfone integrados para reprodução musical e gravação de áudio. As funcionalidades incluem: pressionar rapidamente o botão A para mover a caixa vermelha e selecionar uma música; pressionar rapidamente o botão B para reproduzir a música selecionada; e pressionar prolongadamente o botão A para gravar e salvar o arquivo de áudio. O efeito visual na tela é mostrado na imagem.

Objetivos de Conhecimento
1. Aprender a lógica para distinguir entre pressionamentos curtos e longos.
2. Dominar o uso de comandos de gravação e reprodução de áudio.
3. Dominar o uso de funções.
4. Aprender mais sobre o uso de operadores em comandos.
Lista de Materiais
Uso Básico do Software Mind+
1. Abra o Mind+ e alterne para o modo offline.

2. Carregar 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 "Connect Device", selecione "COM-UNIHIKER K10" para estabelecer a conexão.

Observação: O nome do dispositivo pode variar entre diferentes unidades UNIHIKER K10, mas todos terminam com K10.
No Windows 10/11, o UNIHIKER K10 não requer instalação de drivers. Entretanto, para o Windows 7, é necessária a instalação manual do driver: https://www.unihiker.com/wiki/K10/faq/#high-frequency-problem
Prática Hands-on
Agora vamos começar com as tarefas. Iniciaremos com operações básicas de botões e gradualmente aprenderemos como gravar e reproduzir áudio no UNIHIKER K10. Por fim, utilizaremos funções para criar um reprodutor de música portátil.
Tarefa 1: Uso de Botões — Pressionamento Curto e Longo
Nesta parte, aprenderemos como usar botões para pressionamentos curtos e longos, exibindo textos e imagens na tela do UNIHIKER K10.
Tarefa 2: Gravação e Reprodução de Áudio
Nesta parte, aprenderemos como realizar gravação e reprodução de áudio. Utilizaremos controles por botões para implementar operações básicas de gravação e reprodução.
Tarefa 3: Reprodução de Múltiplos Arquivos de Áudio
Nesta parte, aprenderemos a lógica para alternar entre múltiplos arquivos de áudio, permitindo a reprodução de várias músicas. Ao mesmo tempo, abordaremos brevemente módulos de funções para organizar melhor o código.
Tarefa 4: Implementação de um Reprodutor de Música Portátil
Nesta parte, combinaremos o conteúdo das Tarefas 2 e 3 para implementar a funcionalidade de adicionar arquivos gravados a uma playlist e reproduzi-los, concluindo assim o reprodutor de música portátil.
Tarefa 1: Uso dos Botões - Pressionamento Curto e Longo
Para implementar a funcionalidade em que um pressionamento curto da tecla A move o quadrado vermelho e um pressionamento longo da tecla A grava áudio no reprodutor de música portátil, vamos primeiro compreender os botões integrados do UNIHIKER K10 e os dois métodos de controle por pressionamento - curto e longo - e como programar esses comportamentos.
1. Compreendendo os Botões
O UNIHIKER K10 possui dois botões no lado direito do painel frontal. O botão superior é chamado A e o botão inferior é chamado B.

Vamos começar criando uma tarefa simples para dominar os controles dos botões. O objetivo é exibir um ícone de texto e uma caixa vermelha com um pressionamento curto do botão A, e exibir uma imagem com um pressionamento longo do botão A.
2. Escrever o Programa: Controle por Botão - Pressionamento Curto
Passo 1: Encontre o comando "Quando o botão A Pressionar" na categoria "sensores" da seção UNIHIKER K10. Arraste-o para a área de código. Este é um comando de interrupção, significando que o programa saltará para ele quando o botão A for pressionado e executará os comandos subsequentes.

Observação: Para mais informações sobre os comandos de sensores integrados, consulte o "Centro de Conhecimento".
Passo 2: Encontre os comandos "Cache desenhar retângulo" e "armazenar em cache a imagem" na categoria "Tela" da seção UNIHIKER K10. Arraste-os para abaixo do comando de quando a tecla A é pressionada (conforme mostrado na imagem abaixo).

Observação: Para mais informações sobre o TF Card, consulte o "Centro de Conhecimento".
3. Escrever o programa: Controle por Botão - Pressionamento Longo
PASSO 1: Similarmente, encontre o comando "Botão A é pressionar" na categoria "Sensores" da biblioteca UNIHIKER K10 (conforme mostrado na imagem abaixo), e arraste-o para a área de código. Este comando é um comando de condição e precisa ser utilizado com declarações de controle condicional como "se...então".

Ao implementar a operação de pressionamento longo, se o botão for pressionado, primeiro precisamos usar uma variável para registrar o tempo inicial quando o botão é pressionado.
PASSO 2: Crie uma variável "Tempo Inicial", em seguida arraste o comando "Tempo de atividade do sistema" para atribuir um valor a ela.

Observação: O comando "Tempo de Execução do Sistema" utiliza milissegundos (ms), sendo que 1 segundo equivale a 1000 milissegundos.
Em seguida, é necessário subtrair continuamente o valor da variável "Tempo de atividade do sistema" do tempo atual para obter o tempo de espera, verificando se este atinge o valor pré-definido (por exemplo, 2 segundos), até que o botão seja liberado. Caso o valor pré-definido seja alcançado (2 segundos), a operação correspondente (como exibir uma imagem) será executada.
PASSO 3: Adicione uma declaração de repetição de execução.

PASSO 4: Combine o comando de condição e posicione-o dentro do bloco de repetição de execução.

Observação: A unidade do "Tempo de atividade do sistema" é milissegundos, portanto ">2000" significa maior que 2000ms, ou seja, 2 segundos.
PASSO 5: Adicione o comando de imagem e posicione o bloco completo dentro do loop principal do programa para execução contínua.

Neste momento, a lógica para pressionamento longo e curto dos botões já foi implementada. O programa completo está apresentado a seguir:

4. Executar o Programa
PASSO 1: Verifique e certifique-se de que a placa UNIHIKER K10 está conectada ao Mind+, em seguida carregue o programa editado para o dispositivo.


PASSO 2: Pressione brevemente a tecla A e observe que o texto da música é exibido na tela. Pressione prolongadamente a tecla A e observe que a imagem da música é exibida na tela.

Tarefa 2: Gravação e Reprodução de Áudio
Na Tarefa 2, aprenderemos como realizar gravação e reprodução de áudio. Implementaremos um pressionamento longo no botão A para gravar áudio e um pressionamento curto no botão B para iniciar ou parar a reprodução do áudio.
1. Escrevendo o Programa
PASSO 1: Na categoria K10, encontre o comando "Gravação salva no cartão TF tempo de gravação", então arraste-o e posicione-o abaixo do bloco de pressionamento longo.

PASSO 2: Adicionar exibição de texto.

A seguir, aprenderemos como reproduzir áudio com um pressionamento curto no botão B. A implementação do pressionamento curto aqui é ligeiramente diferente da Tarefa 1, sendo ambos os métodos válidos. Para utilizar o mesmo botão tanto para iniciar quanto para parar a reprodução, usaremos uma variável para registrar o estado atual da reprodução: valor 0 significa não reproduzindo e valor 1 significa reproduzindo. Ao pressionar o botão, modificamos a variável e então controlamos o estado de reprodução com base no valor desta variável.
PASSO 3: Altere o comando "botão A é pressionar" para "botão B é pressionar" e adicione-o à declaração "se...então".

PASSO 4: Crie uma variável para registrar o status de reprodução e adicione uma declaração condicional "se () então () senão".

PASSO 5: Crie uma variável string para registrar o nome do arquivo de áudio, "sound.wav".

PASSO 6: Adicione os comandos de reprodução e parada ao script e modifique o nome do arquivo de áudio para a variável de caractere "Música".

PASSO 7: Adicione as operações relacionadas: quando a variável for 0, reproduza o arquivo de música e altere a variável para 1; quando a variável for 1, pare a reprodução e altere a variável para 0.

PASSO 8: Combine o programa. Lembre-se de que os dois botões, A e B, devem ser controlados independentemente, com os blocos "se () então ()" conectados, não aninhados.

Neste momento, o programa está completo e o programa completo é o seguinte:

2. Executar o Programa
PASSO 1: Conecte o UNIHIKER K10 e faça o upload do programa.
PASSO 2: Pressione prolongadamente o botão A e observe que o LED verde no canto superior direito acende para iniciar a gravação, e apaga para finalizar a gravação; pressione brevemente o botão B para reproduzir a gravação.

Tarefa 3: Reproduzir Múltiplos Arquivos de Áudio
Nesta tarefa, é necessário implementar a reprodução sequencial de vários arquivos de áudio. Conforme ilustrado na figura abaixo, se nomearmos os três arquivos de áudio e as imagens correspondentes em ordem numérica, como podemos implementar a alternância cíclica entre eles? Considere a possibilidade de pressionar o botão A para alternar entre as músicas e o botão B para reproduzir a música selecionada.

A solução consiste em utilizar uma variável para controlar o número da música atualmente selecionada.Cada vez que for necessário alternar a música, incrementa-se o valor da variável em 1. Quando o número atingir 3, ele é reiniciado para 1, permitindo assim a seleção do áudio e da imagem correspondentes.
1. Escrever o Programa
PASSO 1: Crie uma variável chamada "ID" para armazenar o número de série atual. Isso permitirá que, ao pressionar a tecla A, o número seja incrementado em 1. Quando o valor atingir 3, ele deve ser redefinido para 1

PASSO 2: Modifique os nomes dos arquivos para garantir que, cada vez que uma música for alterada, o arquivo de áudio correspondente seja reproduzido.

O programa de reprodução de áudio já está concluído. A seguir, adicionaremos uma exibição para tornar a experiência mais conveniente e visualmente agradável. Aqui, utilizaremos um retângulo vermelho (caixa) para indicar a música atualmente selecionada.
PASSO 3: Escreva o código de exibição do texto e do ícone e adicione a caixa vermelha.

PASSO 4: Complemente a lógica no ponto em que o botão A é pressionado, permitindo o movimento da caixa vermelha.

PASSO 5: Crie uma função para atualizar a exibição do texto e insira o código de exibição desenvolvido no PASSO 3 nesta função, facilitando a atualização.


PASSO 6: Arraste a função criada para a área de scripts para implementar a atualização do texto.

Neste momento, concluímos o programa. O código completo segue abaixo:

2. Executar o Programa
Clique em "Upload" para transferir o programa para o dispositivo. Em seguida, pressione o botão A para alternar entre as músicas e o botão B para reproduzi-las. Aproveite seu primeiro reprodutor de música portátil!
Tarefa 4: Implementar um Reprodutor de Música Completo
Um reprodutor de música completo, além de reproduzir faixas, deve também suportar gravação! Nesta tarefa final, adicionaremos a funcionalidade de gravação para criar um reprodutor mais realista.
Devemos considerar como lidar com a situação antes e depois da gravação. Antes de gravar, não existem arquivos de áudio, mas após a gravação, teremos um arquivo que precisa ser adicionado à lista de reprodução para ser executado.

1. Escrever o Programa
PASSO 1: Integre a função de gravação do botão A da Tarefa 2 ao programa principal da Tarefa 3. Os controles de ambos os botões devem permanecer independentes - atente-se à forma como são conectados.

PASSO 2: A diferença é que, ao gravar pressionando prolongadamente o botão A, devemos nomear o arquivo gravado de acordo com o número sequencial e definir um local específico no diretório para armazenar o arquivo gravado.

PASSO 3: Modifique a função de exibição. À medida que o número de arquivos aumenta, inclua também os arquivos gravados na visualização. Adicionalmente, adicione uma imagem chamada "4.png" ao cartão TF, que corresponderá ao arquivo gravado.

Neste momento, o programa está completamente integrado. O código completo segue abaixo:

2. Executar o Programa
Clique em "Upload" para transferir o programa para o dispositivo e teste o reprodutor de música completo com funcionalidade de gravação!
Centro de Conhecimento
1. Comandos de Sensor

2. Introdução ao Cartão TF
O cartão TF, também conhecido como cartão T-Flash ou micro SD, é um tipo de cartão de memória de dimensões reduzidas. Esses cartões são frequentemente utilizados como armazenamento externo em dispositivos digitais compactos, como telefones móveis, players MP4 e outros equipamentos eletrônicos de pequeno porte.

Para utilização com o UNIHIKER K10, recomenda-se os seguintes modelos de cartões TF:

3. Comandos de Gravação e Reprodução de Áudio

Deseja transformar este reprodutor retrô em um kit moderno para STEM? O slot para cartão TF e as APIs de áudio do UNIHIKER K10 permitem que os estudantes criem protótipos de gravadores de podcast, aplicativos para aprendizado de idiomas ou até mesmo painéis de som para IoT.
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
Lição 2: Jogo de Arcade Tapa-Toupeira
💬 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
