!!!!!!! Drążek sterowy czytelnia Try2emu

Drążek sterowy

Akcją gry komputerowej można sterować za pomocą klawiatury. Jest to jednak sposób posiadający dwie zasadnicze wady: zużywanie się klawiatury i mała szybkość reakcji. Niedoskonałości tych można uniknąć, stosując sterowanie za pomocą tzw. drążka sterowego (ang. joystick).

Rys. 1. Kierunki ruchu możliwe do uzyskania za pomocą drążka sterowego

Drążek sterowy przekazuje do komputera ruchy ręki gracza i pozwala całkowicie skoncentrować się na obrazie telewizyjnym. Posługiwanie się nim jest bardzo proste, wychylenie drążka w odpowiednim kierunku powoduje identyczny ruch kierowanego obiektu na ekranie telewizora. Ruch ten może odbywać się ośmiu podstawowych kierunkach (rys. 1). Oprócz tego każdy drążek sterowy posieda osobny przycisk pozwalający na włączanie dodatkowych czynności.

Rys. 2. Konstrukcja przegubu


Ponieważ drążek sterowy zazwyczaj nie wchodzi w podstawowe wyposażcie mikrokomputera, podajemy sposób zbudowania go we własnym zakresie. Rozwiązanie zastosowane przeze mnie jest jednym z możliwych wariantów, a jego zaletą jest prostota konstrukcji.

Do budowy drążka sterowego potrzebne Ci będą:

  • obudowa o wymiarach pozwalających na wygodne uchwycenie w dłoni (np. obudowa radiotelefonu)
  • pięć miniaturowych astabilnych przełączników (np. PZG 3 lub DZG 1)
  • rękojeść
  • płyta montażowa
  • gęsto nawinięta, mocna spreżyna o możliwie małej średnicy zwoju
  • przewód sześciożyłowy
  • odpowiednie gniazdko służące do połączenia drążka sterowego z komputerem (np. Eltra  881).

Po zgromadzeciu ww. elementów możemy przystąpić do montażu.

Konstrukcja przegubu

Istotą rozwiązania jest zastosowanie jako przegubu i równocześnie mechanizmu cofającego drążek do położenia neutralnego jednej, pionowo osadzonej sprężyny (podobnie jak zamoc-owane są figurki graczy w popularnym „footballu" dla dzieci). Sprężynę możemy zamocować na przyklejonej (klejem o dużej wytrzymałości mechanicznej np. „Epidianem") do płytki montażowej pinezce lub śrubce przykręconej do płytki. Otrzymujemy w ten sposób sprężysty przegub, do którego możemy zamocować rękojeść. W mojej konstrukcji wykorzystałem ołówek automatyczny. Średnica sprężyny była na tyle mała, że mogłem ją wsunąć w otwór służący normalnie  do mocowania grafitu, otrzymując mocne osadzenie rączki (rys. 2). Można wykonać rękojeść z odpowiednio wyprofilowanego drewna i w dolnej części wywiercić otwór do którego należy wkręcić wolny koniec sprężyny.

Rys. 3. Rozmieszczenie przełączników: 1 — przełącznik, 2 — drążek

Kolejnym etapem pracy będzie mocowanie przełączników

Ich układ przedstawia rys. 3. Maszą być usta wione w ten sposób, by niewielkim ruchem drążka można było uruchomić bądź jeden z przełączników, bądź też równocześnie dwa sąsiadujące ze sobą. Aby można było wygodnie i precyzyjnie manipulować drążkiem, przełącz niki należy umieścić nieco ponad płytką mon tażową na kawałku sklejki. Sposób zamocowania przełączników wraz z dodatkowym przyciskiem pokazano na rys. 4. Na tym samym rysunku przedstawiono również montaż płytki z przełączinikiem w obudowie radiotelefonu „Trop". W górnej części obudowy należy wywiercić odpowiednie otwory na drążek sterowy i przycisk.

Rys. 4. Drążek sterowy, sposób montażu

Pozostaje nam już tylko

wykonanie połączeń elektrycznych

Cześć mikrokomputerów posiada specjalne wtyki umożliwiające przyłączenie jednego lub dwóch drążków sterowych (np. Atari, Commodore), do pozostałych niezbędny) jest odpowiedni interfejs. Standardowy wtyk połączeniowy zawiera 9 bolców, z których 6 wykorzystujemy do sterowania (rys. 5). Przesunięcie obiektu w wybranym kierunku osiągamy zwierając odpowiednie wyjścia z masą (oczywiście dodatkowo musimy dysponować odpowiednim programem) np.: zwierając wyjścia 1 i 8 otrzymujemy przesunięcie pionowe w górę (północ), a zwierając wyjścia 1 i 3 otrzymujemy przesunięcie poziomo w lewo (zachód). Kierunki pośrednie (o ile zostały uwzględnione w programie) otrzymujemy zwierając równocześnie dwa wyjścia z masą, np. — zwarcie wyjść 1 i 3 z wyjściem nr 8 daje nam przesunięcie na ukos w lewo i w górę (północny zachód).

