Índice:

Reproduza músicas usando o motor de passo !!: 11 etapas (com imagens)
Reproduza músicas usando o motor de passo !!: 11 etapas (com imagens)

Vídeo: Reproduza músicas usando o motor de passo !!: 11 etapas (com imagens)

Vídeo: Reproduza músicas usando o motor de passo !!: 11 etapas (com imagens)
Vídeo: TRANSIÇÕES 100% COM O CELULAR NA MÃO 2024, Novembro
Anonim
Reproduza músicas usando o motor de passo !!
Reproduza músicas usando o motor de passo !!

Este projeto visa projetar uma interface dinâmica simples, que permitirá interagir com um motor de passo de duas maneiras diferentes.

A primeira interface controlará a direção e a velocidade do motor de passo através do uso de uma GUI simples, que tem setas para a esquerda e direita para a direção e setas para cima e para baixo para a velocidade.

A segunda interface será de natureza mais musical, o que permitirá tocar músicas simples usando os sons rotacionais do motor de passo.

Etapa 1: peças necessárias

  1. Arduino UNO (ou placa compatível)
  2. Nextion Enhanced NX4827K043 do iTead Studio.
  3. Placa de expansão Nextion para tela aprimorada Nextion
  4. Cartão Micro SDHC
  5. Leitor / gravador de cartão SD - para transferir arquivos do computador para o cartão SDHC
  6. Tábua de pão
  7. Motor de passo (42BYGHM809)
  8. Driver do motor de passo 100 uF CapacitorDuinotech (L298) - [JayCar parte # XC4492].
  9. Fonte de alimentação externa - por exemplo Fonte de alimentação de laboratório regulamentada

Etapa 2: Criação de interface

Criação de interface
Criação de interface

O primeiro passo é criar as interfaces no Nextion Editor em seu PC.

Você pode baixar o Nextion Editor aqui.

Carregue o Nextion Editor e crie um novo projeto. Ao iniciar um novo projeto, você precisa se certificar de que selecionou o dispositivo Nextion correto entre as opções disponíveis. Aqui, o dispositivo “Nextion Enhanced NX4827K043” é usado.

  1. Selecione Arquivo → NovoSelecione um nome para o projeto e salve-o em um local adequado no disco rígido.
  2. Selecione o dispositivo Nextion apropriado entre as opções disponíveis

    Meu dispositivo tem um tamanho de tela de 480 x 272 pixels

Etapa 3: Recursos do Projeto

Recursos do Projeto
Recursos do Projeto
Recursos do Projeto
Recursos do Projeto
Recursos do Projeto
Recursos do Projeto

Você precisa importar todos os recursos (por exemplo, imagens e fontes) para o seu projeto e, em seguida, projetar a interface para atender às suas necessidades específicas.

Fontes

Não há fontes específicas usadas, mas se você quiser escrever qualquer texto no display, você precisará gerar uma fonte no Editor de Nextion.

A) Ferramentas → Gerador de fontes

  1. Selecione a altura da fonte (por exemplo, 16).
  2. Selecione o tipo de código da fonte (por exemplo, iso-8859-2)
  3. Selecione se você quer que seja em negrito ou não
  4. Escolha a fonte que deseja usar (por exemplo, Arial)
  5. Escolha o espaçamento (por exemplo, 0)
  6. E, por fim, dê a essa fonte um nome exclusivo (por exemplo, Arial_16)
  7. Pressione o botão “Gerar fonte” na parte inferior direita da janela.

Depois de pressionar o botão Gerar fonte, você salvará a fonte usando uma extensão *.zi e perguntará automaticamente se deseja “Adicionar a fonte gerada?” para o projeto. Se você está satisfeito com a fonte e gostaria de usá-la em seu projeto, selecione “Sim”, caso contrário, selecione “Não” e comece novamente.

Você não pode adicionar nenhum texto ao seu projeto antes de importar ou adicionar uma fonte. Todas as fontes do seu projeto serão exibidas na janela de fontes.

** Nota: Cada fonte será indexada automaticamente, para que você possa referenciar a fonte programaticamente, se necessário. Na verdade, todos os recursos que você adiciona ao seu projeto recebem um número e são incrementados em um para cada recurso adicionado. Para alguns recursos, você pode ver este número à esquerda do item. Por exemplo. Na figura acima, a fonte Courier tem um índice de 0, enquanto a fonte Arial tem um índice de 1. Se você excluir um recurso, o número do índice pode mudar para aquele item.

