Drążek sterowy

Bajtek 9/1985, Str. 27, 28, 29
OBOK KOMPUTERA

Akcją gry komputerowej można sterować za pomocą klawiatury. Jest to jednak sposób po- siadają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).

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 posiada osobny przycisk pozwalający na włączanie dodatkowych czynności.

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 spręż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 zgromadzeniu 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 (po- dobnie jak zamocowane 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.

Kolejnym etapem pracy będzie

mocowanie przełączników

Ich układ przedstawia rys. 3. Muszą być ustawione 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łączniki należy umieścić nieco ponad płytką montaż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łącznikiem w obudowie radiotelefonu „Trop". W górnej części obudowy należy wywiercić odpowiednie otwory na drążek sterowy i przycisk. 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 mu- simy dysponować odpowiednim programem) np.: zwie- rając wyjścia 1 i 8 otrzymujemy przesunięcie pionowe w górę (północ), a zwierając wyjścia 1 i 3 otrzymuje- my 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).

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 prze- testowana 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

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!

TOMASZ LISON

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. Po- zwala 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 IN- KEY$ będzie jednocześnie przyjmowało wartości przy- porzą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 po- przez 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.

ROMAN POZNAŃSKI