Pracuję nad projektem Android ADK. Szukam sposobu na wykrycie lokalizacji szachów na planszy (8x8). Patrzyłem na takie rzeczy jak NFC, ale wygląda to zbyt drogo. Czy jest inna technologia, którą powinienem rozważyć. Potrzebuję czegoś, co świat będzie w stanie odczytać pełny stan tablicy w dowolnym momencie. Na przykład niektóre elementy mogą zostać przewrócone, a gdy zostaną ponownie ustawione, potrzebuję lokalizacji. Aby to wyjaśnić dalej, w grze w szachy touroment, jeśli elementy zostaną przeniesione w niewłaściwe miejsce i żaden z graczy nie zauważy, że gra będzie kontynuowana. Muszę więc nagrać grę, nawet jeśli pozycja jest niemożliwa na podstawie zasad gry.
Chcę tylko wskazać ogólny kierunek, na jaką technologię patrzeć.
Odpowiedzi:
Pierwszy pomysł : RFID. Jeden tag (bardzo tani) pod każdym kawałkiem. Każdy znacznik powinien określać, jaki to jest typ (spośród {6 białych} + {6 czarnych} = 12 różnych typów). Jeden obwód nadawczo-odbiorczy i multiplekser od 1 do 64 dla całej płyty. Również 64 małe anteny, każda pod każdą pozycją płyty. Transceiver działa przy bardzo niskiej mocy RF (eksperymentalnie powinieneś znaleźć optymalną). Zmieniając połączenia multipleksera, skanujesz wszystkie 64 pozycje i odczytujesz identyfikatory tagów (jeśli istnieją) obecnych na każdym z nich.
Nigdy nie korzystałem z układów scalonych, o których mówi, ale ten dokument może pomóc wdrożyć multiplekser RFID (który będzie najtrudniejszy, wraz z jego ostrożnym układem).
Drugi pomysł : rozróżnij każdy rodzaj sztuki według jego unikalnej przepuszczalności magnetycznej. Do każdego elementu dodasz pewną masę na dole. Ta dodatkowa masa będzie taka sama dla wszystkich 32 sztuk (aby użytkownicy czuli się z nimi dobrze). Każda dodatkowa masa będzie sumą dwóch mas: masy „magnetycznej” plus masy „kompensacyjnej” (niemagnetycznej). Jedynym celem masy kompensacyjnej będzie wyrównanie dodatkowej masy całkowitej dla wszystkich rodzajów elementów. Musisz rozróżnić 12 różnych rodzajów elementów. Każdy typ elementu musi mieć masę magnetyczną o unikalnej przenikalności magnetycznej, . Prawdopodobnie wybierzesz materiały o wysokim , ale istnieje wiele materiałów, z których każdy może mieć inny (patrz jedna tabelaμ μ μ tutaj ).
Pod każdą pozycją deski trzeba nawijać kilka zwojów drutu (aby średnica była prawie z boku kwadratu). Będziesz miał 64 cewki. Ponownie użyj multipleksera od 1 do 64, aby podłączyć tylko jeden z nich do miernika indukcyjności. Różnica polega na tym, że multiplekser nie musi radzić sobie z RF. Możesz powiązać jeden węzeł wszystkich cewek i użyć 64 przełączników analogowych (bardzo tanie), aby skierować, jak powiedziałem, jedną cewkę do miernika indukcyjności. Obwód będzie musiał określić, w możliwie najkrótszym czasie, jaka jest indukcyjność mierzona na każdej z 64 cewek. Nie wymaga dużej dokładności. Musi jedynie określić 13 różnych możliwych wartości dla L (czyli mniej niż 4 bity!). Możesz eksperymentować z metodami w dziedzinie czasu (np. Przykładając stałe napięcie i mierząc nachylenie prądu), lub w dziedzinie częstotliwości (np. próbując szybko wyszukać częstotliwość rezonansową z pewnym dodatkowym kondensatorem). Aby osiągnąć te 12 różnych wartości dla L, możesz grać z różnymi przepuszczalnościami i różnymi wymiarami dla materiału magnetycznego.
Ponieważ musisz przeskanować 64 pozycje (zmierzyć 64 indukcyjności) w rozsądnym czasie, prawdopodobnie wybrałbym podejście w dziedzinie czasu. Na przykład, jeśli pozwolisz sobie na 1 sekundę odczytania całego stanu płytki, masz 15,6 ms na każdy pomiar indukcyjności. Trudne, ale wykonalne.
Jeśli prędkość naprawdę stanowi wąskie gardło, możesz sprawić, że twój system będzie 8 razy szybszy, jeśli zastosujesz 8 analogowych frontów zamiast jednego. Każdy front byłby poświęcony dla każdego rzędu na planszy. W ten sposób można jednocześnie zmierzyć 8 indukcyjności własnych (co daje 125 ms na każdy pomiar, a stan całej planszy nadal trwa 1 sekundę). Jestem pewien, że wystarczy jeden MCU, nawet z jednym ADC (z 8 kanałami).
Może to być (bez wszystkich szczegółów) schemat dla każdego frontu (który może być jeden dla całej płyty lub jeden dla każdego rzędu, jak wspomniano) oraz sposób na szybkie oszacowanie indukcyjności do (N oznacza 8 lub 64). Wspólny węzeł dla cewek byłby górny, a dla uproszczenia nie pokazano sygnałów sterujących dla przełączników analogowych. TS byłby stały, a VX próbkowany w TS byłby wykorzystywany do obliczania indukcyjności własnej. TG byłby tylko nieco dłuższy niż TS.L.1 L.N.
Korzyści z drugiego pomysłu: bez udziału RF. Musisz jednak zbudować własne „tagi” o różnych przepuszczalnościach.
źródło
Widziałem wiele elektronicznych szachownic z wywierconym otworem pośrodku każdego z 64 kwadratów, z prostym fotodetektorem pod każdym otworem, co daje tylko 1 bit - „nic tu nie ma” lub „jakiś kawałek jest zakrycie detektora ”. Wymaga to (a) pewnej pamięci i kodu do zapamiętania starej konfiguracji planszy oraz do śledzenia, który kawałek się poruszył, oraz (b) czegoś specjalnego do obsługi promocji pionków. Może to wykryć, które kwadraty są zajęte i które kwadraty są otwarte w dowolnym momencie, ale nie pełny stan planszy.
źródło
GlyphChess rozwiązuje to za pomocą przezroczystej szachownicy. Skaner pod spodem odczytuje unikalny kod kreskowy przyklejony na spodzie każdego elementu, aby dowiedzieć się, który element jest umiejscowiony. Slashdot „Tajny kod PARC” : Zagraj w szachy GNU na skanerze W dowolnym momencie możesz ponownie odczytać pełny stan planszy. Ponieważ na szachownicy znajduje się mniej niż 18 unikalnych rodzajów elementów, być może lepiej byłoby użyć łatwych do rozpoznania fiduciali, takich jak znaczniki d-touch, niż kodów kreskowych o wysokiej rozdzielczości, zdolnych do odróżnienia milionów obiektów.
źródło
Zrobiłbym to, wykonując czujnik koloru dla każdego kwadratu i umieszczając inną etykietę koloru na spodzie kawałka.
Czujnik koloru zostałby wykonany przy użyciu trzech diod LED (prawdopodobnie czerwonej, zielonej i niebieskiej) oraz fototranzystora wrażliwego na całe światło widzialne. Włącz kolejno diody LED i zmierz, co mierzy fototranzystor, odbijając się od figury szachowej.
Możesz to zrobić odwrotnie, gdzie masz białą diodę LED i trzy różne fototranzystory wrażliwe na różne kolory. Ale trudniej to zrobić. Większość fototranzystorów nie jest selektywna pod względem kolorów. Możesz użyć filtrów, ale łatwiej jest po prostu użyć diod LED różnych kolorów.
Jeśli diody LED świecą wystarczająco krótko, nie zobaczysz tego „za dużo”. Ponadto diody LED można wykorzystać do innych celów, takich jak oznaczanie planszy lub robienie fajnych małych pokazów świetlnych po wygraniu gry.
Jest w tym trochę sztuczki, która sprawia, że wszystko jest łatwe do podłączenia i zbudowania. Avago ma trochę światła otoczenia do układów I2C, które mogą to ułatwić. Inne firmy mają podobne rzeczy.
Kolejną sztuczką jest wykonanie wystarczająco wielu różnych kolorowych etykiet, aby uzyskać niepowtarzalny kolor na sztukę. Będzie to wymagało tylko prób i błędów, ponieważ nie znamy dokładnego spektrum różnych pigmentów atramentowych / tonerów do drukarek. Mimo to nie powinno to być zbyt trudne, pod warunkiem, że czujnik światła uzyska około 6 bitów rozdzielczości. (6 bitów daje duży margines hałasu).
źródło
nie ma potrzeby wykrywania koloru, tylko odcienie szarości. Każdy element ma odcień szarości na dole, a prosta para nadajnika / detektora podczerwieni umieszczona na płytce odczytuje wartość analogową.
źródło
Firma o nazwie „Zowie” wyprodukowała kiedyś kilka zestawów, w tym „Ellie's Enchanted Garden”, które łączyłyby się z komputerem i które mogły wyczuwać pozycję kilku żetonów na powierzchni do gry. Każdy żeton składał się z kondensatora i cewki z drutu, a powierzchnia do gry zawierała siatkę drutów; przepuszczenie prądu przez przewód poziomy z częstotliwością odpowiadającą częstotliwości LC zespołu cewki-osłony spowoduje pojawienie się tej częstotliwości na drutach pionowych. Siatka druciana miała około sześciu drutów / cal w obu kierunkach, a pozorna rozdzielczość pozycjonowania prawdopodobnie wynosiła około 0,05 ", ale tylko około 16 drutów łączyło się z płytą CPU; zgaduję, że przewody były ułożone w taki sposób, że każdy token reagowałby na co najmniej dwa druty poziome i stymulowałby co najmniej dwa druty pionowe; zauważając, która kombinacja drutów zareaguje na bodźce, procesor może dowiedzieć się, gdzie jest token. Nie pamiętam, co Zowie twierdzili w swoim patencie ani jakie cytaty ze stanu techniki przytaczają, ale jest całkiem możliwe, że wcześniejsze techniki obejmowałyby podejście do domeny publicznej, które byłoby odpowiednie dla twoich celów.
źródło