Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Robo-Piłkarzyki - popularna gra z robotami w roli głównej na AVR ATtiny

mi_ma 18 Mar 2015 19:39 5433 5
IGE-XAO
  • Robo-Piłkarzyki - popularna gra z robotami w roli głównej na AVR ATtiny

    Każdy z nas grał w jakąś wersję piłkarzyków. Pamiętamy wypasione sprężynkowe wersje, popularne do tej pory barowe piłkarzyki, młode pokolenie pewnie głównie kojarzy raczej komputerowe wersje, a co z robo-piłkarzykami? Oczywiście w sklepie ich nie dostaniemy, przynajmniej na razie, ale w świecie DIY? Jak najbardziej.

    Projekt Foobot to rozwijająca się od kilku miesięcy robo-wersja piłkarzyków. Autor pracuje nad nią od listopada 2014 roku i trzeba przyznać, ze osiągnął już całkiem ciekawy efekt, którym postanowił się pochwalić zamieszczając także krótki film na YouTube.

    Cały projekt składa się jak na razie z niewielkich jeżdżących robót, dokładnie czterech (dwuosobowe drużyny) sterowanych zdalnie przez pady z Nintendo i Segi. O ile dziś można pobawić się w cztery osoby, sterując każdym robotem z osobna, to w przyszłości autor planuje ambitnie wzbogacić roboty o możliwość samodzielnej gry w oparciu o funkcje przetwarzania obrazu. Obecne wersje dwukołowych robotów są zbudowane w oparciu o mikrokontrolery ATtiny2313 z układami SN754410 do sterowania silnikami oraz tanimi odbiornikami 1402 pracującymi na częstotliwości 433 mHz. Każdy z robotów zasilany jest baterią 9V. Części mechaniczne wycięte są laserowo z materiału podobnego do pleksi. Koła zamontowane są bezpośrednio do silników osiągających prędkość 16000 na minutę bez jakichkolwiek dodatkowych przekładni ani innych mechanizmów zębatych, co obserwując na filmie - może być wadą. Poruszają się one zbyt dynamicznie, by precyzyjnie nad nimi panować. Dla graczy taka chaotyczność może dodawać nieco zabawy, ale jeżeli autor chce się pobawić w autonomiczne roboty, to może to sprawiać w przyszłości problemy.

    Robo-Piłkarzyki - popularna gra z robotami w roli głównej na AVR ATtiny Robo-Piłkarzyki - popularna gra z robotami w roli głównej na AVR ATtiny


    Roboty są sterowane bezprzewodowo ze wspólnej stacji, do której podłączone są cztery pady. Co ciekawe - jedna stacja cyklicznie wysyła wiadomości do robotów zawierające ID robota, polecenie oraz sumę kontrolną. W ten sposób autor chciał prosto rozwiązać problem kolizji pomiędzy jednoczesnymi transferami danych na tej samej częstotliwości (nie zdecydował się na stworzenie osobnych sterowników pracującymi na oddzielnych kanałach). Roboty ignorują wszelkie polecenia nieadresowane bezpośrednio do nich. Stacja została zbudowana w oparciu o ośmionóżkowy ATtiny13. Jak wcześniej wspomniałem - do stacji podłączone zostały cztery kontrolery od niemalże antycznych już konsol.

    Robo-Piłkarzyki - popularna gra z robotami w roli głównej na AVR ATtinyRobo-Piłkarzyki - popularna gra z robotami w roli głównej na AVR ATtiny

    Oczywiście projekt jest typu opensource, a co za tym idzie - na stronie autora znajdziecie odnośniki do jego konta na github, gdzie umieszczony jest projekt części mechanicznych, oprogramowanie wraz z kodami źródłowymi i schematy. Poniżej zamieszczam film z YouTube.




    Na co chciałbym zwrócić uwagę, to przede wszystkim na prostotę części sprzętowej i oszczędność. Projekt tak naprawdę jest dosyć prosty, chociaż opiera się na ambitnych założeniach. Autor opracował trafne rozwiązania i konsekwentnie wcielił je w życie, uzyskując wyróżniający się wśród tysięcy projektów zbudowanych na gotowych modułach choćby takich jak Arduino. Szczerze zachęcam: projektowanie nie jest wcale takie straszne. Liczy się pomysł, plan i konsekwencja...

    Źródło http://www.moop.org.uk/index.php/2015/03/15/foobot/

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    mi_ma
    Translator, editor
    Offline 
    Has specialization in: elektronika wojskowa
    mi_ma wrote 831 posts with rating 789, helped 0 times. Live in city Wrocław. Been with us since 2006 year.
  • IGE-XAO
  • #2
    Damian_Max
    Level 15  
    Generalnie fajny projekt.
    Piszę bo mam jedno spostrzeżenie w kontekście sterowania, aktualnie strzałki góra/dół to jazda do przodu/tyłu, zaś lewo/prawo to odpowiednio obroty.
    Myślę, że wygodniejszym by było sterowanie góra/dół/lewo/prawo jako jazda na północ/południe/zachód/wschód. (Plus potencjometr odgrywający rolę offset-u do kompasu, pozwalając na wygodną kalibrację, w zależności po której stronie stołu stoimy)
    Prawdopodobnie sprowadziłoby się to do dodania elektronicznego kompasu do każdego z pojazdów i niewiele bardziej skomplikowany algorytm sterowania.

    Rozumiem że to spora zmiana i nie byłoby ją łatwo wykonać, ale jestem przekonany że znacznie ułatwiłoby to sterowaniem bot-em -- jednocześnie zwiększając grywalność.
  • IGE-XAO
  • #3
    nsvinc
    Level 35  
    Zgodzę się. Problemem w obecnej implementacji jest relatywność kierunku ruchu. Jak w przypadku człowieka, ktory - reagując na bodziec - jest w stanie podjąć decyzję w którą stronę chce się przemieścić, tak stopien trudnosci sterowania robotem rośnie, gdyż mózg nie potrafi tak łatwo wczuć się w pozycję robota i wykonac ruch uzywając jako referencji "twarzy" tego robota.

    Człowiek, patrząc przed siebie, potrafi niemal instynktownie (odruchowo) zareagowac na bodziec, a jego kierunek ruchu będzie oparty na referencji twarzy; przemiesci się w danym kierunku względem osi wzroku. Człowiek sterując robotem, (ogolnie) nie potrafi tak samo łatwo wykonać danego manewru, ponieważ "twarz" robota nie jest współliniowa z osią wzroku.

    Rozwiązanie typu kierunki swiata tak samo się nie sprawdzi; masz małe szanse wykonać instynktowny ruch 'na wschód'. Niezaleznie od tego, czy ustalisz stałą referencję (kierunki swiata) czy nie, nie będziesz w stanie podjąć instynktownej reakcji na bodziec, poniewaz nie będziesz potrafic sie wczuć w "osobe" robota i patrzeć jego linią wzroku.

    Ty, wykonując ruch, mówisz "w lewo". Więc zero translacji współrzędnych.
    Wykonując ruch "na wschód" mózg najpierw ustala gdzie jest wschód względem linii wzroku. Więc jedna translacja współrzędnych...
    A teraz sterujesz robotem; widzisz oczami twarz robota i oceniasz w którą stronę patrzy; i podejmujesz (uproscmy) decyzję prawo/lewo próbując się 'wczuć' w robota. Jedna translacja - swojej linii wzroku wzgledem twarzy robota.
    A teraz sterujesz robotem w oparciu o kierunki swiata; musisz wykonac dwie translacje - siebie wzgledem robota, i robota wzgledem kierunkow. Stoisz w miejscu, wiec (zalozmy) wschod jest wprost na lewo. Robot sie rusza i obraca wiec dla niego wschod wcale nie musi być wprost na lewo. Równie dobrze moze byc w prawo...

    Jedyny sensowny interfejs human-robot to taki, ktory wizualnie lub akustycznie wprowadzi czlowieka w punkt widzenia (slyszenia) robota. Mając przed oczami wyswietlacz, ktory wprost przedstawia to, co widzi robot, będziesz w stanie w trybie natychmiastowym niemal instynktownie zareagować na bodziec - i to w dowolnym kierunku. Bez tego zawsze masz conajmniej jedną translację układu współrzędnych więc nie będziesz w stanie zareagowac na zdarzenie z 'naturalną' szybkością.
  • #4
    Damian_Max
    Level 15  
    W kontekście ostatniego akapitu, to tak, widząc obraz który potencjalnie widziałby robot -- możemy reagować instynktownie i to zadziała. Choć dostrzegam problem z dynamiką i wszelakimi opóźnieniami, ale pewnie da się to zniwelować do granic odczuwalności.
    Drugi mankament to widok pierwszej osoby fajnie nadaje się do strzelanek, ale do rpg wygodniej jest więcej widzieć -- widok trzeciej osoby. (Może mała lekka kamerka na wysięgniku, chyba trudne i kosztowne, ale wykonywalne.)

    Nie jestem pewien czy oboje mamy to samo na myśli pisząc: kierunki świata i jazda na północ/południe/zachód/wschód + offset. Możliwe że tak, aczkolwiek rozwinę dla spokoju własnego sumienia:
    Ja mam na myśli sterowanie takie jak jest w niektórych grach: FIFA czy też Little Fighter 2 (a tu jakiś przykład znaleziony w internecie). W tych grach tak naprawdę nie wiemy gdzie są kierunki świata, ale samo sterowanie postacią jest łatwe. Sporo ludzi gra w fife i jakoś dają redę.
    Dlatego też pisałem o tym potencjometrze, który po zajęciu miejsca przy stole, ale przed rozpoczęciem gry byśmy kalibrowali -- tak by pozorne południe (strzałka w dół) wymuszało jazdę robota w naszą stronę (założenie: po rozpoczęciu gry stoimy w jednym miejscu).
  • #5
    dondu
    Moderator on vacation ...
    mi_ma wrote:
    Cały projekt składa się jak na razie z niewielkich jeżdżących robót, dokładnie czterech (dwuosobowe drużyny) sterowanych zdalnie przez pady z Nintendo i Segi. O ile dziś można pobawić się w cztery osoby, sterując każdym robotem z osobna, to w przyszłości autor planuje ambitnie wzbogacić roboty o możliwość samodzielnej gry w oparciu o funkcje przetwarzania obrazu.

    No to na razie nie zasługuje na miano robota, bo nie jest samodzielny :)

    Prostota implementacji rozwiązania sterowania ze wspólnej stacji jest bardzo ciekawa i upraszcza znacząco cały projekt. Na uwagę zasługuje także prosta konstrukcja mechaniczna vs efekt końcowy - naprawdę fajny rezultat.
  • #6
    nsvinc
    Level 35  
    Damian_Max wrote:
    tak by pozorne południe (strzałka w dół) wymuszało jazdę robota w naszą stronę

    Teraz rozumiem. Mówisz o sytuacji gdzie kierunki świata narzuca plansza, po ktorej porusza sie robot. W takiej sytuacji sterowanie faktycznie będzie proste.
    Niekoniecznie do tego jest porzebny prawdziwy kompas; warunkiem koniecznym do zadziałania tego patentu jest jakiś mechanizm pozwalający robotowi ustalić swoją pozycję względem krawędzi planszy (ktore są układem odniesienia).