Skocz do zawartości

Pytania odnośnie sterowania quadrapod'em


Pomocna odpowiedź

Napisano

Witam, w dziedzinie robotyki jestem dopiero żółtodziobem. Niedawno ukończyłem mojego pierwszego robota, światłoluba. Teraz chciałbym się zająć czymś bardziej ambitnym, a mianowicie quadrapodem.

Żeby nie było zbędnych komentarzy od razu powiem jakie mam predyspozycje do wykonania swojego zadania. Przez długi czas bawiłem się w konstruowanie i sterowanie modeli samolotów rc. Ostatnimi czasy postanowiłem się zająć robotyką. Jednak różnica pomiędzy robotyką a modelarstwem jest dosyć spora. W modelarstwie skupiałem się bardziej na wykonaniu modelu, a cała elektronika nie była bardzo skomplikowana. W robotyce całą uwagę skupia się właśnie na układach elektronicznych. Druga sprawa to programowanie. Swojego czasu bawiłem się w programowanie programów cheaterskich dla gier komputerowych (tzw. botów) w języku C w oparciu o biblioteki, oprócz tego na lekcjach informatyki programowałem w C różne działania matematyczne. Jednak nie posiadam dużej wiedzy na temat programowania procesorów, ale można się tego w międzyczasie poduczyć😉

A teraz wracam do quadrapoda. Robot ma posiadać po 3 stopnie swobody na nogę. Jako sterownik 12 serw zamierzam użyć płytki arduino uno, gdyż jest bardzo ciekawa stronka, w której jest sporo informacji o jej programowaniu. Układ zamierzam zasilać li-polem.

Do sterowania mam zamiar użyć aparatury: Hitec Laser 4. Początkowo wydawało mi się, że takich aparatur nie stosuje się w robotyce, ale gdy przejrzałem sobie lynxmotion, ujrzałem w ofercie mój nadajnik. W opisie przeczytałem, że nadaje się do sterowania quadrapodami. Niestety nie za bardzo wiem w jaki sposób steruje się poprzez aparaturę rc roboty zdalnie sterowane. W modelarstwie zasada była prosta. Miałem aparaturę i odbiornik 4kanałowy, do każdego kanału było przypisane jedno urządzenie (np. kanał: 1-silnik, 2-ster wysokości, 3-lotki, 4-ster kierunku). W sterowaniu robotem pod jednym kanałem nie będzie urządzenie, ale czynność, którą powoduje ruch kilku serwomechanizmów. Dlatego nie wiem w jaki sposób mam podpiąć do układu odbiornik i czy muszę programować aparaturę do sterowania robotem.

Będę bardzo wdzięczny za udzielenia mi tych informacji.

Musisz podpiąć odbiornik pod procesor, tam dopiero na podstawie podanych informacji wysterować serwa. Nie wiem jak dokładnie, bo nigdy tego nie robiłem, ja wykorzystałem moduły radiowe i sam zrobiłem pilot.

Quadropod to dość skomplikowana konstrukcja, jesteś pewien że chcesz właśnie to budować jako swojego drugiego robota? Polecam zrobić najpierw projekt w CAD'zie.

  • Lubię! 1

Sterowania powinno wyglądać tak, że wejścia (piny portów ustawione jako wejściowe) mikrokontrolera podpinasz tam gdzie normalnie podpiął byś serwomechanizmy, mikrokontroler w łatwy sposób może odczytać sygnały sterujące z odbiornika modelarskiego i na ich podstawie (np. odbiera sygnał odpowiadający sygnałowi który wychyliłby lotkę samolotu w lewo) wysterowuje odpowiednio (w odpowiednią stronę i z odpowiednim opóźnieniem) serwa znajdujące się w nogach robota.

  • Lubię! 1

Jeśli chcesz pomocy to ja ze swej strony oferuję swoją. Wiem jak za pomocą typowej apki wysterować co zechcę. Mam za sobą sterownik światełek do modeli rc w skali 1:10. sam zajmuję się driftem modeli w skali 1:10.

Tu masz filmik poglądowy jak realizowałem odbiór z typowego odbiornika modelarskiego. podpinam się pod odbiornik i heja, ale dziełajut w BASCOM.

Łącznie z zapamiętywaniem nastaw aparatury jak w ponizszym filmiku:

  • Lubię! 1

Wielkie dzięki, teraz wszystko rozumiem 🙂

Sterowania powinno wyglądać tak, że wejścia (piny portów ustawione jako wejściowe) mikrokontrolera podpinasz tam gdzie normalnie podpiął byś serwomechanizmy, mikrokontroler w łatwy sposób może odczytać sygnały sterujące z odbiornika modelarskiego i na ich podstawie (np. odbiera sygnał odpowiadający sygnałowi który wychyliłby lotkę samolotu w lewo) wysterowuje odpowiednio (w odpowiednią stronę i z odpowiednim opóźnieniem) serwa znajdujące się w nogach robota.

czyli mam to rozumieć w taki sposób, że jak mam 4kanałowy odbiornik to potrzebuję na niego 4wejść mikrokontrolera (po 1 na kanał) i odpowiednio każdy kanał zaprogramować? Czyli moja płytka mająca 14pinów nie wystarcza, bo 12 idzie na serwa, a 4 na odbiornik 😋 .

