Skocz do zawartości

Demolka

Użytkownicy
  • Zawartość

    38
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

Wszystko napisane przez Demolka

  1. jeżeli chcesz projekt gotowego robota to TU jest trochę przydatnych materiałów (projekty dwóch robotów i gotowy program)
  2. http://roboty.utp.edu.pl/index.php?option=com_docman&task=doc_download&gid=13&Itemid=83 tu jest cały program od Bydgoskiego UTP biblioteka_v4.1.zip
  3. chciał bym zauważyć że ring do mini-sumo nie spełniał wymogów regulaminu (brak linii startowych)...
  4. było fajnie szkoda tylko że po raz kolejny gdańscy sędziowie udowodnili że muszą się jeszcze wiele nauczyć...
  5. zaznaczyłem minisumo bo tą kategorią aktualnie się zajmuję
  6. szkoda że ogłaszacie to tak późno...
  7. http://roboty.utp.edu.pl/ tu jest dosyć łopatologicznie wyjaśnione jak robić mini-sumo za rok zapisz się tam na zawody to dostaniesz całą potrzebną elektronikę (płytka sterująca+czujniki)
  8. czy są jakieś ograniczenia co do ilości członków zespołu?
  9. moim zdaniem w wypadku MS trudniej o podobieństwa niż w LF. wystarczy spojrzeć na roboty tworzone na zawody MS na UTP w Bydgoszczy. wszyscy zawodnicy otrzymują te same czujniki i płytki sterujące(z tym samym oprogramowaniem) a i tak każdy robot jest inny lepiej zakazywać przynoszenia gotowych robotów prosto ze sklepu niż wykluczać zawodników za to że ktoś dostrzegł parę podobieństw, ponieważ tego nie sposób uniknąć (zwłaszcza gdy wykorzystuje się serwa bo wszystkie wyglądają identycznie). __________ Komentarz dodany przez: Treker
  10. witam mam takie małe pytanka związane z turbinką 1. czy można używać turbinek w mini sumo? 2. jeżeli tak to czy może ona działać cały czas czy musiałaby uruchomić się po 5 sekundach?
  11. roboty klasy line follower jak wyżej wymieniono w przyszłości można zastosować w autonomicznych samochodach. moim zdaniem prędzej doświadczenia związane z budową tych robotów zostaną wykorzystane w fabrykach i magazynach gdzie coraz częściej używa się maszyn do wyszukiwania i dostarczania części.
  12. 100% pewności nie mam ale te 2mm które wystają mógł byś ściąć z wewnętrznej strony kół. zaznaczyłem na zdjęciu jaki element ja bym trochę spiłował na twoim miejscu (koła nie powinny o nic haczyć z tego co widzę na zdjęciach) __________ Komentarz dodany przez: Sabre Poprawiłem zdjęcie dodając miniaturkę.
  13. narzędzie do wyznaczania środka koła faktycznie działa dobrze tylko przy płaskiej powierzchni w przypadku nierównych powierzchni trzeba zorganizować jakiś statyw na rysik żeby był prostopadły do koła jak wiercę otwory w kołach to używam wiertarki stołowe
  14. u mnie koła biły dopóki nie zacząłem używać banalnie prostego urządzenia dzięki któremu można łatwo odnaleźć środek koła
  15. w CD-rom'ach spotkałem się tylko z silniczkami krokowymi. a co do drukarek to różnie bywa. jak rozbierałem swoją to znalazłem w niej jeden sporych rozmiarów zwykły silnik elektryczny i dwa krokowe co do "czujników" w drukarce znajdziesz co najmniej dwa: położenia pokrywy, położenia papieru ale czy te części się przydadzą i czy warto dla nich rozbierać sprzęty zadecyduje jaki to ma być robot. jeżeli chcesz zbudować małą lekką zabaweczkę, która ledwo uciągnie własny ciężar to możesz pobawić się napędem z cd-rom'u (są tam dwa niewielkie silniczki), choć moim zdaniem to bez sensu zepsujesz tylko cd-rom. jeżeli chcesz zbudować coś nieco większego to polecam silnik z drukarki niestety będziesz potrzebował dwóch bo w jednej ciężko będzie znaleźć dwa takie same silniczki (można też użyć jednego silniczka do skręcania kołami tak jak w samochodzie, rozwiązanie to nie wymaga dwóch identycznych silników a jedynie napisania ciekawszego programu). a tu masz opis jak zrobić ciekawego robota minisumo http://roboty.utp.edu.pl/index.php?option=com_content&task=view&id=24&Itemid=75 nie wiem tylko czemu użyli silników z wkrętarek jeżeli mieli dwa z drukarek...
  16. zakładam że z plastikowymi tak by się stało, ale mój nauczyciel kupił ostatnio za taką cenę nie najgorsze serwa z metalowymi przekładniami. są odpowiednio cięższe ale jak pewnie wiecie serwa są bardzo lekkie i te perę gram nie zaszkodzi.
  17. Szczerze mówiąc nie czytałem wszystkich postów, ale mam nadzieje że nie będę powtarzał. Jeżeli ktoś chce zbudować robota Mini-sumo szybko, łatwo i przyjemnie najlepsze są serwa (wystarczy zdjąć blokadę na zębatkach i usunąć elektronikę). ZALETY -szybka przeróbka -łatwy montaż serw w obudowie -łatwy montaż kół (kółka doklejamy do orczyka i po kłopocie) -niska cena (od ok. 15zł za zadowalające modele)
  18. potwierdzam że na serwach roboty są lekkie jak piórko, K.R.T.K. (zespół którego jestem członkiem) wybudował takiego i musieliśmy go trochę dociążyć. jestem osobą która nie porzuca projektu tylko dla tego że jest trudny w realizacji więc podjąłem się przeróbki starszego modelu napędzanego silnikami mocniejszymi niż te z serwomechanizmów (przynajmniej naszych) jak pewnie wiecie wiąże się to z dużo większą masą. zastosowane przekładnie też trochę ważą i wychodzi na to że będę zmuszony wykorzystać jakieś lżejsze zamienniki... dziękuję za pomoc Wnioski: -bateria 9V nie jest wstanie uruchomić silników robota ponieważ płytka z elektroniką zabiera za dużo mocy.
  19. Mam pewien problem z zasilaniem robota klasy mini-sumo. Zbudowałem robota ale przekroczyłem dopuszczalną wagę. Aby trochę ją zmniejszyć postanowiłem zamiast 12V baterii użyć baterię 9V i właśnie w tym momencie wystąpił problem. Po wciśnięciu przycisku startowego na płytce sterującej (którą otrzymaliśmy od UTP Bydgoszcz przed ostatnimi zawodami) robot czeka 5s zapala diodę informująca o trwaniu wali ale silniki nie działają. Jaka może być tego przyczyna? Dodam że z baterią 12V wszystko działa poprawnie.
  20. trochę mnie niebyło... ale odpisuje we wtorek tak jak miałem program działa tylko nie zadziałała komenda pętli czeka mnie trochę sprawdzania kodu...
  21. /** * Funkcje do sterowania silnikiem prądu stałego */ #include "sumolib.h" // moc silnika 1 unsigned int motor1_power_config = 0; // moc silnika 2 unsigned int motor2_power_config = 0; /** * Inicjalizacja prostej obsługi silników */ void motor_init() { setb(MOTOR1_PWM_DDR, MOTOR1_PWM_PIN); setb(MOTOR2_PWM_DDR, MOTOR2_PWM_PIN); setb(MOTOR1_DIR_DDR, MOTOR1_DIR_PIN); setb(MOTOR2_DIR_DDR, MOTOR2_DIR_PIN); // ustawienie rejestrów TCCR1A = _BV(COM1A1) | _BV(COM1B1) | _BV(WGM11) | _BV(WGM10); if (MOTOR1_PWM_NEGATE) { TCCR1A |= _BV(COM1A0); } if (MOTOR2_PWM_NEGATE) { TCCR1A |= _BV(COM1B0); } OCR1A = 0; OCR1B = 0; TCCR1B = 0x00; TCCR1B |= PWM_PRESCALLER_CONFIG; // ustawienie stanów początkowych wyjść DIR if (!MOTOR1_DIR_NEGATE) clr(MOTOR1_DIR_PORT, MOTOR1_DIR_PIN); else setb(MOTOR1_DIR_PORT, MOTOR1_DIR_PIN); if (!MOTOR2_DIR_NEGATE) clr(MOTOR2_DIR_PORT, MOTOR2_DIR_PIN); else setb(MOTOR2_DIR_PORT, MOTOR2_DIR_PIN); // ustawianie mocy motor1_set_power(MOTOR1_DEFAULT_POWER); motor2_set_power(MOTOR2_DEFAULT_POWER); } /** * Ustawia moc silnika 1 wyrażoną w % */ void motor1_set_power(unsigned char power) { if (power < MOTOR1_MAX_POWER) { motor1_power_config = power * 10; } else { motor1_power_config = MOTOR1_MAX_POWER * 10; } } /** * Ustawia moc silnika 2 wyrażoną w % */ void motor2_set_power(unsigned char power) { if (power < MOTOR2_MAX_POWER) { motor2_power_config = power * 10; } else { motor2_power_config = MOTOR2_MAX_POWER * 10; } } /** * Zatrzymanie silnika 1 */ void motor1_stop() { OCR1B = 0; } /** * Zatrzymanie silnika 2 */ void motor2_stop() { OCR1A = 0; } /** * Uruchomienie silnika 1 * obroty w przód */ void motor1_forward() { // zatrzymanie silnika motor1_stop(); // opóźnienie if (MOTOR1_DELAY > 0) { wait_ms(MOTOR1_DELAY); } else { wait_ms(1); } // ustawienie kierunku if (!MOTOR1_DIR_NEGATE) clr(MOTOR1_DIR_PORT, MOTOR1_DIR_PIN); else setb(MOTOR1_DIR_PORT, MOTOR1_DIR_PIN); // opóźnienie if (MOTOR1_DELAY > 0) { wait_ms(MOTOR1_DELAY); } else { wait_ms(1); } // uruchomienie silnika OCR1B = motor1_power_config; } /** * Uruchomienie silnika 2 * obroty w przód */ void motor2_forward() { // zatrzymanie silnika motor2_stop(); // opóźnienie if (MOTOR2_DELAY > 0) { wait_ms(MOTOR2_DELAY); } else { wait_ms(1); } // ustawienie kierunku if (!MOTOR2_DIR_NEGATE) clr(MOTOR2_DIR_PORT, MOTOR2_DIR_PIN); else setb(MOTOR2_DIR_PORT, MOTOR2_DIR_PIN); // opóźnienie if (MOTOR2_DELAY > 0) { wait_ms(MOTOR2_DELAY); } else { wait_ms(1); } // uruchomienie silnika OCR1A = motor2_power_config; } /** * Uruchomienie silnika 1 * obroty w tył */ void motor1_backward() { // zatrzymanie silnika motor1_stop(); // opóźnienie if (MOTOR1_DELAY > 0) { wait_ms(MOTOR1_DELAY); } else { wait_ms(1); } // ustawienie kierunku if (!MOTOR1_DIR_NEGATE) setb(MOTOR1_DIR_PORT, MOTOR1_DIR_PIN); else clr(MOTOR1_DIR_PORT, MOTOR1_DIR_PIN); // opóźnienie if (MOTOR1_DELAY > 0) { wait_ms(MOTOR1_DELAY); } else { wait_ms(1); } // uruchomienie silnika OCR1B = motor1_power_config; } /** * Uruchomienie silnika 2 * obroty w tył */ void motor2_backward() { // zatrzymanie silnika motor2_stop(); // opóźnienie if (MOTOR2_DELAY > 0) { wait_ms(MOTOR2_DELAY); } else { wait_ms(1); } // ustawienie kierunku if (!MOTOR2_DIR_NEGATE) setb(MOTOR2_DIR_PORT, MOTOR2_DIR_PIN); else clr(MOTOR2_DIR_PORT, MOTOR2_DIR_PIN); // opóźnienie if (MOTOR2_DELAY > 0) { wait_ms(MOTOR2_DELAY); } else { wait_ms(1); } // uruchomienie silnika OCR1A = motor2_power_config; } to jest cały kod z pliku "motor" ja mam tak od kiedy pamiętam zawsze uczyłem się od końca... najpierw składam zabawkę a na końcu sprawdzam jak miałem to zrobić...
  22. dwie pierwsze konstrukcje były budowane po to by zweryfikować założenia konstrukcyjne. zdawaliśmy sobie sprawę, że nic nie wygramy. przy demolce 1 skakaliśmy ze szczęścia, że takie coś stawia jakikolwiek opór. kto widział opis ten wie dla czego:) nie wiem czy zauważyłeś ale właśnie usiłuję się nauczyć przeprogramowywać robota by coś osiągnąć, bo dopiero teraz ma to jakikolwiek sens. moim zdaniem specjalne uczenie się programowania gdy nie wie się dokładnie jak zbudować robota jest zbędne. bo bez sprawnej konstrukcji nawet najlepszy program nic nie zdziała... wiem że działa to też w drugą stronę ale program od UTP nie jest najgorszy i na początek wystarczy. [ Dodano: 18 Wrz 10 03:31 ] jeszcze małe pytanie jeżeli dobrze rozumiem poniższy fragment kodu mówi że moc silników ustawiona jest na 10% mam rację? void motor1_set_power(unsigned char power) { if (power < MOTOR1_MAX_POWER) { motor1_power_config = power * 10; } else { motor1_power_config = MOTOR1_MAX_POWER * 10; } }
  23. Do użytkownika Luko programowanie i budowa robota to dwie różne sprawy. można zbudować robota nie programując go i tak właśnie zrobiliśmy... Co do opisu projektu "Yokozuna" jest ciekawy i w ogóle, ale nie do konstrukcji którą posiadam (mam 3 czujniki odległości, a program jest na 2) Co do sposobu mojej nauki uczenie się z książek i notatek zajmuje mi o wiele więcej czasu niż rozpracowanie gotowego projektu ogarnąłem go w 3 dni żadnego kursu w tyle bym nie skończył. jak pisałem wyżej efekt pracy opiszę we wtorek lub środę bo wtedy będę mógł podłączyć układ do robota bardzo rzadko powtarzam sobie wiadomości przed sprawdzianami po prostu podchodzę z wiedzą zdobytą na lekcji jeżeli chodzi o przedmioty ścisłe zazwyczaj kończy się to 5 lub 4, a humanistyczna 3 lub 4, więc o swoje wakacje się nie martwię Co do kursu wprowadzania zmian do programu mini-sumo(bo to chyba odpowiedniejsza nazwa) sam taki napiszę w wolnej chwili jeżeli oczywiście zmiany, które wprowadziłem nie uszkodzą czegoś. co do idei zawodów moim zdaniem robot to nie tylko jego program ale i konstrukcja. wiele osób jeździ na zawody z oryginalnym programem od UTP Bydgoszcz, faktem jest, że rzadko zachodzą daleko ale mogą być z siebie dumni że z tak ograniczającym programem coś osiągnęli. nie chodziło mi o gotowe rozwiązanie a napisanie np. który plik mogę modyfikować a którego kategorycznie zabrania się ruszać; czy wystarczy otworzyć "makefile" w kompilatorze czy wszystkie pliki zawierające "instrukcję działania" dzisiaj już wiem, że wystarczy "makefile" ale dwa dni temu nie. nadal nie wiem czy czegoś nie zepsułem i nie będę musiał odkupować płytki sterującej.
  24. kurs dla osób chcących programować robota mini-sumo moim skromnym zdaniem był by połączeniem TEGO i TEGO oraz TEGO (można by co nieco uściślić). zakładam że dla Was wystarczył by któryś z nich żeby wszystko ogarnąć (ja musiał bym poprosić użytkownika staszek by opisał projekt od UTP tak samo jak projekt "Yokozuna"). szukam konkretnych informacji dla tego przekopywanie się przez całe kurs było by stratą czasu, a programowaniem na serio planuję zająć się za niecałe 2 lata bo wtedy planuję iść na studia a jak wiadomo tam są dłuższe wakacje:) nie wiem czy ktoś z Was spotkał się kiedyś z urządzeniem o nazwie "coachlab", można do niego podłączać różne urządzenia pomiarowe(termometr, miernik światła, miernik odległości, woltomierz, itp). dodatkową funkcją coachlaba jest programowanie 3 lamp lub innych sprzętów zasilanych napięciem około 5V. można kazać im włączać się według schematu lub gdy dane urządzenie pomiarowe osiągnie ustaloną wartość. obsługa tego programu jest dopiero banalnie prosta, schemat działania wpisuje się ręcznie lub za pomocą specjalnych guzików (czegoś podobnego szukałem do pisania programu mini-sumo) co do programatora największym problemem dla mnie jest kupowanie przez internet... nie lubię kupować "kota w worku" dziękuję za pomoc
×
×
  • Utwórz nowe...