Skocz do zawartości
r_bot

Lego NXT + LeJOS sprawdzenie trzech funkcji

Pomocna odpowiedź

Nie znalazłem lepszego działu, więc piszę tutaj. Zapewne znajdzie się jakaś osoba na forum, która posiada robot lego nxt i korzysta z systemu LeJOS.

Niestety nie posiadam LEGO a chciałbym się dowiedzieć jakie wartości zwracają trzy funkcje.

1.int ecrobot_get_gyro_sensor(U8 port_id). Z tego co wyczytałem to surowe dane z żyroskopu tj. obroty w stopniach na sekundę.

2. int nxt_motor_get_count(U32 n) Przeczytałem, że to jest wychylenie wału silnika w stopniach, i zerowane przy przejściu przez 360 stopni.

3. void nxt_motor_set_speed(U32 n, int speed_percent, int brake). Ta funkcja ma za zadanie utawiać % wypełnienia sygnału PWM.

Czy jest to ktoś w stanie sprawdzić i potwierdzić? Najbardziej mnie interesuje trzecia funkcja czy to tylko samo PWM, czy jakiś regulator prędkości obrotowej.

Dzięki za pomoc.

r_bot

Udostępnij ten post


Link to post
Share on other sites

Przy okazji wspomnę o jednej rzeczy przez którą zmarnowałem godzinę. Żyroskop na POTĘŻNY dryft jeśli porusza się jakkolwiek podczas inicjalizacji. Ogólnie Lego Mindstorms to moim zdaniem jakaś ogromna pomyłka.

Udostępnij ten post


Link to post
Share on other sites

Chumanista, to z dryftem żyroskopu do przewidzenia. Podczas inicjalizacji zapewne sterownik sobie zapisuje odczyt z żyroskopu jako 0, co potem odejmuje od wskazań, właśnie w celu eliminacji dryftu. Nie zgodziłbym się jednak, że Mindstorms to pomyłka - ile ludzi zaczęło przecież od nich swoją naukę robotyki. Wbrew pozorom, można na nich zrobić bardzo rozbudowane projekty, jak np. układacz kostki rubika. Wiadomo, można stworzyć dedykowaną mechanikę, elektronikę i soft do takiego projektu, ale główną zagadką w takim projekcie jest właśnie algorytm. Mechanicznie lego też bardzo rozwija wyobraźnię. Kurde, to jest pomoc dydaktyczna, a nie zabawka 😃

Udostępnij ten post


Link to post
Share on other sites

Tylko właśnie to jest błędny sposób eliminacji dryftu w urządzeniu tej klasy. Dużo lepiej integrować żyroskop z magnetometrem lub akcelerometrem, a jak część kosztuje $30 to nawet użycie jakiegoś 9DOF nie byłoby większym problemem.

Udostępnij ten post


Link to post
Share on other sites

Ja buduję własnego robota. Mam algorytm sterowania robotem z Lego nxt. Chciałbym wiedzieć czy te funkcje robią to co napisałem w temacie? Ma ktoś dostęp do lego?

Udostępnij ten post


Link to post
Share on other sites

tak "na oko", wygląda, że Twoje typy są poprawne 🙂 Co do tego set_speed() wydaje mi się, że jednak napędy w NXT standardowo korzystają ze sprzężenia zwrotnego, na pewno są wyposażone w enkodery (wiadomo to chociażby po funkcji zwracającej wychylenie silnika).

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...