Quadropod to dość skomplikowana konstrukcja, jesteś pewien że chcesz właśnie to budować jako swojego drugiego robota? Polecam zrobić najpierw projekt w CAD'zie.

wiem, że to będzie bardzo skomplikowane do wykonania, ale co do zbudowania modelu (po zaprojektowaniu go w CADzie) to wiem, że dam radę. Gorzej z programowaniem...

Jeśli chcesz pomocy to ja ze swej strony oferuję swoją. Wiem jak za pomocą typowej apki wysterować co zechcę. Mam za sobą sterownik światełek do modeli rc w skali 1:10. sam zajmuję się driftem modeli w skali 1:10.

Tu masz filmik poglądowy jak realizowałem odbiór z typowego odbiornika modelarskiego. podpinam się pod odbiornik i heja, ale dziełajut w BASCOM.

tylko nie wiem czy takie konstrukcje jak quadrapod da się w ten sposób wysterować :/

czyli mam to rozumieć w taki sposób, że jak mam 4kanałowy odbiornik to potrzebuję na niego 4wejść mikrokontrolera (po 1 na kanał) i odpowiednio każdy kanał zaprogramować? Czyli moja płytka mająca 14pinów nie wystarcza, bo 12 idzie na serwa, a 4 na odbiornik .

Dobrze to rozumiesz. 14 pinów to bardzo mało, po pierwsze zabraknie na 4 kanały i 12 serw a poza tym nie będziesz mógł dodać żadnych ulepszeń ani bajerów. Nie interesowałem się nigdy arduino ale wiem, że są większe (z większą ilością wyprowadzonych wejść/wyjść) płytki.

Dobrze to rozumiesz. 14 pinów to bardzo mało, po pierwsze zabraknie na 4 kanały i 12 serw a poza tym nie będziesz mógł dodać żadnych ulepszeń ani bajerów. Nie interesowałem się nigdy arduino ale wiem, że są większe (z większą ilością wyprowadzonych wejść/wyjść) płytki.

Jest również arduino mega 54pinów: http://allegro.pl/arduino-mega-atmega1280-kabel-usb-gratis-i1334521970.html

128KB pamięci flash wystarczy w zupełności? Nie chcę kupować 2razy droższej płytki z 256KB.

128KB pamięci flash wystarczy w zupełności? Nie chcę kupować 2razy droższej płytki z 256KB.

8kB pewnie by już wystarczyło. Ale RAMu nigdy za wiele. 🙂 Ta wersja arduino spokojnie ci wystarczy, tylko, że jest strasznie droga a nic nie niej nie ma. Ale jak się uparłeś na arduino to może być.

Jak dla mnie to mocno drogo. Taki trochę przerost formy nad treścią.

tylko nie wiem czy takie konstrukcje jak quadrapod da się w ten sposób wysterować :/

Co się nie da? Wszystko się da, przecież to technika mikroprocesorowa. Tu teoretycznie nie ma rzeczy niemożliwych.

Pobierasz impulsy z każdego kanału odbiornika i przetwarzasz, cała reszta leży w sofcie.

Z tym, że normalne Arduino ma 14 pinów I/O cyfrowych i jeszcze 6, które mogą służyć jako wejścia analogowe, czyli razem 22 🙂

Co do flasha w procesorze, do quadropoda wystarczyłoby może rzeczywiście 8kB, ale bezpieczniej będzie wybrać procesor w większą ilością, bo te 8kB może wyjść na styk. Ja do wysterowania 12 serw w hexapodzie używam więcej.

Zastanawiałeś się już jak chcesz zasilać serwa?

Ja do wysterowania 12 serw w hexapodzie używam więcej.

Tutaj powinien być komentarz TIMONka o nieoptymalnym pisaniu kodu 🙂

Z tym, że normalne Arduino ma 14 pinów I/O cyfrowych i jeszcze 6, które mogą służyć jako wejścia analogowe, czyli razem 22

Przejrzałem z grubsza dokumentacje Arduino Uno i faktycznie wydaje się być wystarczająca: 32kB flashu i 22 piny I/O (wejścia analogowe możesz użyć jak zwykłe piny I/O).

nes86, arduino jest o tyle głupie, że własnie portów ADC nie pozwala wykorzystać jako I/O, przynajmniej nie bezpośrednio (trzeba by robić wstawki czystego C w tym arduinowym języku typu C). Ale może coś się zmieniło, od czasu gdy używałem IDE arduino i swoich robionych płytek nibyarduino.

arduino jest o tyle głupie, że własnie portów ADC nie pozwala wykorzystać jako I/O, przynajmniej nie bezpośrednio

Dlaczego? Spojrzałem tylko na płytkę arduino uno i raczej powinno się dać. Przecież tam siedzi "chyba" zwykły avr a wejścia adc wyprowadzone są bezpośrednio na piny.

KD93 napisał/a:

Ja do wysterowania 12 serw w hexapodzie używam więcej.

Tutaj powinien być komentarz TIMONka o nieoptymalnym pisaniu kodu 🙂

Tylko nie zapominaj, że cinek93 bedzie pierwszy raz programował coś takiego, więc jego pierwszy kod raczej też nie będzie optymalny.

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ę »
×
×
  • Utwórz nowe...