Съдържание:
- Стъпка 1: Какво представлява проблемът с разпознаването на фигури и как го реших
- Стъпка 2: Как работят нещата
- Стъпка 3: Инструменти и компоненти
- Стъпка 4: Схеми (фризиране)
- Стъпка 5: Процес
- Стъпка 6: Някои снимки и видеоклипове от различни етапи
- Стъпка 7: Изходен код
Видео: 4x4 демонстрация на електронна шахматна дъска/ с Arduino Mega + RFID четец + сензори за ефект на Хол: 7 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Здравейте създатели, Аз съм Тахир Мириев, завършил 2018 г. в Близкоизточния технически университет, Анкара/ Турция. Завърших приложна математика, но винаги обичах да правя неща, особено когато включваше ръчна работа с електроника, дизайн и програмиране. Благодарение на уникалния курс по прототипиране, предлаган в нашия отдел за индустриален дизайн, имах шанс да направя нещо наистина интересно. Проектът може да се третира като срочен проект, продължил за цял семестър (4 месеца). На учениците беше възложена задача да намерят творчески подход към проектирането на вече съществуващи продукти/демонстрации и да реализират идеите си с помощта на микроконтролери и сензори Arduino. Мислех за шах и след като направих известно проучване на успешни проекти, забелязах, че в предишни проекти създателите основно използваха готови шахматни машини (където всички ходове на всяка фигура бяха програмирани в ядрото), заедно с Raspberry Pi, някои MUX е, светодиоди и тръстикови превключватели. В моя проект обаче реших да се отърва от всеки външен софтуер по отношение на шахматна машина и да намеря творческо решение за проблема с разпознаването на фигури, като използвам RFID четец, сензори с ефект на Хол и Arduino Mega.
Стъпка 1: Какво представлява проблемът с разпознаването на фигури и как го реших
Казано по -просто, да предположим, че имате шахматна дъска с „мозък“= микроконтролер и трябва да накарате дъската си да разбере коя фигура държите в ръката си и къде сте я поставили. Това е проблемът с разпознаването на фигури. Решението на този проблем е тривиално, когато имате шахматна машина с всички фигури, стоящи на първоначалните си позиции на дъската. Преди да обясня защо е така, нека направя някои забележки.
За тези, които са ентусиазирани как работят нещата тук, трябва да направя уточнение защо се нуждаем от тръстикови превключватели (или в моя случай използвах сензори за ефект на Хол): ако поставите магнит под всяко парче и го вземете от квадрат на дъската (ако приемем, че под всеки квадрат има тръстиков превключвател) поради наличието/несъществуването на магнитното поле над сензора, можете да накарате вашия контролер да разбере дали на квадратчето има/не е парче. Въпреки това, той все още не казва на микроконтролера какво точно парче стои на квадрата. Той само казва, че има/няма парче на квадрат. На този етап сме изправени лице в лице с проблем с разпознаването на фигури, който може да бъде решен с помощта на шахматна машина, като всички фигури се поставят на първоначалните си позиции, когато започва играта на шах. По този начин микроконтролерът "знае" къде всяко парче стои от самото начало, като всички адреси са фиксирани в паметта. Независимо от това, това ни носи огромно ограничение: не можете да изберете, да речем, произволен брой фигури и да ги поставите произволно навсякъде на дъската и да започнете да анализирате играта. Винаги трябва да започнете отначало, всички фигури трябва първоначално да са на дъската, тъй като това е единственият начин микроконтролерът да проследи местоположението им, след като повдигнете парче и го поставите на друг квадрат. По същество това беше проблемът, който забелязах и реших да работя.
Моето решение беше съвсем просто, макар и креативно. Поставих RFID четец от предната страна на дъската. Междувременно прикрепих не само магнит под парчета, но и RFID етикет, като всяко парче има уникален идентификатор. Следователно, преди да поставите фигура върху произволен квадрат, първо можете да задържите парчето близо до RFID четеца и да го оставите да прочете идентификационния номер, да идентифицира парчето, да го запише в паметта и след това да го поставите където искате. Също така, вместо да използвам тръстикови превключватели, за да опростя схемата на схемата, използвах сензори с ефект на Хол, които работят по подобен начин, с единствената разлика, че изпращат 0 или 1 до микроконтролер като цифрови данни, което означава „има“или "няма" нито едно парче на квадрата, съответно. Добавих и светодиоди (за съжаление не в същия цвят, нямаше такива), така че когато повдигнете парчето, всички квадратни места, където може да се постави повдигнато парче, ще светнат. Мислете за това като за образователна практика за изучаващите шах:)
И накрая, бих искал да отбележа, че въпреки факта, че използвах няколко техники, проектът остава прост и разбираем, не е дълбоко разработен или твърде сложен. Нямах достатъчно време, за да продължа с шахматната дъска 8x8 (също така, защото 64 сензора с ефект на зала са скъпи в Турция, покрих всички разходи, свързани с проектора), затова направих демо версия 4x4 само с две тествани фигури: Пешка и Кралица. Вместо да използвам шахматка, написах изходен код за Arduino, който генерира всичко, което ще видите във видеото по -долу.
Стъпка 2: Как работят нещата
Преди да преминем към поетапното обяснение как е направен проектът, мисля, че би било по-добре да изгледате илюстративно видео и да добиете някаква интуитивна представа за това, което говоря.
Забележка #1: един от червените светодиоди (първи в реда/ отляво надясно) изгоря, няма значение.
Забележка #2: макар и широко използвана, от моя опит мога да кажа, че RFID технологията не е най -добрата идея за използване в приложения „направи си сам“(разбира се, ако имате алтернативи). Преди всичко да работи, направих много опити, като поставих шахматни фигури близо до четеца и изчаках, докато той правилно прочете идентификационния номер. Серийният порт трябва да бъде настроен за това, защото начинът, по който RFID четецът чете ID, е просто главоболие. Човек трябва да опита сам, за да разбере проблема. Ако имате нужда от допълнителна помощ, моля, изпратете ми имейл ([email protected]) или добавете в skype (tahir.miriyev9r1), за да можем да насрочим разговор и да обсъдим подробно нещата, ще обясня всичко изчерпателно.
Стъпка 3: Инструменти и компоненти
Ето списъка с всички инструменти, които използвах за проекта: Електронни компоненти:
- Платформа (x1)
- Многопосочен A1126LUA-T (IC-1126 SW OMNI 3-SIP ALLEGRO) Сензори за ефект на Хол (x16)
- Основни 5 мм светодиоди (x16)
- Кабелни проводници
- 125 kHz RFID четец и антена (x1)
- Arduino Mega (x1)
- RFID 3M тагове (x2)
Други материали:
- Плексиглас
- Лъскава хартия
- къси дъски (дървени)
- Акрилна боя (тъмно зелено и кремово) x2
- Тънък картон
- 10 мм кръгли магнити (x2)
- Пешки и Дама фигури
- Поялник и материали за запояване
Стъпка 4: Схеми (фризиране)
Знам, че схемите са малко сложни, но идеята трябва да е ясна. Това беше първият път, когато използвах Fritzing (между другото силно препоръчително), вероятно връзките могат да бъдат начертани по -точно. Както и да е, записах всичко в схемите. Забележка: Не можах да намеря точния модел на RDIF Reader сред компонентите в базата данни на Fritzing. Моделът, който използвах, е 125Khz RFID модул - UART. Можете да намерите уроци в Youtube за това как да настроите този модул с Arduino.
Стъпка 5: Процес
Време е да обясним как са направени нещата. Моля, следвайте описанието стъпка по стъпка:
1. Вземете картон 21x21 см, както и малко допълнителен картон, за да изрежете и залепите стените на горната част на дъската, за да направите 16 квадрата с изброени A B C D 1 2 3 4. Тъй като картонът е тънък, можете да залепите 16 сензора за ефект на Хол във всеки квадрат, с по 3 крака всеки и 16 светодиода с по 2 крака всеки.
2. След като настроите компоненти, ще трябва да направите малко запояване, да запоите краката на сензорите с ефект на Хол и светодиодите към джъмперните проводници. На този етап бих препоръчал да изберете цветни проводници по интелигентен начин, така че да не се объркате с + и - краката на светодиодите, също с VCC, GND и PIN краката на сензорите с ефект на Хол. Разбира се, може да се отпечата печатна платка със сензори и дори вече запоени светодиоди тип WS2812, но реших да запазя проекта прост и да направя още „ръчна работа“. В този момент всичко, което трябва да направите, е да подготвите кабели и сензори, на по -късни етапи, следващи схемата на Fritzing, можете да видите къде трябва да прикрепите края на всеки проводник. Скоро някои от тях ще отидат директно към ПИН кодовете на Arduino Mega (има достатъчно от тях на Arduino), други към макета и всички GND могат да бъдат запоени към едно парче кабел (което прави обща основа), което по -късно трябва да бъде свързан към GND на дъската на Arduino. Една важна забележка тук: Сензорите за ефект на Хол са ОМНИДИРЕКЦИОННИ, което означава, че няма значение кой полюс на магнит ще се държи близо до сензора, той ще изпраща 0 данни, докато наблизо има известно магнитно поле и 1, когато няма, а именно, магнитът е далеч (освен да кажем 5 см) от сензора.
3. Пригответе подобен картон 21x21 см и фиксирайте Arduino Mega и дълга дъска върху него. Можете също така да изрежете 4 стени с желана височина от картон отново и да ги залепите вертикално с тези два слоя квадратни дъски 21x21 cm. След това следвайте схемите на Fritzing, за да настроите нещата. Можете също да настроите RFID четеца, след като приключите със светодиодите и сензорите за ефект на Хол.
4. Тествайте дали всички светодиоди и сензори работят, като изпращате сигнали, използвайки основни кодове. Не избягвайте тази стъпка, тъй като тя ще ви позволи да проверите дали всичко работи правилно и да преминете към по -нататъшно изграждане на дъската.
5. Подгответе пешка и кралица, с два магнита с радиус 10 см, прикрепени по -долу, както и кръгли RFID тагове. По -късно ще трябва да прочетете идентификационните номера на тези тагове от Serial Screen на Arduino IDE.
6. Ако всичко работи отлично, можете да стартирате основния код и да изпробвате нещата!
7 (по избор). Можете да направите някаква художествена работа с дърво, което ще даде на демонстрацията ви по -естествен изглед. Това зависи от вашата воля и въображение.
Стъпка 6: Някои снимки и видеоклипове от различни етапи
Стъпка 7: Изходен код
Сега, когато приключим с прототип, сме готови да го оживим с кода Arduino по -долу. Опитах се да оставя колкото се може повече коментари, за да направя процеса на анализ на кода разбираем. Честно казано, логиката може да изглежда малко сложна от пръв поглед, но ако се задълбочите в логиката на кода, тя ще изглежда по -изчерпателна.
Забележка: Подобно на истинската шахматна дъска, аз абстрактно номерирах квадратчета като A1, A2, A3, A4, B1,…, C1,…, D1,.., D4. В кода обаче не е практично да се използва тази нотация. Затова използвах масиви и представих квадрати съответно като 00, 01, 02, 03, 10, 11, 12, 13,…, 32, 33.
Благодаря за вниманието! Тествайте всичко и можете да пишете в коментарите за всякакви грешки, които съм пропуснал, подобрения, предложения и т.н..com) или добавете в skype (tahir.miriyev9r1), за да можем да насрочим разговор и да обсъдим подробно нещата. Най-добър късмет!