Skocz do zawartości

Detekcja bierek na szachownicy


bamboo

Pomocna odpowiedź

1 minutę temu, deshipu napisał:

A co dostaniesz w momencie podnoszenia lub opuszczania takiej bierki?

Nic. Kwestia odpowiedniego kodu - przy ośmiu bitach nadawanych w kółko longiem możesz przesłać spokojnie 12 możliwości z automatyczną synchronizacją i sprawdzeniem poprawności.

3 minuty temu, deshipu napisał:

A co jeśli będzie w "zasięgu" kilku cewek, nawet na chwilę?

A na przykład błąd i powtórzenie odczytu.

5 minut temu, deshipu napisał:

A co jak ktoś na takiej szachownicy przez nieuwagę położy swój telefon

Jeśli to zawody to przeciwnik wygra walkowerem (nie jestem pewien, ale przepisy chyba zabraniają umieszczania telefonów na szachownicy) 😉 A jeśli nie zawody... no cóż, wszystko zależy od mocy cewek nadawczych. Albo nic się nie stanie, albo telefon się magicznie naładuje, albo przejdzie do Krainy Wiecznych Rozmów.

Link do komentarza
Share on other sites

1 minutę temu, ethanak napisał:

Nic. Kwestia odpowiedniego kodu - przy ośmiu bitach nadawanych w kółko longiem możesz przesłać spokojnie 12 możliwości z automatyczną synchronizacją i sprawdzeniem poprawności.

Pytanie było o przypadek z układem LC.

Link do komentarza
Share on other sites

To ja jeszcze rzucę pomysłem: RFID 125kHz. Jest to starsza technologia od MIFARE, NFC etc.

Zalety:

- Niedroga, pojedynczy moduł do Arduino (lub czegokolwiek innego) można dostać za 20pln w detalu.
- Sama antena ma wymiary 2,5 x 2,5 cm
- Niewielkie tagi z unikalnym numerem do umieszczenia w pionkach i kosztują grosze
- Czysta szachownica bez dziur w polach
- Pionki można stawiać dowolnie bez martwienia się o orientację, pozycję itp.
 

Wady:

- Możliwość odczytania pionków z sąsiednich pół. Będziesz musiał trochę poeksperymentować zanim zabierzesz się za pełen projekt.
- Pól jak wiadomo jest 64, więc pomimo niewielkich kosztów technologii najprawdopodobniej nie zmieścisz się w budżecie.

 

Moje 5 groszy:

- Jak zintegrujesz do planszy jeszcze zegar szachowy to bardzo ci to ułatwi oprogramowanie, bo będziesz wiedział kiedy gracz ukończył ruch i kiedy dokonać odczytu pozycji pionków.

Powodzenia!

---- EDIT ----

Jeszcze jeden pomysł przyszedł mi do głowy:

Jeżeli mógłbyś zrobić szachownicę z półprzepuszczalnego materiału (np mleczno/czarne szkło lub akryl), to zawsze pozostaje podczerwień.

Zalety:

- Prostota czujników w szachownicy, bo to tylko 64 czujniki podczerwieni
- Czysta szachownica bez dziur w polach
- Pionki można stawiać dowolnie bez martwienia się o orientację, pozycję itp.

Wady:

- Każdy pionek musi mieć diodę podczerwieni migającą z unikalną częstotliwością (taki obwód można łatwo zrobić), więc w każdym będzie potrzebna miniaturowa bateria
- Koszt wykonania półprzepuszczalnej szachownicy może być wysoki

 

Edytowano przez MR1979
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

"A co dostaniesz w momencie podnoszenia lub opuszczania takiej bierki? A co jeśli będzie w "zasięgu" kilku cewek, nawet na chwilę? A co jak ktoś na takiej szachownicy przez nieuwagę położy swój telefon?"

@deshipu Po pierwsze spróbujmy jakoś umiejscowić ten projekt w przestrzeni osiągów. Gdy chcemy naładować kondensator 100uF do 5V (powiedzmy że od 2V, bo do tylu zdechł w poprzednim cyklu komunikacji) to musimy przesłać ładunek 300uC. Jeśli chcemy to zrobić w czasie 50ms to musimy po stronie wtórnej wygenerować prąd 6mA. Taki prąd na napięciu końcowym 5V to moc rzędu 30mW wypływająca z układu ładowania do kondensatora. Czy to jakoś pokazuje "ogrom" tego układu? Po pierwsze to nawet nie leżało obok normalnej ładowarki bezprzewodowej pod względem mocy. Po drugie inne częstotliwości. Cewka odbiornika systemu Wireless Power Delivery jest fragmentem obwodu rezonansowego dokładnie dostrojonego do częstotliwości pracy nadajnika. Tylko tak da się przesyłać sensowne moce przez "powierze".

A gdy pochylimy się nad pomysłem pomiaru rezonansu obwodu LC, to moce mogą być jeszcze mniejsze.

W momencie podnoszenia bierki sprzężenie magnetyczne maleje i wpływ obwodu wtórnego schowanego w bierce (mówię o przypadku grid-dip-metra) jest coraz mniejszy aż w końcu ustaje. Dopóki nasz skaner będzie potrafił znaleźć jednoznaczny "dołek" amplitudy, dopóty będzie mógł wykryć bierkę. Gdy w obrazie skanu wyraźnego dołka nie będzie, pole jest puste. Jeśli w zasięgu znajdą się dwie bierki to ich wpływ będzie się zwyczajnie sumował. Jeśli będą tego samego rodzaju i koloru (np. dwa piony), to dołek będzie głębszy (bo dwa obwody pobierają energię z tego samego, ograniczonego źródła) a jeśli innego rodzaju lub koloru, to zobaczymy dwa dołki na ch-ce amplitudowej skanu. Rozróżnianie tego to kwestia sprytnego algorytmu analizy kształtu. Telefon i każdy innym metalowy przedmiot będzie obciążał nasze uzwojenie pierwotne jak zwarty zwój transformatora - pojawi się spadek amplitudy w całym zakresie częstotliwości.

@MR1979 Właśnie o tych plastikowych pestkach i ich wciskaniu w otwór w spodzie figury pisałem. jakos rozwiązanie z 64 nadajnikami pracującymi równocześnie ale asynchronicznie (w sensie fazy sygnału w cewce) wydaje mi się trudne do opanowania. Cała sztuka tutaj poległaby na użyciu jednego modułu "nadajnika", sukcesywnym przełączaniu mu cewek (być może podczas jego "zablokowania" i potem ponownego "odblokowania" jakąś komendą szeregową lub pinem) i poczekaniu na odpowiedź lub jej brak. Niestety właśnie ekranowanie cewek nadawczych od siebie i paradoksalnie zmniejszenie zasięgu byłoby tu pracą do wykonania.

Link do komentarza
Share on other sites

@marek1707 Te pastylki w technologii RFID 125kHz działają tylko gdy są w pobliżu aktywnego czytnika. Oczywiste jest aby dokonywać odczytu pole po polu. W ten sposób unikniemy interferencji między wieloma pionkami nadającymi jednocześnie. Te cewki są dość kierunkowe. Cewka tagu i czytnika muszą się ze sobą mniej więcej pokrywać i muszą być w równoległych płaszczyznach.

 

 

Link do komentarza
Share on other sites

Tutaj kluczowy byłby czas od momentu uaktywnienia bazy z zimnego startu do pierwszej pewnej identyfikacji. Musimy tego zrobić 64 cykle z jakimś marginesem opóźnień więc nie byłoby dobrze, gdyby czas "rozpędzania" nadajnika był dłuższy niż np. 10ms, bo wtedy czas reakcji systemu byłby nieakceptowalnie długi. Trochę tym kiedyś się bawiłem, ale przyznaję, że takiego parametru nigdy nie mierzyłem. Możesz to jakoś sprawdzić lub może po prostu to wiesz? Gdyby czasy gotowych modułów były długie, to zawsze można zrobić coś DIY. Akurat standard 125kHz jest tak prosty (i w zasadzie działa tak jak opisałem nasz własny tag szachowy na tiny), że kwestią najtrudniejszą staje się nawinięcie 64 małych cewek, zestrojenie i ich przełączanie, bo sam transceiver jest do zrobienia nawet na najmniejszym Arduino.

