Chciałbym przedstawić swoją najnowszą pracę, model koparki LEGO, silnie wzorowany na DEMAGU H135:
W tym miejscu pragnę bardzo podziękować kolegom, którzy mi pomagali radą i informacjami. Dziękuję Żbikowi, Genowi, Mistakesowi, Pietruchowi, Mańkowi, Sarielowi, 3domowi i innym, a także pewnemu Panu operatorowi koparek z Kanady. Specjalne podziękowania dla TT za pomoc różną oraz pożyczenie mi czujnika NXT ciśnienia powietrza (w tym temacie szerzej: http://www.00453005_0000002.pl/forum/viewtopic.php?p=208965#208965).
Oryginał wygląda tak:
W TYM MIEJSCU CHCIAŁBYM PRZEŁAMAĆ DOTYCHCZASOWY SPOSÓB PREZENTACJI MOCów, PONIEWAŻ NIE DA SIĘ POGODZIĆ CHĘCI OPISANIA KOPARKI OD STRONY TECHNICZNEJ, Z ZAPOBIEGNIĘCIEM ZIEWANIA PRZY PRZEWIJANIU OPISU PRZEZ OSOBY, KTÓRYCH NIE INTERESUJĄ TECHNIKALIA, A TYLKO FILMY/FOTKI. DLATEGO MÓJ OPIS PODZIELĘ NA DWIE CZĘŚCI. W PIERWSZEJ (KOPARKA W PIGUŁCE) WYSTĄPIĄ TYLKO PODSTAWOWE INFORMACJE, ZDJĘCIA I FILMY. TO WYSTARCZY DLA OSÓB NIEZAINTERESOWANYCH TYM, JAK TO JEST ZBUDOWANE I JAK DZIAŁA.
DRUGA CZĘŚĆ (KOPARKA OD KUCHNI) BĘDZIE TRAKTOWAĆ O BUDOWIE KOPARKI A TAKŻE SPOSOBIE DZIAŁANIA JAK I OPROGRAMOWANIU, KTÓRE NAPISAŁEM DO OBSŁUGI MASZYNY. BĘDĄ TU TAKŻE ZDJĘCIA VIPa.
A WIĘC ZAPRASZAM NA CZĘŚĆ PIERWSZĄ OPISU - KOPARKA W PIGUŁCE:
Mój DEMAG H135 to prawdopodobnie pierwsza koparka pneumatyczna, sterowana zdalnie poprzez bluetooth dzięki NXT, z możliwością płynnego ruchu wszystkich sekcji ramienia (także dzięki napisanemu przeze mnie oprogramowaniu, którego najnowsza wersja radzi sobie z obsługą zaworów pneumatycznych LEGO, będących pod ciśnieniem powyżej 30 PSI, na odległość).
Kilka zdjęć poglądowych:
O wyjątkowości tego modelu świadczy także sposób sterowania nim. Chciałem aby był możliwie jak najbardziej realistyczny. Po to zafundowałem sobie króciutki kurs kopania prawdziwą koparką (film z mojego kiepskiego kopania tutaj: http://www.youtube.com/watch?v=uWLR44vQ-s0). Dzięki nabytej wiedzy, zbudowałem konsolę sterowania do koparki (a także napisałem oprogramowanie sterujące), z dwoma działającymi w dwóch płaszczyznach joyami, o funkcjach odpowiadającym tym, jakie mają takie manipulatory w prawdziwej koparce:
Podstawowe dane techniczne maszyny:
-waga - 5,2kg
-długość (z maksymalnie wyciągniętym ramieniem) - 90 studów
-szerokość - 33 study
-wysokość (z maksymalnie podniesionym ramieniem) - 53 study
W modelu użyłem (koparka+konsola sterująca):
-4 kostki NXT
-1 battery box
-1 batterybox mały (na aku AAA, stoi po przeciwnej stronie kabiny patrząc od przodu, symuluje agregat klimatyzacyjno-chłodniczy i pełni funkcję przeciwwagi dla ciężkiej kabiny. Jest załadowany aku AAA ale nie podłączony elektrycznie do niczego, chodzi tylko o jego wagę).
-1 wieża IR
-1 pilot IR zwykły
-3 czujniki dotyku NXT
-1 czujnik ciśnienia pneumatycznego (więcej w tym temacie: viewtopic.php?p=208965#208965)
-3 silniki NXT (serva)
-4 silniki NXT (konsola sterująca)
-3 silniki XL
-2 silniki medium
-10 siłowników pneumatycznych dużych nowego typu, oraz 4 duże starego
-4 zawory pneumatyczne
-6 pompek pneumatycznych starego typu
-1 manometr pomiaru ciśnienia sprężonego powietrza
-masę innych elementów
Film pokazujący jazdę koparki:
[youtube]http://www.youtube.com/watch?v=wevXoJZW-N8[/youtube]
Film pokazujący operowanie koparką z widokiem konsoli sterującej:
[youtube]http://www.youtube.com/watch?v=BBDD9q-UDaA[/youtube]
Film pokazujący udźwig koparki:
[youtube]http://www.youtube.com/watch?v=AMHkUV2T-QA[/youtube]
Film pokazujący kopanie:
[youtube]http://www.youtube.com/watch?v=CykYCRad104[/youtube]
Film pokazujący kopanie z kabiny operatora:
[youtube]http://www.youtube.com/watch?v=kfxh_YClZZg[/youtube]
Zaznaczam, że oprogramowanie sterujące koparką, które napisałem, jest zaprojektowane tak, że można płynnie i bez przeszkód zmieniać czułość sterowania a także powolność/szybkość ruchów ramienia koparki. Dodatkowo na płynność ruchów ramienia ma wpływ wprawa operatora i operowanie joyami z wyczuciem. Na filmie z premedytacją czasem ruszam ramieniem szybciej a czasem wolniej. Obecny poziom odwzorowania ruchów joyów mi odpowiada, gdyż zapewnia w miarę chęci operatora, zarówno wolne jak i szybkie ruchy.
Co do wyglądu, to starałem się budzie technicowej jak i ramieniu nadać w miarę możliwości charakter MT. Pewne elementy (np. kabina) były już budowane jako MT. W kabinie nieśmiertelny już u mnie (i nie rozbierany od 3 lat) fotel z gumową tapicerką, a także otwierane drzwi. Mam nadzieję, że wygląd się spodoba
Galeria Brickshelf Demaga (po cenzorze):
http://www.brickshelf.com/cgi-bin/galle ... 491020&n=0
Galeria Brickshelf Demaga VIP (po cenzorze):
http://www.brickshelf.com/cgi-bin/gallery.cgi?f=491025
Dziękuję za uwagę i informuję, że dalsza część tekstu będzie już o tym, jak to jest zbudowane a więc Ci których nie interesują technikalia, mogą dalej nie czytać.
---------------------------------------------------------------------------------------------------------
A WIĘC ZAPRASZAM NA DRUGĄ CZĘŚĆ OPISU - KOPARKA OD KUCHNI:
Model ten jest ukoronowaniem moich prac i prób zbudowania systemu, który zapewniał by sprawne operowanie zaworami pneumatycznymi pod ciśnieniem na odległość.Teraz opiszę po kolei mechanikę maszyny, aby przejść następnie do opisu konsoli sterującej. Opisy te będą dotyczyły zarówno strony mechanicznej, jak i programistycznej.
Zaczynamy od podwozia:
Podwozie zbudowane zostało jako nośnik pierwszej z dwch kostek NXT (w której znajduje się 6 akumulatorów), znajdujących się w modelu. Kostka w podwoziu obsługuje Xla obsługującego obrót wieży (redukcja programowa), czujnik ciśnienia pneumatycznego (który poprzez oprogramowanie steruje pracą bądź postojem kompresora), a także napędza 2 Xle służące do napędu kompresora. Dodatkowo kostka w podwoziu służy do emitowania sygnału dźwiękowego (klakson).
W podwoziu znalazły się także 2 silniki PF medium, które poprzez redukcję 24:1 napędzają gąsienice. Z podwozia do wieży "wychodzą" 4 kable i 1 przewód pneumatyczny i poprzez obrotnicę wnikają do wieży (wobec tego nie ma niestety możliwości nieskończonego kręcenia wieżą względem podwozia).
Wieża:
Wieża mieści w swoim wnętrzu kostkę NXT (w której znajduje się 6 akumulatorów), kompresor (złożony z 6 małych pompek pneumatycznych, napędzany 2 silnikami PF XL z przyspieszeniem 1:2), 3 elektrozawory (zawory pneumatyczne LEGO sterowane silnikami NXT-servo), batteryboxa, wieżę IR oraz manometr pneumatyczny. Wieża jest także stelażem, na którym mocuje się płyty poszycia zewnętrznego.
Elektrozawory swoją konstrukcją opierają się na silniku NXT, który obsługując zawór, stanowi jednocześnie jego ramę:
Kostka NXT z wieży napędza 3 elektrozawory, a dzięki swojemu geometrycznemu umieszczeniu, pełni funkcję wraz z batteryboxem, umieszczonym nad nią, przeciwwagi. W przypadku zawieszenia się kostki lub w sytuacji zużycia baterii, jest możliwość ich zmiany bez odłączania wieży (wystarczy obrócić wieżę o 90 stopni w dowolną stronę względem podwozia i jest od spodu wieży dostęp do baterii.
Ramie:
Chciałem, aby ramie wizualnie, jak i zakresem ruchu, przystawało do rzeczywistej koparki. Całe ramie unosi 6 dużych siłowników pneumatycznych nowego typu, II sekcję 4 duże siłowniki pneumatyczne nowego typu, natomiast łyżką sterują 4 duże siłowniki pneumatyczne starego typu. Geometria i zakres ruchów:
Łyżka, jaka jest każdy widzi:
Starałem się za pomocą liftarmów, plateów i płaskich plateów oddać kształt a także wielkość rzeczywistej. Czy się udało, osądźcie sami.
A teraz czas na konsolę sterującą:
Tak jak napisałem wcześniej, chciałem aby w maksymalny sposób działaniem i użytkowaniem a także wyglądem (dwa dwukierunkowe manipulatory) , przypominała rzeczywiste takie urządzenia.
W skład konsoli wchodzą dwie kostki NXT, 3 przyciski (zbudowane na bazie czujników dotyku), 4 silniki NXT (manipulatory) oraz pilot IR. Pilot IR służy do sterowania jazdą i za pomocą wieży IR znajdującej się na wieży koparki, steruje dwoma silnikami PF medium, napędzającymi gąsienice.
Lewy joy służy do ruchów II sekcji ramienia (ruch przód-tył) a także do obrotu wieży (ruch lewo-prawo). Jeśli chodzi o obroty ramienia, to wychylenie joya +/-10 stopni nie powoduje obrotu wieży. Wychylenie joya w przedziale +/-10 - +/-35 stopni powoduje obrót wieży z wolniejszą prędkością (20% mocy silnika XL - redukcja za pomocą softu), natomiast wychylenie joya powyżej +/-35 stopni powoduje obrót wieży z większą prędkością (35% mocy silnika XL - redukcja za pomocą softu). Wciśnięcie pomarańczowego przycisku na kostce, powoduje ustawienie 0 dla aktualnego wychylenia joya na osi obrotu wieży.
Prawy joy służy do podnoszenia/opuszczania całego ramienia (ruch przód-tył) a także ruchu łyżki ruch lewo-prawo).
Przycisk na prawym joyu służy do ustawiania trybu pracy blokada/kopanie. Po wciśnięciu przycisku przy pozycji blokada, następuje przejście w tryb kopania. Ponowne wciśnięcie przycisku powoduje ustawienie wszystkich zaworów w pozycję 0 i przejście w tryb blokady - można wtedy opuścić manipulatory bez wpływu na ruchy ramienia.
Przycisk na lewym joyu służy do ustawiania wszystkich elektroaworów w pozycję 0 (w trybie kopania) przy aktualnych wychyleniach manipulatorów (3 osi na których realizowane jest kopanie).
Przycisk czarny, umiejscowiony między kostkami, służy do uruchamiania sygnału dźwiękowego - klakson.
Kostka NXT lewa w konsoli, łączy się za pomocą bluetooth z kostką NXT w wieży i wymieniają między sobą następujące informacje:
-bieżące ustawienie każdego z trzech elektrozaworów
-ustawianie elektrozaworów w pozycję 0
-poziom baterii w obu kostkach
-sygnał do wyłączania zdalnego kostki w wieży w momencie wyłączania kostki lewej w konsoli
-sygnał trybu pracy: blokada/kopanie
-manualne ustawianie pozycji zerowej każdego z elektrozaworów
Kostka NXT prawa w konsoli, łączy się za pomocą bluetooth z kostką NXT w podwoziu i wymieniają między sobą następujące informacje:
-informacje na temat aktualnego stanu kompresora (pracuje czy stoi), aktualnego ciśnienia w PSI,
-bieżący stan napędu obrotu wieży (stop, ruch z prędkością 1 czy ruch z prędkością 2)
-poziom baterii w obu kostkach
-sygnał do wyłączania zdalnego kostki w podwoziu w momencie wyłączania kostki prawej w konsoli
-sygnał uruchamiający/wyciszający sygnał dźwiękowy - klakson
Teraz omówię menu w obu kostkach NXT konsoli. W lewej kostce NXT, po załadowaniu programu, widzimy następujące menu:
Napis "blokada" oznacza tryb pracy (blokada/kopanie). Napis u góry "nieaktywne" oznacza brak łączności z kostką w wieży. Po kilku sekundach łączność jest automatycznie nawiązywana i widzimy napis "aktywne":
Po wciśnięciu przycisku na prawym joyu, przechodzimy do trybu kopania:
Wartości wyświetlane, to wychylenia 3 osi joyów wyrażone w stopniach. Po wciśnięciu przycisku na lewym joyu, widzimy:
Wszystkie 3 elektrozawory zostały ustawione w pozycję 0. Jeśli teraz wciśniemy przycisk na prawym joyu (ustawimy tryb "blokada") i wciśniemy prawą strzałkę na kostce NXT, zobaczymy menu stanu baterii w kostce NXT konsoli i w kostce NXT znajdującej się w wieży:
Jeśli teraz wciśniemy w krótkim odstępie czasu 3 razy przycisk dolny na kostce, ujrzymy:
Kostka zostaje wyłączona i zdalnie wyłącza kostkę NXT w wieży koparki, z którą była połączona poprzez bluetooth (moment przed wyłączeniem, wszystkie elektrozawory ustawiają się w pozycję 0). Jeśli jednak przez pomyłkę wciśniemy nawet dwa razy dolny przycisk na kostce, to po chwili, aby wyłączyć kostkę, sekwencję 3 wciśnięć następujących po sobie w krótkim odstępie czasu, należy powtórzyć.
Jeśli jednak nie wyłączymy kostki i wciśniemy 2 razy lewą strzałkę (raz aby przejść do menu z widokiem "blokada") to zobaczymy pierwsze z 3 menu do manualnego kalibrowania elektrozaworów (do 2 kolejnych dostajemy się wciskając kolejno raz lub dwa razy lewą strzałkę na kostce):
Elektrozawory pneumatyczne z racji swej budowy (silnik NXT i zawór pneumatyczny zamocowany na liftarmie kątowym) nie są idealnie sztywne między sobą. Dodatkowo, zawór pneumatyczny LEGO zawsze ma pewną bezwładność (trzeba użyć większej siły aby go poruszyć, niż aby go ruszać o taki sam kąt w sytuacji, gdy już został ruszony). Dlatego, mimo iż soft został napisany w sposób, który częściowo eliminuje nieliniowy opór pracy zaworów, co jakiś okres czasu konieczne jest przeprowadzenie operacji kalibracji zaworów w wieży. Aby tego dokonać, posługujemy się konsolą. Pierwszą rzeczą jest odjęcie osłon na wieży, aby widzieć zawory (choć ja korzystając już z doświadczenia i obserwując ruchy ramienia przy pracy, wiem o ile stopni przestawić punkt 0 każdego z 3 elektrozaworów, bez zdejmowania osłon).
Następnie, będąc w jednym z 3 menu:
Będąc w każdym z tych menu i wciskając przyciski bądź na lewym bądź prawym joyu, przestawiamy manualnie zawory co 1 stopień:
Następnie w ostatnim menu manualnego ustawiania zaworów (łyżka) powtarzamy sekwencję wyłączenia – 3 razy wciskamy dolny przycisk kostki) i wyłączamy obie kostki, ale tym razem program zapamiętuje nasze ustawienia manualnej regulacji i po ponownym włączeniu kostek, mamy wyregulowane zawory.
W prawej kostce NXT, po załadowaniu programu, widzimy następujące menu:
Napis u góry "nieaktywne" oznacza brak łączności z kostką w wieży. Po kilku sekundach łączność jest automatycznie nawiązywana i widzimy "aktywne". Po wychyleniu lewego joya na bok, zaczniemy sterować obrotem wieży. W tym menu przy obrocie wieży z prędkością 1 widzimy:
Jeśli teraz wychylimy joya o więcej niż 35 stopni, zobaczymy na wyświetlaczu:
Wciśnięcie pomarańczowego przycisku na kostce NXT, powoduje nadanie wartości 0 dla danego wychylenia osi odpowiadającej obrotowi wieży dla lewego joya. Jeśli w tym menu, wciśniemy lewą strzałkę, zobaczymy menu kompresora, gdzie widać aktualny stan działania kompresora (stop lub praca) i aktualne ciśnienie powietrza w układzie ciśnieniowym koparki, wyrażone w PSI:
Kompresor włącza się przy ciśnieniu powietrza w instalacji, niższym niż 30 PSI i wyłącza powyżej wartości ciśnienia 30 PSI.
Jeśli wciśniemy przycisk klaksonu i jesteśmy w menu obrotu wieży lub w menu kompresora, usłyszymy dźwięk klaksonu. Obrót wieży jest realizowany zarówno przy aktywnym menu obrotu, jak i kompresora. Jeśli będąc w menu kompresora, wciśniemy 2 razy prawą strzałkę (lub raz dla menu obrotu), to wejdziemy do menu poziomu baterii i zobaczymy:
Jeśli teraz wciśniemy w krótkim odstępie czasu 3 razy przycisk dolny na kostce, ujrzymy:
Kostka zostaje wyłączona i zdalnie wyłącza kostkę NXT w podwoziu koparki, z którą była połączona poprzez bluetooth. Jeśli jednak przez pomyłkę wciśniemy nawet dwa razy dolny przycisk na kostce, to po chwili, aby wyłączyć kostkę, sekwencję 3 wciśnięć następujących po sobie w krótkim odstępie czasu, należy powtórzyć.
Największą trudność w budowie modelu, stanowiło niewątpliwie "dojście" do takiego sposobu zbudowania elektrozaworu, który zapewniałby wymaganą dla wysokich ciśnień szybkość działania, odpowiednią precyzję, jak i charakteryzowałby się jak najmniejszymi gabarytami. Sprawdzałem różne rozwiązania, obecne okazuje się najlepsze. Oczywiście fizyczny elektrozawór to zaledwie połowa sukcesu, drugą stanowi oprogramowanie. Okazuje się, że zawory różnią się od siebie precyzją, każdy jest unikalny i każdy ma różny "zakres" punktu zerowego jak i różne wartości wychyleń powodujących "początek drożności" czyli przepływu powietrza. Oprogramowanie jest dosyć skomplikowane, gdyż działa w ten sposób, że przez pierwsze wychylenie kątowe joya (każdej osi, o ile to zależy i dla każdego elektrozaworu jest różne) jest przeliczane 1:2 tzn, na 1 stopień wychylenia joya, elektrozawór wychyla się o dwa stopnie. Po przejściu określonej wartości (znowu dla każdego zaworu praktycznie inaczej) przelicznik zmienia się na 1:0,2 tzn. na 1 stopień wychylenia joya, elektrozawór wychyla się o 0,2 stopnia. To zapewnia precyzję działania i nie za gwałtowne napuszczanie sprężonego powietrza do każdego z obwodów koparki.
Przykładowy wycinek kodu programu, obsługującego ruchy i kalibrację łyżki:
Wszystkie programy sterujące koparką (na 4 kostki NXT) składają się z około 640 linijek kodu i zostały napisane w C (robotC).Emilus w sofcie sterującym łyżką pisze: if(messageParm[2]<50){
rr1=messageParm[2]*p2;
rr2=messageParm[2]*p1+22;
rr5=messageParm[2]*p1-29;
if(messageParm[2]<=11&&messageParm[2]>=-16){rr3=1;}
if(rr3==1){
if(nMotorEncoder[IIsekcja]>(rr1+2)){motor[IIsekcja]=(-50);}
if(nMotorEncoder[IIsekcja]<(rr1-2)){motor[IIsekcja]=(50);}
if(nMotorEncoder[IIsekcja]<=(rr1+2)&&nMotorEncoder[IIsekcja]>=(rr1-2)){motor[IIsekcja]=0;}
}
if(messageParm[2]>11&&messageParm[2]<50){rr3=2;}
if(rr3==2){
if(nMotorEncoder[IIsekcja]>(rr2+1)){motor[IIsekcja]=(-50);}
if(nMotorEncoder[IIsekcja]<(rr2-1)){motor[IIsekcja]=(50);}
if(nMotorEncoder[IIsekcja]<=(rr2+1)&&nMotorEncoder[IIsekcja]>=(rr2-1)){motor[IIsekcja]=0;}
}
if(messageParm[2]<-16){rr3=3;}
if(rr3==3){
if(nMotorEncoder[IIsekcja]>(rr5+1)){motor[IIsekcja]=(-50);}
if(nMotorEncoder[IIsekcja]<(rr5-1)){motor[IIsekcja]=(50);}
if(nMotorEncoder[IIsekcja]<=(rr5+1)&&nMotorEncoder[IIsekcja]>=(rr5-1)){motor[IIsekcja]=0;}
}
rr4=messageParm[2];
if(m==0&&n==-6){
eraseDisplay();
if(bt!=19){nxtDisplayCenteredTextLine(0,"NIEAKTYWNE");}else{nxtDisplayCenteredTextLine(0,"AKTYWNE");}
nxtDisplayCenteredBigTextLine(2,"LYZKA");
if(SensorValue[zerowanie]==1){II=II+1;}
if(SensorValue[aktyw]==1){II=II-1;}
nxtDisplayCenteredBigTextLine(5,"%d st",II);
if(nNxtButtonPressed==0&&ww==0){ww=1;}
if(ww==1&&nNxtButtonPressed==-1){ww=2;}
if(nNxtButtonPressed==0&&ww==2){ww=3;}
if(ww==3&&nNxtButtonPressed==-1){ww=4;}
if(ww==4&&nNxtButtonPressed==0){III=500;}
if(III==500){
n=-8;
eraseDisplay();
nxtDisplayCenteredBigTextLine(1, "KONIEC");
nxtDisplayCenteredBigTextLine(4, "PRACY");
nxtDisplayCenteredTextLine(7, "MILEGO DNIA");
wait10Msec(50);
nMotorEncoder[Isekcja]=0;nMotorEncoder[IIIlyzka]=0;nMotorEncoder[IIsekcja]=0;
wait10Msec(500);
powerOff();
}
wait10Msec(10);
}
Dodatkowo w wieży koparki znajduje się manometr, do optycznego sprawdzenia ciśnienia a także, dodatkowy zawór pneumatyczny, służący np. do spuszczenia pozostałości ciśnienia, po wyłączeniu koparki.
Jeszcze kilka zdjęć:
Jeszcze raz galerie. Galeria Brickshelf Demaga (po cenzorze):
http://www.brickshelf.com/cgi-bin/galle ... 491020&n=0
Galeria Brickshelf Demaga VIP (po cenzorze):
http://www.brickshelf.com/cgi-bin/gallery.cgi?f=491025
Dziękuję za uwagę, pozdrawiam.