Etapa 4: importando imagens

Importando Imagens
Importando Imagens
Importando Imagens
Importando Imagens

No dispositivo Nextion Enhanced NX4827K043, cada imagem deve ter 480 x 272 pixels de tamanho.

Agora vamos importar as seguintes imagens para o Editor de Nextion para que possamos usá-las no projeto. No canto inferior esquerdo do editor Nextion está a janela de recursos “Fontes e imagens”:

  1. Selecione a guia Imagem
  2. Em seguida, selecione o ícone “+”
  3. Isso abrirá uma caixa de diálogo para permitir que você selecione as imagens a serem adicionadas ao projeto. Você pode selecionar mais de uma imagem para importar.

Para Splash Screen você pode fazer qualquer imagem de acordo com sua escolha.

E para motor de passo e interface de piano, você pode baixar a imagem acima.

Etapa 5: Fazendo GUI

Fazendo GUI
Fazendo GUI

Cada recurso receberá um ID com base na ordem em que é adicionado e cada recurso receberá automaticamente um nome.

Você pode alterar o nome do recurso ou objeto, mas não pode editar o ID.

Três páginas serão projetadas para atender aos critérios descritos acima.

Para adicionar uma página, basta selecionar o ícone “Adicionar” da “janela da página”. E continue adicionando páginas até que você tenha um total de 3 páginas (página0, página1 e página2).

Etapa 6: página 0 - tela inicial

Página 0 - Tela inicial
Página 0 - Tela inicial

Quando o Nextion é ligado, a tela inicial será exibida por 3 segundos antes de mostrar a tela do controlador de motor de passo. Usei as seguintes etapas para criar a tela inicial.

Adicione a imagem da tela inicial à página 0

  • Selecione “página 0” na janela da página
  • Selecione “Imagem” na janela da caixa de ferramentas
  • Clique duas vezes no atributo “pic” da janela de atributos
  • Selecione a imagem da tela inicial da lista
  • Pressione o botão OK

2. Adicione um cronômetro à página 0

  • Selecione Timer na janela da caixa de ferramentas
  • Altere o atributo “tim” de 400 para 3000 na janela Atributo
  • Entre na “página página1” na seção Código do usuário do evento temporizador (0). Este evento temporizador fará o Nextion pular para a página1 após 3 segundos.

Este evento temporizador fará o Nextion pular para a página 1 após 3 segundos.

Etapa 7: Página 1 - Controlador de motor de passo

Esta página foi projetada para controlar a direção e a velocidade do motor de passo. Haverá dois botões para a direção (esquerda e direita) e dois botões para a velocidade (mais rápido e mais lento). E mais um botão para pular para a próxima página (ou seja, a página Stepper Motor Piano). Esses botões também serão mapeados para a placa de expansão Nextion. Os botões táteis da placa de expansão fornecerão um método alternativo de controle do motor.

Adicione a imagem do controlador de motor de passo à página 1

  • Selecione “page1” na janela da página
  • Selecione “Imagem” na janela da caixa de ferramentas
  • Clique duas vezes no atributo “pic” da janela de Atributo
  • Selecione a imagem "Controlador de motor de passo" na lista
  • Pressione o botão OK

2. Adicione pontos de acesso sobre cada botão na imagem do controlador de motor de passo

a) Selecione “Hotspot” na janela da caixa de ferramentas

b) Arraste e redimensione o Hotspot para que cubra o botão “Esquerda”

  • Esta é a área que responderá aos pressionamentos do “botão esquerdo”.
  • Será transparente quando carregado para a placa Nextion

c) Selecione a guia “Touch Press Event” na janela Event

d) Desmarque a caixa de seleção “Send Component ID”

e) Digite o seguinte código na seção "Código do usuário" da janela do evento:

imprimir “L”

f) Altere o nome do objeto do ponto de acesso para “Esquerda” usando o seguinte processo:

  • Selecione objname na janela de atributos e altere o texto de “m0” para “Left”
  • Não é obrigatório alterar o nome do objeto do ponto de acesso; no entanto, ajudará mais tarde.

g) Repita as etapas 2a-2f para cada um dos outros botões na seguinte ordem e de acordo com a tabela abaixo

  • Direito
  • Mais rápido
  • Mais devagar
  • Próximo

