Skocz do zawartości

Lego NXT + LeJOS sprawdzenie trzech funkcji


Pomocna odpowiedź

Napisano

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

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.

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 😃

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.

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?

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).

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...