Índice:

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: 3 etapas

Vídeo: Relógio de quatro letras com gerador de palavras Akafugu e frases inspiradoras: 3 etapas

Vídeo: Relógio de quatro letras com gerador de palavras Akafugu e frases inspiradoras: 3 etapas
Vídeo: Nem eu ,Dentista, Jamais tinha Visto ISSO em Toda minha vida !! #shorts 2024, Novembro
Anonim
Image
Image
Relógio de quatro letras com gerador de palavras Akafugu e frases inspiradoras
Relógio de quatro letras com gerador de palavras Akafugu e frases inspiradoras
Relógio de quatro letras com gerador de palavras Akafugu e frases inspiradoras
Relógio de quatro letras com gerador de palavras Akafugu e frases inspiradoras

Esta é minha versão do Four Letter Word Clock, uma ideia que se originou na década de 1970. O relógio exibe uma série de palavras de quatro letras geradas a partir de um algoritmo gerador de palavras aleatórias ou de um banco de dados de palavras de quatro letras relacionadas.

Esta versão usa telas de LED de 14 segmentos mais modernas e um microcontrolador Atmega 328p para exibir as palavras e o tempo. Dois modos de geração de palavras são suportados. O primeiro usa um algoritmo para gerar grupos de palavras de quatro letras que provavelmente são palavras reais, semelhantes ao original. Cada palavra sucessiva não tem relação com a anterior. O segundo modo usa o banco de dados de palavras relacional do "Edinburgh Associative Thesaurus", um documento de associações de palavras baseado nas respostas das pessoas ao perguntar a primeira palavra que vem à mente depois de dar a elas uma palavra semente, continuando o processo com a palavra de resposta. O banco de dados foi adaptado para geração de palavras de quatro letras pela Akafugu Corporation, que criou um arquivo de dados de 57 Kbyte que é armazenado em uma EEPROM externa para processamento pelo Atmega. O resultado é que o relógio usa o tempo Unix como uma semente aleatória e gera uma sequência de palavras de quatro letras associadas com base nas respostas humanas, não em algum algoritmo.

Nota: O banco de dados de palavras Akafugu contém algumas palavras sexualmente explícitas e potencialmente ofensivas. Se isso incomoda você, ligue o modo de palavras aleatórias. Isso também pode gerar algumas palavras ofensivas, mas pelo menos não exibirá fluxos de palavras ofensivas relacionadas!

O "Edimburgo Associative Thesaurus" foi compilado com base nas respostas de pessoas que viviam na Inglaterra no início dos anos 60. A palavra relações reflete definitivamente esse preconceito! Por exemplo, a palavra "BEST" é frequentemente seguida por "PETE". Não existe nenhuma conexão óbvia, a menos que se saiba que Pete Best foi o baterista original dos Beatles no início dos anos 60! Outros preconceitos em relação à cultura do Reino Unido dos anos 60 são abundantes. Acho muito interessante assistir!

O dispositivo também contém um módulo de relógio em tempo real endereçável I2C com bateria de reserva recarregável. O relógio exibe 5 palavras de um dos dois algoritmos selecionáveis e exibe a hora, a data, o dia da semana e o ano. O relógio e os modos de operação são definidos usando três interruptores de botão. Os modos de operação são armazenados em EEPROM não volátil e sobrevivem a uma reinicialização ou falha de energia. O RTC continua a funcionar por cerca de um ano depois que a energia é removida, com extrema precisão compensada pela temperatura. A hora correta é exibida automaticamente quando a energia é restaurada.

Um recurso adicional são as 107 citações sobre o tempo que são exibidas aleatoriamente a cada 10 minutos. Essas citações rolam da direita para a esquerda nos quatro personagens, fornecendo incentivo e inspiração frequentes! O armazenamento das frases está na EEPROM externa com o banco de dados de palavras Akafugu. A base de dados ocupa apenas 57 Kbytes dos 64 Kbytes disponíveis no dispositivo, deixando espaço para as 107 frases. Uma frase de "gabar-se" é sempre a primeira a ser exibida quando o relógio é ligado pela primeira vez no intervalo de 10 minutos seguinte.

A unidade usa displays de 14 segmentos de cátodo comum (2 cátodos para cada dígito) que são multiplexados por uma rotina de serviço de interrupção do cronômetro que resulta no display de quatro caracteres sendo atualizado a 100 Hz. Sempre que o ISR é executado, ele desliga o meio-caractere anterior, recupera 7 dos 14 segmentos para um dos quatro caracteres, liga os pinos de segmento correspondentes e aterra o cátodo correspondente. Os monitores são um pouco incomuns, mas eu tinha um grande excedente que queria usar. O cátodo comum duplo reduz o número de pinos necessários por dígito de 15 para 9. Há apenas pinos suficientes em um Atmega 328p para permitir o acionamento direto do display sem um registro de deslocamento.

TO-DO: Modifique o código para usar o módulo de LED alfanumérico Adafruit de 4 caracteres

Etapa 1: História

História
História
História
História
História
História
História
História

O relógio FLW original foi construído com grandes tubos de neon alfanuméricos Burroughs B7971 retirados de painéis de mostruários de ações desativados. Eles são semelhantes aos tubos nixie numéricos da época, mas usavam um display de 14 segmentos para formar todos os caracteres ASCII. O relógio usava lógica discreta, selecionando letras de uma tabela para formar combinações aleatórias de quatro letras que eram ponderadas para produzir palavras reais.

Com o algoritmo No modelo original de 1972, apenas algumas letras aparecem em cada posição. Uma análise tabulada à mão de várias centenas de palavras de quatro letras foi feita e a frequência das letras em cada uma das quatro posições foi contada. Foram utilizadas as dez letras mais frequentes de cada posição, exceto na segunda posição que continha apenas oito letras.

