W artykule zostanie omówiony pad bezprzewodowy, którego podłączymy do arduino, a następnie wykorzystamy bibliotekę PS2X za pomocą której nauczymy się jak odczytywać przyciski wysyłane z naszego pada, co później pozwoli nam na sterowanie np. silnikami.


Spis treści
- Opis pada
- Prawidłowe podłączenie do arduino
- Wykorzystanie przykładu z biblioteki
- Przesłanie kodu, oraz możliwe problemy i ich rozwiązanie
- Udane połączenie
- Pliki do pobrania
Opis pada
Bezprzewodowy kontroler z odbiornikiem, który można podłączyć do Arduino i wykorzystać np. do sterowania robotem. Rozkład przycisków jest zgodny z PS2. Urządzenie zasilane jest z dwóch baterii AAA, może pracować w trybie analogowym i cyfrowym. Jednocześnie w pobliżu może pracować do 20 kontrolerów z odbiornikami bez wzajemnego zakłócania się. Maksymalny zasięg wynosi 8 m.
Prawidłowe podłączenie do arduino
Podłączenie pada może wydawać się trudne na początek i skomplikowane, ale wcale takie nie jest, wystarczy odpowiednia biblioteka, oraz połączenie pinów które jest tutaj najważniejsze, na dole znajdziecie tabelę która umożliwi nam prawidłowe wpięcie pinów do arduino, oraz pada.

Nazwy przydadzą nam się kiedy będziemy ustawiać który pin za co odpowiada w naszym programie. Musimy również pamiętać, że piny pada(odbiornika) liczymy od lewej strony, z płaską stroną zwróconą do góry, inaczej połączenie nam nie zadziała. Skoro poradziliśmy sobie z połączeniem, to możemy przejść do sprawdzenia, czy naszego pada uda się połączyć z arduino. Wykorzystamy do tego wcześniej wspomnianą bibliotekę, możecie ją pobrać klikając tutaj, jak ją zaimplementować, znajdziecie w osobnym poradniku na naszym blogu.
Wykorzystanie przykładu do sprawdzenia działania pada
Gdy poprawnie zainstalowaliśmy naszą bibliotekę powinniśmy mieć możliwość wykorzystania gotowego przykładu biblioteki, tak jak na poniższym screenie.

Wybieramy PS2X_Example i powinniśmy się zainteresować tymi linijkami
#define PS2_DAT 13 //14 #define PS2_CMD 11 //15 #define PS2_SEL 10 //16 #define PS2_CLK 12 //17
Kiedy spojrzymy na naszą tabelę z połączeniem pinów która była na początku, to zobaczymy, że niektóre piny nie zgadzają się z tymi tutaj, dlatego zmieniamy je na poprawne i powinny wyglądać w ten sposób.
#define PS2_DAT 12 //14 #define PS2_CMD 11 //15 #define PS2_SEL 10 //16 #define PS2_CLK 13 //17
Teraz powinno być wszystko w porządku, włączamy jeszcze opcję która pozwoli nam czytać wartość z przycisków.
#define pressures true
Przesłanie kodu, oraz możliwe problemy i ich rozwiązanie
Możemy przejść do przesłania kodu na arduino, zielona lampka na odbiorniku powinna mrugać, a po włączeniu pada powinno nawiązać się połączenie.
Rozwiązywanie problemu z połączeniem pada
Niestety nie raz możemy napotkać się z problemem gdzie zielona lampka nie mruga lub świeci się cały czas na zielono, a pad nie jest podłączony. Mamy kilka opcji, sprawdzić czy wszystkie piny są prawidłowo połączone, jeśli tak przechodzimy do kolejnego kroku, musimy włączyć funkcję debugowania w naszej bibliotece, aby to zrobić przechodzimy do miejsca gdzie zapisywane są rzeczy z naszego arduino w większości wypadków będzie to
C:\Users\Twoja_nazwa_użytkownika\Dokumenty\Arduino\libraries
lub jeżeli korzystasz z OneDrive
C:\Users\Twoja_nazwa_użytkownika\OneDrive\Dokumenty\Arduino\libraries
Gdy nam się udało, szukamy naszej biblioteki i edytujemy plik PS2X_lib.h, szukamy w nim
//#define PS2X_DEBUG //#define PS2X_COM_DEBUG
Usuwamy oba „//” przed #define, zapisujemy i wgrywamy do naszego arduino, w porcie szeregowym powinny wyświetlać się różne informacje, to znaczy, że wszystko idzie po naszej myśli, następnie patrzymy czy nasza dioda mruga na zielono (zalecam wyłączenie pada), jeżeli tak, możemy włączyć pada i sprawdzić czy połączenie się udało, jeżeli tak na naszym padzie diody powinny świecić stale. Jeżeli dioda dalej się świeci na zielono, a pad nie jest podłączony, to odłączamy i podłączamy arduino od zasilania. Gdy nam się uda osiągnąć zamierzony efekt, możemy wyłączyć pada, oraz przejść do pliku i znowu zakometować te dwie linijki, prawdopodobnie sytuacja znowu może się powtórzyć. Jeżeli na bieżąco przesyłacie kod, zalecam tryb debugowania zostawić włączony, oraz jak przesyłacie kod na arduino, to wyłączajcie pada. Wtedy problemy wymienione wyżej powinny występować rzadziej.
Udane połączenie
Gdy pad już jest podłączony możemy przejść do monitora portów szeregowych i wciskać przyciski, gdy chcemy zobaczyć działanie joysticków wciskamy R1 albo L1 i ruszamy nimi, wartości wtedy powinny się zmieniać.
To będzie na tyle, w późniejszych artykułach będziemy się uczyć jak sterować silnikami za pomocą naszego pada, potraktujcie to jako wprowadzenie do bardziej ciekawych mechanizmów.