O código ASCII decimal para a letra “L” é 76, portanto, quando o display Nextion Enhanced envia a letra L para o Arduino usando o comando print “L”, o Arduino receberá o número 76. Quando o botão direito é pressionado, ele receberá o número 82 e assim por diante. O botão “Next” não transmite nada para o Arduino, ele simplesmente está lá para pular para a próxima interface no display Nextion Enhanced, daí a razão pela qual o código do usuário é diferente para aquele botão.

3. Mapeie os botões para a placa de expansão

a) Selecione “página0” e depois “página1” na janela Página

b) Selecione a guia "Pré-inicializar evento" na janela Evento

c) Digite o seguinte código no campo "Código do usuário" da guia Pré-inicializar evento:

  • cfgpio 5, 1, esquerda
  • cfgpio 2, 1, direita
  • cfgpio 4, 1, mais rápido
  • cfgpio 3, 1, mais lento
  • cfgpio 1, 1, Next

*** Observação: há um espaço entre cfgpio e o número ao lado dele, mas não há outros espaços em cada linha. Se você inserir espaços extras, ele não será compilado. Este código mapeia os botões na placa de expansão para os objetos de ponto de acesso na página1. Por exemplo, quando o botão Esquerdo (IO5) na placa de expansão é pressionado, ele simula as ações ou eventos associados ao ponto de acesso m0 / Esquerda. Neste caso, ele enviará um valor “L” (76) para o Arduino.

O número IO está marcado entre colchetes na placa de expansão.

Etapa 8: Página 2 - Piano com motor de passo

Página 2 - Stepper Motor Piano
Página 2 - Stepper Motor Piano
Página 2 - Stepper Motor Piano
Página 2 - Stepper Motor Piano

sua interface será projetada para se parecer com um piano e me permitirá controlar o motor de passo de modo que ele produza uma nota na mesma tecla que eu pressiono no visor do Nextion. O motor de passo produzirá a nota girando em uma frequência específica.

1. Adicione a imagem Stepper Motor Piano à página2.

  • Selecione “page2” na janela da página
  • Selecione “Imagem” na janela da caixa de ferramentas
  • Clique duas vezes no atributo “pic” da janela de atributos
  • Selecione a imagem “Stepper Motor Piano” da lista
  • Pressione o botão OK

2. Adicione pontos de acesso sobre cada tecla na imagem do Stepper Motor Piano

a) Selecione “Hotspot” na janela da caixa de ferramentas

b) Arraste e redimensione o Hotspot para que cubra a tecla “A”. Esta é a área que responderá aos pressionamentos da tecla “A”. Será transparente quando carregado para a placa Nextion.

c) Selecione a guia “Touch Press Event” na janela Event.

d) Digite o seguinte na seção "Código do usuário"

imprimir 1

e) Repita as etapas 2a-2d para cada uma das outras chaves de acordo com a tabela abaixo.

** Quando a tecla específica é pressionada, a placa Nextion Enhanced transmitirá o número impresso, seguido por três valores 0x00. Os valores finais podem ser ignorados.

3. O botão “Voltar” me permitirá voltar para a interface anterior na placa Nextion Enhanced.

a) Crie um ponto de acesso para o botão Voltar usando o seguinte processo:

  1. Selecione Hotspot na janela da caixa de ferramentas
  2. Mova / redimensione o ponto de acesso sobre o botão "Voltar"

b) Selecione a janela Evento.

c) Certifique-se de que a guia "Evento de toque ao pressionar" esteja selecionada

d) Digite: página página 1 na seção Código do usuário

Etapa 9: depuração

Depurando
Depurando
Depurando
Depurando

A vantagem do Nextion Editor é que você pode testar a funcionalidade da interface antes de enviá-la para a placa.

  1. Salve o projeto pressionando o botão Salvar na barra de tarefas
  2. Em seguida, pressione o botão compilar
  3. Em seguida, pressione o botão de depuração.