Para cada posição, um contador BCD simples (0-9) (um 74LS90 IC) funcionava livremente e a contagem era capturada e mantida uma vez a cada poucos segundos a uma vez por minuto, dependendo da configuração de velocidade. O instantâneo do contador foi então aplicado a uma matriz de decodificação de diodo (usando cerca de 150 diodos) para formar os caracteres.

Uma vez que apenas as dez (ou oito) letras mais comuns foram selecionadas para cada posição, sem considerar as combinações de letras, muitas não palavras podem aparecer, por exemplo, FRLR, LREE, LLLL, etc.

Observe que a segunda posição tinha apenas oito letras, uma vez que a nona e a décima letras na amostra tinham uma frequência proporcionalmente baixa, enquanto a primeira e a segunda tinham uma frequência extremamente alta - então elas foram duplicadas. Assim, 10 x 8 x 10 x 10 = 8.000 permutações. As letras que foram programadas no primeiro modelo de 1973 são mostradas em uma das imagens acima.

Etapa 2: Código e esquema

Código e esquema
Código e esquema
Código e esquema
Código e esquema
Código e esquema
Código e esquema
Código e esquema
Código e esquema

O esquema está anexado.

O relógio pode ser construído usando qualquer Arduino baseado em Atmega 328p.

Para uso com um Atmega 328p autônomo, conforme mostrado no esquema, um programador ISP deve ser usado para programar o microcontrolador por meio do Arduino IDE. Após a programação, os fusíveis devem ser ajustados usando o seguinte comando avrdude (WinAVR deve ser instalado). Substitua a porta de comunicação e o tipo de programador. O mais fácil é usar um Arduino como programador de ISP. Google para obter detalhes.

avrdude -c arduino -P com13 -b 19200 -p atmega328p -U lfuse: w: 0xFF: m -U hfuse: w: 0xDF: m -U efuse: w: 0x05: m

Essas configurações desabilitam o vetor de redefinição do carregador de inicialização para que o código comece imediatamente a partir do vetor de código principal. Os fusíveis também são configurados para um oscilador externo de 16 MHz. Depois de queimado, você não poderá programar o chip novamente até que o cristal e os capacitores sejam conectados conforme mostrado no esquema, já que o oscilador interno padrão é desabilitado com essas configurações de fusível.

A biblioteca Arduino DS3231 deve ser instalada para fornecer acesso às rotinas de relógio RTC. É necessário habilitar o suporte de horário Unix na biblioteca, removendo o comentário da linha "#define CONFIG_UNIXTIME" no arquivo config.h da biblioteca RTC do DS3231. O tempo Unix é usado como uma semente para o gerador de números aleatórios, de forma que as sequências de palavras e frases não sejam repetidas toda vez que o relógio for ligado.

O próprio módulo de relógio DS3231 RTC é uma variedade comum vendida no ebay. O módulo é ilustrado acima. Procure o tipo com bateria de reserva recarregável.

Além de um microcontrolador programado, também é necessário obter e programar um EEPROM serial Microchip 24LC512 com o banco de dados de palavras Akafugu e lista de frases. Isso é feito usando um circuito simples construído com um Arduino e um cartão SD formatado como FAT32 com o arquivo output2.dat nele. Um esboço lê os dados do cartão SD e os grava na EEPROM. Detalhes podem ser encontrados nos dois links a seguir. Certifique-se de usar o esboço de programação e o arquivo de dados neste Instructable, pois aquele no link Akafugu não possui o banco de dados de frases. Siga o procedimento nos links.

Visão geral do banco de dados Akafugu FLW

Instruções para gravar o arquivo de dados na EEPROM

Etapa 3: Configuração e controle do relógio

As seguintes combinações de botões são usadas para configurar o relógio:

Horário definido: Segure o botão 1 durante a operação normal.

Conjunto de minutos: Segure o botão 2 durante a operação normal. Os segundos são redefinidos para "00" automaticamente

Segundos redefinidos para zero: Segure o botão 3 durante a operação normal, solte para sincronizar com o início de um novo minuto

Definir mês: segure os botões 1 e 2 juntos durante a operação normal

Definir data: segure os botões 1 e 3 juntos durante a operação normal

Definir ano: segure os botões 2 e 3 juntos durante a operação normal

Definir o dia da semana: segure os botões 1, 2 e 3 juntos durante a operação normal

Quando a unidade é ligada pela primeira vez, os modos de operação são exibidos rapidamente antes do início da geração de palavras:

"EE" significa que a EEPROM externa I2C contendo o banco de dados de palavras Akafugu e lista de frases foi detectada.

"NOEE" significa que a EEPROM não foi detectada. A unidade reverte para geração de palavras aleatórias e sem exibição de frase.

"CK" significa que a hora e a data são exibidas após a exibição de 5 palavras consecutivas.

"NOCK" significa que a hora / data está desligada. Um fluxo constante de palavras é exibido continuamente, interrompido a cada 10 minutos por uma frase.

"RND" significa que o modo de geração de palavras aleatórias é usado

"REL" significa que o modo relacional de geração de banco de dados de palavras "Akafugu" é usado

Para alterar e salvar os modos, desconecte o relógio e conecte-o novamente enquanto segura um dos botões indicados. Em seguida, solte o botão. O novo modo é armazenado e exibido:

Botão 1: Alternar e salvar o modo de geração de palavra aleatória ou relacional

Botão 2: ativa ou desativa a exibição de data / hora após 5 palavras consecutivas

Recomendado: