Визначення розміщення об'єкта в сітці


11

Я працюю над проектом Android ADK. Я шукаю спосіб виявити розташування шахових фігур на дошці (8х8). Я дивився на такі речі, як NFC, але це виглядає занадто дорого. Чи є інша технологія, яку я повинен розглянути. Мені потрібно щось, щоб світ міг будь-коли прочитати повний стан ради. Наприклад, деякі деталі можуть бути збитими, і як тільки вони будуть встановлені, мені потрібні місця. Щоб пояснити це далі, в турменійній шаховій грі, якщо шматки переміщені в неправильне місце, і жоден гравець не помітить, гра продовжиться. Тому мені потрібно записати гру, навіть якщо позиція неможлива на основі правил гри.

Мені просто хочеться вказати в загальному напрямку, на яку технологію слід дивитися.


"У турнірній шаховій грі, якщо фігури переміщені в неправильне місце, і жоден гравець не помітить, гра продовжиться". Мені цікаво. Правила шахів так говорять? (Насправді, це має сенс, тому що, якби ніхто більше не
дивився-

@Telaclavo Я можу підтвердити, це сталося зі мною на турнірі. При моєму низькому рівні гри явне рішення не було.
Стівен Коллінгз

Відповіді:


13

Перша ідея : RFID. По одному тегу (дуже дешево) під кожним шматочком. Кожен тег повинен визначати, для якого типу він є (з {6 білих} + {6 чорних} = 12 різних типів). Один ланцюговий приймач і мультиплексор від 1 до 64 для всієї плати. Крім того, 64 маленькі антени, кожна під кожною позицією плати. Приймач працює на дуже низькій потужності ВЧ (оптимальну слід знайти експериментально). Змінюючи з'єднання мультиплексора, ви скануєте всі 64 позиції та читаєте ідентифікатори тегів (якщо такі є), присутніх над кожним із них.

Я ніколи не використовував ІС, про які йдеться, але цей документ може допомогти вам реалізувати мультиплексор RFID (який буде найбільш складною частиною разом з його ретельним компонуванням).

Друга ідея : виділити кожен тип шматка за його унікальною магнітною проникністю. До кожного шматка ви додасте певну масу в його дні. Ця додаткова маса буде однаковою для всіх 32 штук (щоб користувачі почували себе комфортно). Кожна зайва маса буде сумою двох мас: "магнітна" маса плюс "компенсаційна" (немагнітна) маса. Єдиною метою компенсаційної маси буде зробити загальну додаткову масу рівним для всіх типів штук. Вам потрібно розрізнити 12 різних типів штук. Кожен тип шматка повинен мати магнітну масу з унікальною магнітною проникністю, . Ви, мабуть, виберете матеріали з високим вмістом , але є багато матеріалів, з яких можна вибрати, кожен з яких відрізняється (див. Одну таблицюµ μμμμтут ).

Під кожним положенням дошки вам потрібно буде намотати кілька витків дроту (таким чином, щоб діаметр був майже стороною квадрата). У вас буде 64 котушки. Знову ж, використовуйте мультиплексор від 1 до 64, щоб підключити лише один з них до вимірювача індуктивності. Зараз різниця полягає в тому, що мультиплексору не потрібно мати справу з РЧ. Ви можете зв'язати один вузол усіх котушок разом і використовувати 64 аналогових вимикача (дуже дешево), щоб направити, як я вже сказав, одну котушку до вимірювача індуктивності. Схема повинна буде в найкоротші терміни визначити, яка самоіндуктивність вимірюється на кожній із 64 котушок. Це не потребує великої точності. Просто потрібно визначити 13 різних можливих значень для L (тобто менше 4 біт!). Можна експериментувати з методами у часовій області (наприклад, застосовуючи постійну напругу та вимірюючи нахил струму), або в частотній області (наприклад, намагаючись швидко шукати, яка резонансна частота, з певним доданим конденсатором). Щоб досягти цих 12 різних значень для L, ви можете грати з різною проникністю і різними розмірами магнітного матеріалу.

Оскільки вам доведеться сканувати 64 позиції (виміряти 64 самоіндуктивності) у розумний час, я, ймовірно, пішов би на підходи до часової області. Наприклад, якщо ви дозволяєте собі 1 секунду прочитати весь стан плати, у вас є 15,6 мс для кожного вимірювання індуктивності. Виклик, але виконано.

Якщо швидкість закінчується дійсно вузьким місцем, ви можете зробити свою систему на 8 разів швидшою, якщо замість одного ви додасте 8 аналогових передніх кінців. Кожен передній кінець буде виділений для кожного ряду дошки. Таким чином, ви могли виміряти 8 самоіндуктивностей одночасно (даючи вам 125 мс за кожне вимірювання, і ви все одно матимете цілий стан плати за 1 секунду). Я впевнений, що одного MCU, навіть з одним АЦП (з 8 каналами), буде достатньо.

Це може бути (без усіх деталей) схемою для кожного переднього кінця (яка може бути одна для всієї дошки, або по одному для кожного ряду, як згадувалося), і спосіб швидко оцінити самоіндуктивність до (N - 8 або 64). Загальним вузлом для котушок був би верхній, а керуючі сигнали для аналогових вимикачів не показані для простоти. TS буде постійним, і VX, відібраний в TS, буде використовуватися для обчислення самоіндуктивності. TG був би трохи довше, ніж TS.L NL1LN

Ідея 2

Перевага цієї другої ідеї: жодна РФ не бере участь. Однак вам потрібно створити власні "теги", з різною проникністю.


Дякую. Ваша перша ідея, здається, шлях. Мені подобається творчість другої ідеї. Можливо, це стане кращим для комерційного продукту, де деталі можуть бути виготовлені на замовлення. Однак я це роблю просто заради задоволення.
theJosh

@theJosh Навіть після відповіді, у вашому запитанні є пропозиція, яка все ще мене бентежить. Один "Наприклад, деякі частини можуть бути збитими, і як тільки вони будуть встановлені, мені потрібні місця", для мене не має великого сенсу, тому що якщо шматки перекидаються, це повинна бути пам'ять вашої системи, яка повинен сказати користувачеві, де розмістити шматки, а не навпаки. Я трактував це речення як: ви хочете, щоб система могла читати стан будь-якої довільної ради, не покладаючись на історію, і я відмовила від цього більш прості відповіді.
Телаклаво

@theJosh (продовження). Якби це не було, рішення Davidcary було б простішим.
Телаклаво

Проблема першої ідеї полягає в тому, що вона вимагає досить короткого діапазону для RFID. Якщо діапазон занадто великий (більше квадрата), то стає важче відчути правильне положення шматка. Не неможливо (сподіваюся), просто набагато складніше.

@DavidKessner Правильно, тому я сказав, що йому потрібно буде знайти оптимальну потужність ВЧ експериментально. Відстань від антени до мітки набагато коротше, ніж відстань між двома сусідніми квадратами, тому це повинно бути виконано.
Телаклаво

4

Я бачив багато електронних шахових дощок, які мають просвердлений отвір у центрі кожного з 64 квадратів, з простим фотодетектором під кожним отвором, який дає лише 1 біт - "нічого тут", або "якийсь шматок покриття детектора ". Для цього потрібно (a) трохи пам’яті та коду, щоб запам’ятати стару конфігурацію дошки та відстежити, який фрагмент перемістився куди, та (b) щось особливе для обробки просування пішаків. Це може визначити, які квадрати зайняті та які квадрати відкриті в будь-який час, але не повний стан дошки.


1
Розумний! Дуже просте обладнання, підкріплене логікою!
clabacchio

Це працює до тих пір, поки одночасно переміщується лише одна штука. Це не працює для випадку, коли згадана ОП, де декілька штук збито, а потім поставлено назад. В іншому випадку це хороше рішення.

1

GlyphChess вирішує це за допомогою прозорої шахової дошки. Сканер підчитує унікальний штрих-код, приклеєний донизу кожного шматка, щоб зрозуміти, який шматок розташований де. "Секретний код PARC" Slashdot: Грайте у шахи GNU на вашому сканері Це може перечитати повний стан дошки у будь-який час. Оскільки на шаховій дошці є менше 18 унікальних штук, можливо, було б краще використовувати легко розпізнавані фідукуляри, такі як маркери d-touch, а не штрих-коди високої роздільної здатності, здатні розрізнити мільйони об'єктів.


Просто цікаво. Як дошка є прозорою, як вони показують користувачеві чорні та білі квадрати? Може, з деякою проміжною прозорістю? І чи не бачить користувач світло?
Телаклаво

@Telaclavo: Я не знаю - можливо, майже прозорі квадрати зафарбовували традиційний зелений колір і бабу? Якби я будував це сьогодні, я зробив би інтер’єр коробки білим, а потім поклав би камеру на дно і поклав би скляну шахівницю. Якщо людям достатньо світла, щоб побачити шматки, є більш ніж достатньо світла, що відскакує від білого салону та освітлює штрих-код на нижній частині кожного фрагмента, щоб камера його прочитала - ніяких вогнів не потрібно.
davidcary

1

Я б це зробив, зробивши кольоровий датчик для кожного квадрата, і поклав би різну кольорову мітку на нижню частину фрагмента.

Кольоровий датчик буде зроблений за допомогою трьох світлодіодів (можливо, червоного, зеленого та синього) та фото-транзистора, чутливого до всього видимого світла. Вмикайте світлодіоди послідовно і вимірюйте, що вимірює фототранзистор, відбиваючи шахову частину.

Ви можете зробити це в зворотному напрямку, де у вас білий світлодіод і три різні фототранзистори, чутливі до різних кольорів. Але це важче зробити. Більшість фототранзисторів не такі кольорові. Можна використовувати фільтри, але простіше просто використовувати світлодіоди різних кольорів.

Якщо світлодіодні індикатори вмикаються досить короткий час, ви б не побачили його "занадто багато". Крім того, світлодіоди можуть бути використані для інших речей, таких як маркування дошки або невеликі світлі шоу, коли гра виграна.

У цьому є трохи хитрості, завдяки якій все легко прокласти і будувати. Avago має трохи зовнішнього світла для мікросхем I2C, що може полегшити його. Інші компанії мають подібні речі.

Наступний трюк - зробити достатню кількість кольорових етикеток, щоб у вас був унікальний колір на шматок. Це вимагатиме певних спроб та помилок, оскільки ми не знаємо точного спектру різних пігментних / тонерних пігментів принтера. Незважаючи на це, це не повинно бути занадто важким за умови, що ви можете отримати 6 біт роздільної здатності від світлового датчика. (6 біт дасть вам велику кількість шуму.)


1

не потрібно виявляти колір, просто відтінки сірого. Кожен шматок має відтінок сірого на нижній частині, а проста ІЧ-емітер / детекторна пара, встановлена ​​на платі, зчитує аналогове значення.


0

Компанія під назвою "Zowie" одного разу випустила декілька ігрових наборів, включаючи "Зачарований сад Еллі", який би підключився до комп'ютера, і який міг би відчути положення декількох жетонів на ігровій поверхні. Кожен жетон складався з конденсатора та котушки дроту, а гральна поверхня містила сітку проводів; приведення струму через горизонтальний провід з частотою, що відповідає частоті LC, в комплекті котушки-ковпачка призведе до появи такої частоти на вертикальних проводах. Дріт сітки становив приблизно шість проводів / дюйм в обох напрямках, і очевидна роздільна здатність, мабуть, становила близько 0,05 ", але було лише близько 16 проводів, що підключаються до плати процесора; я б припустив, що дроти були розташовані за такою схемою, що кожен маркер реагував би на два або більше горизонтальних проводів і стимулював би щонайменше два вертикальних дроти; помічаючи, яка комбінація проводів буде реагувати на подразники, процесор міг зрозуміти, де знаходиться маркер. Я не пам’ятаю, на що заявляв Зові у своєму патенті чи на яке попереднє мистецтво, яке воно цитувало, але цілком можливо, що попереднє мистецтво включало б підхід, який зараз став публічним доступом, адекватний для ваших цілей.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.