Uma janela do emulador Nextion aparecerá. Esta janela deve responder da mesma maneira que o módulo Nextion após o arquivo Nextion ser carregado para a placa. Este emulador é uma ótima maneira de testar sua interface e verificar se ela está funcionando conforme o esperado. Quando fiquei satisfeito com a (s) interface (s), transferi o arquivo Nextion compilado para um cartão SD:

  1. Pressione o botão de compilação
  2. Arquivo → Abrir pasta de compilação
  3. Selecione o arquivo *.tft com o mesmo nome do projeto.
  4. Copie para um cartão micro SDHC
  5. Insira o cartão SDHC no slot de cartão SD na tela do Nextion
  6. Ligue a placa Nextion

Aguarde o arquivo piscar a placa Nextion e você verá uma mensagem semelhante a esta:

A próxima etapa é desligar a placa Nextion e remover o cartão SDHC.

Etapa 10: CONFIGURAÇÃO DO ARDUINO

A tela Nextion Enhanced está pronta e agora é a vez do Arduino. O Arduino é programado para receber mensagens seriais do display Nextion Enhanced e controlar o motor de passo com base nas letras ou números recebidos. As letras ou números exclusivos transmitidos da placa Nextion permitem que o Arduino entenda qual botão está sendo pressionado e usa esses números ou letras para controlar o fluxo do código a fim de realizar ações específicas do motor de passo.

A biblioteca SoftwareSerial é usada para habilitar a comunicação serial entre o Arduino e o monitor Nextion Enhanced. A biblioteca AccelStepper é usada para simplificar o processo de controle do motor de passo.

Configure uma velocidade máxima e mínima para os motores e algumas chaves predefinidas. É possível “sintonizar” o motor usando a primeira interface do display Nextion. Você pode fazer isso fazendo o motor girar mais rápido ou mais devagar até chegar à chave desejada. Aqui, o aplicativo “Tuner T1 Free” da loja de aplicativos do iTunes é usado para identificar QUANDO o motor estava produzindo uma nota na tonalidade. Quando o motor estava produzindo uma nota específica, eu anotava a velocidade do motor de passo que foi impressa na janela do monitor serial. Cada vez que a velocidade do motor é aumentada ou diminuída, o código do Arduino imprime a velocidade na janela do monitor serial. Em seguida, uso essas velocidades para atualizar o array notes no código do Arduino. O array notes mantém as velocidades do motor de passo que correspondem às notas individuais no piano. O display Nextion essencialmente envia o número de índice da nota a ser reproduzida a partir do array de notas no Arduino, simplificando assim o código necessário para girar o motor em 16 velocidades diferentes.

Etapa 11: Finalização + Esquemas

Finalizando + Esquemas
Finalizando + Esquemas
Finalizando + Esquemas
Finalizando + Esquemas
Finalizando + Esquemas
Finalizando + Esquemas
Finalizando + Esquemas
Finalizando + Esquemas

Com todas as placas desligadas, a próxima etapa é fazer todas as conexões de hardware necessárias ao Arduino. Existem duas seções principais a serem consideradas:

  • O driver de motor de passo e motor
  • A placa Nextion Enhanced.

Você precisa se certificar de que usa uma fonte de alimentação externa para alimentar o motor de passo e a placa aprimorada Nextion. A própria placa de driver do motor de passo foi alimentada pelo Arduino sem problemas, mas o motor de passo real precisará de uma fonte de alimentação externa. A placa Nextion Enhanced também precisa de uma fonte de alimentação externa porque requer mais corrente do que o Arduino pode fornecer com segurança.

Anote a fonte de alimentação externa usada. Eu me certifiquei de que tinha uma fonte de alimentação grande o suficiente para lidar com os requisitos de energia do projeto e usei as planilhas de dados relevantes para me ajudar a identificar esses requisitos. Se você planeja replicar este projeto, certifique-se de levar em consideração os requisitos específicos de energia de seu motor, o driver do motor e o monitor Nextion. O Arduino pode fornecer apenas 400mA de corrente do pino de 5V. Com tudo conectado, liguei o display Nextion e, em seguida, liguei o Arduino. O motor de passo começa a girar automaticamente. Usei a primeira interface para mudar a direção e / ou velocidade do motor. Observe as velocidades máxima e mínima configuradas no código do Arduino. Em seguida, usei o botão Avançar para pular para a segunda interface no monitor Nextion Enhanced. A segunda interface parece um piano. E quando eu pressiono uma tecla no visor do piano, o motor muda a velocidade para coincidir com a nota que pressionei.

É isso. Agora você está feito.

Espero que goste

Recomendado: