Índice:
- Etapa 1: O que é um problema de reconhecimento de figura e como eu o resolvi
- Etapa 2: Como as coisas funcionam
- Etapa 3: Ferramentas e componentes
- Etapa 4: esquemas (Fritzing)
- Etapa 5: Processo
- Etapa 6: algumas fotos e vídeos de diferentes estágios
- Etapa 7: Código Fonte
Vídeo: Demonstração 4x4 de um tabuleiro de xadrez eletrônico / Com Arduino Mega + Leitor RFID + Sensores de efeito Hall: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Olá fabricantes, Eu sou Tahir Miriyev, graduado em 2018 pela Middle East Technical University, Ancara / Turquia. Eu me formei em Matemática Aplicada, mas sempre adorei fazer coisas, especialmente quando envolvia algum trabalho manual com eletrônica, design e programação. Graças a um curso único de prototipagem, oferecido em nosso departamento de Desenho Industrial, tive a chance de fazer algo realmente interessante. O projeto pode ser tratado como um Projeto de Prazo, com a duração de um semestre inteiro (4 meses). Os alunos receberam a tarefa de encontrar uma abordagem criativa para projetar produtos / demonstrações já existentes e realizar suas ideias usando microcontroladores e sensores Arduino. Eu estava pensando em xadrez e depois de fazer algumas pesquisas sobre projetos bem-sucedidos, percebi que em projetos anteriores os fabricantes usavam basicamente mecanismos de xadrez prontos (onde todos os movimentos de cada figura eram programados no núcleo), junto com Raspberry Pi, alguns MUX 's, LEDs e interruptores reed. No meu projeto, porém, decidi me livrar de qualquer software externo em termos de mecanismo de xadrez e encontrar uma solução criativa para o problema de reconhecimento de figura, usando leitor RFID, sensores de efeito Hall e Arduino Mega.
Etapa 1: O que é um problema de reconhecimento de figura e como eu o resolvi
Para simplificar, suponha que você tenha um tabuleiro de xadrez com um "cérebro" = microcontrolador e precise fazer seu tabuleiro entender qual figura você segurou e onde a colocou. Este é o problema do reconhecimento de figura. A solução para este problema é trivial quando você tem uma máquina de xadrez com todas as peças em suas posições iniciais no tabuleiro. Antes de explicar porque é assim, deixe-me fazer algumas observações.
Para aqueles que estão entusiasmados sobre como as coisas funcionam aqui, eu tenho que fazer um esclarecimento sobre por que precisamos de interruptores de palheta (ou no meu caso, usei sensores de efeito Hall): se você colocar um ímã sob cada peça e retirá-lo de um quadrado no tabuleiro (supondo que haja uma chave de palheta sob cada quadrado) devido à existência / não existência do campo magnético acima do sensor, você pode fazer seu controlador entender se há / não uma peça no quadrado. No entanto, ele ainda não diz nada ao microcontrolador sobre exatamente qual peça está no quadrado. Apenas informa que não há / não uma peça em um quadrado. Nesse ponto, nos deparamos com um problema de Reconhecimento de Figura, que pode ser resolvido por meio de uma máquina de xadrez, com todas as peças colocadas em suas posições iniciais no início do jogo de xadrez. Desta forma, o microcontrolador "sabe" onde cada peça está desde o início, com todos os endereços fixados na memória. No entanto, isso nos traz uma grande limitação: você não pode selecionar, digamos, qualquer número de peças e colocá-las aleatoriamente em qualquer lugar do tabuleiro e começar a analisar o jogo. Você sempre tem que começar do início, todas as peças devem estar no tabuleiro originalmente, pois essa é a única maneira do microcontrolador rastrear suas localizações depois que você levantou uma peça e colocou em algum outro quadrado. Em essência, esse foi o problema que percebi e decidi trabalhar para resolver.
Minha solução foi bastante simples, embora criativa. Coloquei um leitor RFID na parte frontal de uma placa. Enquanto isso, coloquei não apenas um ímã sob as peças, mas também uma etiqueta RFID, com cada peça tendo um ID único. Portanto, antes de colocar uma figura em qualquer quadrado desejado, você pode primeiro segurar a peça perto do leitor RFID e deixá-lo ler o ID, identificar a peça, salvá-la na memória e então você pode colocá-la onde quiser. Além disso, em vez de usar interruptores reed, para simplificar o projeto do circuito, usei sensores de efeito Hall, que funcionam de forma semelhante, com a única diferença de enviar 0 ou 1 para um microcontrolador como um dado digital, o que significa "há" ou "não há" nenhuma peça no quadrado, respectivamente. Também adicionei LEDs (infelizmente não da mesma cor, não tinha), de modo que quando você levantar a peça, todos os locais quadrados, onde uma peça levantada poderia ser colocada, acendam. Pense nisso como uma prática educacional para alunos de xadrez:)
Por último, gostaria de observar que apesar do fato de ter usado várias técnicas, o projeto continua simples e compreensível, não muito elaborado ou muito complicado. Não tive tempo de prosseguir com o tabuleiro de xadrez 8x8 (também porque 64 sensores de efeito hall são caros na Turquia, cobri todas as despesas relacionadas ao projeto), por isso fiz a versão demo 4x4 com apenas duas peças testadas: Pawn e Rainha. Em vez de usar um mecanismo de xadrez, escrevi um código-fonte para o Arduino, que gera tudo o que você verá no vídeo abaixo.
Etapa 2: Como as coisas funcionam
Antes de passarmos para a explicação passo a passo de como o projeto foi feito, acho que seria melhor assistir a um vídeo ilustrativo e ter uma ideia intuitiva do que estou falando.
Nota # 1: um dos LEDs vermelhos (primeiro na linha / da esquerda para a direita) queimou, não importa.
Nota # 2: embora amplamente utilizada, pela minha experiência posso dizer que a tecnologia RFID não é a melhor ideia para usar em aplicações faça você mesmo (claro se você tiver alternativas). Antes que tudo funcionasse, fiz várias tentativas de colocar peças de xadrez perto do leitor e esperar até que ele lesse o ID corretamente. A porta serial deve ser configurada para isso porque a forma como o leitor RFID lê o ID é apenas uma dor de cabeça. Deve-se tentar por si mesmo para entender o problema. Se precisar de mais ajuda, por favor me mande um e-mail ([email protected]) ou adicione no skype (tahir.miriyev9r1), para que possamos agendar uma conversa e discutir o assunto em detalhes, explicarei tudo detalhadamente.
Etapa 3: Ferramentas e componentes
Aqui está a lista de todas as ferramentas que usei para o projeto: Componentes eletrônicos:
- Placa de ensaio (x1)
- Omnidirecional A1126LUA-T (IC-1126 SW OMNI 3-SIP ALLEGRO) Sensores de efeito Hall (x16)
- LEDs básicos de 5 mm (x16)
- Fios de ligação
- Leitor e antena RFID 125 kHz (x1)
- Arduino Mega (x1)
- Tags RFID 3M (x2)
Outros materiais:
- Acrílico
- Papel brilhante
- Pranchas curtas (de madeira)
- Tinta acrílica (verde escuro e creme) x2
- Papelão fino
- Ímãs redondos de 10 mm (x2)
- Peças de peão e rainha
- Ferro de soldar e materiais de solda
Etapa 4: esquemas (Fritzing)
Os esquemas são um pouco complicados, eu sei, mas a ideia deve ser clara. Foi a primeira vez que usei o Fritzing (altamente recomendado por sinal), provavelmente as conexões poderiam ser traçadas com mais precisão. De qualquer forma, anotei tudo dentro dos esquemas. Nota: Não consegui encontrar o modelo exato do RDIF Reader entre os componentes do banco de dados do Fritzing. O modelo que usei é o módulo RFID 125Khz - UART. Você pode encontrar tutoriais no Youtube sobre como configurar este módulo com o Arduino.
Etapa 5: Processo
É hora de explicar como as coisas foram feitas. Siga a descrição passo a passo:
1. Pegue um cartão 21x21 cm, bem como um cartão extra para cortar e colar as paredes da parte superior do cartão, de forma a fazer 16 quadrados com A B C D 1 2 3 4 enumerados. Como o papelão é fino, você pode colocar 16 sensores de efeito hall em cada quadrado, com 3 pernas cada e 16 LEDs com 2 pernas cada.
2. Depois de definir os componentes, você precisará fazer algumas soldas, para soldar as pernas dos sensores de efeito Hall e LEDs para os fios de jumper. Neste ponto, eu recomendaria selecionar fios coloridos de forma inteligente, para que você não se confunda com as pernas + e - dos LEDs, também VCC, GND e as pernas PIN dos sensores de efeito Hall. Claro, pode-se imprimir uma placa de circuito impresso com sensores e até mesmo tipo de LED WS2812 já soldado, mas decidi manter o projeto simples e fazer mais um "trabalho manual". Neste ponto, tudo o que você precisa fazer é preparar os cabos e sensores, em estágios posteriores seguindo o esquema de Fritzing, você pode ver onde deve prender a extremidade de cada fio. Em breve, alguns deles irão diretamente para os PINs no Arduino Mega (há o suficiente deles no Arduino), outros para a placa de ensaio e todos os GNDs podem ser soldados a um único pedaço de cabo (tornando o terreno comum) que mais tarde deve ser conectado ao GND na placa Arduino. Uma observação importante aqui: os sensores de efeito Hall são OMNIDIRECIONAIS, o que significa que não importa qual pólo de um ímã será mantido próximo ao sensor, ele enviará 0 dados enquanto houver algum campo magnético próximo e 1 quando não houver, ou seja, o ímã está longe (mais do que digamos 5 sm) do sensor.
3. Prepare um papelão de 21x21 cm semelhante e fixe o Arduino Mega e uma placa de ensaio longa nele. Você também pode cortar 4 paredes de qualquer altura desejada de papelão novamente e colá-las verticalmente com aquelas duas camadas de placas quadradas de 21x21 cm. Em seguida, siga os Esquemas de Fritzing para configurar as coisas. Você também pode configurar o leitor RFID depois de concluir os LEDs e os sensores de efeito Hall.
4. Teste se todos os LEDs e sensores funcionam, enviando sinais usando códigos básicos. Não evite essa etapa, pois ela permitirá que você teste se tudo está funcionando corretamente e passe para a construção posterior da placa.
5. Prepare o Peão e a Rainha, com dois ímãs de um raio de 10 cm anexados abaixo, bem como etiquetas RFID redondas. Posteriormente, você precisará ler os IDs dessas tags na Serial Screen no Arduino IDE.
6. Se tudo funcionar bem, você pode iniciar o código principal e experimentar!
7 (opcional). Você pode fazer algum trabalho artístico com madeira que dará à sua demonstração uma visão mais natural. Depende da sua vontade e imaginação.
Etapa 6: algumas fotos e vídeos de diferentes estágios
Etapa 7: Código Fonte
Agora, quando concluímos o protótipo, estamos prontos para trazê-lo à vida com o código do Arduino abaixo. Tentei deixar tantos comentários quanto pude, a fim de tornar o processo de análise de código compreensível. Para ser honesto, a lógica pode parecer um pouco complexa à primeira vista, mas se você se aprofundar na lógica do código, ela parecerá mais abrangente.
Nota: Semelhante ao tabuleiro de xadrez real, eu numerado abstratamente quadrados como A1, A2, A3, A4, B1,…, C1,…, D1,.., D4. No entanto, no código, não é prático usar essa notação. Portanto, usei matrizes e representou quadrados como 00, 01, 02, 03, 10, 11, 12, 13,…, 32, 33 respectivamente.
Obrigado pela sua atenção! Teste tudo e fique à vontade para escrever nos comentários sobre qualquer tipo de erro que perdi, melhorias, sugestões etc. Estou ansioso para ouvir algumas opiniões sobre o projeto. Se você precisar de qualquer tipo de ajuda com o projeto, me mande um email (miriyevt @ gmail.com) ou adicionar skype (tahir.miriyev9r1), para que possamos agendar uma conversa e discutir o assunto em detalhes. Boa sorte!