Rys. 5. Standardowy wtyk połączeniowy

Schemat połączeń elektrycznych układu przedstawia rys. .6. Przełączniki I, II, III i IV służą  do poruszania obiektu po ekranie (w kierunkach zaznaczonych na rysunku) a przełącznik nr V — do włączania innych czynności.

Po wykonaniu połączeń możemy przystąpić do przetestowana drążka sterowego. Poniżej podaję przykład programu na mikrokomputer Commodore VC-20 umożliwiający sprawdzenie działania naszego urządzenia. Po podłączenia drążka sterowego na ekranie będą pojawiać się cyfry odpowiadające poszczególnym położeniom drążka:

  • położenie neutralne — 8
  • północny zachód — 7
  • zachód— 6
  • południowy zachód — 5
  • południe — 4
  • południowy wschód — 3
  • wschód — 2
  • północny wschód — 1
  • północ — 0
Rys. 6. Schemat elektyczny, układ drążka

W momencie naciśnięcia przycisku "ogniowego" na ekranie pojawi się napis "STRZAŁ":

0 DIM SK(2,2): D1=37139: D2=37154
1 POKE D1,0
2 PA=37137: PB=37152
3 FOR I=0 TO 2: FOR J=0 TO 2: READ SK (J,I): NEXT J,I
4 DATA 7,0,1,6,8,2,5,4,3
10 GOSUB 9500
20 CC=SK(x+1,y+1)
30 PRINT CC
40 IF FR= 1 THEN PRINT "strzal"
50 GOTO 10
9500 POKE D2,127: S3 =-((PEEK(PB) AND 128)=0)
9510 P = PEEK(PA): S1 =-((P AND 8)=0): S2 =((P AND 16)=0): S0=((P AND 4)=0)
9520 FR=-((P AND 32)=0): x = S2+S3: y = S0+S1
9530 print CHR$(147): RETURN

Dobrej zabawy!


Od redakcji
Popularny w Polsce ZX SPECTRUM nie ma — niestety — możliwości bezpośredniego podłączenia drążka sterowego, niezbędne jest więc zastosowanie interface'u. Pozwala on na współpracę komputera z dwoma drążkami.
Programy dla joysticków bywają zwykle układane z zastosowaniem kodu maszynowego, jednakie istnieje możliwość pisania ich w BASIC-u. Drążki spełniają identyczne funkcje co najwyższy rząd klawiszy. Zależność jest następują:
klawisz 1 = drążek 3 w lewo
klawisz 2 = drążek 2 w prawo
klawisz 3 = drążek 2 w dół
klawisz 4 = drążek 2 w górę
klawisz 5 = drążek 2 przycisk dodatkowy
klawisz 6 = drążek 1 w lewo
klawisz 7 = drążek 1 w prawo
klawisz 8 = drążek 1 w dół
klawisz 9 = drążek 1 w górę
klawisz 10 = drążek 1 przycisk dodatkowy
Pozycja drążka może być odczytywana za pomocą instrukcji: INKEY$
Wynika stąd pewna niedogodność: wyrażenie INKEY$ będzie jednocześnie przyjmowało wartości przyporządkowane tylko jednemu klawiszowi, a wiec np. nie będzie możliwe przesłanie polecenia "w górę" i "strzał" równocześnie.
Alternatywnym — i bardziej sensownym — sposobem tworzenia programów z użyciem joysticków będzie użycie funkcji:

IN 61438 (odczytuje pozycje drążka I)
IN 63436 (odczytuje pozycje drążka II) 

Przedstawiony poniżej program pozwala na rysowanie na   ekranie   monitora    dowolnych kształtów poprzez odpowiednie poruszanie drążkiem. Naciśnięcie przycisku dodatkowego powoduje zniknięcie rysującego punktu. Będzie się on poruszał nadal, tak jak dotychczas, a ukaże się w chwili zwolnienia przycisku.

10 LET x=0: LET y=80 
20 GOSUB 1000 
30 IF rys=1 THEN PLOT x,y 
40 GO TO 20 
1000 LET a=IN 61438 
1010 IF a>127 THEN LET a=a—128 
1020 IF a>63 THEN LET a=a—64 
1030 IF a>31 THEN LET a=a—32 
1040 IF a>15 THEN LET a=a—16:IF x<255 THEN LET x=x+1
1050 IF a>7 THEN LET a=a—8:IF x>0 THEN LET x=x—1
1060 IF a>3 THEN LET a=a—4:IF y<175 THEN LET y=y+1
1070 IF a>1 THEN LET a=a—2:IF y>0 THEN LET y=y-1
1080 LET rys=a 
1090 RETURN

O tym, jakie wartości przyjmują wyrażenia IN 61438 oraz IN 63486 możecie się przekonać sami, analizując działanie podanego programu. Możecie też zapytać o to Waszego komputera — wystarczą trzy instrukcje.

TOMASZ LISOŃ