Popularny post wn2001 Napisano Lipiec 27, 2019 Popularny post Udostępnij Napisano Lipiec 27, 2019 Do budowy (już z kilka ładnych lat temu) czworonożnego robota w układzie ssaka zainspirowały mnie projekty Kolegi @deshipu, któremu w tym miejscu chciałbym podziękować za pomoc między innymi przy opracowaniu ramki chodu. Robot nazywa się "Garfield", powstał przy okazji "eksperymentów" z robotami kroczącymi. Muszę przyznać, że świetnie spełnia swoją podstawową funkcję, jaką jest przyciąganie uwagi mniej wtajemniczonej publiczności przy okazji różnych pokazów, szkolnych eventów itd. BTW - Aktualnie pracuję nad znacznie większym projektem, i zauważyłem, że zainteresowanie danym projektem osób niewgłębiających się w tajniki techniczne nie zawsze jest proporcjonalne do stopnia jego skomplikowania Przechodząc jednak do konkretów, na początek kilka zdjęć: Mechanika Mechanika robota jest wręcz banalna - jest to 8 serw SG-90, po 2 na każdą nogę. Cztery serwa, będące pierwszymi stopniami swobody u nóg, są przymocowane do płytki uniwersalnej za pomocą ciepłego kleju. Następnie do orczyków przykręcone są kształtki drukowane 3D, a na do drugiego końca przekręcone są serwa pełniące funkcję "kolan". Następnie do tych serw przyklejone są (znowu hot glue ) końcówki-stopy. Aby zwiększyć przyczepność, warto założyć tam jakieś odcinki gumowej rurki, ja akurat miałem modelarską, dostarczającą paliwo do silnika, bardzo dobrze sprawdziła się w tej roli. Korpus, jak wspomniałem wcześniej, tworzy płytka uniwersalna z całością elektroniki (o której za chwilę) 7x9cm; akumulator LiPol 2S 800mAh zamocowany jest pod spodem za pomocą 2 gumek-recepturek. Rozwiązanie to w tym konkretnym robocie sprawdziło się bardzo dobrze dzięki prostocie, pewności zamocowania i możliwości szybkiej wymiany źródła zasilania Elektronika Elektronika tego typu robota również nie należy do najtrudniejszych, bo jej głównym zadaniem jest kontrola 8 serw. Na początek zasilanie - dostarczeniem 5V potrzebnego do zasilania Arduino Nano i serwomechanizmów zajmuje się stabilizator LM7805 z radiatorem TO220 i dwoma kondensatorami. Wiem, że nie jest to idealne rozwiązanie, gdyż pobierając około 1A (w trakcie normalnej pracy) tracone jest (8V (gdy akumulator jest prawie naładowany) - 5V) * 1A = 3W mocy, a stabilizator ten przestaje działać przy napięciu wejściowym około 7V. Pierwsza wada powoduje, że stabilizator potrafi być gorący, a druga jest w pewien sposób plusem - nie jest możliwe rozładowanie ogniw poniżej słynnych 3V/celę Niemniej, przetwornica impulsowa byłaby pozbawiona tych wad, ale mój układ też działa. Dobrze, następnie napięcie wyjściowe trafia do Nano i serw, które są bezpośrednio z niego wysterowane. Ponadto, na płytce znajduje się też TSOP4838 wraz z elementami pomocniczymi, które pozwalają sterować robotem za pomocą podczerwieni - wykorzystałem do tego celu pilot od aparatu SONY, który zawiera kilkanaście przycisków, a ponadto jest mały i podręczny. Ponieważ na płytce zostało nieco wolnego miejsca, przylutowałem dwie diody 10mm, czerwoną i żółtą, coś w stylu oczu. Ostatnia sprawa - do połączenia akumulatora z płytką wykorzystałem złącze T-DEAN. Zdecydowałem się na takie rozwiązanie, ponieważ tego typu złącze mimo, że nieco przestarzałe, jest pewne i niezawodne - w każdym bądź razie, gdyby ktokolwiek chciałby kiedyś wymienić złącze w swoim akumulatorze LiPo, musi pamiętać o najwyższych środkach ostrożności. Oprogramowanie Program został napisany rzecz jasna w Arduino IDE, do sterowania serwomechanizmami wykorzystałem bibliotekę Servo, a do czujnika TSOP - IRremote. Linia danych z tegoż czujnika podłączona jest do pinu 2 w Nano, który potrafi obsłużyć przerwanie. Wówczas, za pomocą polecenia attachInterrupt() Arduino, gdy odbierze sygnał, modyfikuje wartość zmiennej przechowującej informację, jaki przycisk właśnie naciśnięto. Następnie na początku pętli loop() sprawdzane jest, jaką funkcję wybrał użytkownik, może być to ruch - w programie zapisane zostały ramki chodu naprzód, do tyłu, w lewo i prawo, a jeżeli jest to jakaś pozycja (typu złożony/rozłożony, korpus wysoko/nisko itd.), to prostu są to punkty, do których ustawić się mają końcówki nóg. Rzecz jasna nie podaję kątów, a punkty w układzie XY (kinematyka odwrotna) - brzmi to skomplikowanie i groźnie, a wcale tak nie jest - dla dwuwymiarowej płaszczyzny wystarczy znać tw. Pitagorasa i tw. cosinusów - nie różni to się zbytnio od znalezienia kątów w trójkącie o znanych długościach boku, a znacząco ułatwia programowanie ruchów w tego typu konstrukcjach. Obowiązkowy film To opis w dużym skrócie, gdyby ktoś miał jakiekolwiek pytania - proszę śmiało pisać Pozdrawiam, wn2001 8
Treker (Damian Szymański) Sierpień 1, 2019 Udostępnij Sierpień 1, 2019 @wn2001, właśnie zaakceptowałem opis. Dziękuję za przedstawienie ciekawego projektu, zachęcam do prezentowania kolejnych DIY oraz aktywności na naszym forum 1
deshipu Sierpień 4, 2019 Udostępnij Sierpień 4, 2019 Gratuluję robota, bardzo się cieszę, że moje konstrukcje kogoś zainspirowały. Prawdę mówiąc od dawna się zastanawiam nad robotem o podobnej konstrukcji, ale jakoś się nie mogę za nic zabrać. Zasilanie jest dużym problemem jeśli chcesz, żeby robot był prosty. Ja w swoich robotach po prostu zasilam serwa bezpośrednio z LiPO (1S) — co prawda napięcie jest niższe niż producent chce, ale można to skompensować nieco wyższą częstotliwością sygnału PWM dla serw, a odpada dużo problemów, no i baterię 1S dużo łatwiej ładować. 2
wn2001 Sierpień 5, 2019 Autor tematu Udostępnij Sierpień 5, 2019 (edytowany) @deshipu, za gratulacje bardzo dziękuję Cytat Prawdę mówiąc od dawna się zastanawiam nad robotem o podobnej konstrukcji, ale jakoś się nie mogę za nic zabrać. A ten robot? Albo robot (nie mogę teraz na szybko znaleźć), z kółkami na końcach nóg? Nie rozwijasz już tych projektów? Oglądając Twoje nowe projekty, widzę, że zainteresowałeś się mini-konsolami do gier , również gratuluję inwencji twórczej i ciekawych rozwiązań Cytat Zasilanie jest dużym problemem jeśli chcesz, żeby robot był prosty. Ja w swoich robotach po prostu zasilam serwa bezpośrednio z LiPO (1S) — co prawda napięcie jest niższe niż producent chce, ale można to skompensować nieco wyższą częstotliwością sygnału PWM dla serw, a odpada dużo problemów, no i baterię 1S dużo łatwiej ładować. Zgadza się, zrobiłem tak np. tym robotem Tylko z ciekawości, bo nie miałem okazji testować - czy można w bibliotece Servo dla Arduino zmienić PWM, czy trzeba zrobić generowanie sygnału samemu od podstaw? Pozdrawiam Edytowano Sierpień 5, 2019 przez wn2001 1
deshipu Sierpień 7, 2019 Udostępnij Sierpień 7, 2019 Wszystkie moje roboty leżą w pudełkach i czekają na lepsze czasy. Główny problem jaki z nimi mam jest taki, że łatwe podstawy jakoś już opanowałem i teraz żeby zrobić cokolwiek dalej to trzeba włożyć trochę pracy i się nauczyć paru nowych rzeczy — albo doszlifować to co już jest. A lenistwo nie pozwala. Ale kiedyś pewnie do tego wrócę. Biblioteka Servo na UNO jest napisana bardzo na styk i za bardzo się tam nie da nic zmienić nie psując jej — pewnie można by ostrożnie przestawić timer albo coś podobnego, ale dla mnie dużo łatwiej było w pewnym momencie przestawienie się na zewnętrzny chip do generowania PWM — najpierw była to druga atmega, potem PCA9685. Ostatnio bawiłem się armami i próbowałem po prostu wykorzystać wszystkie sprzętowe kanały PWM, ale to jest trochę pole minowe — w ostatnim projekcie zabrakło mi dwóch serw, bo okazało się, że jest bug w bibliotekach, których używałem i pozwoliły mi stworzyć więcej PWM-ów niż to możliwe. 2
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »