Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Atmega] Zegar szachowy z rejestracją gry

wworms 07 Mar 2011 19:50 3187 22
  • #1 07 Mar 2011 19:50
    wworms
    Poziom 8  

    Witam! Otóż chcę stworzyć zegar szachowy działający na atmega z wyświetlaczem 7 segmentowym. Dla każdego zawodnika zegar będzie odliczał osobny czas, i właśnie nie wiem czy będę potrzebował jakiegoś dodatkowego zegara czy wszystko zrobić na jednym wbudowanym w atmege. I po drugie czy da radę podłączyć kamerę do atmegi? Bo w przyszłości chciałbym aby po wykonaniu ruchu, gdy gracz wdusi zegar aparat robił zdjęcie. Albo jak macie inne pomysł na to jak zarejestrować ruchy graczy. W internecie są specjalne szachownice i pionki które rejestrują ruchy graczy i na żywo w internecie można śledzić rozgrywkę - może wiecie na jakiej zasadzie to działa.

    0 22
  • #2 07 Mar 2011 20:11
    skalsky5000
    Poziom 20  

    Do odmierzania odcinków czasów wystarczy ci timer i kwarc 32kHz bo dokładność nie odgrywa tutaj dużej roli.Widziałem gdzieś w sieci podłączenie kamerki MCA-25 chyba ale jeśli jesteś początkujący odpuść sobie nie dasz rady.

    0
  • #4 07 Mar 2011 20:49
    wworms
    Poziom 8  

    Właśnie chodzi o to że nie ma za dużo informacji w internecie.
    szachownica elektroniczna "domowa"

    szachwnica turniejowa elektroniczna z transmisją na żywo

    Widziałem takie szachownice na mistrzostwach europy jakieś 5 lat temu i z tego co się nie mylę to mają wyjście z boku na RS232. A i wczytując się w opis tych szachownic to do nich są specjalne pionki.


    Cytat:
    Do odmierzania odcinków czasów wystarczy ci timer i kwarc 32kHz bo dokładność nie odgrywa tutaj dużej roli.Widziałem gdzieś w sieci podłączenie kamerki MCA-25 chyba ale jeśli jesteś początkujący odpuść sobie nie dasz rady.


    Ok dzięki. Póki co jestem początkujący ale ten projekt będę chciał robić na inżynierkę i dalej na magistra. Na razie mam projekt przejściowy ale musi być powiązany dalej. Więc szukam już jakiś informacji. Jak stwierdzę w porę że nie dam rady to zmienię temat pracy. Więc chcę się zorientować czy da radę w ogóle coś takiego wykonać.

    0
  • #5 08 Mar 2011 12:28
    rrytel
    Poziom 14  

    ja bym umieścił w pionkach magnesy a w szachownicy czujniki magnetyczne.

    0
  • #6 08 Mar 2011 12:43
    piotrva
    Moderator na urlopie...

    to najlepsze rozwiązanie, choć mogą być problemy, jak pionek stanie nie dokładnie itp. musiałbyś wcześniej wykonać odpowiednie testy i dobrać odpowiednio czułe czujniki (kontaktrony) i magnesy o odpowiedniej "sile".
    Zliczanie czasu to pestka, potem przy każdorazowym przyciśnięciu sprawdzałbyś z którego pola magnes zniknął i na którym się pojawił. Dodatkowo programowo trzeba by obsłużyć wszystkie figury szachowe, zbicia, roszady itp...
    Bo samo wykonanie techniczne (po odpowiednim doborze elementów) nie powinno być problematyczne do obsługi szachownicy będzie trzeba 16 wyprowadzeń, 2 wyświetlacze led 4 pozycyjne to (w zależności od sposobu połączenia i odświeżania) od 16 do 24 pinów. Do tego przyciski, komunikacja z komputerem najlepiej przez rs232, ewentualnie jakieś zapisywanie gier na karcie SD....
    oczywiście ilości pinów można ograniczyć stosując ekspandery i/o (na szachownicę np. 2xpcf8574 na i2c i masz już tylko 4 kabelki do szachownicy, do ledów można zastosować rejestry przesuwne np. 74hc595

    0
  • #7 08 Mar 2011 13:31
    wworms
    Poziom 8  

    Ok. Ale czy to wszystko da się zrobić za pomocą Atmegi? Bo ja chcę zrobić żeby szachownica była połączona z zegarem i wszystko by było zapisywane na karcie pamięci która byłaby w zegarze.

    0
  • #8 08 Mar 2011 14:51
    piotrva
    Moderator na urlopie...

    Za pomocom jakiejś Atmegi się da :D. Moim zdaniem przy takiej złożoności projektu myślałbym najmniej Atmega644, bo jak mówiłem trzeba zaimplementować całe zasady gry w szachy.
    Jeśli Kolega ma jakiś zestaw testowy z atmegą to można zacząć pisać coś na sucho, jakieś algorytmy i zobaczyć ile tego wyjdzie.

    0
  • #9 08 Mar 2011 16:21
    rrytel
    Poziom 14  

    a po kij implementować zasady gry w szachy? układ ma rejestrować grę czy robić za jednego z graczy? od pilnowania czy gra odbywa się zgodnie z zasadami jest sędzia (lub gracze pilnują się nawzajem).
    możesz ustawić tak żeby zmiana gracza następowała automatycznie po wykryciu przestawienia pionka.
    To jaką atmegą potraktować ten problem to zależy jak rozwiążesz problem i jak napiszesz program. (wg mnie może i m16 wystarczy)

    0
  • #11 08 Mar 2011 20:54
    Moyshaa
    Poziom 14  

    Ja bym to zrobił tak. Szachownica z czujnikami, pionki z magnesami, Najlepiej rozgraniczyć i żeby szachownica rozróżniała pionki/figury białe i czarne. I za każdym razem po wciśnięciu zegara robiła skan pól. I jak jakieś pole było pełne a jest puste to znaczy że z tego pola figura powędrowała na jakieś pole które było puste a jest pełne. Dodatkowo jak jakieś pole było pełne i nadal jest pełne, ale była na nim figura biała a jest czarna to było bicie. Roszadę trzeba oprogramować osobno... Z oczywistych względów. I inne zasady jak bicie w locie i takie nie oczywiste przypadki, należy się nad nimi zastanowić. Zastanowić się też trzeba nad wyborem figury po do jechaniu pionem do końca szachownicy po stronie przeciwnika (4 możliwości).

    W ten sposób jak by to było robione to bez jakiegoś skomplikowanego algorytmu w którym musiały by być opisane zasady by się obyło. Po prostu skanowanie po każdym wciśnięciu zegara. Ale niezbędne jest rozróżnienie pion/figura biała, a czarna. Bo każdy ma nawyki inne, jeden przesuwa bitą figurę, a później zabiera ją z szachownicy, inny najpierw zabiera, później kładzie swoją i ciężko by było jakoś to logicznie rozpoznawać.

    0
  • #12 09 Mar 2011 10:21
    wworms
    Poziom 8  

    No dobra tylko jak odróżnić kolory figur? Bo z tym na pewno będzie problem. Chyba żeby zrobić programowo tak że na starcie wiadomo po której stronie będą białe i czarne. Może można wykorzystać oznaczenia pól na szachownicy, bo jak wiadomo szachownica ma ponumerowane pola.

    0
  • #15 09 Mar 2011 11:15
    wworms
    Poziom 8  

    dondu dzięki - na pewno się przyda.
    A jeszcze się zapytam. Jak odczytać pozycje figury. Powiedzmy Ge5 czyli goniec na e5. Skąd będę wiedział że to jest e5? Z tego wychodzi że każdy czujnik musi być podłączony pod jeden port a to daje dosyć dużo wyprowadzeń, chyba żeby zastosować multiplekser?

    0
  • #17 09 Mar 2011 11:47
    rrytel
    Poziom 14  

    co do schematu wyżej to prawie identycznie tylko dajesz 8 rzędów i 8 kolumn (rzędy jako wejścia, a kolumny jako wyjścia).
    bedziesz odczytywał bezpośrednio tylko to GDZIE są figury. a to gdzie jaka musisz odczytać na podstawie wszystkich dotychczasowych ruchów (np. na E2 był czarny goniec. podnosisz gońca, układ odczytuje że go tam nie ma, stawiasz gońca na F4, układ odczytuje ze coś się pojawiło na F4, i na podstawie poprzednich informacji stwierdza ze musi to być goniec, stan pola E2 ustawiasz na puste a stan F4 na czarny goniec)

    0
  • #18 09 Mar 2011 12:49
    piotrva
    Moderator na urlopie...

    Niestety powyższy schemat jest do niczego, bo co się stanie jak wciśniemy np. SW5, SW7 i SW3? W tym przypadku mamy zwarcie!! A na szachownicy takich sytuacji będzie 32 bo tyle jest figur - czyli po procesorze. Trzeba dodać:
    1. rezystory na liniach
    2. diody zapobiegające płynięciu prądu w odwrotnym kierunku
    Inaczej to nie ma sensu, dondu zastanów się dlaczego :D

    0
  • #19 09 Mar 2011 13:40
    dondu
    Moderator Mikrokontrolery Projektowanie

    Masz absolutną rację, jednak schemat wkleiłem jedynie jako poglądową odpowiedź na pytanie:

    wworms napisał:
    Jak odczytać pozycje figury. Powiedzmy Ge5 czyli goniec na e5. Skąd będę wiedział że to jest e5? Z tego wychodzi że każdy czujnik musi być podłączony pod jeden port a to daje dosyć dużo wyprowadzeń, chyba żeby zastosować multiplekser?

    ... ponieważ kolega chciał stosować multipleksery.

    Klawiatura w wykonaniu ze schematu nadaje się do odczytu tylko 1 klawisza jednocześnie. Gdy kolega będzie tworzył schemat wtedy wiele spraw będzie tutaj omawiał, między innymi diody w matrycy :)

    0
  • #20 09 Mar 2011 19:05
    wworms
    Poziom 8  

    Szukałem w internecie tych czujników magnetycznych. Najtańszy jest za ponad 8zł a potrzebnych jest 64 więc wychodzi ładna sumka :/

    0
  • #22 09 Mar 2011 19:45
    wworms
    Poziom 8  

    Nie wiem czy będą pasować. Są trochę wielkie :)

    0
  • #23 09 Mar 2011 19:51
    landy13
    Poziom 29  

    No to nieco droższe, ale mniejsze. Link

    Kupowałem jakiś czas temu 9-milimetrowe poniżej dwóch złotych, ale to był sklep stacjonarny.
    Możesz zadzwonić (bardzo miła obsługa) - może wyślą?

    0
  Szukaj w 5mln produktów