Dane techniczne:
Ciągnik:
Waga: 3.357 kg
Wymiary: dł. 86 s / szer. 26 s / wys. 27 s
Napęd: 1 x NXT z redukcją 7:1 na wszystkie koła
Zawieszenie: pełne niezależne
Silniki: 3 x NXT
Przyczepa:
Waga: 2.538 kg
Wymiary: dł. 134 s / szer. 24 s / wys. 25 s
Napęd: brak
Zawieszenie: brak
Silniki: 2 x PF Medium
Rusich to jedna z typowych ruskich ciężarówek wojskowych które przejadą po wszystkim, w każdej pogodzie, są w stanie holować lodowce i świetnie nadają się na weekendowe wypady na Syberię. Rosja spłodziła podobnych ciągników balastowych na pęczki, ale żaden z nich nie ma takiej foty:
Po zobaczeniu tej fotki wiedziałem już, że jak skończę K2, to będe go woził na właśnie takim potworze. No i stało się - do kompletu z czołgiem wybudowałem ciągnik i przyczepę.
Ciągnik ma napęd 8x8 i pełne niezależne zawieszenie. Dwie przednie osie są skrętne, całość składa się ze studowej budy na liftarmowym podwoziu. Nie spodziewałem się, że gotowy ciągnik będzie aż tak ciężki - jak się okazuje, ani liftarmowa rama, ani zawieszenie niezależne nie sa najlepszym pomysłem przy tak ciężkiej i wysuniętej kabinie. Ciągnik jeździ całkiem sprawnie jak na swój skromny napęd, ale rama jest nieco ugięta, a tylne koła mają śladową przyczepność.
Sytuacja poprawia się po dodaniu przyczepy. Sama przyczepa, choć prosta, okazała się nie lada wyzwaniem. Chociaż trzyma się na dwóch podłużnicach z długich technic bricków, o przekroju 2x2 study każda, to wciąż ugina się pod ciężarem czołgu. Sytuację nieco poprawia pokrycie całego spodu przyczepy płytkami 4x8 i dodanie na nich jeszcze jednej warstwy płytek wzdłuż podłużnic. W sumie "pokład" przyczepy ma więc 3 study grubości i to ciągle za mało żeby zniwelować ugięcie.
Całość ma dość pokręcony system sterowania, ponieważ chciałem żeby mogła funkcjonować jednocześnie z czołgiem. Ponieważ czołg wykorzystuje 3 kanały PF, zdecydowałem się czwarty kanał wykorzystać do sterowania przyczepą, a sam ciągnik zbudować na bazie NXT. I tak funkcje ciągnika - napęd, skręt i zamykanie zaczepu - obsługuje bezpośrednio kostka i silniki NXT, natomiast funkcje przyczepy - opuszczanie tylnej rampy i stabilizatorów do parkowania - są sterowane z odbiornika PF. Dzięki temu przyczepą można sterować dwojako - z ciągnika, przez sensor IR Link wbudowany w tylny zbiornik paliwowy, albo bezpośrednio, z pilota używanego do sterowania czołgiem. Jeszcze bardziej pokręcone jest zasilanie tego wszystkiego: w ciągniku, oprócz kostki NXT, znajduje się mały pociągowy batbox do którego podpięte są światła, przyczepa ma swój własny batbox AAA, natomiast czołg korzysta z dwóch baterii 8878, jednej do napędu, drugiej do wszystkiego innego.
Główny problem całego MOCa to brak łatwej możliwości wymiany baterii w kostce NXT ciągnika. Co prawda wsadziłem tam Eneloopy, ale nawet im zaszkodziły intensywne testy po kilku miesiącach bezczynności. Skutkuje to niestety tym, że pod koniec filmu ciągnik już ledwie się rusza, mimo że na początku z powodzeniem holuje cały czołg - jakoś nie przyszło mi do głowy żeby sfilmować to w jakimś ciekawszym ujęciu. Poza tym do problemów należy ciężka kabina ciągnika - oprócz ugięcia ramy, podowuje ona też takie obciążenie przedniej osi że skręcać da się praktycznie tylko w ruchu (nie wspominając o takim detalu że w pierwszej i drugiej osi jest łącznie 10 najtwardszych amortyzatorów).
Cały "komplet" nie jest pozbawiony wad, ale myślę że spełnił swoje zasadnicze zadanie jakim było pozwolenie na zabawę kilkoma różnymi, pasującymi skalą MOCami, jednocześnie. Gdyby jeszcze czołgiem na przyczepę wjeżdżało się łatwiej...
Specjalne podziękowania dla panów 3doma i M_longera za wspomożenie kaflami DBG, bez których ten MOC mógłby, tfu, tfu, mieć więcej niż jeden kolor ;)
Galeria
Kilka fotek WIP:
Kilka fotek afterWIP:
I oczywiście film:
[youtube]http://www.youtube.com/watch?v=Iy40f1aQ-sY[/youtube]
Na deser program do sterowania ciągnikiem z pada:
Kod: Zaznacz cały
#pragma config(Sensor, S4, HTIRL, sensorI2CCustom)
#include "drivers/HTIRL-driver.h"
#include "JoystickDriver.c"
tPFmotor Ramp = pfmotor_S4_C3_A;
tPFmotor Outriggers = pfmotor_S4_C3_B;
task main()
{
bMotorReflected[motorA] = false;
bMotorReflected[motorB] = false;
bMotorReflected[motorC] = false;
while(true)
{
getJoystickSettings(joystick);
motor[motorA] = 0;
motor[motorB] = 0;
motor[motorA] = joystick.joy1_y1 / 1.28;
motor[motorB] = joystick.joy1_y2 / 1.28;
nxtDisplayCenteredTextLine(0, "BATTERY: %3.1fV", nImmediateBatteryLevel / (float) 1000);
nxtDisplayTextLine(2, "A: %d", motor[motorA]);
nxtDisplayTextLine(3, "B: %d", motor[motorB]);
if(joy1Btn(1) == 1)
motor[motorC] = -100;
else if(joy1Btn(3) == 1)
motor[motorC] = 100;
else
motor[motorC] = 0;
if(joy1Btn(6) == 1)
{
PFMotor(Ramp, 7);
nxtDisplayCenteredTextLine(5, "Ramp >>");
}
else if(joy1Btn(8) == 1)
{
PFMotor(Ramp, -7);
nxtDisplayCenteredTextLine(5, "Ramp <<");
}
else if(joy1Btn(5) == 1)
{
PFMotor(Outriggers, 7);
nxtDisplayCenteredTextLine(5, "Outriggers >>");
}
else if(joy1Btn(7) == 1)
{
PFMotor(Outriggers, -7);
nxtDisplayCenteredTextLine(5, "Outriggers <<");
}
else
{
PFMotor(Ramp, 0);
PFMotor(Outriggers, 0);
nxtDisplayCenteredTextLine(5, "Idle");
}
}
}