logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Robochess - robot grający w szachy na Atmega128

farmazon3000 26 Kwi 2009 14:13 8069 5
REKLAMA
  • Robochess - robot grający w szachy na Atmega128

    Ebrahim Jahandar opublikował bardzo ciekawe urządzenie, które gra z użytkownikiem w szachy. Robot ma umiejętność rozpoznawania ruchów przeciwnika, podejmowania decyzji o własnych ruchach, przemieszczania pionków.

    Mikrokontroler sterujący to oczywiście AVR :), konkretnie Atmega128. Program mikrokontrolera zajmuje 6500 linii i został napisany w C. Dodatkowo urządzenie ma wbudowany wyświetlacz LCD umożliwiający komunikację z użytkownikiem.

    Każde pole (a jest ich w szachach 64, jakby ktoś nie wiedział :)) zawiera kontaktron (ang. reed relay), a każdy pionek ma pod spodem mały magensik - dzięki temu mikrokontroler wiek które pole jest zajęte (podłączenie do mikrokontrolera na zasadzie matrycy, podobnie jak działa klawiatura matrycowa).

    Chyba najważniejszą rzeczą w tym projekcie jest to, że nie używa się tu kamery albo innych podobnych metod do rozpoznawania ruchów - wykorzystywane do tego są wymienione wcześniej kontaktrony. Oczywiście każdy magnesik i kontraktron działają w ten sam sposób, tak więc niemożliwe byłoby rozpoznawanie pozycji pionków na podstawie samej obecności. Autor rozwiązał to w ten sposób, że wszystko opiera się na pozycji początkowej każdego z pionków, która to pozycja w szachach jest oczywiście ściśle ustalona. Urządzenie rozpoznaje czy przemieszczony pionek mógł wykonać dany ruch i jeśli okazał się on nieprawidłowy, jest to sygnalizowane.





    Źródło:
    http://jahandar.ir/index.php?static&sid=95&title=Chess%20Playing%20Robot%20

    Fajne? Ranking DIY
    O autorze
    farmazon3000
    Poziom 15  
    Offline 
    farmazon3000 napisał 259 postów o ocenie 25, pomógł 3 razy. Jest z nami od 2005 roku.
  • REKLAMA
  • #2 6459061
    markovip
    Poziom 34  
    Projekt bardzo interesujący i nowatorski, jednak czy tak mała moc obliczeniowa Atmegi128 wystarczy chociażby dorównać człowiekowi aby gra była interesująca? -wątpię.
  • REKLAMA
  • #3 6459674
    herrinq
    Poziom 12  
    Moim zdaniem spokojnie wystarczy - wszystko jest kwestia czasu :) poza tym mozna stosowac sprytne algorytmy (jak np ciecie alfa-beta) i wtedy nie trzeba rozpatrywac wszystkich mozliwosci tylko te ktore rokuja jakis sukces :) troche tak jak czlowiek ktory nie rozpatruje pewnych kombinacji ktore z gory wydaja mu sie "bez sensu"

    edit: inna rzecza jest to ze po obejrzeniu filmiku wyglada na to ze "komputer" stanowi raczej marnego przeciwnika :) ale tez chyba zbyt dlugo sie nie zastanawia nad ruchami.
  • REKLAMA
  • #4 6459913
    pidpawel
    Poziom 26  
    No wiecie - moc obliczeniowa swoją drogą ;) Mam laptopka 286 są tam szachy i nie raz gra mnie zaskakuje...
    Moc obliczeniowa ma tutaj mniejsze znaczenie niż dobry algorytm i jego sprytna implementacja.
  • REKLAMA
  • #5 6463961
    Paweł Es.
    VIP Zasłużony dla elektroda
    Miałem okazję reperować i potem grać z czymś takim:

    http://www.xs4all.nl/~tluif/chescom/EngScc8.html


    Model prawie sprzed 30 lat, pracuje na Z80, ma 4kB pamięci programu i AŻ 128B RAM ;) a gra całkiem całkiem


    Co prawda ma pewną wadę, bo Windows Vista nie daje się odpalić na tym systemie ale okazuje się, że w 4kB można zmieścić sporo umiejętności.
  • #6 6464192
    11111olo
    Poziom 42  
    Faktem jest że początkowe ruchy są zwykle powtarzalne więc AVRek nie musi bardzo myśleć jak się ruszyć. Co innego skomplikowana analiza w środku gry.
    Swoja drogą nie podoba mi się sposób sprawdzania za każdym razem czy są otwarte szczęki jak i 'zerowanie' położenia.
REKLAMA