Autor Wątek: Zaprogramuj wlasnego robota ?  (Przeczytany 2910 razy)

Offline kubagert

  • Użytkownik

# Styczeń 28, 2007, 21:44:01
Witam
Od dluzszego czasu meczy mnie jeden pomysl na gre albo raczej program (sam nie wiem czym to jest bardziej).
A mianowicie i w wielkim skrocie:
- jakis symulator procesorow rodziny 51, AVR lub PIC (wie ktos o co chodzi ?) z okrojonymi peryferiami
- symulator proceosrow zintegrowany z wirtualnymi bloczkami typu - czujnik kolizji, silnik napedowy, odleglosciomierz, itp
- a wszystko w jakims prostym swiecie 3D

O co w tym wszystkim chodzi?
Chodzi o to, ze nauka asemblera mikroprocesorow jest dla wielu ludzi ciezka (wiem z doswiadczenia). A z drugiej strony piszac suche programy nie widzac jak dzialaja w rzeczywistosci - troche mija sie z celem. A zapalanie diod i piszczenie jakims buczkiem w zestawach ewaluacyjnych jest malo atrakcyjne.
Wiec chcialem zrobic cale srodowisko w ktorym bedziemy dysponowac bloczkami (silniki, czujniki, itp) sprzezonymi z jednym wirtualnym procesorem, na ktory wlasnie bedziemy pisac program. Wysylajac odpowiedni wartosci do odpowiednich komorek naszego wirtualnego procesora mozemy sie komunikowac z tymi peryferiami i wprawic naszego robota w ruch, dobic do sciany, w wyniku kolizji testowac zachowanie na take zdarzenie, np wycofanie, obrot itp.
Mozna rowniez zbudowac jakies bloki/elementy ramienia ktory ma cos przeniesc, itp

Dodatkowo mozna urzadzac zawody np ktory robot szybciej przejedzie przez labirynt, albo urzadzic walki 2 robotow pomiedzy soba (sumo robotow)
Byloby to polaczenie przyjemnego z pozytecznym
Zarzucam tutaj na forum ten pomysl. Ja kiedys myslalem o jego komercyjnym wykorzystaniu do edukacji systemow mikroprocesorowych.
Dodam ze mam gdzies w archiwum dzialajacy symulator procesorow rodziny C51 pisany w delphi (bez czesci sprzetowej)
Co Wy na to?

Pozdrawiam
kubagert

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Riddlemaster

  • Użytkownik
    • Moja strona domowa

# Styczeń 28, 2007, 21:48:41
Pomysł dość ciekawy, choć nie wiem czy faktycznie jego rola edukacyjna byłaby AŻ tak duża. Niemniej kiedyś coś już podobnego było (programowało się roboty w jakimś prostym języku i miało to na celu nauczenie podstaw programowania wysokopoziomowego).

Offline mihu

  • Użytkownik
    • mihu

# Styczeń 28, 2007, 22:06:23
Pomysł dość ciekawy, choć nie wiem czy faktycznie jego rola edukacyjna byłaby AŻ tak duża. Niemniej kiedyś coś już podobnego było (programowało się roboty w jakimś prostym języku i miało to na celu nauczenie podstaw programowania wysokopoziomowego).
Mówisz może o grze Colobot? Ona właśnie zainteresowała mnie programowaniem (; Bardzo fajna była imo.

Offline Riddlemaster

  • Użytkownik
    • Moja strona domowa

# Styczeń 28, 2007, 22:08:39
O właśnie: Colobot. Dzięki Rob za przypomnienie

Offline skovron

  • Użytkownik
    • Healthbar Games

# Styczeń 29, 2007, 00:48:06
Mnie się pomysł bardzo podoba, szczególnie dlatego, że sam wiele razy myślałem o podobnym programie.
Ponieważ jednak bardziej pociąga mnie grafika, nigdy nie wystarczało mi zapału by wprowadzić go w życie  ;).

Osobiście widziałbym chętnie w takim programie również możliwość dodawania nowych "bloczków"
przy pomocy jakiegoś systemu pluginów.

Offline Moriturius

  • Użytkownik

# Styczeń 29, 2007, 08:42:33
Moim zdaniem projekt bardzo ciekawy.
Zdaje sie ze to byloby troche inne niz Colobot ze wzgledu na to ze tam bylo tylko kilka jakichs funkcji i robotow byla garstka - nuuuda ;) A tutaj przypuszczam ze autorowi chodzi o zbudowanie jakiegos wlasnego robota i potem wprowadzenie go w ruch, a jesli nie o to to powiem ze ja chetnie bym cos takiego widzial :D

PS. co nie znaczy ze Colobot mnie nie wciągnął ;)

agent_J

  • Gość
# Styczeń 29, 2007, 08:55:10
CPU: najlepiej IMO symulować AVRa (najlepsza by była ATmega128) - najłatwiej dostępne na rynku, kompilator za free (avr-gcc), dużo dokumentacji, a programator jest banalny. Fajnie jakby się dało dołączać własne bloczki do robota - np. w formie pluginów. Gdyby symulacja sprzętu była w miarę dokładna, można by się pokusić o budowę takiego robota :) Niekoniecznie musi być to gra - np. środowisko do budowy prostych robotów oraz późniejszego testowania w różnych warunkach.