Link do komentarza
Share on other sites

Mój pomysł -może głupi, może mądry- byłby taki, żeby pod każdym polem umieścić antenę podpiętą do czułego wzmacniacza, a pionki zrobić/odlać z jakiegoś metalu. Przykładając rękę do pionka, pojawiłoby się na wyjściu wzmacniacza ogrom szumu/śmieci, co świadczyłoby, że jest zdejmowany. Kładąc pionek na pole, wzmacniacz do niego podpięty (i układ za nim) mógłby to też wykryć po dodatkowym szumie/śmieciach, których wcześniej nie było.

Edytowano przez RobertG
Link do komentarza
Share on other sites

Na początek ostrzegam że radiowe sprawy to dla mnie wiedza tajemna i nie mam o tym zielonego pojęcia.

Ok. Poszukałem starego czytnika RFID125kHz. Rozkręciłem go i na szybko podłączyłem antenę do generatora ustawionego 125kHz (o dziwo lepszy wynik dawał sygnał prostokątny niż sinusoidalny). Oscyloskop podłączyłem równolegle do anteny.

Modulację amplitudową można było zaobserwować gdy karta znajdowała się dokładnie nad czytnikiem w odległości kilku mm. Karta obok cewki, lub powyżej kilku mm nad cewką nie dawała żadnego efektu.

Poszukałem na oscyloskopie powtarzającego się wzorca i trwa on 36ms.

W celu korekcji błędów wypadałoby zrobić kilka odczytów dla pewności, ale nawet dla jednego pomiaru (przyjmijmy 50ms) czas odczytu całej szachownicy to 3,2s. To stanowczo za długo. Można by to rozwiązać przez odczyt równoległy kilku pól jednocześnie.

IMG_20210216_231139_3.thumb.jpg.21d5056a5cb64dbdebc671210279f293.jpgIMG_20210216_231259_2.thumb.jpg.52d03d707d5e2916d34169e647af9909.jpgIMG_20210216_231352_2.thumb.jpg.1776e775b7e6adc9982422d0c5b45632.jpgIMG_20210216_234153_2.thumb.jpg.8714c74808d63c6fc8f80e184f9e8430.jpg

 

Edytowano przez MR1979
  • Lubię! 1
Link do komentarza
Share on other sites

Hm, bardziej chodziło mi o czas od załączenia chipu nadajnika (kiedy to musi "rozbujać" martwą antenę a tag musi to zauważyć) do chwili początku pierwszej odpowiedzi, ale zapomniałem, że przecież sama transmisja na nośnej 125kHz wcale taka szybka nie jest. No to słabo. Gdyby się na to zdecydować, to tak jak sugerujesz, trzeba zrobić kilka nadajników pracujących na kilka anten (np. 8x8?) w takiej konfiguracji, by nigdy dwa nie włączyły anten leżących obok siebie. To ciekawy problem swoją drogą 🙂 Wygląda, że wtedy dałoby się zejść z czasem aktualizacji całej szachownicy może do 0.5s. Chyba wystarczy, choć speedrunnerzy (każda gra ma swoich) mogliby to prześcignąć.. Na szczęście pełna identyfikacja każdej bierki zrozumiałaby nową sytuację nawet bez detekcji oderwania i zniknięcia którejś figury w czasie ruchu.

  • Lubię! 1
Link do komentarza
Share on other sites

Hm, w tej sytuacji to może metoda "rezonansowa" okazałaby się szybsza? Można w niej napędzać wszystkie 64 cewki "pierwotne" na raz a jednorazowy skan 64 kanałów analogowych (detektorów amplitudy) nie powinien zająć więcej jak 1ms. Niestety aby dostać ładną ch-kę częstotliwościową trzeba wykonać pewnie kilkaset takich "zdjęć" stanu całej matrycy dla różnych częstotliwości. To już mogłoby zająć i pół sekundy więc zysku nie ma. Wpadłem przy tym na pomysł, że system mógłby na początku pracy powoli (1s?) przeskanować szachownicę w poszukiwaniu obecnych bierek jednocześnie ucząc się ich rezonansów, bo przecież tolerancje wykonania też jakieś będą. Potem w czasie meczu nie musiałby przeglądać szczegółowo całego pasma tylko skupić się na tych kilkunastu miejscach (czestotliwościach) w których spodziewa się układów rezonansowych w figurach. Wtedy taki wybiórczy skan mógłby zająć.. kilkadziesiąt ms?

