jedna kostka i ramię robota - czy da się?

Mindstorms, WeDo, Lego Digital Desinger, Stud.io

Moderatorzy: Mod Team, Mod Team

Autor
Wiadomość
Awatar użytkownika
arturh
Posty: 48
Rejestracja: 2012-03-27, 15:18
Lokalizacja: Warszawa
brickshelf: Proszę uzupełnić

 

jedna kostka i ramię robota - czy da się?

#1 Post autor: arturh »

Tytuł może trochę enigmatyczny, ale chodzi mi o zrobienie czegoś takiego:

Obrazek

Tylko że silnikami 1,2 i 3 mogę sterować kostką i standardowym zestawem NXT, ale co z zaciskaniem chwytaka? Potrzebuję 4 silnik i teraz pytania:
1. czy można sterować jedną kostką większą ilością silników niż 3?
2. czy można sterować kostką silnikami PF? (inaczej niż mechanicznie włączać/przełączać na pilocie itp)?
3. może jest jakiś sposób by silniki 2 i 3 połączyć w jeden - chodzi mi o możliwość trafienia w konkretny punkt? (nie chcę suwnicy)
4. może niech jeden silnik NXT przełącza funkcję ciągle chodzących PFów - ale wówczas stracę bardzo na precyzji.

Tak, na prawdę to jeszcze w chwytaku przydałby się jeszcze jeden silnik - ale o tym to już nawet nie śnię...

Jetboy

Re: jedna kostka i ramię robota - czy da się?

#2 Post autor: Jetboy »

arturh pisze:czy można
Można użyć tego:
http://www.mindsensors.com/index.php?mo ... tion=40:40

Pierwszy na liście - motor multiplexer, żeby podłączyć więcej silników do kostki, ale lepiej żeby więcej niż 3 nie pracowały na raz. (nie testowałem tego).

Albo tego:
http://www.hitechnic.com/cgi-bin/commer ... ey=NIL1046
do sterowanie PFami.
Jak chcesz mogę Ci pożyczyć do pyrkonu.

goldsun

#3 Post autor: goldsun »

Trochę w tym temacie kombinowałem i wyszło mi, że EV3 to jest to czego potrzebuję :-) (tam są 4 wyjściowe porty do silników, w dodatku mniejsze serwa bardziej pasują niż te kolumbryny NXTowe do ręki/nadgarstka).
Nie sprawdzałem używania multiplekserów bo nie mam.
Kombinowałem, żeby nowe serwo PF mi przełączało funkcje ale to też słabo zdaje egzamin.
Sprawdzałem zbudowanie demultipleksera z samych PFów - wyszło bardzo słabo - duże straty mocy na wyjściach, a demultiplekser był dość spory (był zabudowany w Johhnym w klatce piersiowej).
Sprawdzałem i dalej sprawdzam możliwość, żeby 1 silnik przełączał funkcje które będzie napędzał inny silnik - nie wiem jak duże ramię chcesz zrobić, ale mi zawsze wychodzi, że ręka i mechanizmy mi się za bardzo rozrastają. Mnie chodziło po głowie, żeby pełny obrót w nadgarstku przełączał chwytak/palce, albo zginanie ręki w nadgarstku - da się zrobić, ale jak na razie - za duże mi wychodzi i to wygląda bardziej jak łapa potwora a nie zgrabna rączka :-) potem w dodatku to trzeba jeszcze podnosić.
Chcę jeszcze sprawdzić przełączanie z wykorzystaniem 2 wież IR + 6 przełączników PF, co da mi możliwość sterowania 6 mechanizmami (3 na raz), ale jeszcze to buduję.
Zasada prosta 1 silnik kręci wszystkimi 6 switchami, na zasadzie jak 1 się włącza w którąś stronę, to drugi się w tym czasie wyłącza i tak do 3 kanałów z wież, do 6 silników. Podobny trik tylko z włączaniem/wyłączaniem BB zrobił Piotrek w Terminatorze.

Edit: Zapomniałem napisać - jest oryginalny Legowy kabelek który pozwala na podłączenie PF do NXT.
Ostatnio zmieniony 2013-02-05, 07:13 przez goldsun, łącznie zmieniany 3 razy.

socha6
Posty: 10
Rejestracja: 2012-11-07, 10:19
Lokalizacja: Przemków / Wrocław
brickshelf: Proszę uzupełnić

 

#4 Post autor: socha6 »

Też miałem w planach zrobić ramie robota ale na "niekoszernych" serwomechanizmach modelarskich, coś w ten deseń:
http://www.youtube.com/watch?v=qayoK_ThfYQ
zaletą tego rozwiazania jest to że można jedną kostką wysterować wiece niż 4 silniki (tzn. serwa),
co prawda Servo Controller od mindsensors jest dość drogi, ale są dużo tańsze alternatywy, np. taka:
http://lejos.sourceforge.net/forum/view ... f=6&t=2952
zrobiłem taki kontroler i działa bardzo dobrze

Awatar użytkownika
arturh
Posty: 48
Rejestracja: 2012-03-27, 15:18
Lokalizacja: Warszawa
brickshelf: Proszę uzupełnić

 

#5 Post autor: arturh »

Z radością kupiłem IR Link do sterowania PFami. Ale teraz to oprogramować :(
Jest proste:

Kod: Zaznacz cały

HTPFComboDirect(S3, PF_CHANNEL_1, PF_CMD_STOP, PF_CMD_REV);
gdzie ruszam do tyłu niebieskim PF na porcie 3 NXT, na kanale 1 IR;
ale mi mało :)
znalazłem takie rozwiązanie, gdzie tworzy się taką strukturę:

Kod: Zaznacz cały

    inI2Ccmd[0]  = 0x02;
    inI2Ccmd[1]  = 0x45;                    //starting point in IR Link data buffer
    inI2Ccmd[2]  = 0xAA;
    inI2Ccmd[3]  = 0x10;
    inI2Ccmd[4]  = 0x66;
    inI2Ccmd[5]  = 0xFF;
    inI2Ccmd[6]  = 0xCC;
    inI2Ccmd[7]  = 0x00;
    inI2Ccmd[8]  = 0x76;
    inI2Ccmd[9]  = 0xCC;                    //data
    inI2Ccmd[10] = 8;                       //data length
    inI2Ccmd[11] = 0;                       //2400bps mode
    inI2Ccmd[12] = 0x01;
i wrzuca taką surowiznę do kostki

Kod: Zaznacz cały

I2CBytes(IN_3, inI2Ccmd, temp, outbuf);
Ale co to za struktura? Co jest czym? Macie jakieś SDK jak ten "szum" jest interpretowany?
BTW: nic się nie dzieje jak to uruchamiam :(

Awatar użytkownika
arturh
Posty: 48
Rejestracja: 2012-03-27, 15:18
Lokalizacja: Warszawa
brickshelf: Proszę uzupełnić

 

#6 Post autor: arturh »

WIP na chwilę obecną :)

[youtube]http://www.youtube.com/watch?v=gtOlVkncxI8[/youtube]

walka trwa...

pierwsze "przeciągnięcie się" to ustalenie pozycji zerowej.
Ostatnio zmieniony 2013-02-23, 23:43 przez arturh, łącznie zmieniany 1 raz.

Jetboy

#7 Post autor: Jetboy »

Nieźle! Teraz jeszcze dodać obliczanie IK i starowanie za pomocą poruszania telefonem i będzie super mistrz :)

SkyKnight

#8 Post autor: SkyKnight »

czy dobrze rozumiem, że skorzystałeś z 4 serwo, tylko ten czwarty jest obsługiwany przez podczerwień? (tak rozumiem ten post z kodem, ale pewny nie jestem) Też chciałbym takie ramię zbudować na bazie jednej kostki NXT (gdyż tylko tyle ich mam ;) ), ale nie mogę wymyślić jak się zmieścić na 3 wyjściach korzystając z 'koszernych' rozwiązań :)

goldsun

#9 Post autor: goldsun »

SkyKnight pisze:czy dobrze rozumiem, że skorzystałeś z 4 serwo, tylko ten czwarty jest obsługiwany przez podczerwień? (tak rozumiem ten post z kodem, ale pewny nie jestem) Też chciałbym takie ramię zbudować na bazie jednej kostki NXT (gdyż tylko tyle ich mam ;) ), ale nie mogę wymyślić jak się zmieścić na 3 wyjściach korzystając z 'koszernych' rozwiązań :)
Najprościej to jedno serwo przełączające 2 diving ringi do których napędy idą z dwóch pozostałych silniczków. W ten sposób z 3 silników masz 4 napędy. Jedyne wady to: jednocześnie mogą poruszać się tylko 2 mechanizmy i straty mocy.
Schemat logiczny napędzania 8 wyjść przez 4 silniki masz w moim Johnnym - tu wystarczy ci prostsza wersja.

Awatar użytkownika
arturh
Posty: 48
Rejestracja: 2012-03-27, 15:18
Lokalizacja: Warszawa
brickshelf: Proszę uzupełnić

 

#10 Post autor: arturh »

SkyKnight pisze:czy dobrze rozumiem, że skorzystałeś z 4 serwo, tylko ten czwarty jest obsługiwany przez podczerwień? (tak rozumiem ten post z kodem, ale pewny nie jestem) Też chciałbym takie ramię zbudować na bazie jednej kostki NXT (gdyż tylko tyle ich mam ;) ), ale nie mogę wymyślić jak się zmieścić na 3 wyjściach korzystając z 'koszernych' rozwiązań :)
3 serwa i jeden PF sterowany podczerwienią. 2 czujniki dotykowe i jedna konstrukcja wciskająca klawisz "<" na kostce do kalibracji wszystkiego. W ten sposób mam jeszcze wolny jeden port bo potrzebuje docelowo na czujnik koloru.
Teraz, jak pisze Jetboy, walczę z IK - ale zawalony jestem robotą więc projekt leży :(

Awatar użytkownika
arturh
Posty: 48
Rejestracja: 2012-03-27, 15:18
Lokalizacja: Warszawa
brickshelf: Proszę uzupełnić

 

#11 Post autor: arturh »

Znalazłem chwilę więc podciągnąłem trochę programowanie. Jako że wygodnie pracuje mi się w Builder C++ to kinematykę odwrotną postanowiłem najpierw przygotować właśnie tak, wirtualnie a potem to zaimplementuje w BCC.
Jakby co, to oto jest zaimplementowana kinematyka: program

To jest spakowane zipem exe - ale bez strachu! Nie ma żadnych wirusów a waży 500kb bo musiałem dołączyć biblioteki...
Obrazek
Obsługa - ruszamy suwakami przy przesuwać pozycję docelową ramienia.

ODPOWIEDZ