Índice:
Vídeo: Esp8266 Relógio e gerador de pulso: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Este instrutível é para uma peça simples de equipamento de teste; um relógio e gerador de pulso.
Ele usa a interface de hardware i2S em um esp8266 para gerar um relógio de teste ou uma sequência de pulso. Isso facilita a montagem, pois nenhum hardware especial é necessário para um sistema básico.
- Geração de clock de 2 Hz a 20 MHz
- Qualquer frequência pode ser usada
- Pesquisa a melhor combinação de divisores de clock e comprimento de bit do clock base de 160 MHz
- Normalmente melhor do que 0,1% de correspondência para frequências <100KHz
- Marcar seleção de proporção de espaço
- A tolerância de correspondência de frequência pode ser relaxada para obter um melhor manuseio do espaço de marcação
- Geração de trem de pulso com base em definições em arquivos
- GUI baseada na Web que permite o controle do PC, telefone, tablet
- Gerenciamento de Wifi para facilitar a configuração inicial do roteador
- Atualização de software OTA
- Usa uma biblioteca I2s especial (i2sTXcircular) dando controle flexível
Etapa 1: Hardware
Eu construí o meu em um gabinete impresso em 3D contendo uma bateria 18650 com um carregador USB, um botão liga / desliga e um plugue de 3 pinos para o sinal de saída.
O gabinete tem um slot estreito para segurar os componentes eletrônicos ao lado da bateria.
O sinal vem do pino GPIO3 (RX). Isso pode ser usado diretamente, mas para maior capacidade do drive, optei por incluir um pequeno buffer usando um 74LVC2G34. Eu coloquei em paralelo os dois buffers neste dispositivo para fornecer ainda mais capacidade de unidade.
Tudo é feito apenas no software do dispositivo, e o controle é feito fornecendo um servidor web para que um navegador em um PC, telefone ou tablet forneça o controle total.
Etapa 2: Software
Para construir e configurar o software, use o código em
- Instale a biblioteca circular i2sTX (incluída)
- Instale a biblioteca BaseSupport (https://github.com/roberttidey/BaseSupport)
- Adicionar biblioteca WifiManager
- Edite as senhas em BaseConfig.h
- Compilar e fazer upload no ambiente Arduino
- Configure o gerenciamento de rede wi-fi conectando-se ao AP e navegando até 192.168.4.1
- fazer upload de um conjunto básico de arquivos da pasta de dados usando STA ip / upload
- outros uploads podem ser feitos usando ip / edit - a interface normal está em ip /
Como funciona
A biblioteca i2sTXcircular permite construir uma cadeia circular de buffers que são produzidos automaticamente pelo hardware i2S no esp8266 usando DMA para que nenhuma sobrecarga de software seja usada uma vez em funcionamento.
O relógio básico do dispositivo é 160 MHz, que é dividido por um par de divisórias. O sinal de saída é então determinado por quais dados são colocados nos buffers que são emitidos pelo relógio dividido. Ao escolher os dois divisores e ao usar bits de dados potencialmente múltiplos para representar cada pulso, uma frequência pode ser aproximada bastante. Também permite que o ciclo de trabalho (relação marca / espaço dos pulsos de clock) seja variado.
O código javascript do navegador tenta otimizar a escolha de parâmetros para fornecer uma correspondência próxima a qualquer frequência selecionada.
Embora o objetivo principal seja gerar relógios, também é possível produzir trens de pulsos mais complexos colocando uma definição em um arquivo de pulsos que controla os dados que serão gerados e colocados no buffer circular. Os detalhes estão nos arquivos de exemplo de pulso incluídos.
Etapa 3: Operação
A operação é controlada pela interface do navegador mostrada na imagem principal.
Para a geração de relógio normal, basta selecionar o relógio alvo e a proporção de% de espaço de marcação. O relógio real alcançado e seu erro são exibidos. Quando o botão Gerar relógio é pressionado, os parâmetros são enviados ao dispositivo e a geração do relógio usando esses parâmetros é iniciada.
Ao clicar na barra Avançado, mais detalhes podem ser vistos.
O bit clock mostra o sub-múltiplo de 160 MHz que está sendo usado.
Os bits de marca e espaço mostram quantos bits estão sendo usados para representar marcas e espaços.
Div1 e Div2 mostram os dois divisores que foram escolhidos para gerar o bit clock mais próximo.
Normalmente, os dois divisores são escolhidos para dar a correspondência mais próxima à frequência escolhida e para maximizar o número de bits de dados usados, o que ajuda a fornecer mais flexibilidade ao permitir diferentes ciclos de trabalho. No entanto, às vezes a melhor correspondência resulta em uma contagem de bits baixa, deixando pouco espaço para alterar o ciclo de trabalho. Ao alterar o valor de% de tolerância, os divisores serão escolhidos para fornecer uma frequência dentro desta tolerância, mas com potencialmente mais bits de dados usados. Tente, por exemplo, definir a tolerância para 0,5 ou 1.
Você também pode definir o número de bits por palavra para controlar a escolha dos parâmetros. 0 (padrão) significa escolher qualquer bit por palavra. Um único número (por exemplo, 24) significa apenas escolher os parâmetros que correspondem a isso. Você também pode colocar em um intervalo (por exemplo, 24, 31). Isso só funciona para Hz alvo acima de 10 KHz; abaixo dessa escala terá efeito para que o número seja multiplicado.
O tamanho do buffer mostra o espaço total do buffer usado em palavras de 32 bits. Isso é escolhido para garantir que o pulso do relógio forme um encaixe circular perfeito no buffer. Internamente, esse buffer é dividido em vários rbuffers pequenos para permitir que o DMA encadeado funcione.
Para operação de pulsos, escolha a guia de pulsos. Isso mostra os arquivos de pulso disponíveis e um botão próximo a cada um que produzirá um trem de pulso com base em sua definição. Você pode ver o conteúdo do arquivo clicando em seu link. Mais arquivos de pulso podem ser carregados usando o navegador de arquivos ip / edit. Eles devem começar com o nome de pulso.
Recomendado:
Plataformas giratórias de relógio de pulso: 8 etapas (com fotos)
Plataformas giratórias de relógios de pulso: Arranhar discos é muito divertido, mesmo se você não for um toca-discos. Você não gostaria de poder soltar batidas phat e arranhar onde quer que você vá? Bem, agora você pode; seja um DJ Hero com toca-discos de relógio de pulso! Usando 2 cartões graváveis e alguns potentes
Relógio Vortex: um relógio de pulso com espelho infinito: 10 etapas (com fotos)
Relógio Vortex: um relógio de pulso com espelho infinito: O objetivo deste projeto era criar uma versão vestível de um relógio com espelho infinito. Ele usa seus LEDs RGB para indicar o tempo, atribuindo horas, minutos e segundos às luzes vermelha, verde e azul, respectivamente, e sobrepondo esses tons t
Relógio de quatro letras com gerador de palavras Akafugu e frases inspiradoras: 3 etapas
Relógio de quatro letras com gerador de palavras Akafugu e frases inspiradoras: Esta é minha versão do Relógio de palavras de quatro letras, uma ideia que se originou na década de 1970. O relógio exibe uma série de palavras de quatro letras que são geradas a partir de um algoritmo gerador de palavras aleatórias ou de um banco de dados de palavras de quatro letras relacionadas
Gerador - Gerador DC usando chave Reed: 3 etapas
Gerador - Gerador DC usando interruptor Reed: Gerador DC simples Um gerador de corrente contínua (DC) é uma máquina elétrica que converte energia mecânica em eletricidade de corrente contínua. Importante: Um gerador de corrente contínua (DC) pode ser usado como um motor DC sem qualquer tipo de construção alterar
Gerador de pulso de onda quadrada de borda rápida: 4 etapas
Fast Edge Square Wave Pulse Generator: Fast Edge Pulse Generator - Ultra Fast Square Wave Pulse GeneratorEste circuito simples, usando um 74HC14N (seis inversores TTL com baixa taxa de variação) é capaz de gerar sinais de onda quadrada de até 10MHZ. Ideal para alguns testes eletrônicos. Com uma podridão