Lição 3: Reprodutor Walkman portátil

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

HARDWARE LIST
1 UNIHIKER K10
1 USB- C Cable

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. 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.

 

[Get UNIHIKER K10 here]

 

Deseja continuar aprendendo? Prossiga sua jornada de aprendizado com nossas outras lições:

icon programa.zip 169KB Download(0)
icon imagem.zip 163KB Download(0)

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

License
All Rights
Reserved
licensBg
0