Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Isso cria uma caixa de jogos de dados com 5 dados feitos de LEDs smd em 5 cores. O software que o conduz permite diferentes modos de jogo com vários dados envolvidos.
Um interruptor mestre permite a seleção do jogo e o lançamento dos dados. Interruptores individuais ao lado de cada dado permitem a seleção ou controle de acordo com o tipo de jogo.
Os custos de construção são muito modestos, mas requerem uma boa quantidade de tempo de construção, um bom ferro de solda e uma mão firme.
A eletrônica é baseada em um módulo ESP8266 (ESP-12F) que roda um servidor web permitindo fácil atualização de firmware e a possibilidade de monitoramento / expansão de jogos.
A caixa é alimentada por bateria recarregável e como o consumo de corrente é bastante modesto, ela funcionará por muitas horas com uma carga.
Etapa 1: Peças e Ferramentas
Componentes
Os seguintes componentes são necessários. Eles estão todos disponíveis no eBay
- Módulo de processamento wi-fi ESP-12F ESP8266. (£ 1,50)
- Bateria 18650 e suporte (£ 3,00)
- LEDs SMD x7 de vermelho, azul, verde, amarelo, branco (pacote de 20 de cada cor £ 0,99)
- Interruptores de botão de 6 mm x 6 (£ 0,12)
- Interruptor deslizante liga / desliga mini 8x4mm (£ 0,10)
- Módulo carregador de bateria LIPO USB (£ 0,20)
- MOSFETS do canal n - AO3400 x6 (£ 0,20)
- Regulador de baixa queda de 3,3 V - XC6203E (£ 0,20)
- Eletrolítico 220uF (£ 0,15)
- Resistor 220R x5 (£ 0,05)
- Resistor 4K7 x 6 (0,06)
- Furos laterais duplos isolados da placa protótipo (£ 0,50)
- Fio de conexão flexível
- Fio de cobre esmaltado 32
- Cabeçalho alfinetes 40 tiras de alfinetes x3 (£ 0,30)
Além disso, é necessário um gabinete. Projetei uma caixa impressa em 3D para conter tudo e permitir que os LEDs brilhem. Isso está disponível no Thingiverse.
Ferramentas
- Ferro de solda de ponta fina
- Pinças finas
- Cortadores de arame
- Serra de hack júnior
- Arquivos de agulha são úteis
- Cola de resina
- Acesso à impressora 3D se usar o design da caixa incluído.
Etapa 2: Descrição do circuito
O esquema mostra o módulo ESP-12F conduzindo as 5 matrizes de LED que compõem os dados.
Cada dado é feito de 7 LEDs dispostos em 3 pares (2 diagonais e meio) mais um único LED central. Eles precisam de 4 pinos GPIO para selecionar os LEDs a serem exibidos. Resistores 220R são usados para determinar a corrente e 2 são usados em série para o LED central para que a corrente seja a mesma.
Os 5 dados são multiplexados por 5 linhas GPIO acionando interruptores MOSFET. Apenas um switch é habilitado por vez. O software permite 1 mSeg por matriz, de modo que o período de atualização geral é de 200 Hz e não há oscilação.
5 interruptores estão associados a cada dado. Como o GPIO é limitado, eles são lidos usando as mesmas linhas usadas para multiplexar a matriz. Durante a sequência multiplex, essas linhas de controle são definidas como entradas com pull ups e o estado das chaves é lido. Eles são então retornados às saídas para o resto da seqüência multiplex.
Uma 6ª chave para controle geral é lida pela linha GPIO16. Isso só pode ser puxado para baixo, de modo que a chave é conectada a 3,3V. A leitura é baixa quando o interruptor está aberto e alto quando está fechado.
Etapa 3: Construção da DIe
Essa é a parte mais demorada do trabalho e precisa de cuidados.
Cada dado é construído em um pedaço de placa de prototipagem quadrada de 6 furos x 6 furos. O primeiro passo é cortar 5 deles de uma placa usando uma mini serra hack. Tente deixar o mínimo de limite possível fora dos buracos.
O próximo estágio é adicionar 2 cabeçalhos de 6 pinos em cada lado e 2 conjuntos de 3 pinos isolados próximos a eles e, em seguida, um outro par no meio. Estes são os que manterão os LEDs SMD. Acho bom remover os 2 pinos não usados de cada uma das colunas externas. O lado superior da placa onde os LEDS serão montados deve ter os pinos do coletor cortados de forma que apenas cerca de 1 mm fique saliente. Tente mantê-los todos nivelados. Isso permite que os LEDs se projetem acima da superfície da placa.
Os 7 LEDs SMD agora estão soldados no topo de cada par de pinos. Esta é a parte mais complicada da construção geral, mas não demora muito depois de um pouco de prática. A técnica que usei foi estanhar a parte superior da metade dos pinos para que já houvesse um pouco de solda. Em seguida, segurando o LED em uma pinça, derreta a solda novamente e coloque o LED nela. Não se preocupe muito com a qualidade da junta nesta fase. Mais importante é obter o alinhamento do LED o melhor possível, horizontal e entre os pinos. Assim que o LED estiver no lugar, ele pode ser devidamente soldado na outra extremidade em seu pino e, em seguida, a primeira junta resoldada, se necessário.
A polaridade dos diodos deve estar correta. Organizo todos os pinos de cabeçalho externos para serem conectados aos ânodos. O LED central I fez a mesma orientação da coluna da esquerda (visto de frente e com a fileira sobressalente na parte inferior. Os diodos têm uma marca tênue no cátodo, mas também é bom verificar com um medidor. Os diodos vão realmente acendem ao usar a faixa de resistência (digamos 2K) e o cabo vermelho no ânodo e preto no cátodo. Eles permanecem apagados ao contrário. Este também é um bom método para verificar as cores se elas se misturarem.
Assim que os LEDs forem montados, o resto da placa pode ser concluído.
Na parte inferior da placa.
- Conecte todos os cátodos usando um fio de fio único fino não isolado.
- Solde o mosfet com o pino de drenagem conectado à corda do cátodo
- Conecte a fonte mosfet ao pino do cabeçalho, que será 0V eventualmente
- Ligue a porta através de um resistor de 4 K7 para seu pino de cabeçalho. É bom fazer a raiz através de outro orifício inferior, conforme mostrado, pois é onde o switch se conectará.
Na parte frontal da placa, conecte os 3 pares de ânodos em cruz.
- Use fio esmaltado soldável para manter o perfil baixo.
- Pré-estanhar uma extremidade de cada fio
- Solde em um ânodo.
- Passe-o e corte no comprimento certo.
- Pré-estanho e solda no par de ânodos correspondentes.
Neste ponto, é bom fazer um teste preliminar de cada matriz usando o multímetro. Com o cabo preto nos cátodos comuns (dreno Mosfet), o cabo vermelho pode ser movido para os 3 pares de ânodos e o ânodo único. Os LEDs correspondentes devem acender.
Etapa 4: construção da caixa
Isso pressupõe que a versão em caixa impressa em 3D está sendo usada. A caixa possui indentações para cada dado e cada LED. A camada inferior abaixo de cada LED é muito fina (0,24 mm), portanto, com o plástico branco, ela permite que a luz brilhe muito bem e atua como um difusor. Existem recortes para todos os interruptores e ponto de carregamento. A bateria possui seu próprio compartimento.
Primeiro monte os 6 mini interruptores de botão e o interruptor deslizante no lugar. Certifique-se de que estão alinhados com o exterior. As chaves de botão têm dois pares de contatos conectados em paralelo. Oriente-os de forma que os contatos de comutação fiquem adjacentes à matriz. Use um pouco de resina de presa rápida para travar no lugar.
Agora monte a bateria e sua caixa no espaço fornecido. Deve ser um ajuste bastante confortável, mas use um pouco de cola, se necessário.
Cole o carregador LIPO na parede fornecido com micro USB acessível através de seu orifício.
Conclua a fiação de alimentação básica fazendo um loop do aterramento da bateria em todos os interruptores de botão e na conexão LIPO B- e deixando um rabo de cavalo para a conexão com os componentes eletrônicos. A bateria + deve ir para B + no carregador LIPO e para o interruptor deslizante. O outro lado do interruptor deslizante deve ser o sexto interruptor e um rabo de porco para os eletrônicos. Certifique-se de que a chave deslizante esteja na posição desligada e isole temporariamente os rabos de porco. Você não quer colocar a bateria em curto!
Solde dois rabichos curtos não isolados em cada um dos 5 interruptores de matriz. Eles precisam ser um pouco flexíveis.
Posicione e prenda cada um dos moldes em sua posição soldando os dois pigtails do switch na placa do molde, certificando-se de que o 0V do switch esteja conectado à fonte mosfet / ponto 0V e o lado ativo do switch através do 4K7 / gate mosfet. Os LEDs na placa devem ser encaixados nas reentrâncias da caixa e os fios da chave devem ser suficientes para manter a matriz na posição.
Em seguida, conecte todos os ânodos comuns dos 5 dados. Isso é facilitado porque as conexões dos pares de diodos estão disponíveis em ambos os lados da matriz, mas tenha em mente que elas estão cruzadas nas diagonais. Não se confunda com o fio vermelho na imagem aparentemente indo para o dado. É apenas o pigtail e não está conectado a nada neste estágio.
ESP-12F make up
Observe que você pode querer programar o módulo ESP-12F antes da montagem. Depois de ter sido ativado, todas as outras atualizações podem ser feitas usando wi-fi OTA.
Compense o regulador de 3,3 V em um pedaço de placa protótipo que sobrou. Isso tem apenas o regulador LDO e o capacitor de desacoplamento. Embora a dissipação de energia seja muito baixa, soldo alguns dos contatos para atuar como um dissipador de calor para o dispositivo. Dois fios podem se projetar para fora e fazer uma conexão direta aos 3,3 V / 0 V do ESP-12F.
Solde os fios nos pinos GPIO para as 5 linhas multiplex e o switch 6. As 4 linhas do acionador de ânodo de LED precisam dos resistores da série 220R / 440R em linha. Pode-se usar pequenos resistores de furo passante no ESP-12F para isso ou eu fiz isso com SMD apenas empilhado nos furos, que também é bastante robusto.
Finalmente, conecte as linhas multiplex aos pinos individuais do cabeçote da matriz e as linhas do acionador do ânodo à sua cadeia correspondente.
Etapa 5: Software
O software para isso é baseado no ambiente ESP8266 Arduino. Ele está disponível no github.
Código disponível aqui
Existe uma biblioteca diceDriver que fornece as funções de baixo nível usadas para multiplexar os LEDs e ler os interruptores. Isso é interrompido, então uma vez que os valores dos dados são definidos, ele é auto-mantido.
O tempo geral é dividido em intervalo de 1 ms por dado. O período dentro deste 1 ms em que os LEDs ficam acesos pode ser configurado para cada matriz independentemente. Isso permite que a iluminação seja equilibrada entre as diferentes cores e também permite escurecimento e intermitência como parte do controle do jogo.
A biblioteca também lê as trocas de dados como parte do multiplex e tem as rotinas para 'lançar' um ou mais dados em paralelo.
O esboço usa a biblioteca para fornecer uma seleção de modos de jogo de dados e para executar esses jogos. Ele também fornece funções de manutenção para configurar o wi-fi inicialmente, para fazer download OTA de novo firmware e para fornecer algumas funções básicas da web para testar e verificar o status do dispositivo.
O software é compilado em um IDE Arduino. Além do ino, ele usa a biblioteca BaseSupport para fornecer funções básicas. Isso é configurado no arquivo BaseConfig.h local. Uma senha padrão de 'senha' é usada para conectar à sua configuração wi-fi. Você pode querer mudar isso para outra coisa. Você também pode configurá-lo com credenciais de wi-fi fixas se não quiser usar a configuração integrada. Da mesma forma, há a mesma senha padrão para o processo de atualização do firmware OTA que você pode querer alterar. Na primeira vez, o firmware deve ser carregado pela conexão serial com o IDE do Arduino. Isso deve obedecer às regras normais de flash com GPIO0 puxado para baixo durante a reinicialização para colocá-lo no modo serial de flash. Isso é feito de forma mais conveniente antes que o módulo seja finalmente conectado, mas pode ser feito no local se os clipes forem presos aos pinos relevantes.
Quando o firmware for executado pela primeira vez, ele falhará ao se conectar ao wi-fi local e entrará automaticamente em um modo de configuração configurando uma rede de acesso própria. Você pode se conectar a ele a partir de um dispositivo wi-fi (por exemplo, telefone) e, em seguida, navegar até 192.168.4.1, que permitirá selecionar o wi-fi local real e inserir sua senha. Se estiver tudo bem, ele reiniciará e usará esta rede.
OTA é feito exportando binários no IDE do Arduino e, em seguida, navegando para ip / firmware onde ip é o ip da caixa quando conectado. Isso solicitará / navegará pelo novo binário.
Outras funções da web são
- setpower - define a potência de um dado (ip / setpower? dice = 3 e potência = 50)
- setflash - define flash para dados (ip / setflash? mask = 7 & interval = 300)
- setdice - define um valor de dado (ip / setdice? dice = 3 & value = 2)
- parâmetros - define parâmetros de rotação (ip / parâmetros? máscara = 7 & tempo = 4000 & intervalo = 200)
- status - retorna valores de dados e troca de status
Etapa 6: Jogos
O software permite a seleção e a execução do jogo controlada pelo interruptor principal.
Inicialmente, o sistema está no modo de configuração de jogo com apenas o primeiro dado mostrando um '1'. Você percorre 12 modos de jogo diferentes pressionando rapidamente este botão. O primeiro dado vai de 1 - 6, e então permanece em 6, enquanto o segundo dado mostra 1-6.
Para selecionar um jogo específico, você pressiona longamente o botão (> 1 segundo) e isso o coloca no modo de execução de jogo.
Em um jogo, um lançamento é normalmente iniciado com um toque curto neste botão. Para voltar ao modo de seleção de jogo a partir do modo de execução, pressione longamente esse botão e ele exibirá o número do jogo como antes e permitirá outras seleções.
9 modos de jogo estão definidos no momento com 3 sobressalentes.
Os jogos de 1 a 5 são lançamentos simples desse número de dados. Cada lançamento apenas rola todos os dados. As trocas de dados não têm efeito nestes jogos.
O jogo 6 é um número dinâmico de dados. Pressione um dos interruptores de dados para selecionar o número de dados e, em seguida, o interruptor principal para lançar os dados. O número de dados pode ser alterado antes de cada lançamento.
O jogo 7 é um teste multi-lançamento. Todos os 5 dados estão envolvidos. Pressionar o botão principal rola todos os dados. Pressionar cada interruptor de morrer faz com que pisque. Quando o interruptor principal é pressionado, apenas o dado piscante rola, exceto que, se nenhum estiver piscando, todos rolarão. Isso é como dados de pôquer ou Yahtzee. Observe que não há imposição do número de arremessos permitidos. Isso se deve à integridade do jogador.
O jogo 8 é como o jogo 7, exceto que dim é usado para indicar que o dado selecionado não está piscando.
O jogo 9 usa os interruptores de dados para determinar as jogadas. Se um dos 3 primeiros for selecionado, isso determina o número de dados para lançar 1, 2 ou 3). Então, se um dos 2 botões inferiores for pressionado, a linha superior é mantida e isso seleciona o número de dados a serem lançados na linha inferior (1 ou 2). Isso é usado em jogos como Risk.