Offline Lipek Samo Zło

  • Użytkownik

# Styczeń 29, 2007, 13:53:50
Fakt, że teraz AVRy sa na topie dla początkujących elektroników-konstruktorów, bo można je kodować w C, prostym asmie czy nawet tym prockowym basicu (zapomniałem jak to się nazwało), bo programator do nich to zlutowanie kilku kabli z wtyczką do gniazda drukarki LPT1 (do procków '51 jest dosyć trudny do zrobienia, a firmowy kosztuje ~200$). Jednak moim zdaniem prawdziwy asm to jest w procach '51, i chociaż są robione coraz nowsze i bardziej wykręcone AVRy to i tak bardzo często wyskorzystuje się stare procki '51 (tego tez uczą na uczelni - wiem z doświadczenia :) ) ponieważ mają już bardzo niewiele bugów (sukcesywnie likwodowanych przez te wszystkie lata ich istnienia) dlatego polecam działać pod tym kątem :)

Co do pomysłu, to jest bardzo fajny. Obawiam się niestety, że będzie bardzo ciężko zrobić te wszystkie "bloczki" żeby w miarę odwzorowywały ich rzeczywiste reprezentacje.

Mozna rowniez zbudowac jakies bloki/elementy ramienia ktory ma cos przeniesc, itp

Ta koncepcja też mi się bardzo podoba, całkiem niedawno miałem przyjemność "bawić się" takim robocikiem i z chęcią mógłbym pomóc przy tym, bo bądź co bądź trochę się na tym znam jako przyszły Automatyk i Robotyk ;)

Offline kubagert

  • Użytkownik

# Styczeń 29, 2007, 14:51:48
Witam
Wlasnie o to chodzi, ze nie ma czegos takeigo jak robot.jedzDoPozycji(100,100); lecz trzeba ustawic odpowiednie bity/bajty w odopowidnim rejestrze/rejestrach aby silnik zaczal sie krecic, i robocik zaczyna jechac do przodu, sami musimy sprawdzac czy na cos nie wpadlismy, innym silniczkiem na przyklad zakrecac, itp. Programator tutaj raczej nie jest potrzebny, gdyz komunikacje z bloczkami robota lepiej jest zrobic opprzez tak jakby "wrzucenie bloczkow w strukture procesora" - np silnik lewy komorka o adresie 0x23, silnik prawy 0x24, czujnik zblizeniowy 0x25 (czyli tak jak inne peryferia, np timer), itp gdyz nie trzeba symulowac wyprowadzen procesora, co znacznie ulatwia sprawe, a dodatkowo zawsze co nowa wersja bedie kompatybilna w dol z poprzednimi. Co do kompilatora - sprawa dowolna Bascom, AVR Studio, AVR-GCC, gdyz do robota bedzie sie ladowac kod wynikowy po kompilacji.
Wiadomo ze procesora nie trzba symulowac idealnei tak jak chodzi w rzeczywistosci (czyli np interfjs rs232 - jest niepotrzebny). Wziasc podstawowa wersje jakiegos procesora (AVR, PIC, C51 - wszystko jedno) - mozna zrobic nawet "uniwersalne" czyli 2 rozne roboty o roznych programach i roznych procesorach konkuruja ze soba - i zrobic srodowisko, czyli jakeis okienko z widokiem 3D aby byl owidac co sie dzieje, oraz jakies kontrolki, czy jakies inne badziewia (rejestry, zdisasemblowany program, itp)

Ja osobiscie bardzo bym sie mogl zaangazowac w ten projekt, bo jak mowie chodzi mi od bardzo dlugiego czasu (chyba od 3 lat :P) ale teraz mam juz na tyle duza wiedze ze czesc projektu na pewno ogarne samodzielnie (calosc pewnie tez, ale za dlugo by to trwalo).
Wiec jak ktos jest chetny do stworzeniu tego projektu to zapraszam do wspolpracy.

Pozdrawiam
kubagert

agent_J

  • Gość
# Styczeń 29, 2007, 15:50:35
kubagert: zrób sam taki projekt to od razu praktycznie masz pracę magisterską albo inżynierską :)

Jeszcze mam pomysł:

Urządzenia zaimplementuj jako "prawdziwe". Tzn. np. czujnik temperatury miałby się komunikować poprzez I2C, a nie żadne komórki pamięci. Jeśli ci się to uda, to możesz zrobić całkiem niezłe środowisko testowe oraz dydaktycznie. Oczywiście emulacja i2c nie jest potrzebna - byle by na poziomie programowania procesora oraz implementacji czujników "udawać", że się używa i2c.
« Ostatnia zmiana: Styczeń 29, 2007, 15:55:32 wysłana przez agent_J »

Offline kubagert

  • Użytkownik

# Styczeń 29, 2007, 16:16:56
Prawde mowiac takze o tym myslalem aby zrobic ten projekt na prace magisterska, ale potem pomyslalem ze moze sie znajdzie ktos kto bedzie takzie chcial wspoltowrzyc projekt. Ja na dyplom mam mnostwo pomyslow :D (ale do obrony jeszcze 2.5 roku o ile nic nie wyskoczy po drodze ;) ).

Pozdrawiam
kubagert