Z symulacji wychodzi, że przy współczynniku sprzężenia rzędu 0.3 (dobry jak na cewki powietrzne) zupełnie spokojnie da się wykrywać "dołki" amplitudy. Mój układ testowy (niestety eksperyment jest czysto teoretyczny) składał się półmostka mocy (dwa tranzystory a tak naprawdę SPICE-owy generator standardowy) nadającego prostokąt do cewki pierwotnej 1mH. Opornik szeregowy 100R stojący po stronie masy tej cewki mierzył prąd uzwojenia i oddawał napięcie zapodawane do prostego detektora AM zbudowanego na diodzie BAS81 obciążonej pojemnością 100n i opornikiem 51k. Dalej to już multiplekser analogowy, wzmacniacz x5 i ADC. Tych trzech ostatnich rzeczy nie symulowałem rzecz jasna, bo po co. Napięcie na wyjściu zmieniało się od praktycznie 5V gdy bierki nie było (indukcyjność wzajemna <10uH) do ok. 2.5V gdy sprzężenie rosło do 0.3. Coś takiego to nawet ADC z Arduino wykrywa z palcem w nosie. Oczywiście diabeł na pewno siedzi w szczegółach: krytyczne jest np. dobranie średnic cewek nadawczych w stosunku do ich odległości. Powinny pokrywać jak największą część kwadratowego pola, ale jednocześnie być wystarczająco daleko od siebie by nie łapać "sasiadów" na polach obok. 1mH uzyskuje się z ok. 200 zwojów drutu fi 0.1mm nawiniętych na płaskiej szpulce fi 20mm o grubości kilku mm. Takie płaskie cewki nie muszą mieć szpulek - wystarczy, że nawinie się je na jakimś wzorcu a potem zaleje termoglutem lub kropelką i przyklei pod sklejką szachownicy. Cewki w figurach mogą być mniejsze no i muszą być różne. 12 kombinacji częstotliwości można uzyskać robiąc np. 3 różne rodzaje cewek odbiorczych współpracujące z 4 różnymi kondensatorami. Gdyby pokryć tym z makymalnymi odstępami pasmo powiedzmy 2-12kHz to mamy gotowy system. Arduino musiałoby timerem generować sygnał prostokątny próbkujący kilkanaście nauczonych punktów/częstotliwości i w każdym mierzyć 64 amplitudy. To nie wygląda na technologię kosmiczną, prawda? Pewną odrazę mogą budzić indukcyjności, ale to tylko do pierwszej próby. Gdy się okaże, że nie gryzą, daje się z nimi żyć 🙂 

  • Lubię! 2
Link do komentarza
Share on other sites

@marek1707 To mogłoby zadziałać! Ja bym jednak próbował zaadaptować gotowe cewki zamiast ręcznie nawijać. Myślę że na chińskich serwisach coś by się znalazło i w hurcie cena byłaby przystępna. Kolega musiałby tylko policzyć 12 pojemności kondensatorów dla różnych częstotliwościowi. Chyba nic lepszego się nie wymyśli.

Teraz pytanie co postanowi autor całego wątku?

 

Edytowano przez MR1979
Link do komentarza
Share on other sites

Hej, tak patrzę na sąsiedni wątek i sobie pomyślałem — a może ultradźwięki?

Przetwornik pod każdym polem i wykrywanie wielkości i materiału bierki (można je ewentualnie wypchać w środku czymś, żeby zwiększyć różnice).

Przetworniki są relatywnie tanie, działanie w częstotliwościach akustycznych dużo prostsze...

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.