Taula de continguts:
- Pas 1: què és un problema de reconeixement de figures i com el vaig solucionar
- Pas 2: Com funcionen les coses
- Pas 3: Eines i components
- Pas 4: esquemes (Fritzing)
- Pas 5: procés
- Pas 6: algunes fotos i vídeos de diferents etapes
- Pas 7: Codi font
Vídeo: Demostració 4x4 d’un tauler d’escacs electrònic / amb lector Arduino Mega + RFID + Sensors d’efecte Hall: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Hola fabricants, Sóc Tahir Miriyev, graduat el 2018 a la Universitat Tècnica de l'Orient Mitjà, Ankara / Turquia. Em vaig especialitzar en Matemàtiques Aplicades, però sempre em va encantar fer coses, sobretot quan es tractava de treballs manuals amb electrònica, disseny i programació. Gràcies a un curs únic sobre prototipat, ofert al nostre departament de Disseny Industrial, vaig tenir l'oportunitat de fer alguna cosa realment interessant. El projecte es pot tractar com un projecte a termini, que va durar un semestre sencer (4 mesos). Els estudiants van rebre una tasca per trobar un enfocament creatiu per dissenyar productes / demostracions ja existents i realitzar les seves idees mitjançant microcontroladors i sensors Arduino. Pensava en els escacs i, després d’haver investigat alguns projectes amb èxit, em vaig adonar que en projectes anteriors els creadors bàsicament feien servir motors d’escacs ja preparats (on es programaven tots els moviments de cada figura al nucli), juntament amb Raspberry Pi, alguns MUX, interruptors LED i reed. Al meu projecte, però, vaig decidir desfer-me de qualsevol programari extern pel que fa a un motor d’escacs i trobar una solució creativa per al problema del reconeixement de figures, mitjançant un lector RFID, sensors d’efecte Hall i Arduino Mega.
Pas 1: què és un problema de reconeixement de figures i com el vaig solucionar
Per simplificar-ho, suposem que teniu un tauler d'escacs amb un "cervell" = microcontrolador i heu de fer comprendre al tauler quina figura teníeu a la mà i on l'heu col·locat. Aquest és el problema del reconeixement de figures. La solució a aquest problema és trivial quan es té un motor d’escacs amb totes les peces de peu a les seves posicions inicials al tauler. Abans d’explicar per què és així, deixeu-me fer algunes observacions.
Per a aquells que estiguin entusiasmats amb el funcionament de les coses aquí, he d’aclarir per què necessitem interruptors reed (o, en el meu cas, he utilitzat sensors d’efecte Hall): si col·loqueu un imant a sota de cada peça i l’agafeu a un quadrat al tauler (suposant que hi ha un commutador de canya sota cada quadrat) a causa de l'existència / inexistència del camp magnètic sobre el sensor, podeu fer entendre al vostre controlador si hi ha / no hi ha cap peça de peu al quadrat. Tot i això, encara no diu res al microcontrolador sobre quina peça es troba exactament a la plaça. Només diu que no hi ha cap peça en un quadrat. En aquest moment, ens trobem cara a cara amb un problema de reconeixement de figures, que es pot resoldre mitjançant un motor d’escacs, amb totes les peces col·locades a les seves posicions inicials quan comença el joc d’escacs. D'aquesta manera, el microcontrolador "sap" on es troba cada peça des del principi, amb totes les adreces fixades a la memòria. Tot i això, això ens comporta una enorme limitació: no podeu seleccionar, diguem-ne, cap quantitat de peces i col·locar-les aleatòriament en qualsevol lloc del tauler i començar a analitzar el joc. Sempre heu de començar des del principi, totes les peces haurien d’estar originalment al tauler, ja que aquesta és l’única manera que el microcontrolador pugui fer un seguiment de la seva ubicació un cop heu aixecat una peça i la col·loqueu en algun altre quadrat. En essència, aquest era el problema que vaig notar i vaig decidir treballar.
La meva solució era bastant senzilla, tot i que creativa. Vaig col·locar un lector RFID a la part frontal d’un tauler. Mentrestant, he adjuntat no només un imant sota les peces, sinó també una etiqueta RFID, amb cada peça amb un identificador únic. Per tant, abans de col·locar una figura sobre qualsevol quadrat desitjat, primer podeu mantenir la peça a prop del lector RFID i deixar que llegeixi la identificació, identificar la peça, desar-la a la memòria i després la podeu col·locar on vulgueu. A més, en lloc d’utilitzar commutadors reed, per simplificar el disseny del circuit, vaig utilitzar sensors d’efecte hall, que funcionen de manera similar, amb l’única diferència d’enviar 0 o 1 a un microcontrolador com a dades digitals, que significa "hi ha" o "no hi ha" cap peça a la plaça, respectivament. També he afegit LEDs (per desgràcia no del mateix color, no en tenien), de manera que, quan aixequeu la peça, s’encenen totes les ubicacions quadrades, on es podria col·locar una peça aixecada. Penseu-ho com una pràctica educativa per als aprenents d'escacs:)
Per últim, voldria assenyalar que, malgrat el fet d’utilitzar diverses tècniques, el projecte continua sent senzill i entenedor, no treballat a fons ni massa complicat. No vaig tenir prou temps per continuar amb el tauler d’escacs 8x8 (també perquè 64 sensors d’efecte hall són costosos a Turquia, vaig cobrir totes les despeses relacionades amb el projec), per això vaig fer la versió de demostració 4x4 amb només dues proves provades: Peó i Reina. En lloc d’utilitzar un motor d’escacs, vaig escriure un codi font per a Arduino, que genera tot el que veureu al vídeo següent.
Pas 2: Com funcionen les coses
Abans de passar a l'explicació pas a pas de com es va fer el projecte, crec que seria millor veure un vídeo il·lustratiu i tenir una idea intuïtiva del que estic parlant.
Nota 1: un dels LED vermells (el primer de la fila / d'esquerra a dreta) es va esgotar, no importa.
Nota # 2: encara que molt utilitzada, per la meva experiència puc dir que la tecnologia RFID no és la millor idea per utilitzar en aplicacions de bricolatge (per descomptat, si teniu alternatives). Abans que tot funcionés, vaig fer moltes proves posant peces d’escacs a prop del lector i esperant que llegís correctament la identificació. El port sèrie s'hauria de configurar perquè la manera com el lector RFID llegeix la identificació és només un mal de cap. Cal intentar-ho per entendre el problema. Si necessiteu més ajuda, envieu-me un missatge de correu electrònic ([email protected]) o afegiu-lo a skype (tahir.miriyev9r1), de manera que puguem programar una conversa i discutir coses amb detalls, us ho explicaré a fons.
Pas 3: Eines i components
Aquí teniu la llista de totes les eines que he utilitzat per al projecte: Components electrònics:
- Taula de pa (x1)
- Sensors omnidireccionals A1126LUA-T (IC-1126 SW OMNI 3-SIP ALLEGRO) Sensors d'efecte Hall (x16)
- LED bàsics de 5 mm (x16)
- Filferros de pont
- Lector i antena RFID de 125 kHz (x1)
- Arduino Mega (x1)
- Etiquetes RFID 3M (x2)
Altres materials:
- Plexiglass
- Paper brillant
- Taulons curts (de fusta)
- Pintura acrílica (verd fosc i crema) x2
- Cartolina fina
- Imants rodons de 10 mm (x2)
- Peces de peó i reina
- Soldador i materials per soldar
Pas 4: esquemes (Fritzing)
Els esquemes són una mica complicats, ho sé, però la idea hauria de ser clara. Va ser la primera vegada que vaig utilitzar Fritzing (molt recomanable per cert), probablement les connexions es podrien establir amb més precisió. De totes maneres, he anotat tot allò que hi ha dins dels esquemes. Nota: no he pogut trobar el model exacte de RDIF Reader entre els components de la base de dades de Fritzing. El model que he utilitzat és el mòdul RFID de 125 KHz - UART. Podeu trobar tutorials a Youtube sobre com configurar aquest mòdul amb Arduino.
Pas 5: procés
És hora d’explicar com es feien les coses. Seguiu la descripció pas a pas:
1. Agafeu un cartró de 21x21 cm, així com una mica de cartró addicional per tallar i enganxar les parets de la part superior del tauler, per tal de fer 16 quadrats amb A B C D 1 2 3 4 enumerats. Com que el cartró és prim, podeu enganxar 16 sensors d’efecte hall a cada quadrat, amb 3 potes cadascun i 16 LED amb 2 potes cadascun.
2. Després de configurar els components, haureu de fer una mica de soldadura, per soldar les potes dels sensors d'efecte Hall i els LED als cables de pont. En aquest punt, recomanaria seleccionar cables de colors d’una manera intel·ligent, de manera que no us confongueu amb les potes + i - dels LED, també les potes VCC, GND i PIN dels sensors d’efecte Hall. Per descomptat, es podria imprimir un PCB amb sensors i fins i tot tipus de LED WS2812 ja soldats, però vaig decidir mantenir el projecte senzill i fer una mica més de "treball manual". En aquest punt, tot el que heu de fer és preparar cables i sensors, en les fases posteriors que segueixen l'esquema de Fritzing, podeu veure on heu de fixar l'extrem de cada cable. En breu, alguns d’ells aniran directament als PIN de l’Arduino Mega (n’hi ha prou a l’Arduino), d’altres a la placa de configuració i tots els GND es poden soldar a un sol tros de cordó (fent un terreny comú) que més endavant hauria d’estar connectat al GND de la placa Arduino. Una nota important aquí: els sensors d’efecte Hall són OMNIDIRECCIONALS, el que significa que no importa quin pol d’un imant es mantingui a prop del sensor, enviarà 0 dades mentre hi hagi algun camp magnètic a prop i 1 quan no, és a dir, l’imant està allunyat (més de 5 sm) del sensor.
3. Prepareu un cartró similar de 21x21 cm i col·loqueu-hi l’Arduino Mega i una taula de pa llarga. També podeu tornar a tallar 4 parets de qualsevol alçada desitjada de cartró i enganxar-les verticalment amb aquestes dues capes de taulers quadrats de 21x21 cm. A continuació, seguiu Fritzing Schematics per configurar les coses. També podeu configurar el lector RFID un cop hàgiu acabat amb LEDs i sensors d’efecte Hall.
4. Comproveu si tots els LED i sensors funcionen enviant senyals mitjançant codis bàsics. No eviteu aquest pas, ja que us permetrà provar si tot funciona correctament i passar a una nova construcció del tauler.
5. Prepareu Peó i Reina, amb dos imants de 10 cm de radi connectats a sota, així com etiquetes RFID rodones. Més endavant, haureu de llegir els identificadors d’aquestes etiquetes des de la pantalla de sèrie a Arduino IDE.
6. Si tot funciona molt bé, podeu iniciar el codi principal i provar-ho.
7 (opcional). Podeu fer treballs artístics amb fusta que us donin una visió més natural de la vostra demostració. Això depèn de la vostra voluntat i imaginació.
Pas 6: algunes fotos i vídeos de diferents etapes
Pas 7: Codi font
Ara, quan acabem amb un prototip, estem preparats per donar-li vida amb el codi Arduino que apareix a continuació. Vaig intentar deixar tants comentaris com vaig poder, per fer entenedor el procés d’anàlisi del codi. Per ser sincer, la lògica pot semblar una mica complexa des de primera vista, però si aprofundeix en la lògica del codi, es veurà més completa.
Nota: de manera similar al tauler d’escacs real, he numerat abstractament quadres com A1, A2, A3, A4, B1, …, C1, …, D1,.., D4. Tot i això, al codi no és pràctic fer servir aquesta notació. Per tant, he utilitzat matrius i he representat quadrats com 00, 01, 02, 03, 10, 11, 12, 13, …, 32, 33 respectivament.
Gràcies per la vostra atenció! Proveu-ho tot i deixeu-vos lliure d’escriure als comentaris sobre qualsevol tipus d’errors que he perdut, millores, suggeriments, etc. Esperem escoltar algunes opinions sobre el projecte. Si necessiteu ajuda amb el projecte, envieu-me un correu electrònic (miriyevt @ gmail.com) o afegiu-lo a skype (tahir.miriyev9r1), de manera que puguem programar una conversa i discutir coses amb detalls. Molta sort!