No to jedziemy. ;) Jeśli fire cokolwiek tam robi to potrzebne jest 2x5=10 sygnałów, jak nie to tylko 8. Pewnie od strony sprzętowej wygląda to tak:
Joystick Amigowy działa tak, że wciskając dany kierunek zwiera się linia danego kierunku z pinem 8 (GND, 0V):
Zatem po stronie robota jest pewnie coś takiego, rozrysowane tylko dla jednej akcji robota:
Czyli:
- AKCJA robota się dzieje jak jest ustawiona na 0V (logiczna jedynka), nie dzieje się jak jest ustawioa na +5V (logiczne zero)
- domyślnie ma się nic nie dziać, dlatego na linię AKCJA podawane jest napięcie przez rezystor (coś koło 10k lub więcej, wartość nieistotna) - tak zwany pullup, powodujący że jak linia nie jest podpięta wprost do napięcia wysokiego/niskiego, to "defaultuje" do tego co jest za rezystorem.
- do pinów danego kierunku (KIER) i masy (GND) podpina się joy. Wciskamy kierunek, to są zwierane ze sobą, więc KIER = 0V a zatem AKCJA = 0V - akcja się wykonuje
- odciskamy kierunek, to KIER traci połączenie z 0V, więc linia jest bez stanu - ze względu na pullup wraca na +5V.
Po cichu w tym wszystkim założyłem że:
- na liniach kierunków ze względu na pullup jest +5V - sprawdzić!
- robot wykonuje tak długo daną akcję jak długo jest wciśnięty kierunek. Może być tak że wystarczy krótkie zwarcie na linii żeby robot potem sam robił daną rzecz aż do wydania odwrotnej komendy, ale nie sądzę.
Można podejść do tego dwojako (w zależności od tego kto ile chce się bawić):
- sterować na żywca liniami portu równoległego Amigi (prostsze, ale sugeruję mieć parę CIA w zapasie ;) )
- zaopatrzyć się w klona arduino za dychę, scalak do konwersji rs232-uart, podpiąć arduino do seriala i wydając serialowe komendy z Amigi do arduino sterować manipulatorem pinami z arduino
Sposób pierwszy:
- jak w podlinkowanym artykule, czyli ustawić kierunek portu parallel na output i liniami D0-D8 wystawiać zera i jedynki na piny - wystawione zero powinno być czytane przez robota jako "zwarcie KIER z GND"
- wada jest taka że port równoległy daje tragicznie mało prądu (5V max 10mA) i generalnie można sobie uszkodzić dość łatwo CIA, jak się do końca nie ma pojęcia co się robi - wypadałoby zaraz za portem wstawić scalak buforujący z podprowadzonym zasilaniem skądinąd - raz że nie będzie to obciążać prądowo portu, dwa że zabezpieczy przed uwaleniem CIA.
Sposób drugi:
- kupić klona arduino nano za dychę
- kupić płytkę konwertującą RS232 na UART, podpiąć jeden koniec, do arduinowgo UARTa drugi do amigowego serial porta
- napisać krótki program na Arduino, który będzie czytał kolejne komendy z UARTa i w zależności od nich wystawiał 0/1 na swoich pinach - jak coś się spali to tylko Arduino. ;)
Nie, nie zrobię tego za nikogo. Nie po to się kupuje takie zabawki by sobie odbierać część zabawy. Służę radą, inni forumowi elektronicy pewnie też. ;)
Ostatnia aktualizacja: 15.11.2020 12:01:47 przez teh_KaiN