Forum LUGPOL Strona Główna Forum LUGPOL
www.lugpol.pl

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj

Poprzedni temat «» Następny temat
[MOC] NXT Killough Platform
Autor Wiadomość
Sariel 
VIP
p.o. majstra


Wiek: 36
Dołączył: 28 Mar 2007
Wpisy: 5052
Skąd: Warszawa
Wysłany: 2013-11-04, 00:17   [MOC] NXT Killough Platform



Ot, platforma Killougha w wersji powered by NXT. Nic nowego, zbudowałem jedną pięć lat temu, tylko tamta była na samych PFach i sterowanie trzema silnikami jednocześnie wymagało małpiej zręczności. Na starość zrobiłem się wygodny, więc siadłem z padem do Xboxa i pogrzebałem w RobotC tak, żeby ruchy joysticka przekładały się na ruch platformy. Cały kod poniżej. W teorii działa jak powinno, w praktyce trochę całym tym biznesem trzęsie bo jeździ to na omnikołach z 12 rolkami w każdym, co daje 30 stopni odstępu między jedną rolką a drugą. Stąd czasem ciężko nad tym zapanować, szczególnie przy jeździe w bok - mam wrażenie, że jest to kwestia nierównego obciążenia omnikół, do którego dokłada się wspomniana trzęsionka.

Podziękowanie dla 3doma za użyczenie baterii do NXT. Nie taki był plan wykorzystania, ale przynajmniej będzie wstrząśnięta, nie zmieszana ;)

Kod:


Kod:
#include "JoystickDriver.c"
 
task main()
{
  bMotorReflected[motorA] = true;
  bMotorReflected[motorB] = true;
  bMotorReflected[motorC] = true;
  while(true)
  {
    getJoystickSettings(joystick);
    int goY = joystick.joy1_y1 /20;
    int goX = joystick.joy1_x1 /20;
    wait1Msec(100);
 
      if (joystick.joy1_x2 == 126) // rotate left
      {
        motor[motorA] = 100;
        motor[motorB] = 100;
        motor[motorC] = 100;
      }
      else if (joystick.joy1_x2 == -128) // rotate right
      {
        motor[motorA] = -100;
        motor[motorB] = -100;
        motor[motorC] = -100;
      }
      else if (goY == 0 && goX == 0)
      {
        motor[motorA] = 0;
        motor[motorB] = 0;
        motor[motorC] = 0;
      }
      else
      {
        motor[motorA] = (goY - goX) * -40;
        motor[motorB] = goX * -20;
        motor[motorC] = (goY + goX) * 40;
      }
 
    nxtDisplayCenteredTextLine(0, "BATTERY: %3.1fV", nImmediateBatteryLevel / (float) 1000);
    nxtDisplayTextLine(2, "Y1: %d", goY);
    nxtDisplayTextLine(3, "X1: %d", goX);
  }
}


Galeria: http://www.brickshelf.com...ry.cgi?f=535886
Kilka fotek:


I film z obowiązkową wkładką mięsną:
_________________
Kalkulator przełożeń | Generator miniaturek z BSa/Majhosta
Ostatnio zmieniony przez Sariel 2013-11-04, 00:22, w całości zmieniany 2 razy  
 
 
 
Wyświetl wpisy z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich wpisów
Nie możesz usuwać swoich wpisów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

phpBB by przemo  
Strona wygenerowana w 0,044 sekundy. Zapytań do SQL: 9