Podłączenie kilku PF do jednego potu NXT/EV3

Mindstorms, WeDo, Lego Digital Desinger, Stud.io

Moderatorzy: Mod Team, Mod Team

Autor
Wiadomość
Awatar użytkownika
jerryp
Posty: 226
Rejestracja: 2011-01-16, 18:23
Lokalizacja: Warszawa
brickshelf: jerryp

 

#16 Post autor: jerryp »

szimonek pisze:(...)Przy okazji przekopałem się przez źródła i okazało się, że LeJOS obsługuje tylko jeden podstawowy tryb współpracy IRLink'a z PF o nazwie direct combo. Jest to tryb najprostszy taki w którym działają małe piloty PF, czyli nie ma sterowania prędkością silnika a brak ciągłego sygnału przez 1,2s oznacza timeout i wyłączenie silnika. Aż się zacząłem wgryzać w dokumentację bo ogólnie kod IRLink'a jest w LeJOS'ie bardzo niedopracowany: z 4 trybów współpracy z PF obsługiwany jest tylko w/w jeden, a komunikacja z RCX jest tylko do, nie można np. przeczytać wartości z czujników podpiętych do RCX.
(...)[/URL]
To jest oczywiście nieprawda. Faktem jest że obsługa irlinka jest zrobiona mocno "na skróty". Mamy jednak do dyspozycji klasę I2CSensor którą przy pomocy informacji ze strony PHILO możemy rozbudować tak że obsłuży wszystkie silniki włącznie z regulacją prędkości.

Awatar użytkownika
szimonek
Posty: 118
Rejestracja: 2006-06-06, 13:24
Lokalizacja: Legionowo
Kontakt:

#17 Post autor: szimonek »

@Waler93: Od razu skojarzyłem o co się oparłeś, bo faktycznie HiTechnic z jakiegoś powodu tak zrobił blok IRLink'a do obsługi pociągów do oficjalnego oprogramowania. Natomiast inne ich bloki obsługują już wszystkie 4 kanały. Powód dla którego tak to zrobili zna tylko producent.

Z oficjalnych bloków dla IRLinka mamy:

305-PF_IRLink.zip - Może wysterować 2 silniki naraz na jednym z 4 kanałów. Sterowanie jest takie jak w przypadku małego pilota PF. Nazwa tego trybu z dokumentacji: PF Combo direct mode
68-PFE_IRLink.zip - Może wysterować 2 silniki naraz na jednym z 4 kanałów. Sterowanie jest takie jak w przypadku dużęgo (trains) pilota PF. Nazwa tego trybu z dokumentacji: PF Combo PWM mode
372-Train_IRLink.zip - Może wysterować 1 silnik na jednym z 3 kanałów. Sterowanie jest takie jak w przypadku dużego (trains) pilota PF, przy czym żeby przyśpieszyć w zadanym kierunku trzeba wysłać polecenie jeszcze raz (wstawić taki sam blok). Wygląda na to, że jest to jakieś uproszczone wykorzystanie trybu: Extended mode
513-PFS IRLink.zip - Może wysterować 1 wybrany silnik na jednym z 4 kanałów. Sterowanie jest takie jak w przypadku dużego (trains) pilota PF. Nazwa tego trybu z dokumentacji: Single PWM output mode
720-IRLink IRBeacon.zip - Zamienia IRLink'a w nadajnik dla czujnika IRSeeker. Blok można go ustawić w jeden z dwóch trybów pracy: 1200Hz i 600Hz.
922-RCX IRLink.zip - Blok do dwukierunkowej komunikacji z kostką RCX poprzez IRLink'a
113-RCXMessage.zip - Blok do sprawdzania czy czujnik nie odebrał wiadomości z kostki RCX lub z pilota RCX.

Z tego wszystkiego najbardziej dziwi mnie fakt, że IRLink nie obsługuje czytania komend z pilotów PF, tylko do tego zrobili osobny sensor o nazwie IRReceiver. Jest to jedyna funkcjonalność której brakuje IRLink'owi do kompletu.
Swoją drogą IRReceiver to bardzo fajnie działający sensor, który w ogóle nie jest obsługiwany w LeJOS. Aby go użyć w jednej konstrukcji, musiałem napisać klasę do jego obsługi, ale żeby być szczerym to wsparłem się mocno jego dokumentacją i forum LeJOS'a :-)

jerryp pisze:To jest oczywiście nieprawda. Faktem jest że obsługa irlinka jest zrobiona mocno "na skróty". Mamy jednak do dyspozycji klasę I2CSensor którą przy pomocy informacji ze strony PHILO możemy rozbudować tak że obsłuży wszystkie silniki włącznie z regulacją prędkości.
Zanim zarzucisz komuś nieprawdę, to przeczytaj ze zrozumieniem to co napisał. Ja napisałem co JEST OBSŁUGIWANE w LeJOS a nie CO MOŻE BYĆ OBSŁUGIWANE gdy sobie to dorobisz. Opisałem przy tym stan aktualny, który się nie zmienił w repozytorium LeJOS NXJ od prawie 3 lat (13.06.2011). Dodatkowo jak podajesz odnośnik do dokumentacji PF to podawaj proszę do najnowszej (v1.2) wersji, a nie do najstarszej.


Warto też nadmienić, że tryby PF combo (pozwalające na sterowanie jednocześnie obydwoma silnikami na danym kanale) mają wbudowany timeout, który powoduje zatrzymanie silnika jeśli komenda nie jest ponawiana co około sekundę. Tryby single PWM i Extended, są odporne na timeout ale pojedyncza komenda potrafi wysterować w pełni tylko jeden silnik (tryb single PWN) podpięty do wieży, lub jeden w pełni ale stopniowo a drugi tylko naprzód/stop. Z tego wynika, że najbardziej elastyczne są tryby combo PWM i single PWM. A obsługi tych trybów w LeJOS brak.
Pozdrawiam
Szymon

Awatar użytkownika
jerryp
Posty: 226
Rejestracja: 2011-01-16, 18:23
Lokalizacja: Warszawa
brickshelf: jerryp

 

#18 Post autor: jerryp »

szimonek pisze:(...)Zanim zarzucisz komuś nieprawdę, to przeczytaj ze zrozumieniem to co napisał.(...)
Dobrze.
szimonek pisze:(...)
Dodatkowo jak podajesz odnośnik do dokumentacji PF to podawaj proszę do najnowszej (v1.2) wersji, a nie do najstarszej(...)
Nie zauważyłem. Wybaczcie czytelnicy.

ODPOWIEDZ